diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp index e36640f54cf45bd1514811ee76d289b1c6df1673..a674938fd44ce394ed3c38e9b5a36a3e604052b3 100644 --- a/src/audio/audiolayer.cpp +++ b/src/audio/audiolayer.cpp @@ -86,10 +86,11 @@ AudioLayer::openDevice (int index) 2, portaudio::INT16, true, portaudio::System::instance().deviceByIndex(index).defaultLowInputLatency(), NULL); + // we could put 0 instead of FRAME_PER_BUFFER to be variable portaudio::StreamParameters const params(inParams, outParams, - SAMPLING_RATE, FRAME_PER_BUFFER, paNoFlag); + SAMPLING_RATE, paFramesPerBufferUnspecified, paPrimeOutputBuffersUsingStreamCallback | paNeverDropInput /*paNoFlag*/); // Create (and open) a new Stream, using the AudioLayer::audioCallback _stream = new portaudio::MemFunCallbackStream<AudioLayer>(params, diff --git a/src/audio/tonegenerator.cpp b/src/audio/tonegenerator.cpp index b22283d3c526fec4de6325960f7d21700ddace91..af84b27c2b9b0117dbd2f3bbba48a5c95f9c2a54 100644 --- a/src/audio/tonegenerator.cpp +++ b/src/audio/tonegenerator.cpp @@ -60,7 +60,7 @@ ToneThread::run (void) { // How long do 'size' samples play ? // let's play it a bit smaller that it should to put more inside the buffer - unsigned int play_time = _size / (SAMPLING_RATE/1000); + unsigned int play_time = _size / (SAMPLING_RATE/1000) - 20; ManagerImpl& manager = Manager::instance(); manager.getAudioDriver()->flushMain();