Con't work on ALSA nperiod selection (see also d3d120fa)

This commit is contained in:
Robin Gareus 2020-04-28 17:56:17 +02:00
parent d3d120fa28
commit 8e482ef0fb
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
7 changed files with 12 additions and 8 deletions

View file

@ -1552,7 +1552,11 @@ EngineControl::set_nperiods_popdown_strings ()
vector<string> s; vector<string> s;
if (backend->can_set_period_size()) { if (backend->can_set_period_size()) {
np = backend->available_period_sizes (get_driver()); if (backend->use_separate_input_and_output_devices ()) {
np = backend->available_period_sizes (get_driver(), get_output_device_name ());
} else {
np = backend->available_period_sizes (get_driver(), get_device_name ());
}
} }
for (vector<uint32_t>::const_iterator x = np.begin(); x != np.end(); ++x) { for (vector<uint32_t>::const_iterator x = np.begin(); x != np.end(); ++x) {

View file

@ -280,7 +280,7 @@ public:
} }
/** Returns a vector of supported period-sizes for the given driver */ /** Returns a vector of supported period-sizes for the given driver */
virtual std::vector<uint32_t> available_period_sizes (const std::string& driver) const virtual std::vector<uint32_t> available_period_sizes (const std::string& driver, const std::string& device) const
{ {
return std::vector<uint32_t> (); return std::vector<uint32_t> ();
} }

View file

@ -24,7 +24,7 @@ namespace ARDOUR {
struct ALSADeviceInfo { struct ALSADeviceInfo {
unsigned int max_channels; unsigned int max_channels;
unsigned int min_rate, max_rate; unsigned int min_rate, max_rate;
unsigned int min_nper, min_nper; unsigned int min_nper, max_nper;
unsigned long min_size, max_size; unsigned long min_size, max_size;
bool valid; bool valid;
}; };

View file

@ -267,11 +267,11 @@ AlsaAudioBackend::available_output_channel_count (const std::string& device) con
} }
std::vector<uint32_t> std::vector<uint32_t>
AlsaAudioBackend::available_period_sizes (const std::string& driver) const AlsaAudioBackend::available_period_sizes (const std::string& driver, const std::string& device) const
{ {
std::vector<uint32_t> ps; std::vector<uint32_t> ps;
ALSADeviceInfo *nfo = NULL; ALSADeviceInfo* nfo = NULL;
if (device == get_standard_device_name(DeviceNone)) { if (device == get_standard_device_name(DeviceNone)) {
return ps; return ps;
} }

View file

@ -140,7 +140,7 @@ class AlsaAudioBackend : public AudioBackend, public PortEngineSharedImpl
std::vector<float> available_sample_rates2 (const std::string&, const std::string&) const; std::vector<float> available_sample_rates2 (const std::string&, const std::string&) const;
std::vector<uint32_t> available_buffer_sizes (const std::string& device) const; std::vector<uint32_t> available_buffer_sizes (const std::string& device) const;
std::vector<uint32_t> available_buffer_sizes2 (const std::string&, const std::string&) const; std::vector<uint32_t> available_buffer_sizes2 (const std::string&, const std::string&) const;
std::vector<uint32_t> available_period_sizes (const std::string& driver) const; std::vector<uint32_t> available_period_sizes (const std::string& driver, const std::string& device) const;
uint32_t available_input_channel_count (const std::string& device) const; uint32_t available_input_channel_count (const std::string& device) const;
uint32_t available_output_channel_count (const std::string& device) const; uint32_t available_output_channel_count (const std::string& device) const;

View file

@ -215,7 +215,7 @@ JACKAudioBackend::available_buffer_sizes (const string& device) const
} }
std::vector<uint32_t> std::vector<uint32_t>
JACKAudioBackend::available_period_sizes (const std::string& driver) const JACKAudioBackend::available_period_sizes (const std::string& driver, const std::string&) const
{ {
vector<uint32_t> s; vector<uint32_t> s;
if (ARDOUR::get_jack_audio_driver_supports_setting_period_count (driver)) { if (ARDOUR::get_jack_audio_driver_supports_setting_period_count (driver)) {

View file

@ -71,7 +71,7 @@ class JACKAudioBackend : public AudioBackend {
std::vector<float> available_sample_rates (const std::string& device) const; std::vector<float> available_sample_rates (const std::string& device) const;
std::vector<uint32_t> available_buffer_sizes (const std::string& device) const; std::vector<uint32_t> available_buffer_sizes (const std::string& device) const;
std::vector<uint32_t> available_period_sizes (const std::string& driver) const; std::vector<uint32_t> available_period_sizes (const std::string& driver, const std::string& device) const;
uint32_t available_input_channel_count (const std::string& device) const; uint32_t available_input_channel_count (const std::string& device) const;
uint32_t available_output_channel_count (const std::string& device) const; uint32_t available_output_channel_count (const std::string& device) const;