X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=RtAudio.h;h=4bb75545a29dcd7a72602f3f634ff03618c97654;hb=b787f3630bdb83087fb31eed2d815f0ea6370a8c;hp=f37b9c268df86f01ca4cfd5ed014548909056a2c;hpb=2312b02c039b921b79ed52d448e8b3d932033f7a;p=rtaudio-cdist.git diff --git a/RtAudio.h b/RtAudio.h index f37b9c2..4bb7554 100644 --- a/RtAudio.h +++ b/RtAudio.h @@ -48,7 +48,11 @@ #define RTAUDIO_VERSION "5.0.0" #if defined _WIN32 || defined __CYGWIN__ - #define RTAUDIO_DLL_PUBLIC + #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" )) ) @@ -112,7 +116,7 @@ static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/mi Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, RtAudio will attempt to set these parameters internally for robust (glitch-free) performance - (though some APIs, like Windows Direct Sound, make this difficult). + (though some APIs, like Windows DirectSound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream @@ -284,8 +288,9 @@ class RTAUDIO_DLL_PUBLIC RtAudio 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 Direct Sound API. */ - RTAUDIO_DUMMY /*!< A compilable but non-functional API. */ + WINDOWS_DS, /*!< The Microsoft DirectSound 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. @@ -298,7 +303,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio bool isDefaultOutput; /*!< true if this is the default output device. */ bool isDefaultInput; /*!< true if this is the default input device. */ std::vector sampleRates; /*!< Supported sample rates (queried from list of standard rates). */ - unsigned int preferredSampleRate; /*!< Preferred sample rate, eg. for WASAPI the system sample rate. */ + unsigned int preferredSampleRate; /*!< Preferred sample rate, e.g. for WASAPI the system sample rate. */ RtAudioFormat nativeFormats; /*!< Bit mask of supported data formats. */ // Default constructor. @@ -343,7 +348,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio Certain audio APIs offer a number of parameters that influence the I/O latency of a stream. By default, RtAudio will attempt to set these parameters internally for robust (glitch-free) performance - (though some APIs, like Windows Direct Sound, make this difficult). + (though some APIs, like Windows DirectSound, make this difficult). By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() function, internal stream settings will be influenced in an attempt to minimize stream latency, though possibly at the expense of stream @@ -397,6 +402,29 @@ class RTAUDIO_DLL_PUBLIC RtAudio */ static void getCompiledApi( std::vector &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 @@ -593,6 +621,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio #endif #include #include + #include typedef uintptr_t ThreadHandle; typedef CRITICAL_SECTION StreamMutex; @@ -661,7 +690,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; } @@ -874,7 +902,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, @@ -910,7 +937,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, @@ -945,7 +971,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, @@ -983,7 +1008,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,