private RemoteControlVolumes GetVolumeIO() { RemoteControlVolumes volumes = new RemoteControlVolumes(); foreach (MMDevice dev in GetListOfOutputDevices()) { foreach (ApplicationController appOut in GetApplicationsMixer(dev)) { ApplicationController appDev = 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); volumes.Add(audio); } } foreach (MMDevice dev in 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; volumes.Add(audio); } return(volumes); }
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); }