summaryrefslogtreecommitdiff
path: root/RtAudio.h
diff options
context:
space:
mode:
authorStephen Sinclair <radarsat1@gmail.com>2018-08-08 11:55:39 -0400
committerStephen Sinclair <radarsat1@gmail.com>2018-08-08 11:55:39 -0400
commit3d054aec68641b049c102d20632a1eb618355a6f (patch)
treed5cf7f0210939376e5d56b49a66ae3723f364fb1 /RtAudio.h
parentf4061fcddede498baf9c7315c3922eb60b23bb40 (diff)
Use a map for API names
Diffstat (limited to 'RtAudio.h')
-rw-r--r--RtAudio.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/RtAudio.h b/RtAudio.h
index 449e0d7..78d96a9 100644
--- a/RtAudio.h
+++ b/RtAudio.h
@@ -61,6 +61,7 @@
#include <vector>
#include <stdexcept>
#include <iostream>
+#include <map>
/*! \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<RtAudio::Api, std::string> > 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<RtAudio::Api> &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<RtAudio::Api>& 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<RtAudio::Api> compiledApis;
+
void openRtApi( RtAudio::Api api );
RtApi *rtapi_;
};