Esempio n. 1
0
        public int Generate(float[] samples, int offset, int sampleCount)
        {
            int sent = 0;

            if (pauseLen > 0)
            {
                sent      = silenceGenerator.Generate(samples, offset, Math.Min(sampleCount, pauseLen));
                pauseLen -= sent;
                if (sent == sampleCount)
                {
                    return(sent);
                }
            }

            while (sent < sampleCount && repetitions < NumRepeats)
            {
                if (dataGenerator.IsDone)
                {
                    dataGenerator.EnqueueBits(bits);
                }
                sent += dataGenerator.Generate(samples, offset + sent, sampleCount - sent);
                if (dataGenerator.IsDone)
                {
                    ++repetitions;
                }
            }
            repetitions %= NumRepeats;
            return(sent);
        }
Esempio n. 2
0
        public int Generate(float[] samples, int offset, int sampleCount)
        {
            int preambleSent = 0;

            if (dataGenerator != null)
            {
                preambleSent = dataGenerator.Generate(samples, offset, sampleCount);
                if (dataGenerator.IsDone)
                {
                    dataGenerator = null;
                }
            }
            int toSend      = Math.Min(sampleCount - preambleSent, pauseLen);
            int silenceSent = silenceGenerator.Generate(samples, offset + preambleSent, toSend);

            pauseLen -= silenceSent;
            return(preambleSent + silenceSent);
        }