Set the default host api in PortaudioBackend when initializing portaudio
authorTim Mayberry <mojofunk@gmail.com>
Thu, 6 Aug 2015 12:22:18 +0000 (22:22 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Thu, 6 Aug 2015 15:25:14 +0000 (01:25 +1000)
Not setting a default driver causes issues with the EngineControl dialog

libs/backends/portaudio/portaudio_io.cc
libs/backends/portaudio/portaudio_io.h

index f6af18a25e91e55507de6a46e6baaf2661664c39..809666f36dd15041fc829fd3a6dfebc563b55957 100644 (file)
@@ -321,6 +321,8 @@ PortAudioIO::initialize_pa ()
                        return false;
                }
                _initialized = true;
+               _host_api_index = Pa_GetDefaultHostApi ();
+               _host_api_name = get_host_api_name_from_index (_host_api_index);
        }
 
        return true;
@@ -343,6 +345,14 @@ PortAudioIO::host_api_list (std::vector<std::string>& api_list)
        }
 }
 
+std::string
+PortAudioIO::get_host_api_name_from_index (PaHostApiIndex index)
+{
+       std::vector<std::string> api_list;
+       host_api_list(api_list);
+       return api_list[index];
+}
+
 bool
 PortAudioIO::set_host_api (const std::string& host_api_name)
 {
index ff40b711c395334332ed0b3a97262cb4369bb844..f5ee8975934fd8a41ec8e6fda6c20591ad0d21ed 100644 (file)
@@ -98,6 +98,7 @@ private: // Methods
        void clear_device_lists ();
        void add_default_devices ();
        void add_devices ();
+       std::string get_host_api_name_from_index (PaHostApiIndex index);
 
 private: // Data
        int  _state;