From d61b75f105e234927c607f2bcf8886430e6c40dd Mon Sep 17 00:00:00 2001 From: Albert Santoni Date: Tue, 3 Mar 2015 16:08:53 -0500 Subject: [PATCH 1/4] Added a working 4th stream --- .../controllers/PreferenceController.php | 8 +++++++- airtime_mvc/build/sql/defaultdata.sql | 18 ++++++++++++++++++ .../js/airtime/preferences/streamsetting.js | 9 ++++++--- .../pypo/liquidsoap_scripts/liquidsoap.cfg | 18 +++++++++++++++--- .../pypo/liquidsoap_scripts/ls_script.liq | 16 +++++++++++++++- 5 files changed, 61 insertions(+), 8 deletions(-) diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 219e35e01..6a0ba3541 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -223,6 +223,9 @@ class PreferenceController extends Zend_Controller_Action } elseif (strpos($v[0], "s3_data") !== false) { preg_match('/\[(.*)\]/', $v[0], $matches); $s3_data[$matches[1]] = $v[1]; + } elseif (strpos($v[0], "s4_data") !== false) { + preg_match('/\[(.*)\]/', $v[0], $matches); + $s4_data[$matches[1]] = $v[1]; } else { $values[$v[0]] = $v[1]; } @@ -230,6 +233,7 @@ class PreferenceController extends Zend_Controller_Action $values["s1_data"] = $s1_data; $values["s2_data"] = $s2_data; $values["s3_data"] = $s3_data; + $values["s4_data"] = $s4_data; $error = false; if ($form->isValid($values)) { @@ -245,6 +249,7 @@ class PreferenceController extends Zend_Controller_Action $s1_set_admin_pass = !empty($values["s1_data"]["admin_pass"]); $s2_set_admin_pass = !empty($values["s2_data"]["admin_pass"]); $s3_set_admin_pass = !empty($values["s3_data"]["admin_pass"]); + $s4_set_admin_pass = !empty($values["s4_data"]["admin_pass"]); // this goes into cc_pref table Application_Model_Preference::SetStreamLabelFormat($values['streamFormat']); @@ -290,6 +295,7 @@ class PreferenceController extends Zend_Controller_Action "s1_set_admin_pass"=>$s1_set_admin_pass, "s2_set_admin_pass"=>$s2_set_admin_pass, "s3_set_admin_pass"=>$s3_set_admin_pass, + "s4_set_admin_pass"=>$s4_set_admin_pass, )); } else { $live_stream_subform->updateVariables(); @@ -441,7 +447,7 @@ class PreferenceController extends Zend_Controller_Action public function getAdminPasswordStatusAction() { $out = array(); - for ($i=1; $i<=3; $i++) { + for ($i=1; $i<=4; $i++) { if (Application_Model_StreamSetting::getAdminPass('s'.$i)=='') { $out["s".$i] = false; } else { diff --git a/airtime_mvc/build/sql/defaultdata.sql b/airtime_mvc/build/sql/defaultdata.sql index 3c1a60752..438dfc979 100644 --- a/airtime_mvc/build/sql/defaultdata.sql +++ b/airtime_mvc/build/sql/defaultdata.sql @@ -358,3 +358,21 @@ INSERT INTO cc_pref (subjid, keystr, valstr) VALUES (1, 'user_timezone', 'UTC'); INSERT INTO cc_pref (keystr, valstr) VALUES ('import_timestamp', '0'); --end added in 2.5.2 + +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_enable', 'false', 'boolean'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_output', 'icecast', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_name', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_type', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_bitrate', '', 'integer'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_host', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_port', '', 'integer'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_user', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_pass', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_admin_user', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_admin_pass', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_mount', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_url', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_description', '', 'string'); +INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s4_genre', '', 'string'); +INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s4_channels', 'stereo', 'string'); + diff --git a/airtime_mvc/public/js/airtime/preferences/streamsetting.js b/airtime_mvc/public/js/airtime/preferences/streamsetting.js index 7529783a0..0fd0cd90a 100644 --- a/airtime_mvc/public/js/airtime/preferences/streamsetting.js +++ b/airtime_mvc/public/js/airtime/preferences/streamsetting.js @@ -443,7 +443,7 @@ function setSliderForReplayGain(){ $( "#replayGainModifier" ).val( $( "#slider-range-max" ).slider( "value" ) ); } -function setPseudoAdminPassword(s1, s2, s3) { +function setPseudoAdminPassword(s1, s2, s3, s4) { if (s1) { $('#s1_data-admin_pass').val('xxxxxx'); } @@ -453,11 +453,14 @@ function setPseudoAdminPassword(s1, s2, s3) { if (s3) { $('#s3_data-admin_pass').val('xxxxxx'); } + if (s4) { + $('#s4_data-admin_pass').val('xxxxxx'); + } } function getAdminPasswordStatus() { $.ajax({ url: baseUrl+'Preference/get-admin-password-status/format/json', dataType:"json", success:function(data){ - setPseudoAdminPassword(data.s1, data.s2, data.s3); + setPseudoAdminPassword(data.s1, data.s2, data.s3, data.s4); }}); } @@ -476,7 +479,7 @@ $(document).ready(function() { $('#content').empty().append(json.html); setupEventListeners(); setSliderForReplayGain(); - setPseudoAdminPassword(json.s1_set_admin_pass, json.s2_set_admin_pass, json.s3_set_admin_pass); + setPseudoAdminPassword(json.s1_set_admin_pass, json.s2_set_admin_pass, json.s3_set_admin_pass, json.s4_set_admin_pass); }); } }); diff --git a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg index d76e3af3d..bb6c6d88f 100644 --- a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg +++ b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg @@ -10,18 +10,22 @@ output_sound_device_type = "ALSA" s1_output = "icecast" s2_output = "icecast" s3_output = "icecast" +s4_output = "icecast" s1_enable = true s2_enable = false s3_enable = false +s4_enable = false s1_type = "ogg" s2_type = "ogg" s3_type = "mp3" +s4_type = "mp3" s1_bitrate = 128 s2_bitrate = 128 s3_bitrate = 160 +s4_bitrate = 160 ########################################### # Logging settings # @@ -35,31 +39,39 @@ log_file = "/var/log/airtime/pypo-liquidsoap/