var MAPPING_NAME = "Demo Mapping"; var CHANNEL_NAME = "DEMO-DOMAIN-SWITCH"; var mapping = Controller.newMapping(MAPPING_NAME); // These will need to be switched to the local ip addresses if internal is used var LOCATION_01 = "hifi://rust"; var LOCATION_02 = "hifi://thespot"; var LOCATION_03 = "hifi://mexico"; var LOCATION_04 = "hifi://zaru"; var LOCATION_05 = "hifi://tomb"; var locations = [ LOCATION_01, LOCATION_02, LOCATION_03, LOCATION_04, LOCATION_05 ]; // The first 3 are for the audience places // These will switch everyone together mapping.from(Controller.Hardware.Keyboard["4"]).to(function(value) { if(value === 1){ Messages.sendMessage(CHANNEL_NAME, JSON.stringify({key: "all", domain: "rust"})); } }); mapping.from(Controller.Hardware.Keyboard["5"]).to(function(value) { if(value === 1){ Messages.sendMessage(CHANNEL_NAME, JSON.stringify({key: "all", domain: "thespot"})); } }); mapping.from(Controller.Hardware.Keyboard["6"]).to(function(value) { if(value === 1){ Messages.sendMessage(CHANNEL_NAME, JSON.stringify({key: "all", domain: "mexico"})); } }); mapping.from(Controller.Hardware.Keyboard["7"]).to(function(value) { if(value === 1){ Messages.sendMessage(CHANNEL_NAME, JSON.stringify({key: "all", domain: "zaru"})); } }); mapping.from(Controller.Hardware.Keyboard["8"]).to(function(value) { if(value === 1){ Messages.sendMessage(CHANNEL_NAME, JSON.stringify({key: "all", domain: "tomb"})); } }); Controller.enableMapping(MAPPING_NAME); Script.scriptEnding.connect(function () { Controller.disableMapping(MAPPING_NAME); Messages.unsubscribe(CHANNEL_NAME); }); Messages.subscribe(CHANNEL_NAME); // Turn this on for Audience Switching function messageHandler(channel, messageString, messageID) { if (channel !== CHANNEL_NAME) { return; } var message = {}; message = JSON.parse(messageString); if (message.key === "all") { switch (message.domain) { case "rust" : Window.location.handleLookupString(locations[0]); break; case "thespot" : Window.location.handleLookupString(locations[1]); break; case "mexico" : Window.location.handleLookupString(locations[2]); break; case "zaru" : Window.location.handleLookupString(locations[3]); break; case "tomb" : Window.location.handleLookupString(locations[4]); break; default: Window.location.handleLookupString(locations[0]); } } } Messages.messageReceived.connect(messageHandler);