Esempio n. 1
0
        private void updateDeviceInfoImpl(bool needStop)
        {
            if (needStop)
            {
                stopCaptureImpl();
            }
            lock (_lockObj)
            {
                _deviceInfos.Clear();
                if (_devices != null)
                {
                    foreach (MMDevice device in _devices.EnumerateAudioEndPoints(EDataFlow.eAll, DeviceState.DEVICE_STATE_ACTIVE))
                    {
                        AudioEndpointVolume vol = device.AudioEndpointVolume;
                        DeviceInfo info = new DeviceInfo(device.Id, device.FriendlyName, device.DataFlow, device.State, device.DeviceFormat);
                        _deviceInfos.Add(info);
                    }
                }
            }

            // イベント発火
            var del = DeviceInfoUpdated;
            if (del != null)
            {
                List<DeviceInfo> info = this.DeviceInfos;
                del.Invoke(this, new DeviceInfoUpdatedEventArgs(info));
            }
        }
 public DeviceInfoViewModel(DeviceInfo di)
 {
     DeviceInfo = di;
     Name = di.FriendlyName;
     DeviceId = di.DeviceId;
     State = di.State;
     IsCapturing = false;
     Channels = di.Format.nChannels;
     SamplesPerSec = di.Format.nSamplesPerSec;
 }