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)
This commit is contained in:
parent
06cbe215a3
commit
043f0c29a1
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -20,6 +20,14 @@
|
|||
<dd id="hardwareOut-element">
|
||||
<?php echo $this->form->getElement('output_sound_device') ?>
|
||||
</dd>
|
||||
<dt id="hardwareOutType-label">
|
||||
<label class="required">
|
||||
<?php echo $this->form->getElement('output_sound_device_type')->getLabel() ?> :
|
||||
</label>
|
||||
</dt>
|
||||
<dd id="hardwareOutType-element">
|
||||
<?php echo $this->form->getElement('output_sound_device_type') ?>
|
||||
</dd>
|
||||
<?php } ?>
|
||||
<dt id="vorbisMetadata-label">
|
||||
<label class="required">
|
||||
|
|
|
@ -8,6 +8,7 @@ INSERT INTO cc_pref("keystr", "valstr") VALUES('max_bitrate', '320');
|
|||
INSERT INTO cc_pref("keystr", "valstr") VALUES('plan_level', 'disabled');
|
||||
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device', 'false', 'boolean');
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device_type', 'ALSA', 'string');
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('icecast_vorbis_metadata', 'false', 'boolean');
|
||||
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_enable', 'true', 'boolean');
|
||||
|
|
|
@ -125,6 +125,14 @@ $(document).ready(function() {
|
|||
rebuildStreamURL($(this))
|
||||
})
|
||||
|
||||
$("#output_sound_device").change(function(){
|
||||
if($(this).is(':checked')){
|
||||
$("select[id=output_sound_device_type]").removeAttr('disabled')
|
||||
}else{
|
||||
$("select[id=output_sound_device_type]").attr('disabled', 'disabled')
|
||||
}
|
||||
})
|
||||
|
||||
$("select[id$=data-type]").change(function(){
|
||||
if($(this).val() == 'ogg'){
|
||||
restrictOggBitrate($(this), true)
|
||||
|
|
|
@ -162,6 +162,7 @@ class AirtimeDatabaseUpgrade{
|
|||
INSERT INTO cc_pref(keystr, valstr) VALUES('plan_level', 'disabled');
|
||||
|
||||
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('output_sound_device', 'false', 'boolean');
|
||||
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('output_sound_device_type', 'ALSA', 'string');
|
||||
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('icecast_vorbis_metadata', 'false', 'boolean');
|
||||
|
||||
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s1_enable', 'true', 'boolean');
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
# Output settings #
|
||||
###########################################
|
||||
output_sound_device = false
|
||||
output_sound_device_type = "ALSA"
|
||||
s1_output = "icecast"
|
||||
s2_output = "icecast"
|
||||
s3_output = "icecast"
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
# Output settings #
|
||||
###########################################
|
||||
output_sound_device = false
|
||||
output_sound_device_type = "ALSA"
|
||||
s1_output = "icecast"
|
||||
s2_output = "icecast"
|
||||
s3_output = "icecast"
|
||||
|
|
|
@ -53,6 +53,34 @@ add_skip_command(s)
|
|||
s = map_metadata(append_title, s)
|
||||
|
||||
if output_sound_device then
|
||||
output.prefered=output.dummy
|
||||
%ifdef output.alsa
|
||||
if output_sound_device_type == "ALSA" then
|
||||
output.prefered=output.alsa
|
||||
end
|
||||
%endif
|
||||
%ifdef output.ao
|
||||
if output_sound_device_type == "AO" then
|
||||
output.prefered=output.ao
|
||||
output.prefered(mksafe(s))
|
||||
end
|
||||
%endif
|
||||
%ifdef output.oss
|
||||
if output_sound_device_type == "OSS" then
|
||||
output.prefered=output.oss
|
||||
end
|
||||
%endif
|
||||
%ifdef output.portaudio
|
||||
if output_sound_device_type == "Portaudio" then
|
||||
output.prefered=output.portaudio
|
||||
end
|
||||
%endif
|
||||
%ifdef output.pulseaudio
|
||||
if output_sound_device_type == "Pulseaudio" then
|
||||
output.prefered=output.pulseaudio
|
||||
end
|
||||
%endif
|
||||
|
||||
ignore(out(s))
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue