Example #1
0
        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;
        }