Esempio n. 1
0
        public void AddDevice(Device device)
        {
            if (device.DeviceName.Contains("none"))
            {
                return;
            }
            if (!ContainDevice(device.DeviceHandle))
            {
                devices.Add(device);
                switch (device.DeviceType)
                {
                case DeviceType.AUDIOINPUT:
                case DeviceType.AUDIOOUTPUT:
                {
                    var audioInput   = GetDevicesByType(DeviceType.AUDIOINPUT).FirstOrDefault();
                    var audioOutput  = GetDevicesByType(DeviceType.AUDIOOUTPUT).FirstOrDefault();
                    var inputHandle  = audioInput?.DeviceHandle;
                    var outputHandle = audioOutput?.DeviceHandle;
                    if (null == CurrentAudioInputDevice && null != audioInput)
                    {
                        CurrentAudioInputDevice = audioInput;
                        WrapperProxy.SetAudioDevice(inputHandle, outputHandle);
                        WrapperProxy.SetAudioDeviceForRingtone(outputHandle);
                    }
                    if (null == CurrentAudioOutputDevice && null != outputHandle)
                    {
                        CurrentAudioOutputDevice = audioOutput;
                        WrapperProxy.SetAudioDevice(inputHandle, outputHandle);
                        WrapperProxy.SetAudioDeviceForRingtone(outputHandle);
                    }
                }
                break;

                case DeviceType.VIDEOINPUT:
                {
                    if (null == CurrentAudioOutputDevice)
                    {
                        var video       = GetDevicesByType(DeviceType.VIDEOINPUT).FirstOrDefault();
                        var videoHandle = video?.DeviceHandle;
                        if (null != videoHandle)
                        {
                            CurrentVideoInputDevice = video;
                            WrapperProxy.SetVideoDevice(videoHandle);
                        }
                    }
                }
                break;
                }
            }
        }