From b8f97a36f24cb3f1f1a9c9b9a03f65b8d471b52c Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@d8a302eb-03bc-478d-80e4-98257eca68ef> Date: Sat, 26 Jul 2014 11:01:44 +0000 Subject: [PATCH] xxx git-svn-id: svn://elaine/murooma/trunk@99 d8a302eb-03bc-478d-80e4-98257eca68ef --- client.cpp | 9 +++++++-- stream.cpp | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/client.cpp b/client.cpp index d5cabd26..4ca4809c 100644 --- a/client.cpp +++ b/client.cpp @@ -20,6 +20,7 @@ int bufferMs; +int deviceIdx; Stream* stream; @@ -92,7 +93,8 @@ int initAudio() std::cerr << "Device " << i << ": " << deviceInfo->name << "\n"; } - outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */ + outputParameters.device = deviceIdx==-1?Pa_GetDefaultOutputDevice():deviceIdx; /* default output device */ + std::cerr << "Using Device: " << outputParameters.device << "\n"; if (outputParameters.device == paNoDevice) { fprintf(stderr,"Error: No default output device.\n"); @@ -100,7 +102,7 @@ int initAudio() } outputParameters.channelCount = CHANNELS; /* stereo output */ outputParameters.sampleFormat = paInt16; /* 32 bit floating point output */ - outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency; + outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultHighOutputLatency; outputParameters.hostApiSpecificStreamInfo = NULL; err = Pa_OpenStream( @@ -140,9 +142,12 @@ error: int main (int argc, char *argv[]) { + deviceIdx = -1; bufferMs = 300; if (argc > 1) bufferMs = atoi(argv[1]); + if (argc > 2) + deviceIdx = atoi(argv[2]); stream = new Stream(); stream->setBufferLen(bufferMs); diff --git a/stream.cpp b/stream.cpp index d165185f..872c046f 100644 --- a/stream.cpp +++ b/stream.cpp @@ -171,7 +171,7 @@ void Stream::getChunk(short* outputBuffer, double outputBufferDacTime, unsigned } timeval tv = getNextPlayerChunk(outputBuffer, correction); - int age = getAge(tv) - bufferMs + outputBufferDacTime*1000; + int age = getAge(tv) - bufferMs;// + outputBufferDacTime*1000; pBuffer->add(age); pShortBuffer->add(age); // std::cerr << "Chunk: " << age << "\t" << outputBufferDacTime*1000 << "\n";