From 637f7dc5e805bad55dba7fb7693a45f5992b2ae7 Mon Sep 17 00:00:00 2001 From: Gary Scavone Date: Fri, 28 Dec 2007 22:26:12 +0000 Subject: [PATCH] Ervik bug fixes and changes, documentation fixes (gps). --- RtAudio.cpp | 12 +++++++++--- RtAudio.h | 2 +- doc/doxygen/acknowledge.txt | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/RtAudio.cpp b/RtAudio.cpp index 8deb5f6..de7219f 100644 --- a/RtAudio.cpp +++ b/RtAudio.cpp @@ -38,7 +38,7 @@ */ /************************************************************************/ -// RtAudio: Version 4.0.3 +// RtAudio: Version 4.0.4pre #include "RtAudio.h" #include @@ -1816,8 +1816,8 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne // Count the available ports containing the client name as device // channels. Jack "input ports" equal RtAudio output channels. unsigned int nChannels = 0; - unsigned long flag = JackPortIsOutput; - if ( mode == INPUT ) flag = JackPortIsInput; + unsigned long flag = JackPortIsInput; + if ( mode == INPUT ) flag = JackPortIsOutput; ports = jack_get_ports( client, deviceName.c_str(), NULL, flag ); if ( ports ) { while ( ports[ nChannels ] ) nChannels++; @@ -3725,6 +3725,7 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned ZeroMemory( &bufferDescription, sizeof( DSBUFFERDESC ) ); bufferDescription.dwSize = sizeof( DSBUFFERDESC ); bufferDescription.dwFlags = ( DSBCAPS_STICKYFOCUS | + DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_LOCHARDWARE ); // Force hardware mixing bufferDescription.dwBufferBytes = bufferBytes; @@ -3735,6 +3736,7 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned result = output->CreateSoundBuffer( &bufferDescription, &buffer, NULL ); if ( FAILED( result ) ) { bufferDescription.dwFlags = ( DSBCAPS_STICKYFOCUS | + DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_LOCSOFTWARE ); // Force software mixing result = output->CreateSoundBuffer( &bufferDescription, &buffer, NULL ); @@ -3995,6 +3997,8 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned goto error; } + // Boost DS thread priority + SetThreadPriority( (HANDLE) stream_.callbackInfo.thread, THREAD_PRIORITY_HIGHEST ); return SUCCESS; error: @@ -5164,6 +5168,7 @@ bool RtApiAlsa :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne if ( subdevice < 0 ) break; if ( nDevices == device ) { sprintf( name, "hw:%d,%d", card, subdevice ); + snd_ctl_close( chandle ); goto foundDevice; } nDevices++; @@ -6014,6 +6019,7 @@ unsigned int RtApiOss :: getDeviceCount( void ) return 0; } + close( mixerfd ); return sysinfo.numaudios; } diff --git a/RtAudio.h b/RtAudio.h index 5acc9a5..5e0666d 100644 --- a/RtAudio.h +++ b/RtAudio.h @@ -42,7 +42,7 @@ \file RtAudio.h */ -// RtAudio: Version 4.0.3 +// RtAudio: Version 4.0.4pre #ifndef __RTAUDIO_H #define __RTAUDIO_H diff --git a/doc/doxygen/acknowledge.txt b/doc/doxygen/acknowledge.txt index 1c42191..f56836d 100644 --- a/doc/doxygen/acknowledge.txt +++ b/doc/doxygen/acknowledge.txt @@ -2,6 +2,7 @@ Many thanks to the following people for providing bug fixes and improvements: