Merge remote-tracking branch 'upstream/pr/136'
[rtaudio-cdist.git] / rtaudio_c.cpp
index 090cbf90ee4bb8759c159cd9d7c1ef5256c98f86..ec849414a4cdd6e860dccea76daa237018ac238c 100644 (file)
@@ -50,6 +50,25 @@ const char *rtaudio_version() { return RTAUDIO_VERSION; }
 
 const rtaudio_api_t *rtaudio_compiled_api() { return compiled_api; }
 
+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();
+}
+
+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();
+}
+
+rtaudio_api_t rtaudio_compiled_api_by_name(const char *name) {
+    RtAudio::Api api = RtAudio::UNSPECIFIED;
+    if (name) {
+        api = RtAudio::getCompiledApiByName(name);
+    }
+    return (rtaudio_api_t)api;
+}
+
 const char *rtaudio_error(rtaudio_t audio) {
   if (audio->has_error) {
     return audio->errmsg;
@@ -79,7 +98,8 @@ int rtaudio_device_count(rtaudio_t audio) {
 }
 
 rtaudio_device_info_t rtaudio_get_device_info(rtaudio_t audio, int i) {
-  rtaudio_device_info_t result = {};
+  rtaudio_device_info_t result;
+  std::memset(&result, 0, sizeof(result));
   try {
     audio->has_error = 0;
     RtAudio::DeviceInfo info = audio->audio->getDeviceInfo(i);