summaryrefslogtreecommitdiff
path: root/rtaudio_c.cpp
diff options
context:
space:
mode:
authorStephen Sinclair <radarsat1@gmail.com>2018-08-08 15:01:18 -0400
committerStephen Sinclair <radarsat1@gmail.com>2018-08-08 19:24:39 -0400
commite92130e9e152a71da71264a610662e910b450ec0 (patch)
tree3cd9563ea54cbdfe1629a3f0ba64523574a79b73 /rtaudio_c.cpp
parent5f0720fef77af2b19abd684d0dc9eed1bca9a64d (diff)
Fix api name functions for C, replace map with array.
Diffstat (limited to 'rtaudio_c.cpp')
-rw-r--r--rtaudio_c.cpp46
1 files changed, 10 insertions, 36 deletions
diff --git a/rtaudio_c.cpp b/rtaudio_c.cpp
index ec84941..7ae1bec 100644
--- a/rtaudio_c.cpp
+++ b/rtaudio_c.cpp
@@ -15,50 +15,24 @@ struct rtaudio {
char errmsg[MAX_ERROR_MESSAGE_LENGTH];
};
-static const rtaudio_api_t compiled_api[] = {
-#if defined(__UNIX_JACK__)
- RTAUDIO_API_UNIX_JACK,
-#endif
-#if defined(__LINUX_ALSA__)
- RTAUDIO_API_LINUX_ALSA,
-#endif
-#if defined(__LINUX_PULSE__)
- RTAUDIO_API_LINUX_PULSE,
-#endif
-#if defined(__LINUX_OSS__)
- RTAUDIO_API_LINUX_OSS,
-#endif
-#if defined(__WINDOWS_ASIO__)
- RTAUDIO_API_WINDOWS_ASIO,
-#endif
-#if defined(__WINDOWS_WASAPI__)
- RTAUDIO_API_WINDOWS_WASAPI,
-#endif
-#if defined(__WINDOWS_DS__)
- RTAUDIO_API_WINDOWS_DS,
-#endif
-#if defined(__MACOSX_CORE__)
- RTAUDIO_API_MACOSX_CORE,
-#endif
-#if defined(__RTAUDIO_DUMMY__)
- RTAUDIO_API_DUMMY,
-#endif
- RTAUDIO_API_UNSPECIFIED,
-};
-
const char *rtaudio_version() { return RTAUDIO_VERSION; }
-const rtaudio_api_t *rtaudio_compiled_api() { return compiled_api; }
+extern "C" const rtaudio_api_t rtaudio_compiled_apis[]; // casting from RtAudio::Api[]
+extern "C" unsigned int rtaudio_num_compiled_apis;
+const rtaudio_api_t *rtaudio_compiled_api() { return rtaudio_compiled_apis; }
+extern "C" const char* rtaudio_api_names[][2];
const char *rtaudio_compiled_api_name(rtaudio_api_t api) {
- const std::string &name = RtAudio::getCompiledApiName((RtAudio::Api)api);
- return name.empty() ? NULL : name.c_str();
+ if (api < 0 || api >= RTAUDIO_API_NUM)
+ return NULL;
+ return rtaudio_api_names[api][0];
}
const char *rtaudio_compiled_api_display_name(rtaudio_api_t api)
{
- const std::string &name = RtAudio::getCompiledApiDisplayName((RtAudio::Api)api);
- return name.empty() ? NULL : name.c_str();
+ if (api < 0 || api >= RTAUDIO_API_NUM)
+ return "Unknown";
+ return rtaudio_api_names[api][1];
}
rtaudio_api_t rtaudio_compiled_api_by_name(const char *name) {