diff options
author | Marcelo Fernandez <marcelofg55@gmail.com> | 2018-03-25 00:43:51 -0300 |
---|---|---|
committer | Marcelo Fernandez <marcelofg55@gmail.com> | 2018-03-26 17:41:05 -0300 |
commit | ecc1b34cbc2375a57afad822218324d8b88fa721 (patch) | |
tree | 7c3272e5609be259398f9bdf3549b4f9a5b84be3 /drivers/pulseaudio/audio_driver_pulseaudio.h | |
parent | fd79de01c20168075dbf425831ac44f2b676f275 (diff) |
Added new audio device functions to set/get the audio device
Diffstat (limited to 'drivers/pulseaudio/audio_driver_pulseaudio.h')
-rw-r--r-- | drivers/pulseaudio/audio_driver_pulseaudio.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.h b/drivers/pulseaudio/audio_driver_pulseaudio.h index 5737f24314..934031e2a5 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.h +++ b/drivers/pulseaudio/audio_driver_pulseaudio.h @@ -37,14 +37,20 @@ #include "core/os/thread.h" #include "servers/audio_server.h" -#include <pulse/simple.h> +#include <pulse/pulseaudio.h> class AudioDriverPulseAudio : public AudioDriver { Thread *thread; Mutex *mutex; - pa_simple *pulse; + pa_mainloop *pa_ml; + pa_context *pa_ctx; + pa_stream *pa_str; + + String device_name; + String new_device; + String default_device; Vector<int32_t> samples_in; Vector<int16_t> samples_out; @@ -54,6 +60,9 @@ class AudioDriverPulseAudio : public AudioDriver { unsigned int pa_buffer_size; int channels; int pa_channels; + int pa_ready; + int pa_status; + Array pa_devices; bool active; bool thread_exited; @@ -61,6 +70,16 @@ class AudioDriverPulseAudio : public AudioDriver { float latency; + static void pa_state_cb(pa_context *c, void *userdata); + static void pa_sink_info_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata); + static void pa_server_info_cb(pa_context *c, const pa_server_info *i, void *userdata); + static void pa_sinklist_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata); + + Error init_device(); + void finish_device(); + + void detect_channels(); + static void thread_func(void *p_udata); public: @@ -72,6 +91,9 @@ public: virtual void start(); virtual int get_mix_rate() const; virtual SpeakerMode get_speaker_mode() const; + virtual Array get_device_list(); + virtual String get_device(); + virtual void set_device(String device); virtual void lock(); virtual void unlock(); virtual void finish(); |