public bool Start(SRecordDevice[] DeviceConfig) { if (!_initialized) { return(false); } for (int i = 0; i < _Buffer.Length; i++) { _Buffer[i].Reset(); } _DeviceConfig = DeviceConfig; bool[] active = new bool[DeviceConfig.Length]; Guid[] guid = new Guid[DeviceConfig.Length]; short[] channels = new short[DeviceConfig.Length]; for (int dev = 0; dev < DeviceConfig.Length; dev++) { active[dev] = false; for (int inp = 0; inp < DeviceConfig[dev].Inputs.Count; inp++) { if (DeviceConfig[dev].Inputs[inp].PlayerChannel1 > 0 || DeviceConfig[dev].Inputs[inp].PlayerChannel2 > 0) { active[dev] = true; } guid[dev] = new Guid(DeviceConfig[dev].Driver); channels[dev] = (short)DeviceConfig[dev].Inputs[0].Channels; } } for (int i = 0; i < _Devices.Count; i++) { if (active[i]) { SoundCardSource source = new SoundCardSource(guid[i], channels[i]); source.SampleRateKHz = 44.1; source.SampleDataReady += this.OnDataReady; source.Start(); _Sources.Add(source); } } _DeviceConfig = DeviceConfig; return(true); }
public bool Start(SRecordDevice[] DeviceConfig) { if (!_initialized) return false; for (int i = 0; i < _Buffer.Length; i++) { _Buffer[i].Reset(); } _DeviceConfig = DeviceConfig; bool[] active = new bool[DeviceConfig.Length]; Guid[] guid = new Guid[DeviceConfig.Length]; short[] channels = new short[DeviceConfig.Length]; for (int dev = 0; dev < DeviceConfig.Length; dev++) { active[dev] = false; for (int inp = 0; inp < DeviceConfig[dev].Inputs.Count; inp++) { if (DeviceConfig[dev].Inputs[inp].PlayerChannel1 > 0 || DeviceConfig[dev].Inputs[inp].PlayerChannel2 > 0) active[dev] = true; guid[dev] = new Guid(DeviceConfig[dev].Driver); channels[dev] = (short)DeviceConfig[dev].Inputs[0].Channels; } } for (int i = 0; i < _Devices.Count; i++) { if (active[i]) { SoundCardSource source = new SoundCardSource(guid[i], channels[i]); source.SampleRateKHz = 44.1; source.SampleDataReady += this.OnDataReady; source.Start(); _Sources.Add(source); } } _DeviceConfig = DeviceConfig; return true; }