1 /******************************************/
4 by Jean Pierre Cimalando, 2018.
6 This program tests parts of RtAudio related
7 to API names, the conversion from name to API
10 /******************************************/
18 std::vector<RtAudio::Api> apis;
19 RtAudio::getCompiledApi( apis );
21 // ensure the known APIs return valid names
22 std::cout << "API names by identifier (C++):\n";
23 for ( size_t i = 0; i < apis.size() ; ++i ) {
24 const std::string name = RtAudio::getApiName(apis[i]);
26 std::cout << "Invalid name for API " << (int)apis[i] << "\n";
29 const std::string displayName = RtAudio::getApiDisplayName(apis[i]);
30 if (displayName.empty()) {
31 std::cout << "Invalid display name for API " << (int)apis[i] << "\n";
34 std::cout << "* " << (int)apis[i] << " '" << name << "': '" << displayName << "'\n";
37 // ensure unknown APIs return the empty string
39 const std::string name = RtAudio::getApiName((RtAudio::Api)-1);
41 std::cout << "Bad string for invalid API '" << name << "'\n";
44 const std::string displayName = RtAudio::getApiDisplayName((RtAudio::Api)-1);
45 if (displayName!="Unknown") {
46 std::cout << "Bad display string for invalid API '" << displayName << "'\n";
51 // try getting API identifier by name
52 std::cout << "API identifiers by name (C++):\n";
53 for ( size_t i = 0; i < apis.size() ; ++i ) {
54 std::string name = RtAudio::getApiName(apis[i]);
55 if ( RtAudio::getCompiledApiByName(name) != apis[i] ) {
56 std::cout << "Bad identifier for API '" << name << "'\n";
59 std::cout << "* '" << name << "': " << (int)apis[i] << "\n";
61 for ( size_t j = 0; j < name.size(); ++j )
62 name[j] = (j & 1) ? toupper(name[j]) : tolower(name[j]);
63 RtAudio::Api api = RtAudio::getCompiledApiByName(name);
64 if ( api != RtAudio::UNSPECIFIED ) {
65 std::cout << "Identifier " << (int)api << " for invalid API '" << name << "'\n";
70 // try getting an API identifier by unknown name
73 api = RtAudio::getCompiledApiByName("");
74 if ( api != RtAudio::UNSPECIFIED ) {
75 std::cout << "Bad identifier for unknown API name\n";
83 #include "rtaudio_c.h"
86 const rtaudio_api_t *apis = rtaudio_compiled_api();
88 // ensure the known APIs return valid names
89 std::cout << "API names by identifier (C):\n";
90 for ( size_t i = 0; apis[i] != RTAUDIO_API_UNSPECIFIED; ++i) {
91 const std::string name = rtaudio_api_name(apis[i]);
93 std::cout << "Invalid name for API " << (int)apis[i] << "\n";
96 const std::string displayName = rtaudio_api_display_name(apis[i]);
97 if (displayName.empty()) {
98 std::cout << "Invalid display name for API " << (int)apis[i] << "\n";
101 std::cout << "* " << (int)apis[i] << " '" << name << "': '" << displayName << "'\n";
104 // ensure unknown APIs return the empty string
106 const char *s = rtaudio_api_name((rtaudio_api_t)-1);
107 const std::string name(s?s:"");
109 std::cout << "Bad string for invalid API '" << name << "'\n";
112 s = rtaudio_api_display_name((rtaudio_api_t)-1);
113 const std::string displayName(s?s:"");
114 if (displayName!="Unknown") {
115 std::cout << "Bad display string for invalid API '" << displayName << "'\n";
120 // try getting API identifier by name
121 std::cout << "API identifiers by name (C):\n";
122 for ( size_t i = 0; apis[i] != RTAUDIO_API_UNSPECIFIED ; ++i ) {
123 const char *s = rtaudio_api_name(apis[i]);
124 std::string name(s?s:"");
125 if ( rtaudio_compiled_api_by_name(name.c_str()) != apis[i] ) {
126 std::cout << "Bad identifier for API '" << name << "'\n";
129 std::cout << "* '" << name << "': " << (int)apis[i] << "\n";
131 for ( size_t j = 0; j < name.size(); ++j )
132 name[j] = (j & 1) ? toupper(name[j]) : tolower(name[j]);
133 rtaudio_api_t api = rtaudio_compiled_api_by_name(name.c_str());
134 if ( api != RTAUDIO_API_UNSPECIFIED ) {
135 std::cout << "Identifier " << (int)api << " for invalid API '" << name << "'\n";
140 // try getting an API identifier by unknown name
143 api = rtaudio_compiled_api_by_name("");
144 if ( api != RTAUDIO_API_UNSPECIFIED ) {
145 std::cout << "Bad identifier for unknown API name\n";