From: drowe67 Date: Fri, 6 Jul 2012 00:54:41 +0000 (+0000) Subject: pa_rec refactored X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=373cf7af72db96f5be2e2aa1276e992e24938695;p=freetel-svn-tracking.git pa_rec refactored git-svn-id: https://svn.code.sf.net/p/freetel/code@581 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/unittest/Makefile.am b/codec2-dev/unittest/Makefile.am index 26856c27..77d13f01 100644 --- a/codec2-dev/unittest/Makefile.am +++ b/codec2-dev/unittest/Makefile.am @@ -69,6 +69,6 @@ tlspsens_LDADD = $(lib_LTLIBRARIES) tlspsens_LDFLAGS = $(LIBS) pa_rec_SOURCES = pa_rec.c -pa_rec_LDADD = $(lib_LTLIBRARIES) +pa_rec_LDADD = $(lib_LTLIBRARIES) -lportaudio pa_rec_LDFLAGS = $(LIBS) diff --git a/codec2-dev/unittest/pa_rec.c b/codec2-dev/unittest/pa_rec.c index 514098d3..ad87aef8 100644 --- a/codec2-dev/unittest/pa_rec.c +++ b/codec2-dev/unittest/pa_rec.c @@ -39,6 +39,7 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#include #include #include #include "portaudio.h" @@ -51,13 +52,11 @@ typedef short SAMPLE; -typedef struct -{ - int frameIndex; /* Index into sample array. */ - int maxFrameIndex; - SAMPLE *recordedSamples; -} -paTestData; +typedef struct { + FILE *fout; + int framesLeft; +} paTestData; + /* This routine will be called by the PortAudio engine when audio is available. ** It may be called at interrupt level on some machines so don't do anything @@ -70,47 +69,40 @@ static int recordCallback( const void *inputBuffer, void *outputBuffer, void *userData ) { paTestData *data = (paTestData*)userData; - const SAMPLE *rptr = (const SAMPLE*)inputBuffer; - SAMPLE *wptr = &data->recordedSamples[data->frameIndex /** NUM_CHANNELS*/]; - long framesToCalc; - long i; - int finished; - unsigned long framesLeft = data->maxFrameIndex - data->frameIndex; + FILE *fout = data->fout; + int framesToCopy; + int i; + int finished; + short buf[FRAMES_PER_BUFFER]; + short *rptr = (short*)inputBuffer; (void) outputBuffer; /* Prevent unused variable warnings. */ (void) timeInfo; (void) statusFlags; (void) userData; - if( framesLeft < framesPerBuffer ) - { - framesToCalc = framesLeft; + if (data->framesLeft < framesPerBuffer) { + framesToCopy = data->framesLeft; finished = paComplete; - } - else - { - framesToCalc = framesPerBuffer; + } + else { + framesToCopy = framesPerBuffer; finished = paContinue; } + data->framesLeft -= framesToCopy; - if( inputBuffer == NULL ) - { - for( i=0; iframeIndex += framesToCalc; + assert(inputBuffer != NULL); + + /* just use left channel */ + + for(i=0; i