Exemplo n.º 1
0
        /// <summary>
        /// Query DeviceInformation class for Midi Output devices
        /// </summary>
        private async Task EnumerateMidiOutputDevices()
        {
            // Clear output devices
            OutputDevices.Clear();
            OutputDeviceProperties.Clear();
            outputDeviceProperties.IsEnabled = false;

            // Find all output MIDI devices
            string midiOutputQueryString = MidiOutPort.GetDeviceSelector();
            DeviceInformationCollection midiOutputDevices = await DeviceInformation.FindAllAsync(midiOutputQueryString);

            // Return if no external devices are connected, and GS synth is not detected
            if (midiOutputDevices.Count == 0)
            {
                OutputDevices.Add("No MIDI output devices found!");
                outputDevices.IsEnabled = false;

                NotifyUser("Please connect at least one external MIDI device for this demo to work correctly");
                return;
            }

            // List specific device information for each output device
            foreach (DeviceInformation deviceInfo in midiOutputDevices)
            {
                OutputDevices.Add(deviceInfo.Name);
                outputDevices.IsEnabled = true;
            }

            NotifyUser("MIDI Output devices found!");
        }
Exemplo n.º 2
0
        public void UpdateDevices()
        {
            InputDevices.Clear();
            OutputDevices.Clear();
            VideoDevices.Clear();

            for (int i = 0; i < WaveIn.DeviceCount; i++)
            {
                InputDevices.Add(new InputMenuData {
                    Name = WaveIn.GetCapabilities(i).ProductName
                });
            }

            for (int i = 0; i < WaveOut.DeviceCount; i++)
            {
                OutputDevices.Add(new OutputMenuData {
                    Name = WaveOut.GetCapabilities(i).ProductName
                });
            }

            var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            foreach (FilterInfo device in videoDevices)
            {
                VideoDevices.Add(new VideoMenuData {
                    Name = device.Name
                });
            }
        }
Exemplo n.º 3
0
        public bool RemoveDevice(Device device)
        {
            var success = InputDevices.Remove(device) || OutputDevices.Remove(device);

            if (success)
            {
                OnPropertyChanged(nameof(InputDevices));
                OnPropertyChanged(nameof(OutputDevices));
                Context.ContextChanged();
            }

            return(success);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Clear all input and output MIDI device lists and properties
        /// </summary>
        private void ClearAllDeviceValues()
        {
            // Clear input devices
            InputDevices.Clear();
            InputDevices.Add("Click button to list input MIDI devices");
            inputDevices.IsEnabled = false;

            // Clear output devices
            OutputDevices.Clear();
            OutputDevices.Add("Click button to list output MIDI devices");
            outputDevices.IsEnabled = false;

            // Clear input device properties
            InputDeviceProperties.Clear();
            InputDeviceProperties.Add("Select a MIDI input device to view its properties");
            inputDeviceProperties.IsEnabled = false;

            // Clear output device properties
            OutputDeviceProperties.Clear();
            OutputDeviceProperties.Add("Select a MIDI output device to view its properties");
            outputDeviceProperties.IsEnabled = false;
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Get input and output MIDI devices
        /// </summary>
        public void GetMidiDevices()
        {
            var inputDevices  = new BindableCollection <MidiInputDeviceInfo>();
            var outputDevices = new BindableCollection <MidiOutputDeviceInfo>();

            for (var i = 0; i < InputDevice.DeviceCount; i++)
            {
                inputDevices.Add(new MidiInputDeviceInfo(InputDevice.GetDeviceCapabilities(i)));
            }

            for (var i = 0; i < OutputDeviceBase.DeviceCount; i++)
            {
                outputDevices.Add(new MidiOutputDeviceInfo(OutputDeviceBase.GetDeviceCapabilities(i)));
            }

            _logger.Info($"Found {inputDevices.Count} input devices");
            _logger.Info($"Found {outputDevices.Count} output devices");

            InputDevices  = inputDevices;
            OutputDevices = outputDevices;

            var jdXiInput  = InputDevices.FirstOrDefault(d => d.Name == "JD-Xi");
            var jdXiOutput = OutputDevices.FirstOrDefault(d => d.Name == "JD-Xi");

            SelectedInputDeviceId  = jdXiInput == null ? -1 : InputDevices.IndexOf(jdXiInput);
            SelectedOutputDeviceId = jdXiOutput == null ? -1 : OutputDevices.IndexOf(jdXiOutput);

            if (jdXiInput != null)
            {
                _logger.Info($"JD-XI Input device found (ID: {SelectedInputDeviceId})");
            }

            if (jdXiOutput != null)
            {
                _logger.Info($"JD-XI Output device found (ID: {SelectedOutputDeviceId})");
            }
        }
Exemplo n.º 6
0
        public AudioTabViewModel()
            : base(NameKey, SettingsTabCategory.Audio)
        {
            OutputDevices = ClientModel.Player.Devices;
            InputDevices  = ClientModel.Recorder.Devices;
            InputConfigs  = new[]
            {
                new AudioQuality(1, 8, 22050),
                new AudioQuality(1, 16, 22050),
                new AudioQuality(1, 8, 44100),
                new AudioQuality(1, 16, 44100)
            };

            SelectedOutputIndex = OutputDevices.IndexOf(Settings.Current.OutputAudioDevice);
            SelectedInputIndex  = InputDevices.IndexOf(Settings.Current.InputAudioDevice);
            SelectedConfigIndex = InputConfigs.IndexOf(new AudioQuality(1, Settings.Current.Bits, Settings.Current.Frequency));

            if (SelectedOutputIndex == -1)
            {
                SelectedOutputIndex = 0;
            }

            if (SelectedInputIndex == -1)
            {
                SelectedInputIndex = 0;
            }

            if (SelectedConfigIndex == -1)
            {
                SelectedConfigIndex = 0;
            }

            SelectButtonName = Settings.Current.RecorderKey.ToString();

            SelectKeyCommand = new Command(SelectKey);
        }
Exemplo n.º 7
0
 public bool CanRemoveDevice(Device device)
 {
     return(InputDevices.Contains(device) || OutputDevices.Contains(device));
 }