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; }