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