Merge branch 'devel' of dev.sourcefabric.org:airtime into devel

This commit is contained in:
Martin Konecny 2012-05-28 17:43:13 -04:00
commit effd28bad1
2 changed files with 93 additions and 85 deletions

View File

@ -6,7 +6,7 @@ class PreferenceController extends Zend_Controller_Action
public function init() public function init()
{ {
/* Initialize action controller here */ /* Initialize action controller here */
$ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('server-browse', 'json') $ajaxContext->addActionContext('server-browse', 'json')
->addActionContext('change-stor-directory', 'json') ->addActionContext('change-stor-directory', 'json')
->addActionContext('reload-watch-directory', 'json') ->addActionContext('reload-watch-directory', 'json')
@ -143,6 +143,8 @@ class PreferenceController extends Zend_Controller_Action
$baseUrl = $request->getBaseUrl(); $baseUrl = $request->getBaseUrl();
$this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/streamsetting.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/streamsetting.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
// get current settings // get current settings
$temp = Application_Model_StreamSetting::getStreamSetting(); $temp = Application_Model_StreamSetting::getStreamSetting();
@ -197,13 +199,12 @@ class PreferenceController extends Zend_Controller_Action
$values = $post_data; $values = $post_data;
if($form->isValid($post_data)){ if($form->isValid($post_data)){
if(Application_Model_Preference::GetPlanLevel() == 'disabled'){ if (!$isSaas) {
$values['output_sound_device'] = $form->getValue('output_sound_device'); $values['output_sound_device'] = $form->getValue('output_sound_device');
$values['output_sound_device_type'] = $form->getValue('output_sound_device_type');
} }
$values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata'); $values['icecast_vorbis_metadata'] = $form->getValue('icecast_vorbis_metadata');
$values['output_sound_device_type'] = $form->getValue('output_sound_device_type');
$values['streamFormat'] = $form->getValue('streamFormat'); $values['streamFormat'] = $form->getValue('streamFormat');
Application_Model_StreamSetting::setStreamSetting($values); Application_Model_StreamSetting::setStreamSetting($values);
@ -214,17 +215,19 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetLiveSteamMasterPassword($values["master_password"]); Application_Model_Preference::SetLiveSteamMasterPassword($values["master_password"]);
Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]); Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
$master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"]; if (!$isSaas) {
$live_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["dj_harbor_input_port"]."/".$values["dj_harbor_input_mount_point"]; $master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"];
$live_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["dj_harbor_input_port"]."/".$values["dj_harbor_input_mount_point"];
Application_Model_Preference::SetMasterDJSourceConnectionURL($master_connection_url); Application_Model_Preference::SetMasterDJSourceConnectionURL($master_connection_url);
Application_Model_Preference::SetLiveDJSourceConnectionURL($live_connection_url); Application_Model_Preference::SetLiveDJSourceConnectionURL($live_connection_url);
// extra info that goes into cc_stream_setting // extra info that goes into cc_stream_setting
Application_Model_StreamSetting::SetMasterLiveSteamPort($values["master_harbor_input_port"]); Application_Model_StreamSetting::SetMasterLiveSteamPort($values["master_harbor_input_port"]);
Application_Model_StreamSetting::SetMasterLiveSteamMountPoint($values["master_harbor_input_mount_point"]); Application_Model_StreamSetting::SetMasterLiveSteamMountPoint($values["master_harbor_input_mount_point"]);
Application_Model_StreamSetting::SetDJLiveSteamPort($values["dj_harbor_input_port"]); Application_Model_StreamSetting::SetDJLiveSteamPort($values["dj_harbor_input_port"]);
Application_Model_StreamSetting::SetDJLiveSteamMountPoint($values["dj_harbor_input_mount_point"]); Application_Model_StreamSetting::SetDJLiveSteamMountPoint($values["dj_harbor_input_mount_point"]);
}
// store stream update timestamp // store stream update timestamp
Application_Model_Preference::SetStreamUpdateTimestamp(); Application_Model_Preference::SetStreamUpdateTimestamp();

View File

@ -2,9 +2,10 @@
class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
{ {
public function init() public function init()
{ {
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
$defaultFade = Application_Model_Preference::GetDefaultTransitionFade(); $defaultFade = Application_Model_Preference::GetDefaultTransitionFade();
if($defaultFade == ""){ if($defaultFade == ""){
$defaultFade = '00.000000'; $defaultFade = '00.000000';
@ -42,42 +43,44 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
$this->addElement($master_password); $this->addElement($master_password);
//liquidsoap harbor.input port //liquidsoap harbor.input port
$m_port = Application_Model_StreamSetting::GetMasterLiveSteamPort(); if (!$isSaas) {
$master_dj_port = new Zend_Form_Element_Text('master_harbor_input_port'); $m_port = Application_Model_StreamSetting::GetMasterLiveSteamPort();
$master_dj_port->setLabel("Master Source Port") $master_dj_port = new Zend_Form_Element_Text('master_harbor_input_port');
->setValue($m_port) $master_dj_port->setLabel("Master Source Port")
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151)))) ->setValue($m_port)
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.'))) ->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
->setDecorators(array('ViewHelper')); ->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
$this->addElement($master_dj_port); ->setDecorators(array('ViewHelper'));
$this->addElement($master_dj_port);
$m_mount = Application_Model_StreamSetting::GetMasterLiveSteamMountPoint();
$master_dj_mount = new Zend_Form_Element_Text('master_harbor_input_mount_point'); $m_mount = Application_Model_StreamSetting::GetMasterLiveSteamMountPoint();
$master_dj_mount->setLabel("Master Source Mount Point") $master_dj_mount = new Zend_Form_Element_Text('master_harbor_input_mount_point');
->setValue($m_mount) $master_dj_mount->setLabel("Master Source Mount Point")
->setValidators(array( ->setValue($m_mount)
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered')))) ->setValidators(array(
->setDecorators(array('ViewHelper')); array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
$this->addElement($master_dj_mount); ->setDecorators(array('ViewHelper'));
$this->addElement($master_dj_mount);
//liquidsoap harbor.input port
$l_port = Application_Model_StreamSetting::GetDJLiveSteamPort(); //liquidsoap harbor.input port
$live_dj_port = new Zend_Form_Element_Text('dj_harbor_input_port'); $l_port = Application_Model_StreamSetting::GetDJLiveSteamPort();
$live_dj_port->setLabel("Show Source Port") $live_dj_port = new Zend_Form_Element_Text('dj_harbor_input_port');
->setValue($l_port) $live_dj_port->setLabel("Show Source Port")
->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151)))) ->setValue($l_port)
->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.'))) ->setValidators(array(new Zend_Validate_Between(array('min'=>1024, 'max'=>49151))))
->setDecorators(array('ViewHelper')); ->addValidator('regex', false, array('pattern'=>'/^[0-9]+$/', 'messages'=>array('regexNotMatch'=>'Only numbers are allowed.')))
$this->addElement($live_dj_port); ->setDecorators(array('ViewHelper'));
$this->addElement($live_dj_port);
$l_mount = Application_Model_StreamSetting::GetDJLiveSteamMountPoint();
$live_dj_mount = new Zend_Form_Element_Text('dj_harbor_input_mount_point'); $l_mount = Application_Model_StreamSetting::GetDJLiveSteamMountPoint();
$live_dj_mount->setLabel("Show Source Mount Point") $live_dj_mount = new Zend_Form_Element_Text('dj_harbor_input_mount_point');
->setValue($l_mount) $live_dj_mount->setLabel("Show Source Mount Point")
->setValidators(array( ->setValue($l_mount)
array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered')))) ->setValidators(array(
->setDecorators(array('ViewHelper')); array('regex', false, array('/^[^ &<>]+$/', 'messages' => 'Invalid character entered'))))
$this->addElement($live_dj_mount); ->setDecorators(array('ViewHelper'));
$this->addElement($live_dj_mount);
}
} }
public function updateVariables(){ public function updateVariables(){
@ -106,45 +109,47 @@ class Application_Form_LiveStreamingPreferences extends Zend_Form_SubForm
} }
public function isValid($data){ public function isValid($data){
$isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled'?false:true;
$isValid = parent::isValid($data); $isValid = parent::isValid($data);
if (!$isSaas) {
$master_harbor_input_port = $data['master_harbor_input_port']; $master_harbor_input_port = $data['master_harbor_input_port'];
$dj_harbor_input_port = $data['dj_harbor_input_port']; $dj_harbor_input_port = $data['dj_harbor_input_port'];
if($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != ""){ if($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != ""){
$element = $this->getElement("dj_harbor_input_port"); $element = $this->getElement("dj_harbor_input_port");
$element->addError("You cannot use same port as Master DJ port."); $element->addError("You cannot use same port as Master DJ port.");
}
if($master_harbor_input_port != ""){
if(is_numeric($master_harbor_input_port)){
if($master_harbor_input_port != Application_Model_StreamSetting::GetMasterLiveSteamPort()){
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$res = socket_bind($sock, 0, $master_harbor_input_port);
if(!$res){
$element = $this->getElement("master_harbor_input_port");
$element->addError("Port '$master_harbor_input_port' is not available.");
$isValid = false;
}
socket_close($sock);
}
}else{
$isValid = false;
} }
} if($master_harbor_input_port != ""){
if($dj_harbor_input_port != ""){ if(is_numeric($master_harbor_input_port)){
if(is_numeric($dj_harbor_input_port)){ if($master_harbor_input_port != Application_Model_StreamSetting::GetMasterLiveSteamPort()){
if($dj_harbor_input_port != Application_Model_StreamSetting::GetDJLiveSteamPort()){ $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $res = socket_bind($sock, 0, $master_harbor_input_port);
$res = socket_bind($sock, 0, $dj_harbor_input_port); if(!$res){
if(!$res){ $element = $this->getElement("master_harbor_input_port");
$element = $this->getElement("dj_harbor_input_port"); $element->addError("Port '$master_harbor_input_port' is not available.");
$element->addError("Port '$dj_harbor_input_port' is not available."); $isValid = false;
$isValid = false; }
socket_close($sock);
} }
socket_close($sock); }else{
$isValid = false;
}
}
if($dj_harbor_input_port != ""){
if(is_numeric($dj_harbor_input_port)){
if($dj_harbor_input_port != Application_Model_StreamSetting::GetDJLiveSteamPort()){
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$res = socket_bind($sock, 0, $dj_harbor_input_port);
if(!$res){
$element = $this->getElement("dj_harbor_input_port");
$element->addError("Port '$dj_harbor_input_port' is not available.");
$isValid = false;
}
socket_close($sock);
}
}else{
$isValid = false;
} }
}else{
$isValid = false;
} }
} }
return $isValid; return $isValid;