#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" )) )
#include <vector>
#include <stdexcept>
#include <iostream>
-#include <map>
/*! \typedef typedef unsigned long RtAudioFormat;
\brief RtAudio data format type.
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. */
+ 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<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. */
*/
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.
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.
/*!
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_;
};
{
public:
RtApiWasapi();
- ~RtApiWasapi();
+ virtual ~RtApiWasapi();
RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_WASAPI; }
unsigned int getDeviceCount( void );