private static void AddCommand(AudioDeviceManager manager, ContextMenuStrip strip, AudioDeviceCollection devices, AudioDeviceState state)
        {
            foreach (AudioDevice device in devices.Where(d => d.State == state))
            {
                ToolStripDropDown dropDown = strip.AddNestedCommand(new AudioDeviceCommand(manager, device));

                if (device.State == AudioDeviceState.Active)
                {
                    dropDown.AddCommand(new SetAsDefaultMultimediaDeviceCommand(manager, device));
                    dropDown.AddCommand(new SetAsDefaultCommunicationDeviceCommand(manager, device));
                }
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            List <Device>       videoCaptureDevices = new List <Device>();
            List <StudioDevice> audioOutputs        = new List <StudioDevice>();
            List <StudioDevice> audioInputs         = new List <StudioDevice>();

            DsDevice[] videoDevices = DirectShowLib.DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
            foreach (DsDevice dev in videoDevices)
            {
                string id = PrepareVideoId(dev);

                videoCaptureDevices.Add(new Device {
                    category = "video", name = dev.Name, path = dev.DevicePath, id = id
                });
            }

            // Load audio devices and set the correct selected ones
            var inputDevices = new AudioDeviceCollection(AudioDeviceCategory.Capture);

            audioInputs = inputDevices
                          .Where(IsSelectableDevice)
                          .Select(device =>
                                  new StudioDevice
            {
                Id   = $"{{0.0.1.00000000}}.{{{device.Guid}}}",
                Name = device.Description
            }).ToList();

            var outputDevices = new AudioDeviceCollection(AudioDeviceCategory.Output);

            audioOutputs = outputDevices
                           .Where(IsSelectableDevice)
                           .Select(device =>
                                   new StudioDevice
            {
                Id   = $"{{0.0.0.00000000}}.{{{device.Guid}}}",
                Name = device.Description
            }).ToList();

            generateJson(videoCaptureDevices, audioInputs, audioOutputs);
        }