Use short lower-case names as API identifiers
[rtaudio-cdist.git] / tests / apinames.cpp
index b915ad068be4f26ba8da69e54c47c1da024c5062..db7a2582a5f19d84412bb14644757d34328e7072 100644 (file)
@@ -10,8 +10,8 @@
 /******************************************/
 
 #include "RtAudio.h"
-#include <cstdlib>
 #include <cctype>
+#include <cstdlib>
 #include <iostream>
 
 int main() {
@@ -26,7 +26,12 @@ int main() {
             std::cerr << "Invalid name for API " << (int)apis[i] << "\n";
             exit(1);
         }
-        std::cout << "* " << (int)apis[i] << ": '" << name << "'\n";
+        const std::string &displayName = RtAudio::getCompiledApiDisplayName(apis[i]);
+        if (displayName.empty()) {
+            std::cerr << "Invalid display name for API " << (int)apis[i] << "\n";
+            exit(1);
+        }
+        std::cout << "* " << (int)apis[i] << " '" << name << "': '" << displayName << "'\n";
     }
 
     // ensure unknown APIs return the empty string
@@ -36,9 +41,14 @@ int main() {
             std::cerr << "Bad string for invalid API\n";
             exit(1);
         }
+        const std::string &displayName = RtAudio::getCompiledApiDisplayName((RtAudio::Api)-1);
+        if (!displayName.empty()) {
+            std::cerr << "Bad display string for invalid API\n";
+            exit(1);
+        }
     }
 
-    // try getting API identifier by case-insensitive name
+    // try getting API identifier by name
     std::cout << "API identifiers by name:\n";
     for ( size_t i = 0; i < apis.size() ; ++i ) {
         std::string name = RtAudio::getCompiledApiName(apis[i]);
@@ -47,23 +57,19 @@ int main() {
             exit( 1 );
         }
         std::cout << "* '" << name << "': " << (int)apis[i] << "\n";
+
         for ( size_t j = 0; j < name.size(); ++j )
             name[j] = (j & 1) ? toupper(name[j]) : tolower(name[j]);
-        if ( RtAudio::getCompiledApiByName(name) != apis[i] ) {
-            std::cerr << "Bad identifier for API '" << name << "'\n";
+        RtAudio::Api api = RtAudio::getCompiledApiByName(name);
+        if ( api != RtAudio::UNSPECIFIED ) {
+            std::cerr << "Identifier " << (int)api << " for invalid API '" << name << "'\n";
             exit( 1 );
         }
-        std::cout << "* '" << name << "': " << (int)apis[i] << "\n";
     }
 
     // try getting an API identifier by unknown name
     {
         RtAudio::Api api;
-        api = RtAudio::getCompiledApiByName("ALSO");
-        if ( api != RtAudio::UNSPECIFIED ) {
-            std::cerr << "Bad identifier for unknown API name\n";
-            exit( 1 );
-        }
         api = RtAudio::getCompiledApiByName("");
         if ( api != RtAudio::UNSPECIFIED ) {
             std::cerr << "Bad identifier for unknown API name\n";