@@ -1,8 +1,9 @@ | |||||
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in | |||||
### RtAudio library Makefile | ### RtAudio library Makefile | ||||
RM = /bin/rm | RM = /bin/rm | ||||
OBJECTS = RtAudio.o | |||||
OBJECTS = RtAudio.o @objects@ | |||||
LIBRARY = librtaudio.a | LIBRARY = librtaudio.a | ||||
@@ -12,7 +13,7 @@ RANLIB = @RANLIB@ | |||||
DEFS = @debug@ | DEFS = @debug@ | ||||
DEFS += @audio_apis@ | DEFS += @audio_apis@ | ||||
CFLAGS = @cflags@ | |||||
CFLAGS = @cflags@ -Iinclude | |||||
CFLAGS += @warn@ | CFLAGS += @warn@ | ||||
all : $(LIBRARY) | all : $(LIBRARY) | ||||
@@ -27,6 +28,9 @@ $(LIBRARY): $(OBJECTS) | |||||
%.o : %.cpp | %.o : %.cpp | ||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@ | $(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@ | ||||
%.o : include/%.cpp | |||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@ | |||||
clean : | clean : | ||||
-rm -f $(LIBRARY) | -rm -f $(LIBRARY) | ||||
-rm -f $(OBJECTS) | -rm -f $(OBJECTS) | ||||
@@ -38,7 +38,7 @@ | |||||
*/ | */ | ||||
/************************************************************************/ | /************************************************************************/ | ||||
// RtAudio: Version 4.0 | |||||
// RtAudio: Version 4.0.3 | |||||
#include "RtAudio.h" | #include "RtAudio.h" | ||||
#include <iostream> | #include <iostream> | ||||
@@ -2291,10 +2291,10 @@ bool RtApiJack :: callbackEvent( unsigned long nframes ) | |||||
// on information found in | // on information found in | ||||
// http://www.cs.wustl.edu/~schmidt/win32-cv-1.html. | // http://www.cs.wustl.edu/~schmidt/win32-cv-1.html. | ||||
#include "asio/asiosys.h" | |||||
#include "asio/asio.h" | |||||
#include "asio/iasiothiscallresolver.h" | |||||
#include "asio/asiodrivers.h" | |||||
#include "asiosys.h" | |||||
#include "asio.h" | |||||
#include "iasiothiscallresolver.h" | |||||
#include "asiodrivers.h" | |||||
#include <cmath> | #include <cmath> | ||||
AsioDrivers drivers; | AsioDrivers drivers; | ||||
@@ -2366,11 +2366,14 @@ RtAudio::DeviceInfo RtApiAsio :: getDeviceInfo( unsigned int device ) | |||||
error( RtError::INVALID_USE ); | error( RtError::INVALID_USE ); | ||||
} | } | ||||
// Don't probe if a stream is already open. | |||||
// If a stream is already open, we cannot probe other devices. Thus, use the saved results. | |||||
if ( stream_.state != STREAM_CLOSED ) { | if ( stream_.state != STREAM_CLOSED ) { | ||||
errorText_ = "RtApiAsio::getDeviceInfo: unable to probe driver while a stream is open."; | |||||
error( RtError::WARNING ); | |||||
return info; | |||||
if ( device >= devices_.size() ) { | |||||
errorText_ = "RtApiAsio::getDeviceInfo: device ID was not present before stream was opened."; | |||||
error( RtError::WARNING ); | |||||
return info; | |||||
} | |||||
return devices_[ device ]; | |||||
} | } | ||||
char driverName[32]; | char driverName[32]; | ||||
@@ -2463,6 +2466,16 @@ void bufferSwitch( long index, ASIOBool processNow ) | |||||
object->callbackEvent( index ); | object->callbackEvent( index ); | ||||
} | } | ||||
void RtApiAsio :: saveDeviceInfo( void ) | |||||
{ | |||||
devices_.clear(); | |||||
unsigned int nDevices = getDeviceCount(); | |||||
devices_.resize( nDevices ); | |||||
for ( unsigned int i=0; i<nDevices; i++ ) | |||||
devices_[i] = getDeviceInfo( i ); | |||||
} | |||||
bool RtApiAsio :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, | bool RtApiAsio :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, | ||||
unsigned int firstChannel, unsigned int sampleRate, | unsigned int firstChannel, unsigned int sampleRate, | ||||
RtAudioFormat format, unsigned int *bufferSize, | RtAudioFormat format, unsigned int *bufferSize, | ||||
@@ -2482,6 +2495,12 @@ bool RtApiAsio :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne | |||||
return FAILURE; | return FAILURE; | ||||
} | } | ||||
// The getDeviceInfo() function will not work when a stream is open | |||||
// because ASIO does not allow multiple devices to run at the same | |||||
// time. Thus, we'll probe the system before opening a stream and | |||||
// save the results for use by getDeviceInfo(). | |||||
this->saveDeviceInfo(); | |||||
// Only load the driver once for duplex stream. | // Only load the driver once for duplex stream. | ||||
if ( mode != INPUT || stream_.mode != OUTPUT ) { | if ( mode != INPUT || stream_.mode != OUTPUT ) { | ||||
if ( !drivers.loadDriver( driverName ) ) { | if ( !drivers.loadDriver( driverName ) ) { | ||||
@@ -2528,15 +2547,27 @@ bool RtApiAsio :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne | |||||
return FAILURE; | return FAILURE; | ||||
} | } | ||||
// Set the sample rate. | |||||
result = ASIOSetSampleRate( (ASIOSampleRate) sampleRate ); | |||||
// Get the current sample rate | |||||
ASIOSampleRate currentRate; | |||||
result = ASIOGetSampleRate( ¤tRate ); | |||||
if ( result != ASE_OK ) { | if ( result != ASE_OK ) { | ||||
drivers.removeCurrentDriver(); | drivers.removeCurrentDriver(); | ||||
errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error setting sample rate (" << sampleRate << ")."; | |||||
errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error getting sample rate."; | |||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
return FAILURE; | return FAILURE; | ||||
} | } | ||||
// Set the sample rate only if necessary | |||||
if ( currentRate != sampleRate ) { | |||||
result = ASIOSetSampleRate( (ASIOSampleRate) sampleRate ); | |||||
if ( result != ASE_OK ) { | |||||
drivers.removeCurrentDriver(); | |||||
errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error setting sample rate (" << sampleRate << ")."; | |||||
errorText_ = errorStream_.str(); | |||||
return FAILURE; | |||||
} | |||||
} | |||||
// Determine the driver data type. | // Determine the driver data type. | ||||
ASIOChannelInfo channelInfo; | ASIOChannelInfo channelInfo; | ||||
channelInfo.channel = 0; | channelInfo.channel = 0; | ||||
@@ -2696,7 +2727,8 @@ bool RtApiAsio :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigne | |||||
stream_.doConvertBuffer[mode] = true; | stream_.doConvertBuffer[mode] = true; | ||||
// Allocate necessary internal buffers | // Allocate necessary internal buffers | ||||
unsigned long bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes( stream_.userFormat ); | |||||
unsigned long bufferBytes; | |||||
bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes( stream_.userFormat ); | |||||
stream_.userBuffer[mode] = (char *) calloc( bufferBytes, 1 ); | stream_.userBuffer[mode] = (char *) calloc( bufferBytes, 1 ); | ||||
if ( stream_.userBuffer[mode] == NULL ) { | if ( stream_.userBuffer[mode] == NULL ) { | ||||
errorText_ = "RtApiAsio::probeDeviceOpen: error allocating user buffer memory."; | errorText_ = "RtApiAsio::probeDeviceOpen: error allocating user buffer memory."; | ||||
@@ -2958,8 +2990,8 @@ bool RtApiAsio :: callbackEvent( long bufferIndex ) | |||||
handle->internalDrain = true; | handle->internalDrain = true; | ||||
} | } | ||||
unsigned int bufferBytes, i, j; | |||||
unsigned int nChannels = stream_.nDeviceChannels[0] + stream_.nDeviceChannels[1]; | |||||
unsigned int nChannels, bufferBytes, i, j; | |||||
nChannels = stream_.nDeviceChannels[0] + stream_.nDeviceChannels[1]; | |||||
if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) { | if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) { | ||||
bufferBytes = stream_.bufferSize * formatBytes( stream_.deviceFormat[0] ); | bufferBytes = stream_.bufferSize * formatBytes( stream_.deviceFormat[0] ); | ||||
@@ -3187,6 +3219,14 @@ static const char* getAsioErrorString( ASIOError result ) | |||||
#include <dsound.h> | #include <dsound.h> | ||||
#include <assert.h> | #include <assert.h> | ||||
#if defined(__MINGW32__) | |||||
// missing from latest mingw winapi | |||||
#define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ | |||||
#define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ | |||||
#define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ | |||||
#define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ | |||||
#endif | |||||
#define MINIMUM_DEVICE_BUFFER_SIZE 32768 | #define MINIMUM_DEVICE_BUFFER_SIZE 32768 | ||||
#ifdef _MSC_VER // if Microsoft Visual C++ | #ifdef _MSC_VER // if Microsoft Visual C++ | ||||
@@ -3223,7 +3263,7 @@ struct DsHandle { | |||||
HANDLE condition; | HANDLE condition; | ||||
DsHandle() | DsHandle() | ||||
:drainCounter(0), internalDrain(false) { id[0] = 0, id[1] = 0; xrun[0] = false; xrun[1] = false; bufferPointer[0] = 0; bufferPointer[1] = 0; } | |||||
:drainCounter(0), internalDrain(false) { id[0] = 0; id[1] = 0; buffer[0] = 0; buffer[1] = 0; xrun[0] = false; xrun[1] = false; bufferPointer[0] = 0; bufferPointer[1] = 0; } | |||||
}; | }; | ||||
/* | /* | ||||
@@ -3247,7 +3287,7 @@ RtApiDs::RtDsStatistics RtApiDs::getDsStatistics() | |||||
// Declarations for utility functions, callbacks, and structures | // Declarations for utility functions, callbacks, and structures | ||||
// specific to the DirectSound implementation. | // specific to the DirectSound implementation. | ||||
static bool CALLBACK deviceCountCallback( LPGUID lpguid, | |||||
static BOOL CALLBACK deviceQueryCallback( LPGUID lpguid, | |||||
LPCTSTR description, | LPCTSTR description, | ||||
LPCTSTR module, | LPCTSTR module, | ||||
LPVOID lpContext ); | LPVOID lpContext ); | ||||
@@ -3288,7 +3328,7 @@ unsigned int RtApiDs :: getDefaultInputDevice( void ) | |||||
{ | { | ||||
// Count output devices. | // Count output devices. | ||||
EnumInfo info; | EnumInfo info; | ||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &info ); | |||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &info ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDefaultOutputDevice: error (" << getErrorString( result ) << ") counting output devices!"; | errorStream_ << "RtApiDs::getDefaultOutputDevice: error (" << getErrorString( result ) << ") counting output devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3299,7 +3339,7 @@ unsigned int RtApiDs :: getDefaultInputDevice( void ) | |||||
// Now enumerate input devices until we find the id = NULL. | // Now enumerate input devices until we find the id = NULL. | ||||
info.isInput = true; | info.isInput = true; | ||||
info.getDefault = true; | info.getDefault = true; | ||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &info ); | |||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &info ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDefaultInputDevice: error (" << getErrorString( result ) << ") enumerating input devices!"; | errorStream_ << "RtApiDs::getDefaultInputDevice: error (" << getErrorString( result ) << ") enumerating input devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3316,7 +3356,7 @@ unsigned int RtApiDs :: getDefaultOutputDevice( void ) | |||||
// Enumerate output devices until we find the id = NULL. | // Enumerate output devices until we find the id = NULL. | ||||
EnumInfo info; | EnumInfo info; | ||||
info.getDefault = true; | info.getDefault = true; | ||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &info ); | |||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &info ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDefaultOutputDevice: error (" << getErrorString( result ) << ") enumerating output devices!"; | errorStream_ << "RtApiDs::getDefaultOutputDevice: error (" << getErrorString( result ) << ") enumerating output devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3332,7 +3372,7 @@ unsigned int RtApiDs :: getDeviceCount( void ) | |||||
{ | { | ||||
// Count DirectSound devices. | // Count DirectSound devices. | ||||
EnumInfo info; | EnumInfo info; | ||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &info ); | |||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &info ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString( result ) << ") enumerating output devices!"; | errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString( result ) << ") enumerating output devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3341,7 +3381,7 @@ unsigned int RtApiDs :: getDeviceCount( void ) | |||||
// Count DirectSoundCapture devices. | // Count DirectSoundCapture devices. | ||||
info.isInput = true; | info.isInput = true; | ||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &info ); | |||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &info ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString( result ) << ") enumerating input devices!"; | errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString( result ) << ") enumerating input devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3366,7 +3406,7 @@ RtAudio::DeviceInfo RtApiDs :: getDeviceInfo( unsigned int device ) | |||||
EnumInfo dsinfo; | EnumInfo dsinfo; | ||||
dsinfo.findIndex = true; | dsinfo.findIndex = true; | ||||
dsinfo.index = device; | dsinfo.index = device; | ||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &dsinfo ); | |||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &dsinfo ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString( result ) << ") enumerating output devices!"; | errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString( result ) << ") enumerating output devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3424,7 +3464,7 @@ RtAudio::DeviceInfo RtApiDs :: getDeviceInfo( unsigned int device ) | |||||
probeInput: | probeInput: | ||||
dsinfo.isInput = true; | dsinfo.isInput = true; | ||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &dsinfo ); | |||||
result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &dsinfo ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString( result ) << ") enumerating input devices!"; | errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString( result ) << ") enumerating input devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3534,7 +3574,7 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned | |||||
EnumInfo dsinfo; | EnumInfo dsinfo; | ||||
dsinfo.findIndex = true; | dsinfo.findIndex = true; | ||||
dsinfo.index = device; | dsinfo.index = device; | ||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &dsinfo ); | |||||
HRESULT result = DirectSoundEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &dsinfo ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString( result ) << ") enumerating output devices!"; | errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString( result ) << ") enumerating output devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3550,7 +3590,7 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned | |||||
} | } | ||||
else { // mode == INPUT | else { // mode == INPUT | ||||
dsinfo.isInput = true; | dsinfo.isInput = true; | ||||
HRESULT result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceCountCallback, &dsinfo ); | |||||
HRESULT result = DirectSoundCaptureEnumerate( (LPDSENUMCALLBACK) deviceQueryCallback, &dsinfo ); | |||||
if ( FAILED( result ) ) { | if ( FAILED( result ) ) { | ||||
errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString( result ) << ") enumerating input devices!"; | errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString( result ) << ") enumerating input devices!"; | ||||
errorText_ = errorStream_.str(); | errorText_ = errorStream_.str(); | ||||
@@ -3858,6 +3898,7 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned | |||||
} | } | ||||
// Set various stream parameters | // Set various stream parameters | ||||
DsHandle *handle = 0; | |||||
stream_.nDeviceChannels[mode] = channels + firstChannel; | stream_.nDeviceChannels[mode] = channels + firstChannel; | ||||
stream_.nUserChannels[mode] = channels; | stream_.nUserChannels[mode] = channels; | ||||
stream_.bufferSize = *bufferSize; | stream_.bufferSize = *bufferSize; | ||||
@@ -3907,7 +3948,6 @@ bool RtApiDs :: probeDeviceOpen( unsigned int device, StreamMode mode, unsigned | |||||
} | } | ||||
// Allocate our DsHandle structures for the stream. | // Allocate our DsHandle structures for the stream. | ||||
DsHandle *handle; | |||||
if ( stream_.apiHandle == 0 ) { | if ( stream_.apiHandle == 0 ) { | ||||
try { | try { | ||||
handle = new DsHandle; | handle = new DsHandle; | ||||
@@ -4078,7 +4118,7 @@ void RtApiDs :: startStream() | |||||
duplexPrerollBytes = (int) ( 0.5 * stream_.sampleRate * formatBytes( stream_.deviceFormat[1] ) * stream_.nDeviceChannels[1] ); | duplexPrerollBytes = (int) ( 0.5 * stream_.sampleRate * formatBytes( stream_.deviceFormat[1] ) * stream_.nDeviceChannels[1] ); | ||||
} | } | ||||
HRESULT result; | |||||
HRESULT result = 0; | |||||
if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) { | if ( stream_.mode == OUTPUT || stream_.mode == DUPLEX ) { | ||||
//statistics.outputFrameSize = formatBytes( stream_.deviceFormat[0] ) * stream_.nDeviceChannels[0]; | //statistics.outputFrameSize = formatBytes( stream_.deviceFormat[0] ) * stream_.nDeviceChannels[0]; | ||||
@@ -4124,7 +4164,7 @@ void RtApiDs :: stopStream() | |||||
MUTEX_LOCK( &stream_.mutex ); | MUTEX_LOCK( &stream_.mutex ); | ||||
HRESULT result; | |||||
HRESULT result = 0; | |||||
LPVOID audioPtr; | LPVOID audioPtr; | ||||
DWORD dataLen; | DWORD dataLen; | ||||
DsHandle *handle = (DsHandle *) stream_.apiHandle; | DsHandle *handle = (DsHandle *) stream_.apiHandle; | ||||
@@ -4665,7 +4705,7 @@ std::string convertTChar( LPCTSTR name ) | |||||
return s; | return s; | ||||
} | } | ||||
static bool CALLBACK deviceCountCallback( LPGUID lpguid, | |||||
static BOOL CALLBACK deviceQueryCallback( LPGUID lpguid, | |||||
LPCTSTR description, | LPCTSTR description, | ||||
LPCTSTR module, | LPCTSTR module, | ||||
LPVOID lpContext ) | LPVOID lpContext ) | ||||
@@ -4678,7 +4718,7 @@ static bool CALLBACK deviceCountCallback( LPGUID lpguid, | |||||
LPDIRECTSOUNDCAPTURE object; | LPDIRECTSOUNDCAPTURE object; | ||||
hr = DirectSoundCaptureCreate( lpguid, &object, NULL ); | hr = DirectSoundCaptureCreate( lpguid, &object, NULL ); | ||||
if ( hr != DS_OK ) return true; | |||||
if ( hr != DS_OK ) return TRUE; | |||||
caps.dwSize = sizeof(caps); | caps.dwSize = sizeof(caps); | ||||
hr = object->GetCaps( &caps ); | hr = object->GetCaps( &caps ); | ||||
@@ -4692,7 +4732,7 @@ static bool CALLBACK deviceCountCallback( LPGUID lpguid, | |||||
DSCAPS caps; | DSCAPS caps; | ||||
LPDIRECTSOUND object; | LPDIRECTSOUND object; | ||||
hr = DirectSoundCreate( lpguid, &object, NULL ); | hr = DirectSoundCreate( lpguid, &object, NULL ); | ||||
if ( hr != DS_OK ) return true; | |||||
if ( hr != DS_OK ) return TRUE; | |||||
caps.dwSize = sizeof(caps); | caps.dwSize = sizeof(caps); | ||||
hr = object->GetCaps( &caps ); | hr = object->GetCaps( &caps ); | ||||
@@ -4703,20 +4743,20 @@ static bool CALLBACK deviceCountCallback( LPGUID lpguid, | |||||
object->Release(); | object->Release(); | ||||
} | } | ||||
if ( info->getDefault && lpguid == NULL ) return false; | |||||
if ( info->getDefault && lpguid == NULL ) return FALSE; | |||||
if ( info->findIndex && info->counter > info->index ) { | if ( info->findIndex && info->counter > info->index ) { | ||||
info->id = lpguid; | info->id = lpguid; | ||||
info->name = convertTChar( description ); | info->name = convertTChar( description ); | ||||
return false; | |||||
return FALSE; | |||||
} | } | ||||
return true; | |||||
return TRUE; | |||||
} | } | ||||
static char* getErrorString( int code ) | static char* getErrorString( int code ) | ||||
{ | { | ||||
switch (code) { | |||||
switch ( code ) { | |||||
case DSERR_ALLOCATED: | case DSERR_ALLOCATED: | ||||
return "Already allocated"; | return "Already allocated"; | ||||
@@ -5930,7 +5970,7 @@ extern "C" void *alsaCallbackHandler( void *ptr ) | |||||
#include <sys/ioctl.h> | #include <sys/ioctl.h> | ||||
#include <unistd.h> | #include <unistd.h> | ||||
#include <fcntl.h> | #include <fcntl.h> | ||||
#include "oss/soundcard.h" | |||||
#include "soundcard.h" | |||||
#include <errno.h> | #include <errno.h> | ||||
#include <math.h> | #include <math.h> | ||||
@@ -42,7 +42,7 @@ | |||||
\file RtAudio.h | \file RtAudio.h | ||||
*/ | */ | ||||
// RtAudio: Version 4.0 | |||||
// RtAudio: Version 4.0.3 | |||||
#ifndef __RTAUDIO_H | #ifndef __RTAUDIO_H | ||||
#define __RTAUDIO_H | #define __RTAUDIO_H | ||||
@@ -679,20 +679,20 @@ protected: | |||||
// | // | ||||
// **************************************************************** // | // **************************************************************** // | ||||
inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }; | |||||
inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }; | |||||
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }; | |||||
inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }; | |||||
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }; | |||||
inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }; | |||||
inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }; | |||||
inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); }; | |||||
inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }; | |||||
inline bool RtAudio :: isStreamOpen( void ) throw() { return rtapi_->isStreamOpen(); }; | |||||
inline bool RtAudio :: isStreamRunning( void ) throw() { return rtapi_->isStreamRunning(); }; | |||||
inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }; | |||||
inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }; | |||||
inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }; | |||||
inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); } | |||||
inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); } | |||||
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); } | |||||
inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); } | |||||
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); } | |||||
inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); } | |||||
inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); } | |||||
inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); } | |||||
inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); } | |||||
inline bool RtAudio :: isStreamOpen( void ) throw() { return rtapi_->isStreamOpen(); } | |||||
inline bool RtAudio :: isStreamRunning( void ) throw() { return rtapi_->isStreamRunning(); } | |||||
inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); } | |||||
inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); } | |||||
inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); } | |||||
// RtApi Subclass prototypes. | // RtApi Subclass prototypes. | ||||
@@ -794,6 +794,8 @@ public: | |||||
private: | private: | ||||
std::vector<RtAudio::DeviceInfo> devices_; | |||||
void saveDeviceInfo( void ); | |||||
bool coInitialized_; | bool coInitialized_; | ||||
bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, | bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, | ||||
unsigned int firstChannel, unsigned int sampleRate, | unsigned int firstChannel, unsigned int sampleRate, | ||||
@@ -15,11 +15,6 @@ if [[ $AR = "no" ]] ; then | |||||
AC_MSG_ERROR("Could not find ar - needed to create a library"); | AC_MSG_ERROR("Could not find ar - needed to create a library"); | ||||
fi | fi | ||||
# Checks for libraries. | |||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!)) | |||||
# Checks for header files. | # Checks for header files. | ||||
AC_HEADER_STDC | AC_HEADER_STDC | ||||
AC_CHECK_HEADERS(sys/ioctl.h unistd.h) | AC_CHECK_HEADERS(sys/ioctl.h unistd.h) | ||||
@@ -51,6 +46,7 @@ case $host in | |||||
AC_MSG_RESULT(using OSS) | AC_MSG_RESULT(using OSS) | ||||
AC_SUBST( audio_apis, [-D__LINUX_OSS__] ) | AC_SUBST( audio_apis, [-D__LINUX_OSS__] ) | ||||
cflags=$cflags" -lossaudio" | cflags=$cflags" -lossaudio" | ||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!)) | |||||
;; | ;; | ||||
*-*-linux*) | *-*-linux*) | ||||
@@ -64,7 +60,7 @@ case $host in | |||||
audio_apis="-D__UNIX_JACK__" | audio_apis="-D__UNIX_JACK__" | ||||
fi | fi | ||||
# Look for Alsa flag | |||||
# Look for ALSA flag | |||||
AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_ALSA__] ) AC_MSG_RESULT(using ALSA)], ) | AC_ARG_WITH(alsa, [ --with-alsa = choose native ALSA API support (linux only)], [AC_SUBST( sound_api, [-D__LINUX_ALSA__] ) AC_MSG_RESULT(using ALSA)], ) | ||||
if [test $sound_api = -D__LINUX_ALSA__;] then | if [test $sound_api = -D__LINUX_ALSA__;] then | ||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!)) | AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!)) | ||||
@@ -77,18 +73,14 @@ case $host in | |||||
audio_apis="-D__LINUX_OSS__ $audio_apis" | audio_apis="-D__LINUX_OSS__ $audio_apis" | ||||
fi | fi | ||||
# If no audio api flags specified, use OSS | |||||
# If no audio api flags specified, use ALSA | |||||
if [test $sound_api = _NO_API_;] then | if [test $sound_api = _NO_API_;] then | ||||
AC_SUBST( sound_api, [-D__LINUX_OSS__] ) | |||||
AC_MSG_RESULT(using OSS) | |||||
AC_SUBST( audio_apis, [-D__LINUX_OSS__] ) | |||||
AC_MSG_RESULT(using ALSA) | |||||
AC_SUBST( audio_apis, [-D__LINUX_ALSA__] ) | |||||
AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!)) | |||||
fi | fi | ||||
;; | |||||
*-sgi*) | |||||
AC_SUBST( audio_apis, ["-D__IRIX_AL__ -LANG:std -w"] ) | |||||
AC_MSG_RESULT(using IRIX AL) | |||||
AC_CHECK_LIB(audio, alOpenPort, , AC_MSG_ERROR(IRIX audio support requires the audio library!) ) | |||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!)) | |||||
;; | ;; | ||||
*-apple*) | *-apple*) | ||||
@@ -116,6 +108,34 @@ case $host in | |||||
[AC_MSG_ERROR(CoreAudio header files not found!)] ) | [AC_MSG_ERROR(CoreAudio header files not found!)] ) | ||||
AC_SUBST( frameworks, ["-framework CoreAudio -framework CoreFoundation"] ) | AC_SUBST( frameworks, ["-framework CoreAudio -framework CoreFoundation"] ) | ||||
fi | fi | ||||
AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR(RtAudio requires the pthread library!)) | |||||
;; | |||||
*-mingw32*) | |||||
AC_SUBST( sound_api, [_NO_API_] ) | |||||
AC_ARG_WITH(asio, [ --with-asio = choose ASIO API support (windoze only)], [AC_SUBST( sound_api, [-D__WINDOWS_ASIO__] ) AC_MSG_RESULT(using ASIO)], ) | |||||
if [test $sound_api = -D__WINDOWS_ASIO__;] then | |||||
audio_apis="-D__WINDOWS_ASIO__" | |||||
AC_SUBST( objects, ["asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o"] ) | |||||
fi | |||||
# Look for DirectSound flag | |||||
AC_ARG_WITH(ds, [ --with-ds = choose DirectSound API support (windoze only)], [AC_SUBST( sound_api, [-D__WINDOWS_DS__] ) AC_MSG_RESULT(using DirectSound)], ) | |||||
if test $sound_api = -D__WINDOWS_DS__; then | |||||
audio_apis="-D__WINDOWS_DS__ $audio_apis" | |||||
LIBS="-ldsound -lwinmm $LIBS" | |||||
fi | |||||
# If no audio api flags specified, use DirectSound | |||||
if [test $sound_api = _NO_API_;] then | |||||
AC_SUBST( sound_api, [-D__WINDOWS_DS__] ) | |||||
AC_MSG_RESULT(using DirectSound) | |||||
audio_apis="-D__WINDOWS_DS__" | |||||
LIBS="-ldsound -lwinmm $LIBS" | |||||
fi | |||||
LIBS="-lole32 $LIBS" | |||||
;; | ;; | ||||
*) | *) | ||||
@@ -23,7 +23,7 @@ PROJECT_NAME = RtAudio | |||||
# This could be handy for archiving the generated documentation or | # This could be handy for archiving the generated documentation or | ||||
# if some version control system is used. | # if some version control system is used. | ||||
PROJECT_NUMBER = 4.0 | |||||
PROJECT_NUMBER = 4.0.3 | |||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | ||||
# base path where the generated documentation will be put. | # base path where the generated documentation will be put. | ||||
@@ -22,12 +22,16 @@ The RtAudio Jack support can be compiled on Macintosh OS-X systems, as well as i | |||||
\section windowsds Windows (DirectSound): | \section windowsds Windows (DirectSound): | ||||
The \c configure script provides support for the MinGW compiler. DirectSound support is specified with the "--with-ds" flag. | |||||
In order to compile RtAudio under Windows for the DirectSound API, you must have the header and source files for DirectSound version 5.0 or higher. As far as I know, there is no DirectSoundCapture support for Windows NT. Audio output latency with DirectSound can be reasonably good, especially since RtAudio version 3.0.2. Input audio latency still tends to be bad but better since version 3.0.2. RtAudio was originally developed with Visual C++ version 6.0 but has been tested with .NET. | In order to compile RtAudio under Windows for the DirectSound API, you must have the header and source files for DirectSound version 5.0 or higher. As far as I know, there is no DirectSoundCapture support for Windows NT. Audio output latency with DirectSound can be reasonably good, especially since RtAudio version 3.0.2. Input audio latency still tends to be bad but better since version 3.0.2. RtAudio was originally developed with Visual C++ version 6.0 but has been tested with .NET. | ||||
The DirectSound version of RtAudio can be compiled with or without the UNICODE preprocessor definition. | The DirectSound version of RtAudio can be compiled with or without the UNICODE preprocessor definition. | ||||
\section windowsasio Windows (ASIO): | \section windowsasio Windows (ASIO): | ||||
ASIO support using MinGW and the \c configure script is specified with the "--with-asio" flag. | |||||
The Steinberg ASIO audio API allows only a single device driver to be loaded and accessed at a time. ASIO device drivers must be supplied by audio hardware manufacturers, though ASIO emulation is possible on top of systems with DirectSound drivers. The <I>numberOfBuffers</I> parameter to the RtAudio::openStream() function has no affect in this implementation. | The Steinberg ASIO audio API allows only a single device driver to be loaded and accessed at a time. ASIO device drivers must be supplied by audio hardware manufacturers, though ASIO emulation is possible on top of systems with DirectSound drivers. The <I>numberOfBuffers</I> parameter to the RtAudio::openStream() function has no affect in this implementation. | ||||
A number of ASIO source and header files are required for use with RtAudio. Specifically, an RtAudio project must include the following files: <TT>asio.h,cpp; asiodrivers.h,cpp; asiolist.h,cpp; asiodrvr.h; asiosys.h; ginclude.h; iasiodrv.h; iasiothiscallresolver.h,cpp</TT>. The Visual C++ projects found in <TT>/tests/Windows/</TT> compile both ASIO and DirectSound support. | A number of ASIO source and header files are required for use with RtAudio. Specifically, an RtAudio project must include the following files: <TT>asio.h,cpp; asiodrivers.h,cpp; asiolist.h,cpp; asiodrvr.h; asiosys.h; ginclude.h; iasiodrv.h; iasiothiscallresolver.h,cpp</TT>. The Visual C++ projects found in <TT>/tests/Windows/</TT> compile both ASIO and DirectSound support. | ||||
@@ -2,7 +2,7 @@ | |||||
\section debug Debugging | \section debug Debugging | ||||
If you are having problems getting RtAudio to run on your system, make sure to pass a value of \e true to the RtAudio::showWarnings() function (this is the default setting). A variety of warning messages will be displayed which may help in determining the problem. Also, try using the programs included in the <tt>tests</tt> directory. The program <tt>probe</tt> displays the queried capabilities of all hardware devices found for all APIs compiled. When using the ALSA API, further information can be displayed by defining the preprocessor definition __RTAUDIO_DEBUG__. | |||||
If you are having problems getting RtAudio to run on your system, make sure to pass a value of \e true to the RtAudio::showWarnings() function (this is the default setting). A variety of warning messages will be displayed which may help in determining the problem. Also, try using the programs included in the <tt>tests</tt> directory. The program <tt>audioprobe</tt> displays the queried capabilities of all hardware devices found for all APIs compiled. When using the ALSA API, further information can be displayed by defining the preprocessor definition __RTAUDIO_DEBUG__. | |||||
\section compile Compiling | \section compile Compiling | ||||
@@ -24,7 +24,7 @@ In order to compile RtAudio for a specific OS and audio API, it is necessary to | |||||
<TD>RtApiAlsa</TD> | <TD>RtApiAlsa</TD> | ||||
<TD>__LINUX_ALSA__</TD> | <TD>__LINUX_ALSA__</TD> | ||||
<TD><TT>asound, pthread</TT></TD> | <TD><TT>asound, pthread</TT></TD> | ||||
<TD><TT>g++ -Wall -D__LINUX_ALSA__ -o probe probe.cpp RtAudio.cpp -lasound -lpthread</TT></TD> | |||||
<TD><TT>g++ -Wall -D__LINUX_ALSA__ -o audioprobe audioprobe.cpp RtAudio.cpp -lasound -lpthread</TT></TD> | |||||
</TR> | </TR> | ||||
<TR> | <TR> | ||||
<TD>Linux</TD> | <TD>Linux</TD> | ||||
@@ -32,7 +32,7 @@ In order to compile RtAudio for a specific OS and audio API, it is necessary to | |||||
<TD>RtApiOss</TD> | <TD>RtApiOss</TD> | ||||
<TD>__LINUX_OSS__</TD> | <TD>__LINUX_OSS__</TD> | ||||
<TD><TT>pthread</TT></TD> | <TD><TT>pthread</TT></TD> | ||||
<TD><TT>g++ -Wall -D__LINUX_OSS__ -o probe probe.cpp RtAudio.cpp -lpthread</TT></TD> | |||||
<TD><TT>g++ -Wall -D__LINUX_OSS__ -o audioprobe audioprobe.cpp RtAudio.cpp -lpthread</TT></TD> | |||||
</TR> | </TR> | ||||
<TR> | <TR> | ||||
<TD>Linux or Macintosh OS-X</TD> | <TD>Linux or Macintosh OS-X</TD> | ||||
@@ -40,7 +40,7 @@ In order to compile RtAudio for a specific OS and audio API, it is necessary to | |||||
<TD>RtApiJack</TD> | <TD>RtApiJack</TD> | ||||
<TD>__UNIX_JACK__</TD> | <TD>__UNIX_JACK__</TD> | ||||
<TD><TT>jack, pthread</TT></TD> | <TD><TT>jack, pthread</TT></TD> | ||||
<TD><TT>g++ -Wall -D__UNIX_JACK__ -o probe probe.cpp RtAudio.cpp `pkg-config --cflags --libs jack` -lpthread</TT></TD> | |||||
<TD><TT>g++ -Wall -D__UNIX_JACK__ -o audioprobe audioprobe.cpp RtAudio.cpp `pkg-config --cflags --libs jack` -lpthread</TT></TD> | |||||
</TR> | </TR> | ||||
<TR> | <TR> | ||||
@@ -49,7 +49,7 @@ In order to compile RtAudio for a specific OS and audio API, it is necessary to | |||||
<TD>RtApiCore</TD> | <TD>RtApiCore</TD> | ||||
<TD>__MACOSX_CORE__</TD> | <TD>__MACOSX_CORE__</TD> | ||||
<TD><TT>pthread, CoreAudio</TT></TD> | <TD><TT>pthread, CoreAudio</TT></TD> | ||||
<TD><TT>g++ -Wall -D__MACOSX_CORE__ -o probe probe.cpp RtAudio.cpp -framework CoreAudio -lpthread</TT></TD> | |||||
<TD><TT>g++ -Wall -D__MACOSX_CORE__ -o audioprobe audioprobe.cpp RtAudio.cpp -framework CoreAudio -lpthread</TT></TD> | |||||
</TR> | </TR> | ||||
<TR> | <TR> | ||||
<TD>Windows</TD> | <TD>Windows</TD> | ||||
@@ -70,7 +70,7 @@ In order to compile RtAudio for a specific OS and audio API, it is necessary to | |||||
</TABLE> | </TABLE> | ||||
<P> | <P> | ||||
The example compiler statements above could be used to compile the <TT>probe.cpp</TT> example file, assuming that <TT>probe.cpp</TT>, <TT>RtAudio.h</TT>, <tt>RtError.h</tt>, and <TT>RtAudio.cpp</TT> all exist in the same directory. | |||||
The example compiler statements above could be used to compile the <TT>audioprobe.cpp</TT> example file, assuming that <TT>audioprobe.cpp</TT>, <TT>RtAudio.h</TT>, <tt>RtError.h</tt>, and <TT>RtAudio.cpp</TT> all exist in the same directory. | |||||
*/ | */ |
@@ -4,7 +4,7 @@ A programmer may wish to query the available audio device capabilities before de | |||||
\code | \code | ||||
// probe.cpp | |||||
// audioprobe.cpp | |||||
#include <iostream> | #include <iostream> | ||||
#include "RtAudio.h" | #include "RtAudio.h" | ||||
@@ -17,7 +17,7 @@ RtAudio incorporates the concept of audio streams, which represent audio output | |||||
\section whatsnew What's New (Version 4.0) | \section whatsnew What's New (Version 4.0) | ||||
RtAudio V4 represents a significant rewrite of the code and includes a number of API and functionality changes form previous versions. A partial list of the changes includes: | |||||
RtAudio V4 represents a significant rewrite of the code and includes a number of API and functionality changes from previous versions. A partial list of the changes includes: | |||||
- new support for non-interleaved user data | - new support for non-interleaved user data | ||||
- additional input/output parameter specifications, including channel offset | - additional input/output parameter specifications, including channel offset | ||||
- new support for dynamic connection of devices | - new support for dynamic connection of devices | ||||
@@ -28,11 +28,11 @@ RtAudio V4 represents a significant rewrite of the code and includes a number of | |||||
- discontinued support of blocking functionality | - discontinued support of blocking functionality | ||||
- discontinued support of SGI | - discontinued support of SGI | ||||
Devices are now re-enumerated every time the RtAudio::getDeviceCount(), RtAudio::getDeviceInfo(), and RtAudio::openStream() functions are called. This allows for the proper identification of hot-pluggable (USB, Firewire, ...) devices while a given RtAudio instance exists. | |||||
Devices are now re-enumerated every time the RtAudio::getDeviceCount(), RtAudio::getDeviceInfo(), and RtAudio::openStream() functions are called. This allows for the proper identification of hot-pluggable (USB, Firewire, ...) devices that are connected after an RtAudio instance is created. | |||||
\section download Download | \section download Download | ||||
Latest Release (21 August 2007): <A href="http://music.mcgill.ca/~gary/rtaudio/release/rtaudio-4.0.2.tar.gz">Version 4.0.2</A> | |||||
Latest Release (7 December 2007): <A href="http://music.mcgill.ca/~gary/rtaudio/release/rtaudio-4.0.3.tar.gz">Version 4.0.3</A> | |||||
\section documentation Documentation Links | \section documentation Documentation Links | ||||
@@ -2,6 +2,12 @@ RtAudio - a set of C++ classes that provide a common API for realtime audio inpu | |||||
By Gary P. Scavone, 2001-2007. | By Gary P. Scavone, 2001-2007. | ||||
v4.0.3: (7 December 2007) | |||||
- added support for MinGW compiler to configure script | |||||
- a few MinGW-related changes to RtAudio.cpp | |||||
- renamed test program probe.cpp to audioprobe.cpp | |||||
- moved various header files into single "include" directory and updated VC++ project files | |||||
v4.0.2: (21 August 2007) | v4.0.2: (21 August 2007) | ||||
- fix to RtError::WARNING typo in RtAudio.h (RtApiDummy) | - fix to RtError::WARNING typo in RtAudio.h (RtApiDummy) | ||||
- removed "+1"s in RtApiCore c++ append when getting device name | - removed "+1"s in RtApiCore c++ append when getting device name | ||||
@@ -2,7 +2,7 @@ RtAudio - a set of C++ classes which provide a common API for realtime audio inp | |||||
By Gary P. Scavone, 2001-2007. | By Gary P. Scavone, 2001-2007. | ||||
To configure and compile (on Unix systems): | |||||
To configure and compile (on Unix systems and MinGW): | |||||
1. Unpack the RtAudio distribution (tar -xzf rtaudio-x.x.tar.gz). | 1. Unpack the RtAudio distribution (tar -xzf rtaudio-x.x.tar.gz). | ||||
2. From within the directory containing this file, run configure: | 2. From within the directory containing this file, run configure: | ||||
@@ -18,6 +18,8 @@ A few options can be passed to configure, including: | |||||
--with-oss = choose OSS API support (linux only) | --with-oss = choose OSS API support (linux only) | ||||
--with-jack = choose JACK server support (linux or Macintosh OS-X) | --with-jack = choose JACK server support (linux or Macintosh OS-X) | ||||
--with-core = choose CoreAudio API support (Macintosh OS-X only) | --with-core = choose CoreAudio API support (Macintosh OS-X only) | ||||
--with-asio = choose ASIO API support (windows only) | |||||
--with-ds = choose DirectSound API support (windows only) | |||||
Typing "./configure --help" will display all the available options. Note that you can provide more than one "--with-" flag to the configure script to enable multiple API support. | Typing "./configure --help" will display all the available options. Note that you can provide more than one "--with-" flag to the configure script to enable multiple API support. | ||||
@@ -25,7 +27,6 @@ If you wish to use a different compiler than that selected by configure, specify | |||||
./configure CXX=CC | ./configure CXX=CC | ||||
For Windows Users: | For Windows Users: | ||||
Visual C++ 6.0 project files are included for the test programs in the /tests/Windows/ directory. These projects compile API support for both ASIO and DirectSound. Version 4.0 of RtAudio was tested with the .net compiler and it will not compile in Visual C++ 6.0 because of its non-conformance to modern C++ standards. | Visual C++ 6.0 project files are included for the test programs in the /tests/Windows/ directory. These projects compile API support for both ASIO and DirectSound. Version 4.0 of RtAudio was tested with the .net compiler and it will not compile in Visual C++ 6.0 because of its non-conformance to modern C++ standards. |
@@ -1,50 +1,54 @@ | |||||
### RtAudio tests Makefile - for various flavors of unix | |||||
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in | |||||
### RtAudio tests Makefile - for various flavors of unix and MinGW | |||||
PROGRAMS = probe playsaw playraw record duplex testall | |||||
PROGRAMS = audioprobe playsaw playraw record duplex testall | |||||
RM = /bin/rm | RM = /bin/rm | ||||
SRC_PATH = ../ | |||||
INCLUDE = ../ | |||||
SRC_PATH = .. | |||||
INCLUDE = .. | |||||
OBJECT_PATH = @object_path@ | OBJECT_PATH = @object_path@ | ||||
vpath %.o $(OBJECT_PATH) | vpath %.o $(OBJECT_PATH) | ||||
OBJECTS = RtAudio.o | |||||
OBJECTS = RtAudio.o @objects@ | |||||
CC = @CXX@ | CC = @CXX@ | ||||
DEFS = @debug@ | DEFS = @debug@ | ||||
DEFS += @audio_apis@ | DEFS += @audio_apis@ | ||||
CFLAGS = @cflags@ | CFLAGS = @cflags@ | ||||
CFLAGS += @warn@ -I$(INCLUDE) | |||||
CFLAGS += @warn@ -I$(INCLUDE) -I../include | |||||
LIBRARY = @LIBS@ | LIBRARY = @LIBS@ | ||||
LIBRARY += @frameworks@ | LIBRARY += @frameworks@ | ||||
%.o : $(SRC_PATH)/%.cpp | %.o : $(SRC_PATH)/%.cpp | ||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@ | $(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@ | ||||
%.o : ../include/%.cpp | |||||
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@ | |||||
all : $(PROGRAMS) | all : $(PROGRAMS) | ||||
probe : probe.cpp $(OBJECTS) | |||||
$(CC) $(CFLAGS) $(DEFS) -o probe probe.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
audioprobe : audioprobe.cpp $(OBJECTS) | |||||
$(CC) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
playsaw : playsaw.cpp $(OBJECTS) | playsaw : playsaw.cpp $(OBJECTS) | ||||
$(CC) $(CFLAGS) $(DEFS) -o playsaw playsaw.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
$(CC) $(CFLAGS) $(DEFS) -o playsaw playsaw.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
playraw : playraw.cpp $(OBJECTS) | playraw : playraw.cpp $(OBJECTS) | ||||
$(CC) $(CFLAGS) $(DEFS) -o playraw playraw.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
$(CC) $(CFLAGS) $(DEFS) -o playraw playraw.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
record : record.cpp $(OBJECTS) | record : record.cpp $(OBJECTS) | ||||
$(CC) $(CFLAGS) $(DEFS) -o record record.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
$(CC) $(CFLAGS) $(DEFS) -o record record.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
duplex : duplex.cpp $(OBJECTS) | duplex : duplex.cpp $(OBJECTS) | ||||
$(CC) $(CFLAGS) $(DEFS) -o duplex duplex.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
$(CC) $(CFLAGS) $(DEFS) -o duplex duplex.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
testall : testall.cpp $(OBJECTS) | testall : testall.cpp $(OBJECTS) | ||||
$(CC) $(CFLAGS) $(DEFS) -o testall testall.cpp $(OBJECT_PATH)/RtAudio.o $(LIBRARY) | |||||
$(CC) $(CFLAGS) $(DEFS) -o testall testall.cpp $(OBJECT_PATH)/*.o $(LIBRARY) | |||||
clean : | clean : | ||||
-rm $(OBJECT_PATH)/*.o | -rm $(OBJECT_PATH)/*.o | ||||
-rm $(PROGRAMS) | -rm $(PROGRAMS) | ||||
-rm -f *.raw *~ | |||||
-rm -f *.raw *~ *.exe | |||||
strip : | strip : | ||||
strip $(PROGRAMS) | strip $(PROGRAMS) |
@@ -1,24 +1,24 @@ | |||||
# Microsoft Developer Studio Project File - Name="probe" - Package Owner=<4> | |||||
# Microsoft Developer Studio Project File - Name="audioprobe" - Package Owner=<4> | |||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00 | # Microsoft Developer Studio Generated Build File, Format Version 6.00 | ||||
# ** DO NOT EDIT ** | # ** DO NOT EDIT ** | ||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103 | # TARGTYPE "Win32 (x86) Console Application" 0x0103 | ||||
CFG=probe - Win32 Debug | |||||
CFG=audioprobe - Win32 Debug | |||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE, | !MESSAGE This is not a valid makefile. To build this project using NMAKE, | ||||
!MESSAGE use the Export Makefile command and run | !MESSAGE use the Export Makefile command and run | ||||
!MESSAGE | !MESSAGE | ||||
!MESSAGE NMAKE /f "probe.mak". | |||||
!MESSAGE NMAKE /f "audioprobe.mak". | |||||
!MESSAGE | !MESSAGE | ||||
!MESSAGE You can specify a configuration when running NMAKE | !MESSAGE You can specify a configuration when running NMAKE | ||||
!MESSAGE by defining the macro CFG on the command line. For example: | !MESSAGE by defining the macro CFG on the command line. For example: | ||||
!MESSAGE | !MESSAGE | ||||
!MESSAGE NMAKE /f "probe.mak" CFG="probe - Win32 Debug" | |||||
!MESSAGE NMAKE /f "audioprobe.mak" CFG="audioprobe - Win32 Debug" | |||||
!MESSAGE | !MESSAGE | ||||
!MESSAGE Possible choices for configuration are: | !MESSAGE Possible choices for configuration are: | ||||
!MESSAGE | !MESSAGE | ||||
!MESSAGE "probe - Win32 Release" (based on "Win32 (x86) Console Application") | |||||
!MESSAGE "probe - Win32 Debug" (based on "Win32 (x86) Console Application") | |||||
!MESSAGE "audioprobe - Win32 Release" (based on "Win32 (x86) Console Application") | |||||
!MESSAGE "audioprobe - Win32 Debug" (based on "Win32 (x86) Console Application") | |||||
!MESSAGE | !MESSAGE | ||||
# Begin Project | # Begin Project | ||||
@@ -28,12 +28,12 @@ CFG=probe - Win32 Debug | |||||
CPP=cl.exe | CPP=cl.exe | ||||
RSC=rc.exe | RSC=rc.exe | ||||
!IF "$(CFG)" == "probe - Win32 Release" | |||||
!IF "$(CFG)" == "audioprobe - Win32 Release" | |||||
# PROP BASE Use_MFC 0 | # PROP BASE Use_MFC 0 | ||||
# PROP BASE Use_Debug_Libraries 0 | # PROP BASE Use_Debug_Libraries 0 | ||||
# PROP BASE Output_Dir "probe___Win32_Release" | |||||
# PROP BASE Intermediate_Dir "probe___Win32_Release" | |||||
# PROP BASE Output_Dir "audioprobe___Win32_Release" | |||||
# PROP BASE Intermediate_Dir "audioprobe___Win32_Release" | |||||
# PROP BASE Target_Dir "" | # PROP BASE Target_Dir "" | ||||
# PROP Use_MFC 0 | # PROP Use_MFC 0 | ||||
# PROP Use_Debug_Libraries 0 | # PROP Use_Debug_Libraries 0 | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "__WINDOW_DS__" /D "__WINDOWS_DS__" /D "__WINDOWS_ASIO__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -52,12 +52,12 @@ LINK32=link.exe | |||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 | ||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dsound.lib /nologo /subsystem:console /machine:I386 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib dsound.lib /nologo /subsystem:console /machine:I386 | ||||
!ELSEIF "$(CFG)" == "probe - Win32 Debug" | |||||
!ELSEIF "$(CFG)" == "audioprobe - Win32 Debug" | |||||
# PROP BASE Use_MFC 0 | # PROP BASE Use_MFC 0 | ||||
# PROP BASE Use_Debug_Libraries 1 | # PROP BASE Use_Debug_Libraries 1 | ||||
# PROP BASE Output_Dir "probe___Win32_Debug" | |||||
# PROP BASE Intermediate_Dir "probe___Win32_Debug" | |||||
# PROP BASE Output_Dir "audioprobe___Win32_Debug" | |||||
# PROP BASE Intermediate_Dir "audioprobe___Win32_Debug" | |||||
# PROP BASE Target_Dir "" | # PROP BASE Target_Dir "" | ||||
# PROP Use_MFC 0 | # PROP Use_MFC 0 | ||||
# PROP Use_Debug_Libraries 1 | # PROP Use_Debug_Libraries 1 | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "__WINDOWS_DS__" /D "__WINDOWS_ASIO__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -80,30 +80,30 @@ LINK32=link.exe | |||||
# Begin Target | # Begin Target | ||||
# Name "probe - Win32 Release" | |||||
# Name "probe - Win32 Debug" | |||||
# Name "audioprobe - Win32 Release" | |||||
# Name "audioprobe - Win32 Debug" | |||||
# Begin Group "Source Files" | # Begin Group "Source Files" | ||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\audioprobe.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\probe.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\..\RtAudio.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "__WINDOWS_DS__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "__WINDOWS_DS__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "__WINDOWS_ASIO__.__WINDOWS_DS__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "__WINDOWS_ASIO__.__WINDOWS_DS__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -87,15 +87,15 @@ LINK32=link.exe | |||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -103,7 +103,7 @@ SOURCE=..\duplex.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\..\RtAudio.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\newrtaudio\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -87,19 +87,19 @@ LINK32=link.exe | |||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\..\RtAudio.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -87,19 +87,19 @@ LINK32=link.exe | |||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\..\RtAudio.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -87,19 +87,19 @@ LINK32=link.exe | |||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\..\RtAudio.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -3,7 +3,7 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 | |||||
############################################################################### | ############################################################################### | ||||
Project: "duplex"=".\duplex.dsp" - Package Owner=<4> | |||||
Project: "audioprobe"=.\audioprobe.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -15,7 +15,7 @@ Package=<4> | |||||
############################################################################### | ############################################################################### | ||||
Project: "playraw"=".\playraw.dsp" - Package Owner=<4> | |||||
Project: "duplex"=.\duplex.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -27,7 +27,7 @@ Package=<4> | |||||
############################################################################### | ############################################################################### | ||||
Project: "playsaw"=".\playsaw.dsp" - Package Owner=<4> | |||||
Project: "playraw"=.\playraw.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -39,7 +39,7 @@ Package=<4> | |||||
############################################################################### | ############################################################################### | ||||
Project: "probe"=".\probe.dsp" - Package Owner=<4> | |||||
Project: "playsaw"=.\playsaw.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -51,7 +51,7 @@ Package=<4> | |||||
############################################################################### | ############################################################################### | ||||
Project: "record"=".\record.dsp" - Package Owner=<4> | |||||
Project: "record"=.\record.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -63,7 +63,7 @@ Package=<4> | |||||
############################################################################### | ############################################################################### | ||||
Project: "testall"=".\testall.dsp" - Package Owner=<4> | |||||
Project: "testall"=.\testall.dsp - Package Owner=<4> | |||||
Package=<5> | Package=<5> | ||||
{{{ | {{{ | ||||
@@ -42,7 +42,7 @@ RSC=rc.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c | ||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../" /I "../../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /c | |||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" | # ADD BASE RSC /l 0x409 /d "NDEBUG" | ||||
# ADD RSC /l 0x409 /d "NDEBUG" | # ADD RSC /l 0x409 /d "NDEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -66,7 +66,7 @@ LINK32=link.exe | |||||
# PROP Ignore_Export_Lib 0 | # PROP Ignore_Export_Lib 0 | ||||
# PROP Target_Dir "" | # PROP Target_Dir "" | ||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c | ||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../" /I "../../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__WINDOWS_ASIO__" /D "__WINDOWS_DS__" /YX /FD /GZ /c | |||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" | # ADD BASE RSC /l 0x409 /d "_DEBUG" | ||||
# ADD RSC /l 0x409 /d "_DEBUG" | # ADD RSC /l 0x409 /d "_DEBUG" | ||||
BSC32=bscmake.exe | BSC32=bscmake.exe | ||||
@@ -87,19 +87,19 @@ LINK32=link.exe | |||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.cpp | |||||
SOURCE=..\..\include\asio.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.cpp | |||||
SOURCE=..\..\include\asiodrivers.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.cpp | |||||
SOURCE=..\..\include\asiolist.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.cpp | |||||
SOURCE=..\..\include\iasiothiscallresolver.cpp | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -115,35 +115,35 @@ SOURCE=..\testall.cpp | |||||
# PROP Default_Filter "h;hpp;hxx;hm;inl" | # PROP Default_Filter "h;hpp;hxx;hm;inl" | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asio.h | |||||
SOURCE=..\..\include\asio.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrivers.h | |||||
SOURCE=..\..\include\asiodrivers.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiodrvr.h | |||||
SOURCE=..\..\include\asiodrvr.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiolist.h | |||||
SOURCE=..\..\include\asiolist.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\asiosys.h | |||||
SOURCE=..\..\include\asiosys.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\ginclude.h | |||||
SOURCE=..\..\include\ginclude.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiodrv.h | |||||
SOURCE=..\..\include\iasiodrv.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
SOURCE=..\..\asio\iasiothiscallresolver.h | |||||
SOURCE=..\..\include\iasiothiscallresolver.h | |||||
# End Source File | # End Source File | ||||
# Begin Source File | # Begin Source File | ||||
@@ -1,6 +1,6 @@ | |||||
/******************************************/ | /******************************************/ | ||||
/* | /* | ||||
probe.cpp | |||||
audioprobe.cpp | |||||
by Gary P. Scavone, 2001 | by Gary P. Scavone, 2001 | ||||
Probe audio system and prints device info. | Probe audio system and prints device info. |
@@ -56,7 +56,7 @@ int inout( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, | |||||
return 0; | return 0; | ||||
} | } | ||||
int main(int argc, char *argv[]) | |||||
int main( int argc, char *argv[] ) | |||||
{ | { | ||||
unsigned int channels, fs, bufferBytes, oDevice = 0, iDevice = 0, iOffset = 0, oOffset = 0; | unsigned int channels, fs, bufferBytes, oDevice = 0, iDevice = 0, iOffset = 0, oOffset = 0; | ||||
@@ -66,7 +66,7 @@ int main(int argc, char *argv[]) | |||||
RtAudio adac; | RtAudio adac; | ||||
if ( adac.getDeviceCount() < 1 ) { | if ( adac.getDeviceCount() < 1 ) { | ||||
std::cout << "\nNo audio devices found!\n"; | std::cout << "\nNo audio devices found!\n"; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
channels = (unsigned int) atoi(argv[1]); | channels = (unsigned int) atoi(argv[1]); | ||||
@@ -101,7 +101,7 @@ int main(int argc, char *argv[]) | |||||
} | } | ||||
catch ( RtError& e ) { | catch ( RtError& e ) { | ||||
std::cout << '\n' << e.getMessage() << '\n' << std::endl; | std::cout << '\n' << e.getMessage() << '\n' << std::endl; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
bufferBytes = bufferFrames * channels * sizeof( MY_TYPE ); | bufferBytes = bufferFrames * channels * sizeof( MY_TYPE ); | ||||
@@ -58,7 +58,7 @@ void usage( void ) { | |||||
std::cout << " file = the raw file to play,\n"; | std::cout << " file = the raw file to play,\n"; | ||||
std::cout << " device = optional device to use (default = 0),\n"; | std::cout << " device = optional device to use (default = 0),\n"; | ||||
std::cout << " and channelOffset = an optional channel offset on the device (default = 0).\n\n"; | std::cout << " and channelOffset = an optional channel offset on the device (default = 0).\n\n"; | ||||
exit(0); | |||||
exit( 0 ); | |||||
} | } | ||||
struct OutputData { | struct OutputData { | ||||
@@ -106,13 +106,13 @@ int main( int argc, char *argv[] ) | |||||
if ( argc > 4 ) | if ( argc > 4 ) | ||||
device = (unsigned int) atoi( argv[4] ); | device = (unsigned int) atoi( argv[4] ); | ||||
if ( argc > 5 ) | if ( argc > 5 ) | ||||
offset = (unsigned int) atoi(argv[5]); | |||||
offset = (unsigned int) atoi( argv[5] ); | |||||
OutputData data; | OutputData data; | ||||
data.fd = fopen( file, "rb" ); | data.fd = fopen( file, "rb" ); | ||||
if ( !data.fd ) { | if ( !data.fd ) { | ||||
std::cout << "Unable to find or open file!\n"; | std::cout << "Unable to find or open file!\n"; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
// Set our stream parameters for output only. | // Set our stream parameters for output only. | ||||
@@ -119,18 +119,17 @@ int main( int argc, char *argv[] ) | |||||
RtAudio dac; | RtAudio dac; | ||||
if ( dac.getDeviceCount() < 1 ) { | if ( dac.getDeviceCount() < 1 ) { | ||||
std::cout << "\nNo audio devices found!\n"; | std::cout << "\nNo audio devices found!\n"; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
channels = (unsigned int) atoi(argv[1]); | |||||
fs = (unsigned int) atoi(argv[2]); | |||||
channels = (unsigned int) atoi( argv[1] ); | |||||
fs = (unsigned int) atoi( argv[2] ); | |||||
if ( argc > 3 ) | if ( argc > 3 ) | ||||
device = (unsigned int) atoi(argv[3]); | |||||
device = (unsigned int) atoi( argv[3] ); | |||||
if ( argc > 4 ) | if ( argc > 4 ) | ||||
offset = (unsigned int) atoi(argv[4]); | |||||
offset = (unsigned int) atoi( argv[4] ); | |||||
double *data; | |||||
data = (double *) calloc( channels, sizeof( double ) ); | |||||
double *data = (double *) calloc( channels, sizeof( double ) ); | |||||
// Let RtAudio print messages to stderr. | // Let RtAudio print messages to stderr. | ||||
dac.showWarnings( true ); | dac.showWarnings( true ); | ||||
@@ -142,7 +141,6 @@ int main( int argc, char *argv[] ) | |||||
oParams.nChannels = channels; | oParams.nChannels = channels; | ||||
oParams.firstChannel = offset; | oParams.firstChannel = offset; | ||||
options.flags |= RTAUDIO_HOG_DEVICE; | options.flags |= RTAUDIO_HOG_DEVICE; | ||||
#if !defined( USE_INTERLEAVED ) | #if !defined( USE_INTERLEAVED ) | ||||
options.flags |= RTAUDIO_NONINTERLEAVED; | options.flags |= RTAUDIO_NONINTERLEAVED; | ||||
@@ -96,7 +96,7 @@ int main( int argc, char *argv[] ) | |||||
RtAudio adc; | RtAudio adc; | ||||
if ( adc.getDeviceCount() < 1 ) { | if ( adc.getDeviceCount() < 1 ) { | ||||
std::cout << "\nNo audio devices found!\n"; | std::cout << "\nNo audio devices found!\n"; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
channels = (unsigned int) atoi( argv[1] ); | channels = (unsigned int) atoi( argv[1] ); | ||||
@@ -159,7 +159,7 @@ int main( int argc, char *argv[] ) | |||||
// Now write the entire data to the file. | // Now write the entire data to the file. | ||||
fd = fopen( "record.raw", "wb" ); | fd = fopen( "record.raw", "wb" ); | ||||
fwrite( data.buffer, sizeof( MY_TYPE ), data.totalFrames * channels, fd ); | fwrite( data.buffer, sizeof( MY_TYPE ), data.totalFrames * channels, fd ); | ||||
fclose(fd); | |||||
fclose( fd ); | |||||
cleanup: | cleanup: | ||||
if ( adc.isStreamOpen() ) adc.closeStream(); | if ( adc.isStreamOpen() ) adc.closeStream(); | ||||
@@ -98,18 +98,17 @@ int main( int argc, char *argv[] ) | |||||
RtAudio dac; | RtAudio dac; | ||||
if ( dac.getDeviceCount() < 1 ) { | if ( dac.getDeviceCount() < 1 ) { | ||||
std::cout << "\nNo audio devices found!\n"; | std::cout << "\nNo audio devices found!\n"; | ||||
exit( 0 ); | |||||
exit( 1 ); | |||||
} | } | ||||
channels = (unsigned int) atoi(argv[1]); | |||||
fs = (unsigned int) atoi(argv[2]); | |||||
channels = (unsigned int) atoi( argv[1] ); | |||||
fs = (unsigned int) atoi( argv[2] ); | |||||
if ( argc > 3 ) | if ( argc > 3 ) | ||||
device = (unsigned int) atoi(argv[3]); | |||||
device = (unsigned int) atoi( argv[3] ); | |||||
if ( argc > 4 ) | if ( argc > 4 ) | ||||
offset = (unsigned int) atoi(argv[4]); | |||||
offset = (unsigned int) atoi( argv[4] ); | |||||
double *data; | |||||
data = (double *) calloc( channels, sizeof( double ) ); | |||||
double *data = (double *) calloc( channels, sizeof( double ) ); | |||||
// Let RtAudio print messages to stderr. | // Let RtAudio print messages to stderr. | ||||
dac.showWarnings( true ); | dac.showWarnings( true ); | ||||