X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=RtAudio.h;h=78d96a91ed4490c873eaaa2336c353a1ad74229a;hb=3d054aec68641b049c102d20632a1eb618355a6f;hp=449e0d7dcc9323b47b955ebc7c23a8b2187f4c45;hpb=f4061fcddede498baf9c7315c3922eb60b23bb40;p=rtaudio.git diff --git a/RtAudio.h b/RtAudio.h index 449e0d7..78d96a9 100644 --- a/RtAudio.h +++ b/RtAudio.h @@ -61,6 +61,7 @@ #include #include #include +#include /*! \typedef typedef unsigned long RtAudioFormat; \brief RtAudio data format type. @@ -288,6 +289,9 @@ class RTAUDIO_DLL_PUBLIC RtAudio RTAUDIO_DUMMY /*!< A compilable but non-functional API. */ }; + //! 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. */ @@ -397,6 +401,14 @@ 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. @@ -404,7 +416,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio If the API is unknown or not compiled, this function will return the empty string. */ - static const std::string &getCompiledApiName( RtAudio::Api api ); + static const std::string getCompiledApiName( RtAudio::Api api ); //! Return the display name of a specified compiled audio API. /*! @@ -412,7 +424,7 @@ class RTAUDIO_DLL_PUBLIC RtAudio If the API is unknown or not compiled, this function will return the empty string. */ - static const std::string &getCompiledApiDisplayName( RtAudio::Api api ); + static const std::string getCompiledApiDisplayName( RtAudio::Api api ); //! Return the compiled audio API having the given name. /*! @@ -606,6 +618,12 @@ 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_; };