Example #1
0
        private void OnDeviceChanged(CoreAudioDevice device, DeviceChangedType changedType)
        {
            LoggerHelper.Trace("Audio Device {0} - Change Type: {1}", device.Id, changedType);
            lock (devicesLock)
            {
                if (changedType == DeviceChangedType.DeviceRemoved || device.State != DeviceState.Active)
                {
                    RemoveSubscriptions(device.Id);
                    devices.Remove(device.Id);
                    devicePeakValue.Remove(device.Id);
                }
                else
                {
                    if (device.IsPlaybackDevice)
                    {
                        if (device.IsDefaultCommunicationsDevice)
                        {
                            commsPlayback = device;
                        }
                        if (device.IsDefaultDevice)
                        {
                            mediaPlayback = device;
                        }
                    }

                    if (changedType == DeviceChangedType.DeviceAdded)
                    {
                        RemoveSubscriptions(device.Id);
                        devicePeakSubs[device.Id] = device.PeakValueChanged.Subscribe(x => devicePeakValue[device.Id] = x.PeakValue);
                    }

                    devices[device.Id] = GetAudioDeviceInfo(device.Id);
                }
            }
        }
Example #2
0
 protected DeviceChangedArgs(IDevice dev, DeviceChangedType type)
 {
     Device      = dev;
     ChangedType = type;
 }