public void Start([NotNull] ICommsNetwork network, [NotNull] IMicrophoneCapture microphone)
        {
            if (network == null)
            {
                throw new ArgumentNullException("network");
            }
            if (microphone == null)
            {
                throw new ArgumentNullException("microphone");
            }

            _microphone = microphone;
            _network    = network;

            Net_ModeChanged(network.Mode);
            network.ModeChanged += Net_ModeChanged;
        }
Esempio n. 2
0
        public EncoderPipeline(IMicrophoneCapture mic, IVoiceEncoder encoder, ICommsNetwork net, Func <int> channelCount)
        {
            _mic          = mic;
            _encoder      = encoder;
            _net          = net;
            _channelCount = channelCount;

            _encodedBytes = new byte[encoder.FrameSize * sizeof(float)];
            _plainSamples = new float[encoder.FrameSize];
            _inputFormat  = mic.Format;

            //Create an input buffer with plenty of spare space
            _input = new BufferedSampleProvider(_inputFormat, Math.Max(_encoder.FrameSize * 2, mic.FrameSize * 2));

            _resampler = new Resampler(_input, _encoder.SampleRate);

            //Whatever we did above, we need to read in frame size chunks
            _output = new SampleToFrameProvider(_resampler, (uint)encoder.FrameSize);
        }
        public void Start([NotNull] ICommsNetwork network, [NotNull] IMicrophoneCapture microphone)
        {
            if (network == null)
            {
                throw new ArgumentNullException("network");
            }
            if (microphone == null)
            {
                throw new ArgumentNullException("microphone");
            }

            _microphone = microphone;
            _network    = network;
            AudioSettingsWatcher.Instance.Start();

            Net_ModeChanged(network.Mode);
            network.ModeChanged += Net_ModeChanged;

            _isMobilePlatform = IsMobilePlatform();
        }