13
0

Implement new AudioBackend API for force updating devices in PortaudioBackend

This commit is contained in:
Tim Mayberry 2015-08-25 17:23:07 +10:00
parent 16f8c3ce85
commit 0396df963f
4 changed files with 14 additions and 4 deletions

View File

@ -145,6 +145,12 @@ PortAudioBackend::set_driver (const std::string& name)
return 0;
}
bool
PortAudioBackend::update_devices ()
{
return _pcmio->update_devices();
}
std::string
PortAudioBackend::driver_name () const
{

View File

@ -170,6 +170,9 @@ class PortAudioBackend : public AudioBackend {
std::vector<std::string> enumerate_drivers () const;
int set_driver (const std::string&);
bool can_request_update_devices () { return true; }
bool update_devices ();
bool use_separate_input_and_output_devices () const;
std::vector<DeviceStatus> enumerate_devices () const;
std::vector<DeviceStatus> enumerate_input_devices () const;

View File

@ -527,17 +527,18 @@ PortAudioIO::add_devices ()
}
}
void
bool
PortAudioIO::update_devices()
{
DEBUG_AUDIO ("Update devices\n");
if (_stream != NULL) return;
if (_stream != NULL) return false;
pa_deinitialize();
if (!pa_initialize()) return;
if (!pa_initialize()) return false;
clear_device_lists ();
add_none_devices ();
add_devices ();
return true;
}
void

View File

@ -63,7 +63,7 @@ public:
PaDeviceIndex get_default_input_device () const;
PaDeviceIndex get_default_output_device () const;
void update_devices();
bool update_devices();
void input_device_list (std::map<int, std::string> &devices) const;
void output_device_list (std::map<int, std::string> &devices) const;