mirror of
https://github.com/thestk/stk
synced 2026-02-06 17:26:15 +00:00
Updated RtAudio/RtMidi for new release, plus additional documentation updates.
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
and OSS), Macintosh OS X (CoreAudio and Jack), and Windows
|
||||
(DirectSound, ASIO and WASAPI) operating systems.
|
||||
|
||||
RtAudio GitHub site: https://github.com/thestk/rtaudio
|
||||
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/
|
||||
|
||||
RtAudio: realtime audio i/o C++ classes
|
||||
@@ -45,7 +46,21 @@
|
||||
#ifndef __RTAUDIO_H
|
||||
#define __RTAUDIO_H
|
||||
|
||||
#define RTAUDIO_VERSION "5.0.0"
|
||||
#define RTAUDIO_VERSION "5.1.0"
|
||||
|
||||
#if defined _WIN32 || defined __CYGWIN__
|
||||
#if defined(RTAUDIO_EXPORT)
|
||||
#define RTAUDIO_DLL_PUBLIC __declspec(dllexport)
|
||||
#else
|
||||
#define RTAUDIO_DLL_PUBLIC
|
||||
#endif
|
||||
#else
|
||||
#if __GNUC__ >= 4
|
||||
#define RTAUDIO_DLL_PUBLIC __attribute__( (visibility( "default" )) )
|
||||
#else
|
||||
#define RTAUDIO_DLL_PUBLIC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -179,6 +194,7 @@ static const RtAudioStreamStatus RTAUDIO_OUTPUT_UNDERFLOW = 0x2; // The output
|
||||
\param userData A pointer to optional data provided by the client
|
||||
when opening the stream (default = NULL).
|
||||
|
||||
\return
|
||||
To continue normal stream operation, the RtAudioCallback function
|
||||
should return a value of zero. To stop the stream and drain the
|
||||
output buffer, the function should return a value of one. To abort
|
||||
@@ -200,7 +216,7 @@ typedef int (*RtAudioCallback)( void *outputBuffer, void *inputBuffer,
|
||||
*/
|
||||
/************************************************************************/
|
||||
|
||||
class RtAudioError : public std::runtime_error
|
||||
class RTAUDIO_DLL_PUBLIC RtAudioError : public std::runtime_error
|
||||
{
|
||||
public:
|
||||
//! Defined RtAudioError types.
|
||||
@@ -260,7 +276,7 @@ typedef void (*RtAudioErrorCallback)( RtAudioError::Type type, const std::string
|
||||
|
||||
class RtApi;
|
||||
|
||||
class RtAudio
|
||||
class RTAUDIO_DLL_PUBLIC RtAudio
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -271,11 +287,12 @@ class RtAudio
|
||||
LINUX_PULSE, /*!< The Linux PulseAudio API. */
|
||||
LINUX_OSS, /*!< The Linux Open Sound System API. */
|
||||
UNIX_JACK, /*!< The Jack Low-Latency Audio Server API. */
|
||||
MACOSX_CORE, /*!< Macintosh OS-X CoreAudio API. */
|
||||
MACOSX_CORE, /*!< Macintosh OS-X Core Audio API. */
|
||||
WINDOWS_WASAPI, /*!< The Microsoft WASAPI API. */
|
||||
WINDOWS_ASIO, /*!< The Steinberg Audio Stream I/O API. */
|
||||
WINDOWS_DS, /*!< The Microsoft DirectSound API. */
|
||||
RTAUDIO_DUMMY /*!< A compilable but non-functional API. */
|
||||
RTAUDIO_DUMMY, /*!< A compilable but non-functional API. */
|
||||
NUM_APIS /*!< Number of values in this enum. */
|
||||
};
|
||||
|
||||
//! The public device information structure for returning queried values.
|
||||
@@ -387,6 +404,29 @@ class RtAudio
|
||||
*/
|
||||
static void getCompiledApi( std::vector<RtAudio::Api> &apis );
|
||||
|
||||
//! Return the name of a specified compiled audio API.
|
||||
/*!
|
||||
This obtains a short lower-case name used for identification purposes.
|
||||
This value is guaranteed to remain identical across library versions.
|
||||
If the API is unknown, this function will return the empty string.
|
||||
*/
|
||||
static std::string getApiName( RtAudio::Api api );
|
||||
|
||||
//! Return the display name of a specified compiled audio API.
|
||||
/*!
|
||||
This obtains a long name used for display purposes.
|
||||
If the API is unknown, this function will return the empty string.
|
||||
*/
|
||||
static std::string getApiDisplayName( RtAudio::Api api );
|
||||
|
||||
//! Return the compiled audio API having the given name.
|
||||
/*!
|
||||
A case insensitive comparison will check the specified name
|
||||
against the list of compiled APIs, and return the one which
|
||||
matches. On failure, the function returns UNSPECIFIED.
|
||||
*/
|
||||
static RtAudio::Api getCompiledApiByName( const std::string &name );
|
||||
|
||||
//! The class constructor.
|
||||
/*!
|
||||
The constructor performs minor initialization tasks. An exception
|
||||
@@ -583,6 +623,7 @@ class RtAudio
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#include <process.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef uintptr_t ThreadHandle;
|
||||
typedef CRITICAL_SECTION StreamMutex;
|
||||
@@ -651,7 +692,6 @@ class S24 {
|
||||
return *this;
|
||||
}
|
||||
|
||||
S24( const S24& v ) { *this = v; }
|
||||
S24( const double& d ) { *this = (int) d; }
|
||||
S24( const float& f ) { *this = (int) f; }
|
||||
S24( const signed short& s ) { *this = (int) s; }
|
||||
@@ -671,7 +711,7 @@ class S24 {
|
||||
|
||||
#include <sstream>
|
||||
|
||||
class RtApi
|
||||
class RTAUDIO_DLL_PUBLIC RtApi
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -864,7 +904,6 @@ public:
|
||||
void startStream( void );
|
||||
void stopStream( void );
|
||||
void abortStream( void );
|
||||
long getStreamLatency( void );
|
||||
|
||||
// This function is intended for internal use only. It must be
|
||||
// public because it is called by the internal callback handler,
|
||||
@@ -900,7 +939,6 @@ public:
|
||||
void startStream( void );
|
||||
void stopStream( void );
|
||||
void abortStream( void );
|
||||
long getStreamLatency( void );
|
||||
|
||||
// This function is intended for internal use only. It must be
|
||||
// public because it is called by the internal callback handler,
|
||||
@@ -935,7 +973,6 @@ public:
|
||||
void startStream( void );
|
||||
void stopStream( void );
|
||||
void abortStream( void );
|
||||
long getStreamLatency( void );
|
||||
|
||||
// This function is intended for internal use only. It must be
|
||||
// public because it is called by the internal callback handler,
|
||||
@@ -973,7 +1010,6 @@ public:
|
||||
void startStream( void );
|
||||
void stopStream( void );
|
||||
void abortStream( void );
|
||||
long getStreamLatency( void );
|
||||
|
||||
// This function is intended for internal use only. It must be
|
||||
// public because it is called by the internal callback handler,
|
||||
@@ -1003,7 +1039,7 @@ class RtApiWasapi : public RtApi
|
||||
{
|
||||
public:
|
||||
RtApiWasapi();
|
||||
~RtApiWasapi();
|
||||
virtual ~RtApiWasapi();
|
||||
|
||||
RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_WASAPI; }
|
||||
unsigned int getDeviceCount( void );
|
||||
|
||||
Reference in New Issue
Block a user