|
@@ -43,17 +43,17 @@ extern int initialize_pulse(int verbose);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-Error AudioDriverALSA::init_device() {
|
|
|
+Error AudioDriverALSA::init_output_device() {
|
|
|
mix_rate = GLOBAL_GET("audio/driver/mix_rate");
|
|
|
speaker_mode = SPEAKER_MODE_STEREO;
|
|
|
channels = 2;
|
|
|
|
|
|
- // If there is a specified device check that it is really present
|
|
|
- if (device_name != "Default") {
|
|
|
- PackedStringArray list = get_device_list();
|
|
|
- if (list.find(device_name) == -1) {
|
|
|
- device_name = "Default";
|
|
|
- new_device = "Default";
|
|
|
+ // If there is a specified output device check that it is really present
|
|
|
+ if (output_device_name != "Default") {
|
|
|
+ PackedStringArray list = get_output_device_list();
|
|
|
+ if (list.find(output_device_name) == -1) {
|
|
|
+ output_device_name = "Default";
|
|
|
+ new_output_device = "Default";
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -75,10 +75,10 @@ Error AudioDriverALSA::init_device() {
|
|
|
//6 chans - "plug:surround51"
|
|
|
//4 chans - "plug:surround40";
|
|
|
|
|
|
- if (device_name == "Default") {
|
|
|
+ if (output_device_name == "Default") {
|
|
|
status = snd_pcm_open(&pcm_handle, "default", SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK);
|
|
|
} else {
|
|
|
- String device = device_name;
|
|
|
+ String device = output_device_name;
|
|
|
int pos = device.find(";");
|
|
|
if (pos != -1) {
|
|
|
device = device.substr(0, pos);
|
|
@@ -171,7 +171,7 @@ Error AudioDriverALSA::init() {
|
|
|
active.clear();
|
|
|
exit_thread.clear();
|
|
|
|
|
|
- Error err = init_device();
|
|
|
+ Error err = init_output_device();
|
|
|
if (err == OK) {
|
|
|
thread.start(AudioDriverALSA::thread_func, this);
|
|
|
}
|
|
@@ -227,18 +227,18 @@ void AudioDriverALSA::thread_func(void *p_udata) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // User selected a new device, finish the current one so we'll init the new device
|
|
|
- if (ad->device_name != ad->new_device) {
|
|
|
- ad->device_name = ad->new_device;
|
|
|
- ad->finish_device();
|
|
|
+ // User selected a new output device, finish the current one so we'll init the new device.
|
|
|
+ if (ad->output_device_name != ad->new_output_device) {
|
|
|
+ ad->output_device_name = ad->new_output_device;
|
|
|
+ ad->finish_output_device();
|
|
|
|
|
|
- Error err = ad->init_device();
|
|
|
+ Error err = ad->init_output_device();
|
|
|
if (err != OK) {
|
|
|
- ERR_PRINT("ALSA: init_device error");
|
|
|
- ad->device_name = "Default";
|
|
|
- ad->new_device = "Default";
|
|
|
+ ERR_PRINT("ALSA: init_output_device error");
|
|
|
+ ad->output_device_name = "Default";
|
|
|
+ ad->new_output_device = "Default";
|
|
|
|
|
|
- err = ad->init_device();
|
|
|
+ err = ad->init_output_device();
|
|
|
if (err != OK) {
|
|
|
ad->active.clear();
|
|
|
ad->exit_thread.set();
|
|
@@ -263,7 +263,7 @@ AudioDriver::SpeakerMode AudioDriverALSA::get_speaker_mode() const {
|
|
|
return speaker_mode;
|
|
|
}
|
|
|
|
|
|
-PackedStringArray AudioDriverALSA::get_device_list() {
|
|
|
+PackedStringArray AudioDriverALSA::get_output_device_list() {
|
|
|
PackedStringArray list;
|
|
|
|
|
|
list.push_back("Default");
|
|
@@ -298,13 +298,13 @@ PackedStringArray AudioDriverALSA::get_device_list() {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
-String AudioDriverALSA::get_device() {
|
|
|
- return device_name;
|
|
|
+String AudioDriverALSA::get_output_device() {
|
|
|
+ return output_device_name;
|
|
|
}
|
|
|
|
|
|
-void AudioDriverALSA::set_device(String device) {
|
|
|
+void AudioDriverALSA::set_output_device(const String &p_name) {
|
|
|
lock();
|
|
|
- new_device = device;
|
|
|
+ new_output_device = p_name;
|
|
|
unlock();
|
|
|
}
|
|
|
|
|
@@ -316,7 +316,7 @@ void AudioDriverALSA::unlock() {
|
|
|
mutex.unlock();
|
|
|
}
|
|
|
|
|
|
-void AudioDriverALSA::finish_device() {
|
|
|
+void AudioDriverALSA::finish_output_device() {
|
|
|
if (pcm_handle) {
|
|
|
snd_pcm_close(pcm_handle);
|
|
|
pcm_handle = nullptr;
|
|
@@ -327,7 +327,7 @@ void AudioDriverALSA::finish() {
|
|
|
exit_thread.set();
|
|
|
thread.wait_to_finish();
|
|
|
|
|
|
- finish_device();
|
|
|
+ finish_output_device();
|
|
|
}
|
|
|
|
|
|
#endif // ALSA_ENABLED
|