sintonia/airtime_mvc/application/models/StreamSetting.php

108 lines
3.3 KiB
PHP
Raw Normal View History

<?php
class Application_Model_StreamSetting {
/* Returns the id's of all streams that are enabled in an array. An
* example of the array returned in JSON notation is ["s1", "s2", "s3"] */
public static function getEnabledStreamIds(){
global $CC_DBC;
$sql = "SELECT * "
."FROM cc_stream_setting "
."WHERE keyname LIKE '%_output' "
."AND value != 'disabled'";
$rows = $CC_DBC->getAll($sql);
$ids = array();
foreach ($rows as $row){
$ids[] = substr($row["keyname"], 0, strpos($row["keyname"], "_"));
}
//Logging::log(print_r($ids, true));
return $ids;
}
/* Returns all information related to a specific stream. An example
* of a stream id is 's1' or 's2'. */
public static function getStreamData($p_streamId){
global $CC_DBC;
$sql = "SELECT * "
."FROM cc_stream_setting "
."WHERE keyname LIKE '${p_streamId}_%'";
$rows = $CC_DBC->getAll($sql);
$data = array();
foreach($rows as $row){
$data[$row["keyname"]] = $row["value"];
}
return $data;
}
public static function getStreamSetting(){
global $CC_DBC;
$sql = "SELECT *"
." FROM cc_stream_setting"
." WHERE keyname not like '%_error'";
$rows = $CC_DBC->getAll($sql);
return $rows;
}
public static function setStreamSetting($data){
global $CC_DBC;
foreach($data as $key=>$d){
if($key == "output_sound_device"){
$v = $d == 1?"true":"false";
$sql = "UPDATE cc_stream_setting SET value='$v' WHERE keyname='$key'";
$CC_DBC->query($sql);
}
else{
$temp = explode('_', $key);
$prefix = $temp[0];
foreach($d as $k=>$v){
$keyname = $prefix."_".$k;
if( $k == 'output'){
if( $d["enable"] == 0){
$v = 'disabled';
}
}
$v = trim($v);
$sql = "UPDATE cc_stream_setting SET value='$v' WHERE keyname='$keyname'";
$CC_DBC->query($sql);
}
}
}
}
public static function setLiquidsoapError($stream_id, $msg){
global $CC_DBC;
$keyname = "s".$stream_id."_liquidsoap_error";
$sql = "SELECT COUNT(*) FROM cc_stream_setting"
." WHERE keyname = '$keyname'";
$result = $CC_DBC->GetOne($sql);
if ($result == 1){
$sql = "UPDATE cc_stream_setting"
." SET value = '$msg'"
." WHERE keyname = '$keyname'";
}else{
$sql = "INSERT INTO cc_stream_setting (keyname, value, type)"
." VALUES ('$keyname', '$msg', 'string')";
}
$res = $CC_DBC->query($sql);
}
public static function getLiquidsoapError($stream_id){
global $CC_DBC;
$keyname = "s".$stream_id."_liquidsoap_error";
$sql = "SELECT value FROM cc_stream_setting"
." WHERE keyname = '$key'";
$result = $CC_DBC->GetOne($sql);
return $result;
}
}