summaryrefslogtreecommitdiff
path: root/libs/backends/alsa/alsa_audiobackend.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-06-14 22:24:53 +0200
committerRobin Gareus <robin@gareus.org>2015-06-14 22:26:06 +0200
commitdc2030cfd7656d8f502a31fce19b49df5df10eb7 (patch)
treeb18ad1de1d312a3953354fe94e5f5a508972afdb /libs/backends/alsa/alsa_audiobackend.h
parentacd95215a485ad17693e8eeb3a5797f1a6dfbecd (diff)
ALSA backend: add support for half-duplex devices
Diffstat (limited to 'libs/backends/alsa/alsa_audiobackend.h')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.h b/libs/backends/alsa/alsa_audiobackend.h
index 6c47b6215b..49066e360b 100644
--- a/libs/backends/alsa/alsa_audiobackend.h
+++ b/libs/backends/alsa/alsa_audiobackend.h
@@ -164,7 +164,10 @@ class AlsaAudioBackend : public AudioBackend {
std::string name () const;
bool is_realtime () const;
+ bool use_separate_input_and_output_devices () const { return true; }
std::vector<DeviceStatus> enumerate_devices () const;
+ std::vector<DeviceStatus> enumerate_input_devices () const;
+ std::vector<DeviceStatus> enumerate_output_devices () const;
std::vector<float> available_sample_rates (const std::string& device) const;
std::vector<uint32_t> available_buffer_sizes (const std::string& device) const;
uint32_t available_input_channel_count (const std::string& device) const;
@@ -174,6 +177,8 @@ class AlsaAudioBackend : public AudioBackend {
bool can_change_buffer_size_when_running () const;
int set_device_name (const std::string&);
+ int set_input_device_name (const std::string&);
+ int set_output_device_name (const std::string&);
int set_sample_rate (float);
int set_buffer_size (uint32_t);
int set_interleaved (bool yn);
@@ -188,6 +193,8 @@ class AlsaAudioBackend : public AudioBackend {
/* Retrieving parameters */
std::string device_name () const;
+ std::string input_device_name () const;
+ std::string output_device_name () const;
float sample_rate () const;
uint32_t buffer_size () const;
bool interleaved () const;
@@ -308,10 +315,13 @@ class AlsaAudioBackend : public AudioBackend {
uint64_t _last_process_start;
static std::vector<std::string> _midi_options;
- static std::vector<AudioBackend::DeviceStatus> _audio_device_status;
+ static std::vector<AudioBackend::DeviceStatus> _input_audio_device_status;
+ static std::vector<AudioBackend::DeviceStatus> _output_audio_device_status;
+ static std::vector<AudioBackend::DeviceStatus> _duplex_audio_device_status;
static std::vector<AudioBackend::DeviceStatus> _midi_device_status;
- mutable std::string _audio_device;
+ mutable std::string _input_audio_device;
+ mutable std::string _output_audio_device;
std::string _midi_driver_option;
/* audio device reservation */