private RemoteControlData ChangeObs(RemoteControlData wsData)
 {
     if (obsService.isConnected)
     {
         RemoteObsScene ObsScene = JsonConvert.DeserializeObject <RemoteObsScene>(wsData.data.ToString());
         obsService.setCurrentScene(ObsScene.name);
     }
     return(wsData);
 }
        private void AssignNewData(RemoteControlData data)
        {
            if (this.data.Equals(data) == false)
            {
                OnUpdated?.Invoke(data);
            }

            this.data = data;
        }
        private RemoteControlData StoreDeck(RemoteControlData wsData)
        {
            storeService.store(wsData.data);
            RemoteControlData WSDataResponse = new RemoteControlData();

            WSDataResponse.type   = RemoteControlDataType.StoreDeck;
            WSDataResponse.status = "OK";
            return(WSDataResponse);
        }
        private void IOUpdateHandler(object sender, AudioServiceUpdate message)
        {
            RemoteControlData WSData = new RemoteControlData();

            WSData.data = message.volumes;
            WSData.type = RemoteControlDataType.VolumeUpdate;

            // TODO Send volumes update to client
            webSocketEngine.SendData(WSData);
        }
Пример #5
0
        private string MessageHandler(object sender, RemoteControlOnMessageArgs message)
        {
            RemoteControlData data = JsonConvert.DeserializeObject <RemoteControlData>(message.message);

            Func <RemoteControlData, RemoteControlData> route;

            if (routes.TryGetValue(data.type, out route))
            {
                data = route(data);
            }
            else
            {
                data = getUnknownCommand(data);
            }


            return(data != null?JsonConvert.SerializeObject(data) : null);
        }
        private RemoteControlData ChangeVolume(RemoteControlData wsData)
        {
            // TODO Verify input data to avoid exception when unknown data is passed
            ChangeVolumeType ChangeVolume = JsonConvert.DeserializeObject <ChangeVolumeType>(wsData.data.ToString());

            if (ChangeVolume.output)
            {
                ApplicationController app = audioService.GetApplicationOutput(ChangeVolume.name, ChangeVolume.device);
                app.updateVolume((float)ChangeVolume.volume / 100);
                app.setMute(ChangeVolume.mute);
            }
            else
            {
                MMDevice mic = audioService.GetDeviceInput(ChangeVolume.device);
                mic.AudioEndpointVolume.MasterVolumeLevelScalar = (float)ChangeVolume.volume / 100;
                mic.AudioEndpointVolume.Mute = ChangeVolume.mute;
            }

            return(wsData);
        }
        private RemoteControlData GetVolumes(RemoteControlData wsData)
        {
            RemoteControlVolumes volumes = new RemoteControlVolumes();

            VolumeOrderData[] orderVolumes = storeService.read <VolumeOrderData[]>();
            foreach (MMDevice dev in audioService.GetListOfOutputDevices())
            {
                foreach (ApplicationController appOut in audioService.GetApplicationsMixer(dev))
                {
                    ApplicationController appDev = audioService.GetDeviceController(dev);
                    RemoteControlVolume   audio  = new RemoteControlVolume();
                    audio.name   = appOut.processName;
                    audio.volume = (int)(appOut.getVolume() * 100);
                    audio.mute   = appOut.getMute();
                    audio.device = appDev.device.FriendlyName;
                    audio.output = true;
                    audio.icon   = ProcessUtils.ProcessIcon(appOut.session.GetProcessID);
                    audio.id     = audio.name + "|" + audio.device;
                    audio.order  = GetVolumeOrder(orderVolumes, audio.device + audio.name);
                    volumes.Add(audio);
                }
            }

            foreach (MMDevice dev in audioService.GetListOfInputDevices())
            {
                RemoteControlVolume audio = new RemoteControlVolume();

                audio.name   = dev.FriendlyName;
                audio.mute   = dev.AudioEndpointVolume.Mute;
                audio.volume = (int)(dev.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
                audio.device = dev.FriendlyName;
                audio.output = false;
                audio.order  = GetVolumeOrder(orderVolumes, audio.device + audio.name);
                volumes.Add(audio);
            }

            wsData.data = volumes;

            return(wsData);
        }
        private RemoteControlData GetObs(RemoteControlData wsData)
        {
            RemoteObsScenes remoteScenes = new RemoteObsScenes();

            if (obsService.isConnected)
            {
                GetSceneListInfo scenes = obsService.getScenes();
                foreach (OBSScene scene in scenes.Scenes)
                {
                    RemoteObsScene remoteScene = new RemoteObsScene();
                    remoteScene.name = scene.Name;
                    remoteScenes.Add(remoteScene);
                }
            }
            else
            {
                wsData.status = "OBS_WEBSOCKET_ERROR";
            }

            wsData.data = remoteScenes;
            return(wsData);
        }
 private void OnModelUpdated(RemoteControlData remoteControlData)
 {
     objectsController.UpdateViews(remoteControlData.data);
 }
 public void Update(RemoteControlData data)
 {
     AssignNewData(data);
 }
 public RemoteControlModel(RemoteControlData data)
 {
     Update(data);
 }
Пример #12
0
 private RemoteControlData getUnknownCommand(RemoteControlData wsData)
 {
     wsData.status = "COMMAND_NOT_FOUND";
     return(wsData);
 }