public static IWavePlayer InstanciateWavePlayerForOutput(OutputDeviceModel SelectedOutput, int desiredLatency, AudioClientShareMode shareMode, bool useWaveEvent)
        {
            switch (SelectedOutput.Provider)
            {
            case DeviceProvider.Wave:
            {
                if (useWaveEvent)
                {
                    return new WaveOutEvent()
                           {
                               DeviceNumber = SelectedOutput.WavDeviceNumber, DesiredLatency = desiredLatency
                           }
                }
                ;
                else
                {
                    return new WaveOut()
                           {
                               DeviceNumber = SelectedOutput.WavDeviceNumber, DesiredLatency = desiredLatency
                           }
                };
            }

            case DeviceProvider.DirectSound:
                return(new DirectSoundOut(SelectedOutput.DirectSoundDeviceInfo.Guid, desiredLatency));

            case DeviceProvider.Wasapi:
                return(new WasapiOut(SelectedOutput.MMDevice, shareMode, useEventSync, desiredLatency));
            }
            return(new DirectSoundOut(DirectSoundOut.DSDEVID_DefaultVoicePlayback, desiredLatency));
        }
        private void InitializeOutputDevices()
        {
            OutputList.Clear();

            if (ShowAdvancedControls)
            {
                foreach (var device in DirectSoundOut.Devices)
                {
                    OutputList.Add(new OutputDeviceModel(device));
                }
            }

            if (ShowAdvancedControls)
            {
                for (int n = 0; n < WaveOut.DeviceCount; n++)
                {
                    var capabilities = WaveOut.GetCapabilities(n);
                    OutputList.Add(new OutputDeviceModel(n, capabilities));
                }
            }

            foreach (var device in MMDevices.deviceEnum.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active).ToList())
            {
                var model = new OutputDeviceModel(device);
                OutputList.Add(model);
            }
        }
        public MasterSessionModelTests()
        {
            this.mVolumeNotifMock = new Mock <IMasterVolumeNotificationHandler>();
            var sVolumeMock = new Mock <IAudioSessionVolume>();

            this.model = new MasterSessionModel("speakers", "speakers", 70,
                                                false, new BitmapImage(), sVolumeMock.Object, mVolumeNotifMock.Object);

            this.deviceStateMock = new Mock <IDeviceStateNotificationHandler>();
            this.iDeviceMock     = new Mock <IDevice>();

            this.iDeviceMock.Setup(m => m.GetId()).Returns("111");

            this.deviceOwner = new OutputDeviceModel(this.iDeviceMock.Object, this.deviceStateMock.Object,
                                                     new Mock <ISessionProvider>().Object, this.model, new ObservableCollection <AudioSessionModel>());
        }
Example #4
0
        public OutputDeviceModelTests()
        {
            var master   = MasterSessionModelTests.GetMasterMock(deviceName, 70, false, new BitmapImage());
            var sessions = new ObservableCollection <AudioSessionModel>();

            sessions.Add(AudioSessionModelTests.GetSessionMock("app", 50, false));

            this.deviceMock = new Mock <IDevice>();

            this.deviceMock.Setup(m => m.GetId()).Returns(deviceId);

            this.deviceStateMock = new Mock <IDeviceStateNotificationHandler>();
            this.sProviderMock   = new Mock <ISessionProvider>();

            this.model = new OutputDeviceModel(deviceMock.Object, deviceStateMock.Object, sProviderMock.Object, master, sessions);
        }
        public DeviceProviderTests()
        {
            var iDeviceEnumMock = new Mock <IDeviceEnumerator>();

            deviceStateNotifMock = new Mock <IDeviceStateNotificationHandler>();

            defaultDevice = OutputDeviceModelTests.GetDeviceMock("111", "speakers", this.deviceStateNotifMock.Object);
            var device  = OutputDeviceModelTests.GetDeviceMock("123", "device", this.deviceStateNotifMock.Object);
            var devices = new List <OutputDeviceModel> {
                defaultDevice, device
            };

            iDeviceEnumMock.Setup(m => m.GetCurrentActiveDevices(deviceStateNotifMock.Object)).Returns(devices);
            iDeviceEnumMock.Setup(m => m.GetDefaultDeviceId()).Returns(defaultDevice.Id);

            model = GetDeviceProviderMock(iDeviceEnumMock.Object, deviceStateNotifMock.Object);
        }