Browse Source

Add our rtaudio patch for future reference

tags/1.9.8
falkTX 8 years ago
parent
commit
37d54953e4
1 changed files with 647 additions and 0 deletions
  1. +647
    -0
      source/modules/rtaudio.diff

+ 647
- 0
source/modules/rtaudio.diff View File

@@ -0,0 +1,647 @@
diff --git a/RtAudio.cpp b/RtAudio.cpp
index 2ac2179..c658295 100644
--- a/RtAudio.cpp
+++ b/RtAudio.cpp
@@ -282,7 +282,7 @@ void RtApi :: openStream( RtAudio::StreamParameters *oParams,
return;
}
- if ( oParams == NULL && iParams == NULL ) {
+ if ( oParams == NULL && iParams == NULL && getCurrentApi() != RtAudio::RTAUDIO_DUMMY ) {
errorText_ = "RtApi::openStream: input and output StreamParameters structures are both NULL!";
error( RtAudioError::INVALID_USE );
return;
@@ -1587,6 +1587,8 @@ static void *coreStopStream( void *ptr )
object->stopStream();
pthread_exit( NULL );
+
+ return NULL;
}
bool RtApiCore :: callbackEvent( AudioDeviceID deviceId,
@@ -1925,7 +1927,7 @@ const char* RtApiCore :: getErrorCode( OSStatus code )
// devices are available (i.e., the JACK server is not running), a
// stream cannot be opened.
-#include <jack/jack.h>
+#include "jackbridge/JackBridge.hpp"
#include <unistd.h>
#include <cstdio>
@@ -1944,17 +1946,9 @@ struct JackHandle {
:client(0), drainCounter(0), internalDrain(false) { ports[0] = 0; ports[1] = 0; xrun[0] = false; xrun[1] = false; }
};
-#if !defined(__RTAUDIO_DEBUG__)
-static void jackSilentError( const char * ) {};
-#endif
-
RtApiJack :: RtApiJack()
:shouldAutoconnect_(true) {
// Nothing to do here.
-#if !defined(__RTAUDIO_DEBUG__)
- // Turn off Jack's internal error reporting.
- jack_set_error_function( &jackSilentError );
-#endif
}
RtApiJack :: ~RtApiJack()
@@ -1967,13 +1961,13 @@ unsigned int RtApiJack :: getDeviceCount( void )
// See if we can become a jack client.
jack_options_t options = (jack_options_t) ( JackNoStartServer ); //JackNullOption;
jack_status_t *status = NULL;
- jack_client_t *client = jack_client_open( "RtApiJackCount", options, status );
+ jack_client_t *client = jackbridge_client_open( "CarlaJackCount", options, status );
if ( client == 0 ) return 0;
const char **ports;
std::string port, previousPort;
unsigned int nChannels = 0, nDevices = 0;
- ports = jack_get_ports( client, NULL, NULL, 0 );
+ ports = jackbridge_get_ports( client, NULL, NULL, 0 );
if ( ports ) {
// Parse the port names up to the first colon (:).
size_t iColon = 0;
@@ -1988,10 +1982,10 @@ unsigned int RtApiJack :: getDeviceCount( void )
}
}
} while ( ports[++nChannels] );
- free( ports );
+ jackbridge_free( ports );
}
- jack_client_close( client );
+ jackbridge_client_close( client );
return nDevices;
}
@@ -2002,7 +1996,7 @@ RtAudio::DeviceInfo RtApiJack :: getDeviceInfo( unsigned int device )
jack_options_t options = (jack_options_t) ( JackNoStartServer ); //JackNullOption
jack_status_t *status = NULL;
- jack_client_t *client = jack_client_open( "RtApiJackInfo", options, status );
+ jack_client_t *client = jackbridge_client_open( "CarlaJackInfo", options, status );
if ( client == 0 ) {
errorText_ = "RtApiJack::getDeviceInfo: Jack server not found or connection error!";
error( RtAudioError::WARNING );
@@ -2012,7 +2006,7 @@ RtAudio::DeviceInfo RtApiJack :: getDeviceInfo( unsigned int device )
const char **ports;
std::string port, previousPort;
unsigned int nPorts = 0, nDevices = 0;
- ports = jack_get_ports( client, NULL, NULL, 0 );
+ ports = jackbridge_get_ports( client, NULL, NULL, 0 );
if ( ports ) {
// Parse the port names up to the first colon (:).
size_t iColon = 0;
@@ -2028,11 +2022,11 @@ RtAudio::DeviceInfo RtApiJack :: getDeviceInfo( unsigned int device )
}
}
} while ( ports[++nPorts] );
- free( ports );
+ jackbridge_free( ports );
}
if ( device >= nDevices ) {
- jack_client_close( client );
+ jackbridge_client_close( client );
errorText_ = "RtApiJack::getDeviceInfo: device ID is invalid!";
error( RtAudioError::INVALID_USE );
return info;
@@ -2041,30 +2035,30 @@ RtAudio::DeviceInfo RtApiJack :: getDeviceInfo( unsigned int device )
// Get the current jack server sample rate.
info.sampleRates.clear();
- info.preferredSampleRate = jack_get_sample_rate( client );
+ info.preferredSampleRate = jackbridge_get_sample_rate( client );
info.sampleRates.push_back( info.preferredSampleRate );
// Count the available ports containing the client name as device
// channels. Jack "input ports" equal RtAudio output channels.
unsigned int nChannels = 0;
- ports = jack_get_ports( client, info.name.c_str(), NULL, JackPortIsInput );
+ ports = jackbridge_get_ports( client, info.name.c_str(), NULL, JackPortIsInput );
if ( ports ) {
while ( ports[ nChannels ] ) nChannels++;
- free( ports );
+ jackbridge_free( ports );
info.outputChannels = nChannels;
}
// Jack "output ports" equal RtAudio input channels.
nChannels = 0;
- ports = jack_get_ports( client, info.name.c_str(), NULL, JackPortIsOutput );
+ ports = jackbridge_get_ports( client, info.name.c_str(), NULL, JackPortIsOutput );
if ( ports ) {
while ( ports[ nChannels ] ) nChannels++;
- free( ports );
+ jackbridge_free( ports );
info.inputChannels = nChannels;
}
if ( info.outputChannels == 0 && info.inputChannels == 0 ) {
- jack_client_close(client);
+ jackbridge_client_close(client);
errorText_ = "RtApiJack::getDeviceInfo: error determining Jack input/output channels!";
error( RtAudioError::WARNING );
return info;
@@ -2083,7 +2077,7 @@ RtAudio::DeviceInfo RtApiJack :: getDeviceInfo( unsigned int device )
if ( device == 0 && info.inputChannels > 0 )
info.isDefaultInput = true;
- jack_client_close(client);
+ jackbridge_client_close(client);
info.probed = true;
return info;
}
@@ -2101,7 +2095,7 @@ static int jackCallbackHandler( jack_nframes_t nframes, void *infoPointer )
// This function will be called by a spawned thread when the Jack
// server signals that it is shutting down. It is necessary to handle
// it this way because the jackShutdown() function must return before
-// the jack_deactivate() function (in closeStream()) will return.
+// the jackbridge_deactivate() function (in closeStream()) will return.
static void *jackCloseStream( void *ptr )
{
CallbackInfo *info = (CallbackInfo *) ptr;
@@ -2110,6 +2104,8 @@ static void *jackCloseStream( void *ptr )
object->closeStream();
pthread_exit( NULL );
+
+ return NULL;
}
static void jackShutdown( void *infoPointer )
{
@@ -2151,9 +2147,9 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
jack_options_t jackoptions = (jack_options_t) ( JackNoStartServer ); //JackNullOption;
jack_status_t *status = NULL;
if ( options && !options->streamName.empty() )
- client = jack_client_open( options->streamName.c_str(), jackoptions, status );
+ client = jackbridge_client_open( options->streamName.c_str(), jackoptions, status );
else
- client = jack_client_open( "RtApiJack", jackoptions, status );
+ client = jackbridge_client_open( "CarlaJack", jackoptions, status );
if ( client == 0 ) {
errorText_ = "RtApiJack::probeDeviceOpen: Jack server not found or connection error!";
error( RtAudioError::WARNING );
@@ -2168,7 +2164,7 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
const char **ports;
std::string port, previousPort, deviceName;
unsigned int nPorts = 0, nDevices = 0;
- ports = jack_get_ports( client, NULL, NULL, 0 );
+ ports = jackbridge_get_ports( client, NULL, NULL, 0 );
if ( ports ) {
// Parse the port names up to the first colon (:).
size_t iColon = 0;
@@ -2184,7 +2180,7 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
}
}
} while ( ports[++nPorts] );
- free( ports );
+ jackbridge_free( ports );
}
if ( device >= nDevices ) {
@@ -2197,10 +2193,10 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
unsigned int nChannels = 0;
unsigned long flag = JackPortIsInput;
if ( mode == INPUT ) flag = JackPortIsOutput;
- ports = jack_get_ports( client, deviceName.c_str(), NULL, flag );
+ ports = jackbridge_get_ports( client, deviceName.c_str(), NULL, flag );
if ( ports ) {
while ( ports[ nChannels ] ) nChannels++;
- free( ports );
+ jackbridge_free( ports );
}
// Compare the jack ports for specified client to the requested number of channels.
@@ -2211,9 +2207,9 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
}
// Check the jack server sample rate.
- unsigned int jackRate = jack_get_sample_rate( client );
+ unsigned int jackRate = jackbridge_get_sample_rate( client );
if ( sampleRate != jackRate ) {
- jack_client_close( client );
+ jackbridge_client_close( client );
errorStream_ << "RtApiJack::probeDeviceOpen: the requested sample rate (" << sampleRate << ") is different than the JACK server rate (" << jackRate << ").";
errorText_ = errorStream_.str();
return FAILURE;
@@ -2221,19 +2217,19 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
stream_.sampleRate = jackRate;
// Get the latency of the JACK port.
- ports = jack_get_ports( client, deviceName.c_str(), NULL, flag );
+ ports = jackbridge_get_ports( client, deviceName.c_str(), NULL, flag );
if ( ports[ firstChannel ] ) {
// Added by Ge Wang
jack_latency_callback_mode_t cbmode = (mode == INPUT ? JackCaptureLatency : JackPlaybackLatency);
// the range (usually the min and max are equal)
jack_latency_range_t latrange; latrange.min = latrange.max = 0;
// get the latency range
- jack_port_get_latency_range( jack_port_by_name( client, ports[firstChannel] ), cbmode, &latrange );
+ jackbridge_port_get_latency_range( jackbridge_port_by_name( client, ports[firstChannel] ), cbmode, &latrange );
// be optimistic, use the min!
stream_.latency[mode] = latrange.min;
- //stream_.latency[mode] = jack_port_get_latency( jack_port_by_name( client, ports[ firstChannel ] ) );
+ //stream_.latency[mode] = jack_port_get_latency( jackbridge_port_by_name( client, ports[ firstChannel ] ) );
}
- free( ports );
+ jackbridge_free( ports );
// The jack server always uses 32-bit floating-point data.
stream_.deviceFormat[mode] = RTAUDIO_FLOAT32;
@@ -2250,7 +2246,7 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
// Get the buffer size. The buffer size and number of buffers
// (periods) is set when the jack server is started.
- stream_.bufferSize = (int) jack_get_buffer_size( client );
+ stream_.bufferSize = (int) jackbridge_get_buffer_size( client );
*bufferSize = stream_.bufferSize;
stream_.nDeviceChannels[mode] = channels;
@@ -2333,24 +2329,24 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
stream_.mode = DUPLEX;
else {
stream_.mode = mode;
- jack_set_process_callback( handle->client, jackCallbackHandler, (void *) &stream_.callbackInfo );
- jack_set_xrun_callback( handle->client, jackXrun, (void *) &stream_.apiHandle );
- jack_on_shutdown( handle->client, jackShutdown, (void *) &stream_.callbackInfo );
+ jackbridge_set_process_callback( handle->client, jackCallbackHandler, (void *) &stream_.callbackInfo );
+ jackbridge_set_xrun_callback( handle->client, jackXrun, (void *) &stream_.apiHandle );
+ jackbridge_on_shutdown( handle->client, jackShutdown, (void *) &stream_.callbackInfo );
}
// Register our ports.
char label[64];
if ( mode == OUTPUT ) {
for ( unsigned int i=0; i<stream_.nUserChannels[0]; i++ ) {
- snprintf( label, 64, "outport %d", i );
- handle->ports[0][i] = jack_port_register( handle->client, (const char *)label,
+ snprintf( label, 64, "audio-out%d", i+1 );
+ handle->ports[0][i] = jackbridge_port_register( handle->client, (const char *)label,
JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0 );
}
}
else {
for ( unsigned int i=0; i<stream_.nUserChannels[1]; i++ ) {
- snprintf( label, 64, "inport %d", i );
- handle->ports[1][i] = jack_port_register( handle->client, (const char *)label,
+ snprintf( label, 64, "audio-in%d", i+1 );
+ handle->ports[1][i] = jackbridge_port_register( handle->client, (const char *)label,
JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0 );
}
}
@@ -2367,7 +2363,7 @@ bool RtApiJack :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
error:
if ( handle ) {
pthread_cond_destroy( &handle->condition );
- jack_client_close( handle->client );
+ jackbridge_client_close( handle->client );
if ( handle->ports[0] ) free( handle->ports[0] );
if ( handle->ports[1] ) free( handle->ports[1] );
@@ -2403,9 +2399,9 @@ void RtApiJack :: closeStream( void )
if ( handle ) {
if ( stream_.state == STREAM_RUNNING )
- jack_deactivate( handle->client );
+ jackbridge_deactivate( handle->client );
- jack_client_close( handle->client );
+ jackbridge_client_close( handle->client );
}
if ( handle ) {
@@ -2442,8 +2438,8 @@ void RtApiJack :: startStream( void )
}
JackHandle *handle = (JackHandle *) stream_.apiHandle;
- int result = jack_activate( handle->client );
- if ( result ) {
+ bool result = jackbridge_activate( handle->client );
+ if ( ! result ) {
errorText_ = "RtApiJack::startStream(): unable to activate JACK client!";
goto unlock;
}
@@ -2452,8 +2448,8 @@ void RtApiJack :: startStream( void )
// Get the list of available ports.
if ( shouldAutoconnect_ && (stream_.mode == OUTPUT || stream_.mode == DUPLEX) ) {
- result = 1;
- ports = jack_get_ports( handle->client, handle->deviceName[0].c_str(), NULL, JackPortIsInput);
+ result = false;
+ ports = jackbridge_get_ports( handle->client, handle->deviceName[0].c_str(), NULL, JackPortIsInput);
if ( ports == NULL) {
errorText_ = "RtApiJack::startStream(): error determining available JACK input ports!";
goto unlock;
@@ -2463,21 +2459,21 @@ void RtApiJack :: startStream( void )
// allow the user to select particular channels of a device, we'll
// just open the first "nChannels" ports with offset.
for ( unsigned int i=0; i<stream_.nUserChannels[0]; i++ ) {
- result = 1;
+ result = false;
if ( ports[ stream_.channelOffset[0] + i ] )
- result = jack_connect( handle->client, jack_port_name( handle->ports[0][i] ), ports[ stream_.channelOffset[0] + i ] );
- if ( result ) {
- free( ports );
+ result = jackbridge_connect( handle->client, jackbridge_port_name( handle->ports[0][i] ), ports[ stream_.channelOffset[0] + i ] );
+ if ( ! result ) {
+ jackbridge_free( ports );
errorText_ = "RtApiJack::startStream(): error connecting output ports!";
goto unlock;
}
}
- free(ports);
+ jackbridge_free(ports);
}
if ( shouldAutoconnect_ && (stream_.mode == INPUT || stream_.mode == DUPLEX) ) {
- result = 1;
- ports = jack_get_ports( handle->client, handle->deviceName[1].c_str(), NULL, JackPortIsOutput );
+ result = false;
+ ports = jackbridge_get_ports( handle->client, handle->deviceName[1].c_str(), NULL, JackPortIsOutput );
if ( ports == NULL) {
errorText_ = "RtApiJack::startStream(): error determining available JACK output ports!";
goto unlock;
@@ -2485,16 +2481,16 @@ void RtApiJack :: startStream( void )
// Now make the port connections. See note above.
for ( unsigned int i=0; i<stream_.nUserChannels[1]; i++ ) {
- result = 1;
+ result = false;
if ( ports[ stream_.channelOffset[1] + i ] )
- result = jack_connect( handle->client, ports[ stream_.channelOffset[1] + i ], jack_port_name( handle->ports[1][i] ) );
- if ( result ) {
- free( ports );
+ result = jackbridge_connect( handle->client, ports[ stream_.channelOffset[1] + i ], jackbridge_port_name( handle->ports[1][i] ) );
+ if ( ! result ) {
+ jackbridge_free( ports );
errorText_ = "RtApiJack::startStream(): error connecting input ports!";
goto unlock;
}
}
- free(ports);
+ jackbridge_free(ports);
}
handle->drainCounter = 0;
@@ -2502,7 +2498,7 @@ void RtApiJack :: startStream( void )
stream_.state = STREAM_RUNNING;
unlock:
- if ( result == 0 ) return;
+ if ( result ) return;
error( RtAudioError::SYSTEM_ERROR );
}
@@ -2524,7 +2520,7 @@ void RtApiJack :: stopStream( void )
}
}
- jack_deactivate( handle->client );
+ jackbridge_deactivate( handle->client );
stream_.state = STREAM_STOPPED;
}
@@ -2546,7 +2542,7 @@ void RtApiJack :: abortStream( void )
// This function will be called by a spawned thread when the user
// callback function signals that the stream should be stopped or
// aborted. It is necessary to handle it this way because the
-// callbackEvent() function must return before the jack_deactivate()
+// callbackEvent() function must return before the jackbridge_deactivate()
// function will return.
static void *jackStopStream( void *ptr )
{
@@ -2555,6 +2551,8 @@ static void *jackStopStream( void *ptr )
object->stopStream();
pthread_exit( NULL );
+
+ return NULL;
}
bool RtApiJack :: callbackEvent( unsigned long nframes )
@@ -2621,7 +2619,7 @@ bool RtApiJack :: callbackEvent( unsigned long nframes )
if ( handle->drainCounter > 1 ) { // write zeros to the output stream
for ( unsigned int i=0; i<stream_.nDeviceChannels[0]; i++ ) {
- jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
+ jackbuffer = (jack_default_audio_sample_t *) jackbridge_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
memset( jackbuffer, 0, bufferBytes );
}
@@ -2631,13 +2629,13 @@ bool RtApiJack :: callbackEvent( unsigned long nframes )
convertBuffer( stream_.deviceBuffer, stream_.userBuffer[0], stream_.convertInfo[0] );
for ( unsigned int i=0; i<stream_.nDeviceChannels[0]; i++ ) {
- jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
+ jackbuffer = (jack_default_audio_sample_t *) jackbridge_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
memcpy( jackbuffer, &stream_.deviceBuffer[i*bufferBytes], bufferBytes );
}
}
else { // no buffer conversion
for ( unsigned int i=0; i<stream_.nUserChannels[0]; i++ ) {
- jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
+ jackbuffer = (jack_default_audio_sample_t *) jackbridge_port_get_buffer( handle->ports[0][i], (jack_nframes_t) nframes );
memcpy( jackbuffer, &stream_.userBuffer[0][i*bufferBytes], bufferBytes );
}
}
@@ -2653,14 +2651,14 @@ bool RtApiJack :: callbackEvent( unsigned long nframes )
if ( stream_.doConvertBuffer[1] ) {
for ( unsigned int i=0; i<stream_.nDeviceChannels[1]; i++ ) {
- jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer( handle->ports[1][i], (jack_nframes_t) nframes );
+ jackbuffer = (jack_default_audio_sample_t *) jackbridge_port_get_buffer( handle->ports[1][i], (jack_nframes_t) nframes );
memcpy( &stream_.deviceBuffer[i*bufferBytes], jackbuffer, bufferBytes );
}
convertBuffer( stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1] );
}
else { // no buffer conversion
for ( unsigned int i=0; i<stream_.nUserChannels[1]; i++ ) {
- jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer( handle->ports[1][i], (jack_nframes_t) nframes );
+ jackbuffer = (jack_default_audio_sample_t *) jackbridge_port_get_buffer( handle->ports[1][i], (jack_nframes_t) nframes );
memcpy( &stream_.userBuffer[1][i*bufferBytes], jackbuffer, bufferBytes );
}
}
@@ -2691,10 +2689,10 @@ bool RtApiJack :: callbackEvent( unsigned long nframes )
// on information found in
// http://www.cs.wustl.edu/~schmidt/win32-cv-1.html.
-#include "asiosys.h"
-#include "asio.h"
-#include "iasiothiscallresolver.h"
-#include "asiodrivers.h"
+#include "asio.cpp"
+#include "asiodrivers.cpp"
+#include "asiolist.cpp"
+#include "iasiothiscallresolver.cpp"
#include <cmath>
static AsioDrivers drivers;
@@ -8012,6 +8010,8 @@ static void *alsaCallbackHandler( void *ptr )
}
pthread_exit( NULL );
+
+ return NULL;
}
//******************** End of __LINUX_ALSA__ *********************//
@@ -8092,6 +8092,8 @@ static void *pulseaudio_callback( void * user )
}
pthread_exit( NULL );
+
+ return NULL;
}
void RtApiPulse::closeStream( void )
@@ -9446,6 +9448,8 @@ static void *ossCallbackHandler( void *ptr )
}
pthread_exit( NULL );
+
+ return NULL;
}
//******************** End of __LINUX_OSS__ *********************//
diff --git a/RtAudio.h b/RtAudio.h
index 34a2534..4c32cab 100644
--- a/RtAudio.h
+++ b/RtAudio.h
@@ -46,16 +46,7 @@
#define __RTAUDIO_H
#define RTAUDIO_VERSION "5.0.0"
-
-#if defined _WIN32 || defined __CYGWIN__
- #define RTAUDIO_DLL_PUBLIC
-#else
- #if __GNUC__ >= 4
- #define RTAUDIO_DLL_PUBLIC __attribute__( (visibility( "default" )) )
- #else
- #define RTAUDIO_DLL_PUBLIC
- #endif
-#endif
+#define RTAUDIO_DLL_PUBLIC
#include <string>
#include <vector>
@@ -416,7 +407,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio
~RtAudio();
//! Returns the audio API specifier for the current instance of RtAudio.
- RtAudio::Api getCurrentApi( void );
+ RtAudio::Api getCurrentApi( void ) const;
//! A public function that queries for the number of audio devices available.
/*!
@@ -687,7 +678,7 @@ public:
RtApi();
virtual ~RtApi();
- virtual RtAudio::Api getCurrentApi( void ) = 0;
+ virtual RtAudio::Api getCurrentApi( void ) const = 0;
virtual unsigned int getDeviceCount( void ) = 0;
virtual RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) = 0;
virtual unsigned int getDefaultInputDevice( void );
@@ -836,7 +827,7 @@ protected:
//
// **************************************************************** //
-inline RtAudio::Api RtAudio :: getCurrentApi( void ) { return rtapi_->getCurrentApi(); }
+inline RtAudio::Api RtAudio :: getCurrentApi( void ) const { return rtapi_->getCurrentApi(); }
inline unsigned int RtAudio :: getDeviceCount( void ) { return rtapi_->getDeviceCount(); }
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
inline unsigned int RtAudio :: getDefaultInputDevice( void ) { return rtapi_->getDefaultInputDevice(); }
@@ -865,7 +856,7 @@ public:
RtApiCore();
~RtApiCore();
- RtAudio::Api getCurrentApi( void ) { return RtAudio::MACOSX_CORE; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::MACOSX_CORE; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
unsigned int getDefaultOutputDevice( void );
@@ -903,7 +894,7 @@ public:
RtApiJack();
~RtApiJack();
- RtAudio::Api getCurrentApi( void ) { return RtAudio::UNIX_JACK; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::UNIX_JACK; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
void closeStream( void );
@@ -938,7 +929,7 @@ public:
RtApiAsio();
~RtApiAsio();
- RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_ASIO; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::WINDOWS_ASIO; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
void closeStream( void );
@@ -974,7 +965,7 @@ public:
RtApiDs();
~RtApiDs();
- RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_DS; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::WINDOWS_DS; }
unsigned int getDeviceCount( void );
unsigned int getDefaultOutputDevice( void );
unsigned int getDefaultInputDevice( void );
@@ -1015,7 +1006,7 @@ public:
RtApiWasapi();
~RtApiWasapi();
- RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_WASAPI; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::WINDOWS_WASAPI; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
unsigned int getDefaultOutputDevice( void );
@@ -1050,7 +1041,7 @@ public:
RtApiAlsa();
~RtApiAlsa();
- RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; }
+ RtAudio::Api getCurrentApi() const { return RtAudio::LINUX_ALSA; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
void closeStream( void );
@@ -1082,7 +1073,7 @@ class RtApiPulse: public RtApi
{
public:
~RtApiPulse();
- RtAudio::Api getCurrentApi() { return RtAudio::LINUX_PULSE; }
+ RtAudio::Api getCurrentApi() const { return RtAudio::LINUX_PULSE; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
void closeStream( void );
@@ -1116,7 +1107,7 @@ public:
RtApiOss();
~RtApiOss();
- RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; }
+ RtAudio::Api getCurrentApi() const { return RtAudio::LINUX_OSS; }
unsigned int getDeviceCount( void );
RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
void closeStream( void );
@@ -1147,7 +1138,7 @@ class RtApiDummy: public RtApi
public:
RtApiDummy() { errorText_ = "RtApiDummy: This class provides no functionality."; error( RtAudioError::WARNING ); }
- RtAudio::Api getCurrentApi( void ) { return RtAudio::RTAUDIO_DUMMY; }
+ RtAudio::Api getCurrentApi( void ) const { return RtAudio::RTAUDIO_DUMMY; }
unsigned int getDeviceCount( void ) { return 0; }
RtAudio::DeviceInfo getDeviceInfo( unsigned int /*device*/ ) { RtAudio::DeviceInfo info; return info; }
void closeStream( void ) {}
diff --git a/include/iasiodrv.h b/include/iasiodrv.h
index 64d2dbb..860675c 100644
--- a/include/iasiodrv.h
+++ b/include/iasiodrv.h
@@ -1,3 +1,4 @@
+#pragma once
#include "asiosys.h"
#include "asio.h"

Loading…
Cancel
Save