X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=RtAudio.h;h=4bb75545a29dcd7a72602f3f634ff03618c97654;hb=01cc43c819896862cb89ef34b6e0173c8a3f7b10;hp=3927ae19e7ac3e2e5d5da3246c7dd79c9ab273f7;hpb=bc469fab7b18df4253db52f17726697ae5c9c564;p=rtaudio.git diff --git a/RtAudio.h b/RtAudio.h index 3927ae1..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" )) ) @@ -61,7 +65,6 @@ #include #include #include -#include /*! \typedef typedef unsigned long RtAudioFormat; \brief RtAudio data format type. @@ -113,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 @@ -285,13 +288,11 @@ 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. */ }; - //! Map string identifiers for APIs to enum identifiers and display names - typedef std::map< std::string, std::pair > ApiNameMap; - //! The public device information structure for returning queried values. struct DeviceInfo { bool probed; /*!< true if the device capabilities were successfully probed. */ @@ -302,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. @@ -347,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 @@ -401,30 +402,20 @@ class RTAUDIO_DLL_PUBLIC RtAudio */ static void getCompiledApi( std::vector &apis ); - //! A static function to determine the available compiled audio APIs. - /*! - The values returned in the std::vector can be compared against - the enumerated list values. Note that there can be more than one - API compiled for certain operating systems. - */ - static const std::vector& getCompiledApi(); - //! 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 or not compiled, this function will return - the empty string. + If the API is unknown, this function will return the empty string. */ - static const std::string& getCompiledApiName( RtAudio::Api api ); + 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 or not compiled, this function will return - the empty string. + If the API is unknown, this function will return the empty string. */ - static const std::string& getCompiledApiDisplayName( RtAudio::Api api ); + static std::string getApiDisplayName( RtAudio::Api api ); //! Return the compiled audio API having the given name. /*! @@ -618,12 +609,6 @@ class RTAUDIO_DLL_PUBLIC RtAudio protected: - //! Storage for API name map - static const ApiNameMap apiNames; - - //! Storage for compiled API list - static const std::vector compiledApis; - void openRtApi( RtAudio::Api api ); RtApi *rtapi_; }; @@ -636,6 +621,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio #endif #include #include + #include typedef uintptr_t ThreadHandle; typedef CRITICAL_SECTION StreamMutex; @@ -704,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; } @@ -917,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, @@ -953,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, @@ -988,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, @@ -1026,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, @@ -1056,7 +1037,7 @@ class RtApiWasapi : public RtApi { public: RtApiWasapi(); - ~RtApiWasapi(); + virtual ~RtApiWasapi(); RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_WASAPI; } unsigned int getDeviceCount( void );