From 043f0c29a117cbfa2717658e6d8f1705b7cc2015 Mon Sep 17 00:00:00 2001 From: James Date: Wed, 30 Nov 2011 19:01:40 -0500 Subject: [PATCH] CC-3074: Give users the choice of which hardware sound API they wish to use (instead of hardcoded to ALSA) - finished everything except LS part(including upgrade and UI) --- .../controllers/PreferenceController.php | 1 + .../application/forms/StreamSetting.php | 14 +++++++++- .../forms/StreamSettingSubForm.php | 1 - .../scripts/preference/stream-setting.phtml | 8 ++++++ airtime_mvc/build/sql/defaultdata.sql | 1 + .../js/airtime/preferences/streamsetting.js | 8 ++++++ .../airtime-2.0.0/airtime-upgrade.php | 1 + .../upgrades/airtime-2.0.0/liquidsoap.cfg.200 | 1 + .../pypo/liquidsoap_scripts/liquidsoap.cfg | 1 + .../pypo/liquidsoap_scripts/ls_script.liq | 28 +++++++++++++++++++ 10 files changed, 62 insertions(+), 2 deletions(-) diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 83bd44748..54a5ef8f4 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -198,6 +198,7 @@ class PreferenceController extends Zend_Controller_Action } $values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata'); + $values['output_sound_device_type'] = $form->getValue('output_sound_device_type'); } if(!$error){ Application_Model_StreamSetting::setStreamSetting($values); diff --git a/airtime_mvc/application/forms/StreamSetting.php b/airtime_mvc/application/forms/StreamSetting.php index c27eea568..afabcd9dd 100644 --- a/airtime_mvc/application/forms/StreamSetting.php +++ b/airtime_mvc/application/forms/StreamSetting.php @@ -25,6 +25,17 @@ class Application_Form_StreamSetting extends Zend_Form $output_sound_device->setAttrib("readonly", true); } $this->addElement($output_sound_device); + + $output_types = array("ALSA"=>"ALSA", "AO"=>"AO", "OSS"=>"OSS", "Portaudio"=>"Portaudio", "Pulseaudio"=>"Pulseaudio"); + $output_type = new Zend_Form_Element_Select('output_sound_device_type'); + $output_type->setLabel("Output Type") + ->setMultiOptions($output_types) + ->setValue($setting['output_sound_device_type']) + ->setDecorators(array('ViewHelper')); + if($setting['output_sound_device'] != "true"){ + $output_type->setAttrib("disabled", "disabled"); + } + $this->addElement($output_type); } $icecast_vorbis_metadata = new Zend_Form_Element_Checkbox('icecast_vorbis_metadata'); @@ -39,7 +50,8 @@ class Application_Form_StreamSetting extends Zend_Form } public function isValid($data){ - $this->populate(array("output_sound_device"=>$data['output_sound_device'], "icecast_vorbis_metadata"=>$data['icecast_vorbis_metadata'])); + $this->populate(array("output_sound_device"=>$data['output_sound_device'], "icecast_vorbis_metadata"=>$data['icecast_vorbis_metadata'], + "output_sound_device_type"=>$data['output_sound_device_type'])); return true; } } diff --git a/airtime_mvc/application/forms/StreamSettingSubForm.php b/airtime_mvc/application/forms/StreamSettingSubForm.php index 96c348775..c004a3bea 100644 --- a/airtime_mvc/application/forms/StreamSettingSubForm.php +++ b/airtime_mvc/application/forms/StreamSettingSubForm.php @@ -68,7 +68,6 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm{ if($disable_all){ $bitrate->setAttrib("disabled", "disabled"); } - $this->addElement($type); $this->addElement($bitrate); $output = new Zend_Form_Element_Select('output'); diff --git a/airtime_mvc/application/views/scripts/preference/stream-setting.phtml b/airtime_mvc/application/views/scripts/preference/stream-setting.phtml index e2e49af59..9ffabfee2 100644 --- a/airtime_mvc/application/views/scripts/preference/stream-setting.phtml +++ b/airtime_mvc/application/views/scripts/preference/stream-setting.phtml @@ -20,6 +20,14 @@
form->getElement('output_sound_device') ?>
+
+ +
+
+ form->getElement('output_sound_device_type') ?> +