Remove the compiledApis vector.
authorStephen Sinclair <radarsat1@gmail.com>
Thu, 9 Aug 2018 19:55:57 +0000 (15:55 -0400)
committerStephen Sinclair <radarsat1@gmail.com>
Thu, 9 Aug 2018 19:55:57 +0000 (15:55 -0400)
RtAudio.cpp
RtAudio.h

index 7200d1ed6317b05e96b71fd34ae6a08e661c0358..4e75d683c74aa843320c00eba96efd39a17c60c3 100644 (file)
@@ -152,12 +152,6 @@ extern "C" const unsigned int rtaudio_num_compiled_apis =
   sizeof(rtaudio_compiled_apis)/sizeof(rtaudio_compiled_apis[0])-1;
 }
 
-static const std::vector<RtAudio::Api> init_compiledApis() {
-  return std::vector<RtAudio::Api>(
-    rtaudio_compiled_apis, rtaudio_compiled_apis + rtaudio_num_compiled_apis);
-}
-const std::vector<RtAudio::Api> RtAudio::compiledApis(init_compiledApis());
-
 // This is a compile-time check that rtaudio_num_api_names == RtAudio::NUM_APIS.
 // If the build breaks here, check that they match.
 template<bool b> class StaticAssert { private: StaticAssert() {} };
@@ -168,19 +162,16 @@ class StaticAssertions { StaticAssertions() {
 
 void RtAudio :: getCompiledApi( std::vector<RtAudio::Api> &apis )
 {
-  apis = compiledApis;
-}
-
-const std::vector<RtAudio::Api>& RtAudio :: getCompiledApis()
-{
-  return compiledApis;
+  apis = std::vector<RtAudio::Api>(rtaudio_compiled_apis,
+                                   rtaudio_compiled_apis + rtaudio_num_compiled_apis);
 }
 
 const std::string RtAudio :: getCompiledApiName( RtAudio::Api api )
 {
   if (api < 0 || api > RtAudio::NUM_APIS
-      || (std::find(RtAudio::compiledApis.begin(),
-                    RtAudio::compiledApis.end(), api) == RtAudio::compiledApis.end()))
+      || (std::find(rtaudio_compiled_apis,
+                    rtaudio_compiled_apis+rtaudio_num_compiled_apis,
+                    api) == rtaudio_compiled_apis+rtaudio_num_compiled_apis))
     return "";
   return rtaudio_api_names[api][0];
 }
@@ -188,8 +179,9 @@ const std::string RtAudio :: getCompiledApiName( RtAudio::Api api )
 const std::string RtAudio :: getCompiledApiDisplayName( RtAudio::Api api )
 {
   if (api < 0 || api > RtAudio::NUM_APIS
-      || (std::find(RtAudio::compiledApis.begin(),
-                    RtAudio::compiledApis.end(), api) == RtAudio::compiledApis.end())) 
+      || (std::find(rtaudio_compiled_apis,
+                    rtaudio_compiled_apis+rtaudio_num_compiled_apis,
+                    api) == rtaudio_compiled_apis+rtaudio_num_compiled_apis))
     return "Unknown";
   return rtaudio_api_names[api][1];
 }
@@ -197,10 +189,9 @@ const std::string RtAudio :: getCompiledApiDisplayName( RtAudio::Api api )
 RtAudio::Api RtAudio :: getCompiledApiByName( const std::string &name )
 {
   unsigned int i=0;
-  std::vector<RtAudio::Api>::const_iterator it;
-  for (it = compiledApis.begin(); it != compiledApis.end(); ++it, ++i)
-    if (name == rtaudio_api_names[*it][0])
-      return *it;
+  for (i = 0; i < rtaudio_num_compiled_apis; ++i)
+    if (name == rtaudio_api_names[rtaudio_compiled_apis[i]][0])
+      return rtaudio_compiled_apis[i];
   return RtAudio::UNSPECIFIED;
 }
 
index 5b71fe88301218179bbe734a55e52cf790dc8dbb..9976541c2e8aeff04f073accf2eee12ebf7d6abd 100644 (file)
--- a/RtAudio.h
+++ b/RtAudio.h
@@ -402,14 +402,6 @@ class RTAUDIO_DLL_PUBLIC RtAudio
   */
   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>& getCompiledApis();
-
   //! Return the name of a specified compiled audio API.
   /*!
     This obtains a short lower-case name used for identification purposes.
@@ -619,9 +611,6 @@ class RTAUDIO_DLL_PUBLIC RtAudio
 
  protected:
 
-  //! Storage for compiled API list
-  static const std::vector<RtAudio::Api> compiledApis;
-
   void openRtApi( RtAudio::Api api );
   RtApi *rtapi_;
 };