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

This commit is contained in:
Martin Konecny 2013-01-09 15:52:45 -05:00
commit a5e7c0197f
106 changed files with 8649 additions and 1389 deletions

View File

@ -10,6 +10,7 @@ require_once 'Preference.php';
require_once "DateHelper.php";
require_once "OsPath.php";
require_once "Database.php";
require_once "Timezone.php";
require_once __DIR__.'/forms/helpers/ValidationTypes.php';
require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';

View File

@ -0,0 +1,31 @@
<?php
class Application_Common_Timezone
{
public static function getTimezones()
{
$regions = array(
'Africa' => DateTimeZone::AFRICA,
'America' => DateTimeZone::AMERICA,
'Antarctica' => DateTimeZone::ANTARCTICA,
'Arctic' => DateTimeZone::ARCTIC,
'Asia' => DateTimeZone::ASIA,
'Atlantic' => DateTimeZone::ATLANTIC,
'Australia' => DateTimeZone::AUSTRALIA,
'Europe' => DateTimeZone::EUROPE,
'Indian' => DateTimeZone::INDIAN,
'Pacific' => DateTimeZone::PACIFIC
);
$tzlist = array();
foreach ($regions as $name => $mask) {
$ids = DateTimeZone::listIdentifiers($mask);
foreach ($ids as $id) {
$tzlist[$id] = str_replace("_", " ", $id);
}
}
return $tzlist;
}
}

View File

@ -32,6 +32,8 @@ define('MDATA_KEY_CONDUCTOR' , 'conductor');
define('MDATA_KEY_LANGUAGE' , 'language');
define('MDATA_KEY_REPLAYGAIN' , 'replay_gain');
define('MDATA_KEY_OWNER_ID' , 'owner_id');
define('MDATA_KEY_CUE_IN' , 'cuein');
define('MDATA_KEY_CUE_OUT' , 'cueout');
define('UI_MDATA_VALUE_FORMAT_FILE' , 'File');
define('UI_MDATA_VALUE_FORMAT_STREAM' , 'live stream');

View File

@ -42,6 +42,7 @@ class ApiController extends Zend_Controller_Action
->addActionContext('notify-webstream-data' , 'json')
->addActionContext('get-stream-parameters' , 'json')
->addActionContext('push-stream-stats' , 'json')
->addActionContext('update-stream-setting-table' , 'json')
->initContext();
}
@ -490,6 +491,7 @@ class ApiController extends Zend_Controller_Action
// If the file already exists we will update and make sure that
// it's marked as 'exists'.
$file->setFileExistsFlag(true);
$file->setFileHiddenFlag(false);
$file->setMetadata($md);
}
if ($md['is_record'] != 0) {
@ -929,7 +931,7 @@ class ApiController extends Zend_Controller_Action
$data_arr = json_decode($data);
if (!is_null($media_id)) {
if (isset($data_arr->title) &&
if (isset($data_arr->title) &&
strlen($data_arr->title) < 1024) {
$previous_metadata = CcWebstreamMetadataQuery::create()
@ -965,7 +967,7 @@ class ApiController extends Zend_Controller_Action
$streams = array("s1", "s2", "s3");
$stream_params = array();
foreach ($streams as $s) {
$stream_params[$s] =
$stream_params[$s] =
Application_Model_StreamSetting::getStreamDataNormalized($s);
}
$this->view->stream_params = $stream_params;
@ -978,5 +980,14 @@ class ApiController extends Zend_Controller_Action
Application_Model_ListenerStat::insertDataPoints($data);
$this->view->data = $data;
}
public function updateStreamSettingTableAction() {
$request = $this->getRequest();
$data = json_decode($request->getParam("data"), true);
foreach ($data as $k=>$v) {
Application_Model_StreamSetting::SetListenerStatError($k, $v);
}
}
}

View File

@ -12,6 +12,7 @@ class LibraryController extends Zend_Controller_Action
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('contents-feed', 'json')
->addActionContext('delete', 'json')
->addActionContext('duplicate', 'json')
->addActionContext('delete-group', 'json')
->addActionContext('context-menu', 'json')
->addActionContext('get-file-metadata', 'html')
@ -194,6 +195,7 @@ class LibraryController extends Zend_Controller_Action
} elseif ($type === "playlist" || $type === "block") {
if ($type === 'playlist') {
$obj = new Application_Model_Playlist($id);
$menu["duplicate"] = array("name" => _("Duplicate Playlist"), "icon" => "edit", "url" => $baseUrl."/library/duplicate");
} elseif ($type === 'block') {
$obj = new Application_Model_Block($id);
if (!$obj->isStatic()) {
@ -216,9 +218,11 @@ class LibraryController extends Zend_Controller_Action
$menu["del"] = array("name"=> _("Delete"), "icon" => "delete", "url" => $baseUrl."/library/delete");
}
} elseif ($type == "stream") {
$webstream = CcWebstreamQuery::create()->findPK($id);
$obj = new Application_Model_Webstream($webstream);
$menu["play"]["mime"] = $webstream->getDbMime();
if (isset($obj_sess->id) && $screen == "playlist") {
if ($isAdminOrPM || $obj->getCreatorId() == $user->getId()) {
if ($obj_sess->type === "playlist") {
@ -339,6 +343,37 @@ class LibraryController extends Zend_Controller_Action
$this->view->message = $message;
}
}
// duplicate playlist
public function duplicateAction(){
$params = $this->getRequest()->getParams();
$id = $params['id'];
$originalPl = new Application_Model_Playlist($id);
$newPl = new Application_Model_Playlist();
$contents = $originalPl->getContents();
foreach ($contents as &$c) {
if ($c['type'] == '0') {
$c[1] = 'audioclip';
} else if ($c['type'] == '2') {
$c[1] = 'block';
} else if ($c['type'] == '1') {
$c[1] = 'stream';
}
$c[0] = $c['item_id'];
}
$newPl->addAudioClips($contents, null, 'begining');
$newPl->setCreator(Application_Model_User::getCurrentUser()->getId());
$newPl->setDescription($originalPl->getDescription());
list($plFadeIn, ) = $originalPl->getFadeInfo(0);
list(, $plFadeOut) = $originalPl->getFadeInfo($originalPl->getSize()-1);
$newPl->setfades($plFadeIn, $plFadeOut);
$newPl->setName("Copy of ".$originalPl->getName());
}
public function contentsFeedAction()
{

View File

@ -47,6 +47,15 @@ class ListenerstatController extends Zend_Controller_Action
'his_time_end' => $end->format("H:i")
));
$errorStatus = Application_Model_StreamSetting::GetAllListenerStatErrors();
Logging::info($errorStatus);
$out = array();
foreach ($errorStatus as $v) {
$key = explode('_listener_stat_error', $v['keyname']);
$out[$key[0]] = $v['value'];
}
$this->view->errorStatus = $out;
$this->view->date_form = $form;
}

View File

@ -4,9 +4,9 @@ class LocaleController extends Zend_Controller_Action
{
public function init()
{
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('general-translation-table', 'json')
->addActionContext('datatables-translation-table', 'json')
$ajaxContext = $this->_helper->getHelper("AjaxContext");
$ajaxContext->addActionContext("general-translation-table", "json")
->addActionContext("datatables-translation-table", "json")
->initContext();
}
@ -20,10 +20,10 @@ class LocaleController extends Zend_Controller_Action
$locale = Application_Model_Preference::GetLocale();
echo "var datatables_dict =" .
file_get_contents(Application_Common_OsPath::join(
$_SERVER['DOCUMENT_ROOT'],
$_SERVER["DOCUMENT_ROOT"],
$baseUrl,
'/js/datatables/i18n/',
$locale.'.txt')
"/js/datatables/i18n/",
$locale.".txt")
);
}
@ -57,6 +57,7 @@ class LocaleController extends Zend_Controller_Action
//"Adding 1 Item" => _("Adding 1 Item"),
//"Adding %s Items" => _("Adding %s Items"),
//library/library.js
"Edit Metadata" => _("Edit Metadata"),
"Add to selected show" => _("Add to selected show"),
"Select" => _("Select"),
"Select this page" => _("Select this page"),
@ -154,6 +155,7 @@ class LocaleController extends Zend_Controller_Action
"Composer" => _("Composer"),
"Copyright" => _("Copyright"),
"All" => _("All"),
"Copied %s row%s to the clipboard" => _("Copied %s row%s to the clipboard"),
//preferences/musicdirs.js
"Choose Storage Folder" => _("Choose Storage Folder"),
"Choose Folder to Watch" => _("Choose Folder to Watch"),
@ -178,6 +180,7 @@ class LocaleController extends Zend_Controller_Action
"If your live streaming client does not ask for a username, this field should be 'source'." => _("If your live streaming client does not ask for a username, this field should be 'source'."),
"If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
=> _("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."),
"This is the admin username and password for Icecast/SHOUTcast to get listener statistics." => _("This is the admin username and password for Icecast/SHOUTcast to get listener statistics."),
//preferences/support-setting.js
"Image must be one of jpg, jpeg, png, or gif" => _("Image must be one of jpg, jpeg, png, or gif"),
//schedule/add-show.js
@ -206,7 +209,7 @@ class LocaleController extends Zend_Controller_Action
//"Error msg: " => _("Error msg: "),
"This show has no scheduled content." => _("This show has no scheduled content."),
//already in schedule/add-show.js
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"),
//"The show instance doesn"t exist anymore!" => _("The show instance doesn"t exist anymore!"),
//schedule/schedule.js
"January" => _("January"),
"February" => _("February"),
@ -256,7 +259,7 @@ class LocaleController extends Zend_Controller_Action
"Ok" => _("Ok"),
"Contents of Show" => _("Contents of Show"),
//already in schedule/add-show.js
//"The show instance doesn't exist anymore!" => _("The show instance doesn't exist anymore!"),
//"The show instance doesn"t exist anymore!" => _("The show instance doesn"t exist anymore!"),
"Remove all content?" => _("Remove all content?"),
//showbuilder/builder.js
"Delete selected item(s)?" => _("Delete selected item(s)?"),
@ -276,8 +279,8 @@ class LocaleController extends Zend_Controller_Action
"Recording From Line In" => _("Recording From Line In"),
"Track preview" => _("Track preview"),
//already in library/spl.js
//"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
//=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."),
//"Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn"t "watched" anymore."
//=> _("Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn"t "watched" anymore."),
"Cannot schedule outside a show." => _("Cannot schedule outside a show."),
"Moving 1 Item" => _("Moving 1 Item"),
"Moving %s Items" => _("Moving %s Items"),
@ -348,8 +351,37 @@ class LocaleController extends Zend_Controller_Action
//timepicker
"Hour" => _("Hour"),
"Minute" => _("Minute"),
"Done" => _("Done")
"Done" => _("Done"),
//plupload ships with translation files but a lot are incomplete
//so we will keep them here to prevent incomplete translations
"Select files" => _("Select files"),
"Add files to the upload queue and click the start button." => _("Add files to the upload queue and click the start button."),
"Filename" => _("Add files to the upload queue and click the start button."),
"Status" => _("Status"),
"Size" => _("Status"),
"Add Files" => _("Add Files"),
"Stop Upload" => _("Stop Upload"),
"Start upload" => _("Start upload"),
"Add files" => _("Add files"),
"Uploaded %d/%d files"=> _("Uploaded %d/%d files"),
"N/A" => _("N/A"),
"Drag files here." => _("Drag files here."),
"File extension error." => _("File extension error."),
"File size error." => _("File size error."),
"File count error." => _("File count error."),
"Init error." => _("Init error."),
"HTTP Error." => _("HTTP Error."),
"Security error." => _("Security error."),
"Generic error." => _("Generic error."),
"IO error." => _("IO error."),
"File: %s" => _("File: %s"),
"Close" => _("Close"),
"%d files queued" => _("%d files queued"),
"File: %f, size: %s, max file size: %m" => _("File: %f, size: %s, max file size: %m"),
"Upload URL might be wrong or doesn't exist" => _("Upload URL might be wrong or doesn't exist"),
"Error: File too large: " => _("Error: File too large: "),
"Error: Invalid file extension: " => _("Error: Invalid file extension: ")
);
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);

View File

@ -44,8 +44,8 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetHeadTitle($values["stationName"], $this->view);
Application_Model_Preference::SetDefaultFade($values["stationDefaultFade"]);
Application_Model_Preference::SetAllow3rdPartyApi($values["thirdPartyApi"]);
Application_Model_Preference::SetLocale($values["locale"]);
Application_Model_Preference::SetTimezone($values["timezone"]);
Application_Model_Preference::SetDefaultLocale($values["locale"]);
Application_Model_Preference::SetDefaultTimezone($values["timezone"]);
Application_Model_Preference::SetWeekStartDay($values["weekStartDay"]);
Application_Model_Preference::SetEnableSystemEmail($values["enableSystemEmail"]);
@ -66,7 +66,6 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetSoundCloudGenre($values["SoundCloudGenre"]);
Application_Model_Preference::SetSoundCloudTrackType($values["SoundCloudTrackType"]);
Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]);
Application_Model_Preference::setReplayGainModifier($values["replayGainModifier"]);
$this->view->statusMsg = "<div class='success'>". _("Preferences updated.")."</div>";
$this->view->form = $form;
@ -256,6 +255,7 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetDefaultTransitionFade($values["transition_fade"]);
Application_Model_Preference::SetAutoTransition($values["auto_transition"]);
Application_Model_Preference::SetAutoSwitch($values["auto_switch"]);
Application_Model_Preference::setReplayGainModifier($values["replayGainModifier"]);
if (!Application_Model_Preference::GetMasterDjConnectionUrlOverride()) {
$master_connection_url = "http://".$_SERVER['SERVER_NAME'].":".$values["master_harbor_input_port"]."/".$values["master_harbor_input_mount_point"];
@ -284,6 +284,7 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_StreamSetting::setMasterLiveStreamMountPoint($values["master_harbor_input_mount_point"]);
Application_Model_StreamSetting::setDjLiveStreamPort($values["dj_harbor_input_port"]);
Application_Model_StreamSetting::setDjLiveStreamMountPoint($values["dj_harbor_input_mount_point"]);
Application_Model_StreamSetting::setOffAirMeta($values['offAirMeta']);
// store stream update timestamp
Application_Model_Preference::SetStreamUpdateTimestamp();

View File

@ -56,9 +56,11 @@ class UserController extends Zend_Controller_Action
die(json_encode(array("valid"=>"false", "html"=>$this->view->render('user/add-user.phtml'))));
} elseif ($form->validateLogin($formData)) {
$user = new Application_Model_User($formData['user_id']);
if (empty($formData['user_id'])) {
$user->setLogin($formData['login']);
}
$user->setFirstName($formData['first_name']);
$user->setLastName($formData['last_name']);
$user->setLogin($formData['login']);
// We don't allow 6 x's as a password.
// The reason is because we that as a password placeholder
// on the client side.
@ -72,6 +74,12 @@ class UserController extends Zend_Controller_Action
$user->setJabber($formData['jabber']);
$user->save();
// Language and timezone settings are saved on a per-user basis
// By default, the default language, and timezone setting on
// preferences page is what gets assigned.
Application_Model_Preference::SetUserLocale($user->getId());
Application_Model_Preference::SetUserTimezone($user->getId());
$form->reset();
$this->view->form = $form;
@ -138,7 +146,6 @@ class UserController extends Zend_Controller_Action
$user = new Application_Model_User($formData['cu_user_id']);
$user->setFirstName($formData['cu_first_name']);
$user->setLastName($formData['cu_last_name']);
$user->setLogin($formData['cu_login']);
// We don't allow 6 x's as a password.
// The reason is because we use that as a password placeholder
// on the client side.
@ -150,6 +157,8 @@ class UserController extends Zend_Controller_Action
$user->setSkype($formData['cu_skype']);
$user->setJabber($formData['cu_jabber']);
$user->save();
Application_Model_Preference::SetUserLocale($user->getId(), $formData['cu_locale']);
Application_Model_Preference::SetUserTimezone($user->getId(), $formData['cu_timezone']);
$this->view->successMessage = "<div class='success'>"._("User updated successfully!")."</div>";
}
$this->view->form = $form;

View File

@ -152,7 +152,10 @@ class Zend_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
$resourceName .= $controller;
/** Check if the controller/action can be accessed by the current user */
if (!$this->getAcl()->isAllowed($this->_roleName, $resourceName, $request->getActionName())) {
if (!$this->getAcl()->has($resourceName)
|| !$this->getAcl()->isAllowed($this->_roleName,
$resourceName,
$request->getActionName())) {
/** Redirect to access denied page */
$this->denyAccess();
}

View File

@ -12,7 +12,8 @@ class Application_Form_EditUser extends Zend_Form
* */
$currentUser = Application_Model_User::getCurrentUser();
$userData = Application_Model_User::GetUserData($currentUser->getId());
$currentUserId = $currentUser->getId();
$userData = Application_Model_User::GetUserData($currentUserId);
$notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
$emailValidator = Application_Form_Helper_ValidationTypes::overrideEmailAddressValidator();
@ -29,6 +30,7 @@ class Application_Form_EditUser extends Zend_Form
$login->setLabel(_('Username:'));
$login->setValue($userData["login"]);
$login->setAttrib('class', 'input_text');
$login->setAttrib('readonly', 'readonly');
$login->setRequired(true);
$login->addValidator($notEmptyValidator);
$login->addFilter('StringTrim');
@ -96,14 +98,19 @@ class Application_Form_EditUser extends Zend_Form
$jabber->setDecorators(array('viewHelper'));
$this->addElement($jabber);
/*
$saveBtn = new Zend_Form_Element_Button('cu_save_user');
$saveBtn->setAttrib('class', 'btn btn-small right-floated');
$saveBtn->setIgnore(true);
$saveBtn->setLabel(_('Save'));
$saveBtn->setDecorators(array('viewHelper'));
$this->addElement($saveBtn);
*/
$locale = new Zend_Form_Element_Select("cu_locale");
$locale->setLabel(_("Language:"));
$locale->setMultiOptions(Application_Model_Locale::getLocales());
$locale->setValue(Application_Model_Preference::GetUserLocale($currentUserId));
$locale->setDecorators(array('ViewHelper'));
$this->addElement($locale);
$timezone = new Zend_Form_Element_Select("cu_timezone");
$timezone->setLabel(_("Timezone:"));
$timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
$timezone->setValue(Application_Model_Preference::GetUserTimezone($currentUserId));
$timezone->setDecorators(array('ViewHelper'));
$this->addElement($timezone);
}
public function validateLogin($p_login, $p_userId) {

View File

@ -51,19 +51,19 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
$third_party_api->setValue(Application_Model_Preference::GetAllow3rdPartyApi());
$third_party_api->setDecorators(array('ViewHelper'));
$this->addElement($third_party_api);
$locale = new Zend_Form_Element_Select("locale");
$locale->setLabel(_("Language"));
$locale->setLabel(_("Default Interface Language"));
$locale->setMultiOptions(Application_Model_Locale::getLocales());
$locale->setValue(Application_Model_Preference::GetLocale());
$locale->setValue(Application_Model_Preference::GetDefaultLocale());
$locale->setDecorators(array('ViewHelper'));
$this->addElement($locale);
/* Form Element for setting the Timezone */
$timezone = new Zend_Form_Element_Select("timezone");
$timezone->setLabel(_("Timezone"));
$timezone->setMultiOptions($this->getTimezones());
$timezone->setValue(Application_Model_Preference::GetTimezone());
$timezone->setLabel(_("Default Interface Timezone"));
$timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
$timezone->setValue(Application_Model_Preference::GetDefaultTimezone());
$timezone->setDecorators(array('ViewHelper'));
$this->addElement($timezone);
@ -74,40 +74,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
$week_start_day->setValue(Application_Model_Preference::GetWeekStartDay());
$week_start_day->setDecorators(array('ViewHelper'));
$this->addElement($week_start_day);
$replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
$replay_gain->setLabel(_("Replay Gain Modifier"))
->setValue(Application_Model_Preference::getReplayGainModifier())
->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))
->setDecorators(array('ViewHelper'));
$this->addElement($replay_gain);
}
private function getTimezones()
{
$regions = array(
'Africa' => DateTimeZone::AFRICA,
'America' => DateTimeZone::AMERICA,
'Antarctica' => DateTimeZone::ANTARCTICA,
'Arctic' => DateTimeZone::ARCTIC,
'Asia' => DateTimeZone::ASIA,
'Atlantic' => DateTimeZone::ATLANTIC,
'Australia' => DateTimeZone::AUSTRALIA,
'Europe' => DateTimeZone::EUROPE,
'Indian' => DateTimeZone::INDIAN,
'Pacific' => DateTimeZone::PACIFIC
);
$tzlist = array();
foreach ($regions as $name => $mask) {
$ids = DateTimeZone::listIdentifiers($mask);
foreach ($ids as $id) {
$tzlist[$id] = str_replace("_", " ", $id);
}
}
return $tzlist;
}
private function getWeekStartDays()

View File

@ -58,6 +58,19 @@ class Application_Form_StreamSetting extends Zend_Form
$stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat());
$stream_format->setDecorators(array('ViewHelper'));
$this->addElement($stream_format);
$offAirMeta = new Zend_Form_Element_Text('offAirMeta');
$offAirMeta->setLabel(_('Off Air Meatadata'))
->setValue(Application_Model_StreamSetting::getOffAirMeta())
->setDecorators(array('ViewHelper'));
$this->addElement($offAirMeta);
$replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
$replay_gain->setLabel(_("Replay Gain Modifier"))
->setValue(Application_Model_Preference::getReplayGainModifier())
->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))
->setDecorators(array('ViewHelper'));
$this->addElement($replay_gain);
}
public function isValid($data)

View File

@ -190,6 +190,30 @@ class Application_Form_StreamSettingSubForm extends Zend_Form_SubForm
}
$user->setAttrib('alt', 'regular_text');
$this->addElement($user);
$adminUser = new Zend_Form_Element_Text('admin_user');
$adminUser->setLabel(_("Admin User"))
->setValue(Application_Model_StreamSetting::getAdminUser($prefix))
->setValidators(array(
array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))
->setDecorators(array('ViewHelper'));
if ($disable_all) {
$adminUser->setAttrib("disabled", "disabled");
}
$adminUser->setAttrib('alt', 'regular_text');
$this->addElement($adminUser);
$adminPass = new Zend_Form_Element_Text('admin_pass');
$adminPass->setLabel(_("Admin Password"))
->setValue(Application_Model_StreamSetting::getAdminPass($prefix))
->setValidators(array(
array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))
->setDecorators(array('ViewHelper'));
if ($disable_all) {
$adminPass->setAttrib("disabled", "disabled");
}
$adminPass->setAttrib('alt', 'regular_text');
$this->addElement($adminPass);
$liquidsopa_error_msg = '<div class="stream-status status-info"><h3>'._('Getting information from the server...').'</h3></div>';

View File

@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo _("Audio Player")?></title>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head>
<body>

View File

@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo _("Live stream") ?></title>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head>
<body>

View File

@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
<?php $baseUrl = Application_Common_OsPath::getBaseDir(); ?>
</head>
@ -24,7 +24,7 @@
<div class="personal-block solo">
<ul>
<li>
<a id="current-user" href="#"><span class="name"><?php echo $this->loggedInAs()?></span></a> | <a href=<?php echo $baseUrl . "/Login/logout"?>><?php echo _("Logout")?></a>
<a id="current-user" href=<?php echo $baseUrl . "/User/edit-user"?>><span class="name"><?php echo $this->loggedInAs()?></span></a> | <a href=<?php echo $baseUrl . "/Login/logout"?>><?php echo _("Logout")?></a>
</li>
</ul>
</div>

View File

@ -3,8 +3,8 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php echo $this->headTitle() ?>
<?php echo $this->headScript() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo isset($this->google_analytics)?$this->google_analytics:"" ?>
</head>
<body>

View File

@ -400,7 +400,8 @@ SQL;
$entry["id"] = $file->getDbId();
$entry["pos"] = $pos;
$entry["cliplength"] = $file->getDbLength();
$entry["cueout"] = $file->getDbLength();
$entry["cueout"] = $file->getDbCueout();
$entry["cuein"] = $file->getDbCuein();
return $entry;
} else {

View File

@ -395,7 +395,10 @@ SQL;
$entry["id"] = $obj->getDbId();
$entry["pos"] = $pos;
$entry["cliplength"] = $obj->getDbLength();
$entry["cueout"] = $obj->getDbLength();
if ($obj instanceof CcFiles && $obj) {
$entry["cuein"] = $obj->getDbCuein();
$entry["cueout"] = $obj->getDbCueout();
}
$entry["ftype"] = $objType;
}
@ -635,7 +638,7 @@ SQL;
//setting it to nonNull for checks down below
$fadeIn = $fadeIn?'00:00:'.$fadeIn:$fadeIn;
$fadeOut = $fadeOut?'00:00:'.$fadeOut:$fadeOut;
$this->con->beginTransaction();
try {
@ -646,7 +649,6 @@ SQL;
}
$clipLength = $row->getDbCliplength();
if (!is_null($fadeIn)) {
$sql = "SELECT :fadein::INTERVAL > INTERVAL '{$clipLength}'";
@ -665,11 +667,9 @@ SQL;
}
$row->setDbFadeout($fadeOut);
}
$row->save($this->con);
$this->pl->setDbMtime(new DateTime("now", new DateTimeZone("UTC")));
$this->pl->save($this->con);
$this->con->commit();
} catch (Exception $e) {
$this->con->rollback();
@ -690,7 +690,6 @@ SQL;
$this->changeFadeInfo($row->getDbId(), $fadein, null);
}
if (isset($fadeout)) {
Logging::info("Setting playlist fade out {$fadeout}");
$row = CcPlaylistcontentsQuery::create()

View File

@ -3,7 +3,12 @@
class Application_Model_Preference
{
private static function setValue($key, $value, $isUserValue = false)
/**
*
* @param integer $userId is not null when we are setting a locale for a specific user
* @param boolean $isUserValue is true when we are setting a value for the current user
*/
private static function setValue($key, $value, $isUserValue = false, $userId = null)
{
try {
//called from a daemon process
@ -22,9 +27,12 @@ class Application_Model_Preference
$paramMap[':key'] = $key;
//For user specific preference, check if id matches as well
if ($isUserValue) {
if ($isUserValue && is_null($userId)) {
$sql .= " AND subjid = :id";
$paramMap[':id'] = $id;
} else if (!is_null($userId)) {
$sql .= " AND subjid= :id";
$paramMap[':id'] = $userId;
}
$result = Application_Common_Database::prepareAndExecute($sql, $paramMap, 'column');
@ -42,7 +50,11 @@ class Application_Model_Preference
$sql = "UPDATE cc_pref"
. " SET valstr = :value"
. " WHERE keystr = :key AND subjid = :id";
$paramMap[':id'] = $id;
if (is_null($userId)) {
$paramMap[':id'] = $id;
} else {
$paramMap[':id'] = $userId;
}
}
} else {
// result not found
@ -54,7 +66,11 @@ class Application_Model_Preference
// user pref
$sql = "INSERT INTO cc_pref (subjid, keystr, valstr)"
." VALUES (:id, :key, :value)";
$paramMap[':id'] = $id;
if (is_null($userId)) {
$paramMap[':id'] = $id;
} else {
$paramMap[':id'] = $userId;
}
}
}
$paramMap[':key'] = $key;
@ -418,27 +434,80 @@ class Application_Model_Preference
return self::getValue("description");
}
public static function SetTimezone($timezone)
public static function SetDefaultTimezone($timezone)
{
self::setValue("timezone", $timezone);
date_default_timezone_set($timezone);
}
public static function GetTimezone()
public static function GetDefaultTimezone()
{
return self::getValue("timezone");
}
public static function SetLocale($locale)
public static function SetUserTimezone($userId, $timezone = null)
{
// When a new user is created they will get the default timezone
// setting which the admin sets on preferences page
if (is_null($timezone)) {
$timezone = self::GetDefaultTimezone();
}
self::setValue("user_".$userId."_timezone", $timezone, true, $userId);
}
public static function GetUserTimezone($id)
{
return self::getValue("user_".$id."_timezone", true);
}
public static function GetTimezone()
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$id = $auth->getIdentity()->id;
return self::GetUserTimezone($id);
} else {
return self::GetDefaultTimezone();
}
}
// This is the language setting on preferences page
public static function SetDefaultLocale($locale)
{
self::setValue("locale", $locale);
}
public static function GetLocale()
public static function GetDefaultLocale()
{
return self::getValue("locale");
}
public static function GetUserLocale($id)
{
return self::getValue("user_".$id."_locale", true);
}
public static function SetUserLocale($userId, $locale = null)
{
// When a new user is created they will get the default locale
// setting which the admin sets on preferences page
if (is_null($locale)) {
$locale = self::GetDefaultLocale();
}
self::setValue("user_".$userId."_locale", $locale, true, $userId);
}
public static function GetLocale()
{
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$id = $auth->getIdentity()->id;
return self::GetUserLocale($id);
} else {
return self::GetDefaultLocale();
}
}
public static function SetStationLogo($imagePath)
{
if (!empty($imagePath)) {

View File

@ -143,7 +143,8 @@ class Application_Model_Scheduler
$data = $this->fileInfo;
$data["id"] = $id;
$data["cliplength"] = $file->getDbLength();
$data["cueout"] = $file->getDbLength();
$data["cuein"] = $file->getDbCuein();
$data["cueout"] = $file->getDbCueout();
$defaultFade = Application_Model_Preference::GetDefaultFade();
if (isset($defaultFade)) {

View File

@ -1801,6 +1801,8 @@ SQL;
$options["show_empty"] = (array_key_exists($show['instance_id'],
$content_count)) ? 0 : 1;
$options["show_partial_filled"] = $showInstance->showPartialFilled();
$events[] = &self::makeFullCalendarEvent($show, $options,
$startsDT, $endsDT, $startsEpochStr, $endsEpochStr);

View File

@ -687,6 +687,22 @@ SQL;
}
public function showPartialFilled()
{
$sql = <<<SQL
SELECT time_filled > '00:00:00'
AND time_filled < ends - starts
AND file_id IS null AS partial_filled
FROM cc_show_instances
WHERE id = :instance_id
SQL;
$res = Application_Common_Database::prepareAndExecute($sql,
array(':instance_id' => $this->_instanceId), 'all');
return $res[0]["partial_filled"];
}
public function showEmpty()
{
$sql = <<<SQL

View File

@ -48,7 +48,9 @@ class Application_Model_StoredFile
"language" => "DbLanguage",
"replay_gain" => "DbReplayGain",
"directory" => "DbDirectory",
"owner_id" => "DbOwnerId"
"owner_id" => "DbOwnerId",
"cuein" => "DbCueIn",
"cueout" => "DbCueOut",
);
public function getId()
@ -438,7 +440,7 @@ SQL;
return "flac";
} elseif ($mime == "audio/mp4") {
return "mp4";
} else {
} else {
throw new Exception("Unknown $mime");
}
}
@ -559,10 +561,10 @@ SQL;
public static function Recall($p_id=null, $p_gunid=null, $p_md5sum=null,
$p_filepath=null) {
if( isset($p_id ) ) {
if( isset($p_id ) ) {
$f = CcFilesQuery::create()->findPK(intval($p_id));
return is_null($f) ? null : self::createWithFile($f);
} elseif ( isset($p_gunid) ) {
} elseif ( isset($p_gunid) ) {
throw new Exception("You should never use gunid ($gunid) anymore");
} elseif ( isset($p_md5sum) ) {
throw new Exception("Searching by md5($p_md5sum) is disabled");
@ -709,6 +711,11 @@ SQL;
$blSelect[] = "NULL::VARCHAR AS ".$key;
$fileSelect[] = $key;
$streamSelect[] = "url AS ".$key;
} else if ($key == "mime") {
$plSelect[] = "NULL::VARCHAR AS ".$key;
$blSelect[] = "NULL::VARCHAR AS ".$key;
$fileSelect[] = $key;
$streamSelect[] = $key;
} else {
$plSelect[] = "NULL::text AS ".$key;
$blSelect[] = "NULL::text AS ".$key;
@ -790,7 +797,7 @@ SQL;
//generalized within the project access to zend view methods
//to access url helpers is needed.
// TODO : why is there inline html here? breaks abstraction and is
// TODO : why is there inline html here? breaks abstraction and is
// ugly
if ($type == "au") {
$row['audioFile'] = $row['id'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION);
@ -1038,7 +1045,7 @@ SQL;
$sql = <<<SQL
SELECT filepath AS fp
FROM CC_FILES AS f
WHERE f.directory = :dir_id
WHERE f.directory = :dir_id
SQL;
# TODO : the option $all is deprecated now and is always true.
@ -1177,6 +1184,11 @@ SQL;
$this->_file->setDbFileExists($flag)
->save();
}
public function setFileHiddenFlag($flag)
{
$this->_file->setDbHidden($flag)
->save();
}
public function setSoundCloudUploadTime($time)
{
$this->_file->setDbSoundCloundUploadTime($time)
@ -1185,7 +1197,7 @@ SQL;
// This method seems to be unsued everywhere so I've commented it out
// If it's absence does not have any effect then it will be completely
// If it's absence does not have any effect then it will be completely
// removed soon
//public function getFileExistsFlag()
//{

View File

@ -163,7 +163,7 @@ class Application_Model_StreamSetting
$con = Propel::getConnection();
$sql = "SELECT *"
." FROM cc_stream_setting"
." WHERE keyname not like '%_error'";
." WHERE keyname not like '%_error' AND keyname not like '%_admin_%'";
$rows = $con->query($sql)->fetchAll();
@ -433,4 +433,37 @@ class Application_Model_StreamSetting
{
return self::getValue("dj_live_stream_mp");
}
public static function getAdminUser($stream){
return self::getValue($stream."_admin_user");
}
public static function setAdminUser($stream, $v){
self::setValue($stream."_admin_user", $v, "string");
}
public static function getAdminPass($stream){
return self::getValue($stream."_admin_pass");
}
public static function setAdminPass($stream, $v){
self::setValue($stream."_admin_pass", $v, "string");
}
public static function getOffAirMeta(){
return self::getValue("off_air_meta");
}
public static function setOffAirMeta($offAirMeta){
self::setValue("off_air_meta", $offAirMeta, "string");
}
public static function GetAllListenerStatErrors(){
$sql = "SELECT * FROM cc_stream_setting WHERE keyname like :p1";
return Application_Common_Database::prepareAndExecute($sql, array(':p1'=>'%_listener_stat_error'));
}
public static function SetListenerStatError($key, $v) {
self::setValue($key, $v, 'string');
}
}

View File

@ -68,7 +68,8 @@ class CcPlaylistcontents extends BaseCcPlaylistcontents {
$this->fadein = $dt->format('H:i:s').".".$microsecond;
}
$this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEIN;
$this->save();
return $this;
} // setDbFadein()
@ -105,7 +106,8 @@ class CcPlaylistcontents extends BaseCcPlaylistcontents {
$this->fadeout = $dt->format('H:i:s').".".$microsecond;
}
$this->modifiedColumns[] = CcPlaylistcontentsPeer::FADEOUT;
$this->save();
return $this;
} // setDbFadeout()

View File

@ -102,6 +102,8 @@ class CcFilesTableMap extends TableMap {
$this->addColumn('SOUNDCLOUD_UPLOAD_TIME', 'DbSoundCloundUploadTime', 'TIMESTAMP', false, 6, null);
$this->addColumn('REPLAY_GAIN', 'DbReplayGain', 'NUMERIC', false, null, null);
$this->addForeignKey('OWNER_ID', 'DbOwnerId', 'INTEGER', 'cc_subjs', 'ID', false, null, null);
$this->addColumn('CUEIN', 'DbCuein', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('CUEOUT', 'DbCueout', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('HIDDEN', 'DbHidden', 'BOOLEAN', false, null, false);
// validators
} // initialize()

View File

@ -416,6 +416,20 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
*/
protected $owner_id;
/**
* The value for the cuein field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cuein;
/**
* The value for the cueout field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cueout;
/**
* The value for the hidden field.
* Note: this column has a database default value of: false
@ -488,6 +502,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->currentlyaccessing = 0;
$this->length = '00:00:00';
$this->file_exists = true;
$this->cuein = '00:00:00';
$this->cueout = '00:00:00';
$this->hidden = false;
}
@ -1233,6 +1249,26 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this->owner_id;
}
/**
* Get the [cuein] column value.
*
* @return string
*/
public function getDbCuein()
{
return $this->cuein;
}
/**
* Get the [cueout] column value.
*
* @return string
*/
public function getDbCueout()
{
return $this->cueout;
}
/**
* Get the [hidden] column value.
*
@ -2651,6 +2687,46 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this;
} // setDbOwnerId()
/**
* Set the value of [cuein] column.
*
* @param string $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbCuein($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->cuein !== $v || $this->isNew()) {
$this->cuein = $v;
$this->modifiedColumns[] = CcFilesPeer::CUEIN;
}
return $this;
} // setDbCuein()
/**
* Set the value of [cueout] column.
*
* @param string $v new value
* @return CcFiles The current object (for fluent API support)
*/
public function setDbCueout($v)
{
if ($v !== null) {
$v = (string) $v;
}
if ($this->cueout !== $v || $this->isNew()) {
$this->cueout = $v;
$this->modifiedColumns[] = CcFilesPeer::CUEOUT;
}
return $this;
} // setDbCueout()
/**
* Set the value of [hidden] column.
*
@ -2713,6 +2789,14 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return false;
}
if ($this->cuein !== '00:00:00') {
return false;
}
if ($this->cueout !== '00:00:00') {
return false;
}
if ($this->hidden !== false) {
return false;
}
@ -2803,7 +2887,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->soundcloud_upload_time = ($row[$startcol + 61] !== null) ? (string) $row[$startcol + 61] : null;
$this->replay_gain = ($row[$startcol + 62] !== null) ? (string) $row[$startcol + 62] : null;
$this->owner_id = ($row[$startcol + 63] !== null) ? (int) $row[$startcol + 63] : null;
$this->hidden = ($row[$startcol + 64] !== null) ? (boolean) $row[$startcol + 64] : null;
$this->cuein = ($row[$startcol + 64] !== null) ? (string) $row[$startcol + 64] : null;
$this->cueout = ($row[$startcol + 65] !== null) ? (string) $row[$startcol + 65] : null;
$this->hidden = ($row[$startcol + 66] !== null) ? (boolean) $row[$startcol + 66] : null;
$this->resetModified();
$this->setNew(false);
@ -2812,7 +2898,7 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->ensureConsistency();
}
return $startcol + 65; // 65 = CcFilesPeer::NUM_COLUMNS - CcFilesPeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 67; // 67 = CcFilesPeer::NUM_COLUMNS - CcFilesPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating CcFiles object", $e);
@ -3438,6 +3524,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
return $this->getDbOwnerId();
break;
case 64:
return $this->getDbCuein();
break;
case 65:
return $this->getDbCueout();
break;
case 66:
return $this->getDbHidden();
break;
default:
@ -3528,7 +3620,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$keys[61] => $this->getDbSoundCloundUploadTime(),
$keys[62] => $this->getDbReplayGain(),
$keys[63] => $this->getDbOwnerId(),
$keys[64] => $this->getDbHidden(),
$keys[64] => $this->getDbCuein(),
$keys[65] => $this->getDbCueout(),
$keys[66] => $this->getDbHidden(),
);
if ($includeForeignObjects) {
if (null !== $this->aFkOwner) {
@ -3764,6 +3858,12 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->setDbOwnerId($value);
break;
case 64:
$this->setDbCuein($value);
break;
case 65:
$this->setDbCueout($value);
break;
case 66:
$this->setDbHidden($value);
break;
} // switch()
@ -3854,7 +3954,9 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
if (array_key_exists($keys[61], $arr)) $this->setDbSoundCloundUploadTime($arr[$keys[61]]);
if (array_key_exists($keys[62], $arr)) $this->setDbReplayGain($arr[$keys[62]]);
if (array_key_exists($keys[63], $arr)) $this->setDbOwnerId($arr[$keys[63]]);
if (array_key_exists($keys[64], $arr)) $this->setDbHidden($arr[$keys[64]]);
if (array_key_exists($keys[64], $arr)) $this->setDbCuein($arr[$keys[64]]);
if (array_key_exists($keys[65], $arr)) $this->setDbCueout($arr[$keys[65]]);
if (array_key_exists($keys[66], $arr)) $this->setDbHidden($arr[$keys[66]]);
}
/**
@ -3930,6 +4032,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
if ($this->isColumnModified(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME)) $criteria->add(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME, $this->soundcloud_upload_time);
if ($this->isColumnModified(CcFilesPeer::REPLAY_GAIN)) $criteria->add(CcFilesPeer::REPLAY_GAIN, $this->replay_gain);
if ($this->isColumnModified(CcFilesPeer::OWNER_ID)) $criteria->add(CcFilesPeer::OWNER_ID, $this->owner_id);
if ($this->isColumnModified(CcFilesPeer::CUEIN)) $criteria->add(CcFilesPeer::CUEIN, $this->cuein);
if ($this->isColumnModified(CcFilesPeer::CUEOUT)) $criteria->add(CcFilesPeer::CUEOUT, $this->cueout);
if ($this->isColumnModified(CcFilesPeer::HIDDEN)) $criteria->add(CcFilesPeer::HIDDEN, $this->hidden);
return $criteria;
@ -4055,6 +4159,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$copyObj->setDbSoundCloundUploadTime($this->soundcloud_upload_time);
$copyObj->setDbReplayGain($this->replay_gain);
$copyObj->setDbOwnerId($this->owner_id);
$copyObj->setDbCuein($this->cuein);
$copyObj->setDbCueout($this->cueout);
$copyObj->setDbHidden($this->hidden);
if ($deepCopy) {
@ -4958,6 +5064,8 @@ abstract class BaseCcFiles extends BaseObject implements Persistent
$this->soundcloud_upload_time = null;
$this->replay_gain = null;
$this->owner_id = null;
$this->cuein = null;
$this->cueout = null;
$this->hidden = null;
$this->alreadyInSave = false;
$this->alreadyInValidation = false;

View File

@ -26,7 +26,7 @@ abstract class BaseCcFilesPeer {
const TM_CLASS = 'CcFilesTableMap';
/** The total number of columns. */
const NUM_COLUMNS = 65;
const NUM_COLUMNS = 67;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@ -223,6 +223,12 @@ abstract class BaseCcFilesPeer {
/** the column name for the OWNER_ID field */
const OWNER_ID = 'cc_files.OWNER_ID';
/** the column name for the CUEIN field */
const CUEIN = 'cc_files.CUEIN';
/** the column name for the CUEOUT field */
const CUEOUT = 'cc_files.CUEOUT';
/** the column name for the HIDDEN field */
const HIDDEN = 'cc_files.HIDDEN';
@ -242,12 +248,12 @@ abstract class BaseCcFilesPeer {
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbState', 'DbCurrentlyaccessing', 'DbEditedby', 'DbMtime', 'DbUtime', 'DbLPtime', 'DbMd5', 'DbTrackTitle', 'DbArtistName', 'DbBitRate', 'DbSampleRate', 'DbFormat', 'DbLength', 'DbAlbumTitle', 'DbGenre', 'DbComments', 'DbYear', 'DbTrackNumber', 'DbChannels', 'DbUrl', 'DbBpm', 'DbRating', 'DbEncodedBy', 'DbDiscNumber', 'DbMood', 'DbLabel', 'DbComposer', 'DbEncoder', 'DbChecksum', 'DbLyrics', 'DbOrchestra', 'DbConductor', 'DbLyricist', 'DbOriginalLyricist', 'DbRadioStationName', 'DbInfoUrl', 'DbArtistUrl', 'DbAudioSourceUrl', 'DbRadioStationUrl', 'DbBuyThisUrl', 'DbIsrcNumber', 'DbCatalogNumber', 'DbOriginalArtist', 'DbCopyright', 'DbReportDatetime', 'DbReportLocation', 'DbReportOrganization', 'DbSubject', 'DbContributor', 'DbLanguage', 'DbFileExists', 'DbSoundcloudId', 'DbSoundcloudErrorCode', 'DbSoundcloudErrorMsg', 'DbSoundcloudLinkToFile', 'DbSoundCloundUploadTime', 'DbReplayGain', 'DbOwnerId', 'DbHidden', ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbState', 'dbCurrentlyaccessing', 'dbEditedby', 'dbMtime', 'dbUtime', 'dbLPtime', 'dbMd5', 'dbTrackTitle', 'dbArtistName', 'dbBitRate', 'dbSampleRate', 'dbFormat', 'dbLength', 'dbAlbumTitle', 'dbGenre', 'dbComments', 'dbYear', 'dbTrackNumber', 'dbChannels', 'dbUrl', 'dbBpm', 'dbRating', 'dbEncodedBy', 'dbDiscNumber', 'dbMood', 'dbLabel', 'dbComposer', 'dbEncoder', 'dbChecksum', 'dbLyrics', 'dbOrchestra', 'dbConductor', 'dbLyricist', 'dbOriginalLyricist', 'dbRadioStationName', 'dbInfoUrl', 'dbArtistUrl', 'dbAudioSourceUrl', 'dbRadioStationUrl', 'dbBuyThisUrl', 'dbIsrcNumber', 'dbCatalogNumber', 'dbOriginalArtist', 'dbCopyright', 'dbReportDatetime', 'dbReportLocation', 'dbReportOrganization', 'dbSubject', 'dbContributor', 'dbLanguage', 'dbFileExists', 'dbSoundcloudId', 'dbSoundcloudErrorCode', 'dbSoundcloudErrorMsg', 'dbSoundcloudLinkToFile', 'dbSoundCloundUploadTime', 'dbReplayGain', 'dbOwnerId', 'dbHidden', ),
BasePeer::TYPE_COLNAME => array (self::ID, self::NAME, self::MIME, self::FTYPE, self::DIRECTORY, self::FILEPATH, self::STATE, self::CURRENTLYACCESSING, self::EDITEDBY, self::MTIME, self::UTIME, self::LPTIME, self::MD5, self::TRACK_TITLE, self::ARTIST_NAME, self::BIT_RATE, self::SAMPLE_RATE, self::FORMAT, self::LENGTH, self::ALBUM_TITLE, self::GENRE, self::COMMENTS, self::YEAR, self::TRACK_NUMBER, self::CHANNELS, self::URL, self::BPM, self::RATING, self::ENCODED_BY, self::DISC_NUMBER, self::MOOD, self::LABEL, self::COMPOSER, self::ENCODER, self::CHECKSUM, self::LYRICS, self::ORCHESTRA, self::CONDUCTOR, self::LYRICIST, self::ORIGINAL_LYRICIST, self::RADIO_STATION_NAME, self::INFO_URL, self::ARTIST_URL, self::AUDIO_SOURCE_URL, self::RADIO_STATION_URL, self::BUY_THIS_URL, self::ISRC_NUMBER, self::CATALOG_NUMBER, self::ORIGINAL_ARTIST, self::COPYRIGHT, self::REPORT_DATETIME, self::REPORT_LOCATION, self::REPORT_ORGANIZATION, self::SUBJECT, self::CONTRIBUTOR, self::LANGUAGE, self::FILE_EXISTS, self::SOUNDCLOUD_ID, self::SOUNDCLOUD_ERROR_CODE, self::SOUNDCLOUD_ERROR_MSG, self::SOUNDCLOUD_LINK_TO_FILE, self::SOUNDCLOUD_UPLOAD_TIME, self::REPLAY_GAIN, self::OWNER_ID, self::HIDDEN, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'STATE', 'CURRENTLYACCESSING', 'EDITEDBY', 'MTIME', 'UTIME', 'LPTIME', 'MD5', 'TRACK_TITLE', 'ARTIST_NAME', 'BIT_RATE', 'SAMPLE_RATE', 'FORMAT', 'LENGTH', 'ALBUM_TITLE', 'GENRE', 'COMMENTS', 'YEAR', 'TRACK_NUMBER', 'CHANNELS', 'URL', 'BPM', 'RATING', 'ENCODED_BY', 'DISC_NUMBER', 'MOOD', 'LABEL', 'COMPOSER', 'ENCODER', 'CHECKSUM', 'LYRICS', 'ORCHESTRA', 'CONDUCTOR', 'LYRICIST', 'ORIGINAL_LYRICIST', 'RADIO_STATION_NAME', 'INFO_URL', 'ARTIST_URL', 'AUDIO_SOURCE_URL', 'RADIO_STATION_URL', 'BUY_THIS_URL', 'ISRC_NUMBER', 'CATALOG_NUMBER', 'ORIGINAL_ARTIST', 'COPYRIGHT', 'REPORT_DATETIME', 'REPORT_LOCATION', 'REPORT_ORGANIZATION', 'SUBJECT', 'CONTRIBUTOR', 'LANGUAGE', 'FILE_EXISTS', 'SOUNDCLOUD_ID', 'SOUNDCLOUD_ERROR_CODE', 'SOUNDCLOUD_ERROR_MSG', 'SOUNDCLOUD_LINK_TO_FILE', 'SOUNDCLOUD_UPLOAD_TIME', 'REPLAY_GAIN', 'OWNER_ID', 'HIDDEN', ),
BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'state', 'currentlyaccessing', 'editedby', 'mtime', 'utime', 'lptime', 'md5', 'track_title', 'artist_name', 'bit_rate', 'sample_rate', 'format', 'length', 'album_title', 'genre', 'comments', 'year', 'track_number', 'channels', 'url', 'bpm', 'rating', 'encoded_by', 'disc_number', 'mood', 'label', 'composer', 'encoder', 'checksum', 'lyrics', 'orchestra', 'conductor', 'lyricist', 'original_lyricist', 'radio_station_name', 'info_url', 'artist_url', 'audio_source_url', 'radio_station_url', 'buy_this_url', 'isrc_number', 'catalog_number', 'original_artist', 'copyright', 'report_datetime', 'report_location', 'report_organization', 'subject', 'contributor', 'language', 'file_exists', 'soundcloud_id', 'soundcloud_error_code', 'soundcloud_error_msg', 'soundcloud_link_to_file', 'soundcloud_upload_time', 'replay_gain', 'owner_id', 'hidden', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, )
BasePeer::TYPE_PHPNAME => array ('DbId', 'DbName', 'DbMime', 'DbFtype', 'DbDirectory', 'DbFilepath', 'DbState', 'DbCurrentlyaccessing', 'DbEditedby', 'DbMtime', 'DbUtime', 'DbLPtime', 'DbMd5', 'DbTrackTitle', 'DbArtistName', 'DbBitRate', 'DbSampleRate', 'DbFormat', 'DbLength', 'DbAlbumTitle', 'DbGenre', 'DbComments', 'DbYear', 'DbTrackNumber', 'DbChannels', 'DbUrl', 'DbBpm', 'DbRating', 'DbEncodedBy', 'DbDiscNumber', 'DbMood', 'DbLabel', 'DbComposer', 'DbEncoder', 'DbChecksum', 'DbLyrics', 'DbOrchestra', 'DbConductor', 'DbLyricist', 'DbOriginalLyricist', 'DbRadioStationName', 'DbInfoUrl', 'DbArtistUrl', 'DbAudioSourceUrl', 'DbRadioStationUrl', 'DbBuyThisUrl', 'DbIsrcNumber', 'DbCatalogNumber', 'DbOriginalArtist', 'DbCopyright', 'DbReportDatetime', 'DbReportLocation', 'DbReportOrganization', 'DbSubject', 'DbContributor', 'DbLanguage', 'DbFileExists', 'DbSoundcloudId', 'DbSoundcloudErrorCode', 'DbSoundcloudErrorMsg', 'DbSoundcloudLinkToFile', 'DbSoundCloundUploadTime', 'DbReplayGain', 'DbOwnerId', 'DbCuein', 'DbCueout', 'DbHidden', ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId', 'dbName', 'dbMime', 'dbFtype', 'dbDirectory', 'dbFilepath', 'dbState', 'dbCurrentlyaccessing', 'dbEditedby', 'dbMtime', 'dbUtime', 'dbLPtime', 'dbMd5', 'dbTrackTitle', 'dbArtistName', 'dbBitRate', 'dbSampleRate', 'dbFormat', 'dbLength', 'dbAlbumTitle', 'dbGenre', 'dbComments', 'dbYear', 'dbTrackNumber', 'dbChannels', 'dbUrl', 'dbBpm', 'dbRating', 'dbEncodedBy', 'dbDiscNumber', 'dbMood', 'dbLabel', 'dbComposer', 'dbEncoder', 'dbChecksum', 'dbLyrics', 'dbOrchestra', 'dbConductor', 'dbLyricist', 'dbOriginalLyricist', 'dbRadioStationName', 'dbInfoUrl', 'dbArtistUrl', 'dbAudioSourceUrl', 'dbRadioStationUrl', 'dbBuyThisUrl', 'dbIsrcNumber', 'dbCatalogNumber', 'dbOriginalArtist', 'dbCopyright', 'dbReportDatetime', 'dbReportLocation', 'dbReportOrganization', 'dbSubject', 'dbContributor', 'dbLanguage', 'dbFileExists', 'dbSoundcloudId', 'dbSoundcloudErrorCode', 'dbSoundcloudErrorMsg', 'dbSoundcloudLinkToFile', 'dbSoundCloundUploadTime', 'dbReplayGain', 'dbOwnerId', 'dbCuein', 'dbCueout', 'dbHidden', ),
BasePeer::TYPE_COLNAME => array (self::ID, self::NAME, self::MIME, self::FTYPE, self::DIRECTORY, self::FILEPATH, self::STATE, self::CURRENTLYACCESSING, self::EDITEDBY, self::MTIME, self::UTIME, self::LPTIME, self::MD5, self::TRACK_TITLE, self::ARTIST_NAME, self::BIT_RATE, self::SAMPLE_RATE, self::FORMAT, self::LENGTH, self::ALBUM_TITLE, self::GENRE, self::COMMENTS, self::YEAR, self::TRACK_NUMBER, self::CHANNELS, self::URL, self::BPM, self::RATING, self::ENCODED_BY, self::DISC_NUMBER, self::MOOD, self::LABEL, self::COMPOSER, self::ENCODER, self::CHECKSUM, self::LYRICS, self::ORCHESTRA, self::CONDUCTOR, self::LYRICIST, self::ORIGINAL_LYRICIST, self::RADIO_STATION_NAME, self::INFO_URL, self::ARTIST_URL, self::AUDIO_SOURCE_URL, self::RADIO_STATION_URL, self::BUY_THIS_URL, self::ISRC_NUMBER, self::CATALOG_NUMBER, self::ORIGINAL_ARTIST, self::COPYRIGHT, self::REPORT_DATETIME, self::REPORT_LOCATION, self::REPORT_ORGANIZATION, self::SUBJECT, self::CONTRIBUTOR, self::LANGUAGE, self::FILE_EXISTS, self::SOUNDCLOUD_ID, self::SOUNDCLOUD_ERROR_CODE, self::SOUNDCLOUD_ERROR_MSG, self::SOUNDCLOUD_LINK_TO_FILE, self::SOUNDCLOUD_UPLOAD_TIME, self::REPLAY_GAIN, self::OWNER_ID, self::CUEIN, self::CUEOUT, self::HIDDEN, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID', 'NAME', 'MIME', 'FTYPE', 'DIRECTORY', 'FILEPATH', 'STATE', 'CURRENTLYACCESSING', 'EDITEDBY', 'MTIME', 'UTIME', 'LPTIME', 'MD5', 'TRACK_TITLE', 'ARTIST_NAME', 'BIT_RATE', 'SAMPLE_RATE', 'FORMAT', 'LENGTH', 'ALBUM_TITLE', 'GENRE', 'COMMENTS', 'YEAR', 'TRACK_NUMBER', 'CHANNELS', 'URL', 'BPM', 'RATING', 'ENCODED_BY', 'DISC_NUMBER', 'MOOD', 'LABEL', 'COMPOSER', 'ENCODER', 'CHECKSUM', 'LYRICS', 'ORCHESTRA', 'CONDUCTOR', 'LYRICIST', 'ORIGINAL_LYRICIST', 'RADIO_STATION_NAME', 'INFO_URL', 'ARTIST_URL', 'AUDIO_SOURCE_URL', 'RADIO_STATION_URL', 'BUY_THIS_URL', 'ISRC_NUMBER', 'CATALOG_NUMBER', 'ORIGINAL_ARTIST', 'COPYRIGHT', 'REPORT_DATETIME', 'REPORT_LOCATION', 'REPORT_ORGANIZATION', 'SUBJECT', 'CONTRIBUTOR', 'LANGUAGE', 'FILE_EXISTS', 'SOUNDCLOUD_ID', 'SOUNDCLOUD_ERROR_CODE', 'SOUNDCLOUD_ERROR_MSG', 'SOUNDCLOUD_LINK_TO_FILE', 'SOUNDCLOUD_UPLOAD_TIME', 'REPLAY_GAIN', 'OWNER_ID', 'CUEIN', 'CUEOUT', 'HIDDEN', ),
BasePeer::TYPE_FIELDNAME => array ('id', 'name', 'mime', 'ftype', 'directory', 'filepath', 'state', 'currentlyaccessing', 'editedby', 'mtime', 'utime', 'lptime', 'md5', 'track_title', 'artist_name', 'bit_rate', 'sample_rate', 'format', 'length', 'album_title', 'genre', 'comments', 'year', 'track_number', 'channels', 'url', 'bpm', 'rating', 'encoded_by', 'disc_number', 'mood', 'label', 'composer', 'encoder', 'checksum', 'lyrics', 'orchestra', 'conductor', 'lyricist', 'original_lyricist', 'radio_station_name', 'info_url', 'artist_url', 'audio_source_url', 'radio_station_url', 'buy_this_url', 'isrc_number', 'catalog_number', 'original_artist', 'copyright', 'report_datetime', 'report_location', 'report_organization', 'subject', 'contributor', 'language', 'file_exists', 'soundcloud_id', 'soundcloud_error_code', 'soundcloud_error_msg', 'soundcloud_link_to_file', 'soundcloud_upload_time', 'replay_gain', 'owner_id', 'cuein', 'cueout', 'hidden', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, )
);
/**
@ -257,12 +263,12 @@ abstract class BaseCcFilesPeer {
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbState' => 6, 'DbCurrentlyaccessing' => 7, 'DbEditedby' => 8, 'DbMtime' => 9, 'DbUtime' => 10, 'DbLPtime' => 11, 'DbMd5' => 12, 'DbTrackTitle' => 13, 'DbArtistName' => 14, 'DbBitRate' => 15, 'DbSampleRate' => 16, 'DbFormat' => 17, 'DbLength' => 18, 'DbAlbumTitle' => 19, 'DbGenre' => 20, 'DbComments' => 21, 'DbYear' => 22, 'DbTrackNumber' => 23, 'DbChannels' => 24, 'DbUrl' => 25, 'DbBpm' => 26, 'DbRating' => 27, 'DbEncodedBy' => 28, 'DbDiscNumber' => 29, 'DbMood' => 30, 'DbLabel' => 31, 'DbComposer' => 32, 'DbEncoder' => 33, 'DbChecksum' => 34, 'DbLyrics' => 35, 'DbOrchestra' => 36, 'DbConductor' => 37, 'DbLyricist' => 38, 'DbOriginalLyricist' => 39, 'DbRadioStationName' => 40, 'DbInfoUrl' => 41, 'DbArtistUrl' => 42, 'DbAudioSourceUrl' => 43, 'DbRadioStationUrl' => 44, 'DbBuyThisUrl' => 45, 'DbIsrcNumber' => 46, 'DbCatalogNumber' => 47, 'DbOriginalArtist' => 48, 'DbCopyright' => 49, 'DbReportDatetime' => 50, 'DbReportLocation' => 51, 'DbReportOrganization' => 52, 'DbSubject' => 53, 'DbContributor' => 54, 'DbLanguage' => 55, 'DbFileExists' => 56, 'DbSoundcloudId' => 57, 'DbSoundcloudErrorCode' => 58, 'DbSoundcloudErrorMsg' => 59, 'DbSoundcloudLinkToFile' => 60, 'DbSoundCloundUploadTime' => 61, 'DbReplayGain' => 62, 'DbOwnerId' => 63, 'DbHidden' => 64, ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbState' => 6, 'dbCurrentlyaccessing' => 7, 'dbEditedby' => 8, 'dbMtime' => 9, 'dbUtime' => 10, 'dbLPtime' => 11, 'dbMd5' => 12, 'dbTrackTitle' => 13, 'dbArtistName' => 14, 'dbBitRate' => 15, 'dbSampleRate' => 16, 'dbFormat' => 17, 'dbLength' => 18, 'dbAlbumTitle' => 19, 'dbGenre' => 20, 'dbComments' => 21, 'dbYear' => 22, 'dbTrackNumber' => 23, 'dbChannels' => 24, 'dbUrl' => 25, 'dbBpm' => 26, 'dbRating' => 27, 'dbEncodedBy' => 28, 'dbDiscNumber' => 29, 'dbMood' => 30, 'dbLabel' => 31, 'dbComposer' => 32, 'dbEncoder' => 33, 'dbChecksum' => 34, 'dbLyrics' => 35, 'dbOrchestra' => 36, 'dbConductor' => 37, 'dbLyricist' => 38, 'dbOriginalLyricist' => 39, 'dbRadioStationName' => 40, 'dbInfoUrl' => 41, 'dbArtistUrl' => 42, 'dbAudioSourceUrl' => 43, 'dbRadioStationUrl' => 44, 'dbBuyThisUrl' => 45, 'dbIsrcNumber' => 46, 'dbCatalogNumber' => 47, 'dbOriginalArtist' => 48, 'dbCopyright' => 49, 'dbReportDatetime' => 50, 'dbReportLocation' => 51, 'dbReportOrganization' => 52, 'dbSubject' => 53, 'dbContributor' => 54, 'dbLanguage' => 55, 'dbFileExists' => 56, 'dbSoundcloudId' => 57, 'dbSoundcloudErrorCode' => 58, 'dbSoundcloudErrorMsg' => 59, 'dbSoundcloudLinkToFile' => 60, 'dbSoundCloundUploadTime' => 61, 'dbReplayGain' => 62, 'dbOwnerId' => 63, 'dbHidden' => 64, ),
BasePeer::TYPE_COLNAME => array (self::ID => 0, self::NAME => 1, self::MIME => 2, self::FTYPE => 3, self::DIRECTORY => 4, self::FILEPATH => 5, self::STATE => 6, self::CURRENTLYACCESSING => 7, self::EDITEDBY => 8, self::MTIME => 9, self::UTIME => 10, self::LPTIME => 11, self::MD5 => 12, self::TRACK_TITLE => 13, self::ARTIST_NAME => 14, self::BIT_RATE => 15, self::SAMPLE_RATE => 16, self::FORMAT => 17, self::LENGTH => 18, self::ALBUM_TITLE => 19, self::GENRE => 20, self::COMMENTS => 21, self::YEAR => 22, self::TRACK_NUMBER => 23, self::CHANNELS => 24, self::URL => 25, self::BPM => 26, self::RATING => 27, self::ENCODED_BY => 28, self::DISC_NUMBER => 29, self::MOOD => 30, self::LABEL => 31, self::COMPOSER => 32, self::ENCODER => 33, self::CHECKSUM => 34, self::LYRICS => 35, self::ORCHESTRA => 36, self::CONDUCTOR => 37, self::LYRICIST => 38, self::ORIGINAL_LYRICIST => 39, self::RADIO_STATION_NAME => 40, self::INFO_URL => 41, self::ARTIST_URL => 42, self::AUDIO_SOURCE_URL => 43, self::RADIO_STATION_URL => 44, self::BUY_THIS_URL => 45, self::ISRC_NUMBER => 46, self::CATALOG_NUMBER => 47, self::ORIGINAL_ARTIST => 48, self::COPYRIGHT => 49, self::REPORT_DATETIME => 50, self::REPORT_LOCATION => 51, self::REPORT_ORGANIZATION => 52, self::SUBJECT => 53, self::CONTRIBUTOR => 54, self::LANGUAGE => 55, self::FILE_EXISTS => 56, self::SOUNDCLOUD_ID => 57, self::SOUNDCLOUD_ERROR_CODE => 58, self::SOUNDCLOUD_ERROR_MSG => 59, self::SOUNDCLOUD_LINK_TO_FILE => 60, self::SOUNDCLOUD_UPLOAD_TIME => 61, self::REPLAY_GAIN => 62, self::OWNER_ID => 63, self::HIDDEN => 64, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'STATE' => 6, 'CURRENTLYACCESSING' => 7, 'EDITEDBY' => 8, 'MTIME' => 9, 'UTIME' => 10, 'LPTIME' => 11, 'MD5' => 12, 'TRACK_TITLE' => 13, 'ARTIST_NAME' => 14, 'BIT_RATE' => 15, 'SAMPLE_RATE' => 16, 'FORMAT' => 17, 'LENGTH' => 18, 'ALBUM_TITLE' => 19, 'GENRE' => 20, 'COMMENTS' => 21, 'YEAR' => 22, 'TRACK_NUMBER' => 23, 'CHANNELS' => 24, 'URL' => 25, 'BPM' => 26, 'RATING' => 27, 'ENCODED_BY' => 28, 'DISC_NUMBER' => 29, 'MOOD' => 30, 'LABEL' => 31, 'COMPOSER' => 32, 'ENCODER' => 33, 'CHECKSUM' => 34, 'LYRICS' => 35, 'ORCHESTRA' => 36, 'CONDUCTOR' => 37, 'LYRICIST' => 38, 'ORIGINAL_LYRICIST' => 39, 'RADIO_STATION_NAME' => 40, 'INFO_URL' => 41, 'ARTIST_URL' => 42, 'AUDIO_SOURCE_URL' => 43, 'RADIO_STATION_URL' => 44, 'BUY_THIS_URL' => 45, 'ISRC_NUMBER' => 46, 'CATALOG_NUMBER' => 47, 'ORIGINAL_ARTIST' => 48, 'COPYRIGHT' => 49, 'REPORT_DATETIME' => 50, 'REPORT_LOCATION' => 51, 'REPORT_ORGANIZATION' => 52, 'SUBJECT' => 53, 'CONTRIBUTOR' => 54, 'LANGUAGE' => 55, 'FILE_EXISTS' => 56, 'SOUNDCLOUD_ID' => 57, 'SOUNDCLOUD_ERROR_CODE' => 58, 'SOUNDCLOUD_ERROR_MSG' => 59, 'SOUNDCLOUD_LINK_TO_FILE' => 60, 'SOUNDCLOUD_UPLOAD_TIME' => 61, 'REPLAY_GAIN' => 62, 'OWNER_ID' => 63, 'HIDDEN' => 64, ),
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'state' => 6, 'currentlyaccessing' => 7, 'editedby' => 8, 'mtime' => 9, 'utime' => 10, 'lptime' => 11, 'md5' => 12, 'track_title' => 13, 'artist_name' => 14, 'bit_rate' => 15, 'sample_rate' => 16, 'format' => 17, 'length' => 18, 'album_title' => 19, 'genre' => 20, 'comments' => 21, 'year' => 22, 'track_number' => 23, 'channels' => 24, 'url' => 25, 'bpm' => 26, 'rating' => 27, 'encoded_by' => 28, 'disc_number' => 29, 'mood' => 30, 'label' => 31, 'composer' => 32, 'encoder' => 33, 'checksum' => 34, 'lyrics' => 35, 'orchestra' => 36, 'conductor' => 37, 'lyricist' => 38, 'original_lyricist' => 39, 'radio_station_name' => 40, 'info_url' => 41, 'artist_url' => 42, 'audio_source_url' => 43, 'radio_station_url' => 44, 'buy_this_url' => 45, 'isrc_number' => 46, 'catalog_number' => 47, 'original_artist' => 48, 'copyright' => 49, 'report_datetime' => 50, 'report_location' => 51, 'report_organization' => 52, 'subject' => 53, 'contributor' => 54, 'language' => 55, 'file_exists' => 56, 'soundcloud_id' => 57, 'soundcloud_error_code' => 58, 'soundcloud_error_msg' => 59, 'soundcloud_link_to_file' => 60, 'soundcloud_upload_time' => 61, 'replay_gain' => 62, 'owner_id' => 63, 'hidden' => 64, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, )
BasePeer::TYPE_PHPNAME => array ('DbId' => 0, 'DbName' => 1, 'DbMime' => 2, 'DbFtype' => 3, 'DbDirectory' => 4, 'DbFilepath' => 5, 'DbState' => 6, 'DbCurrentlyaccessing' => 7, 'DbEditedby' => 8, 'DbMtime' => 9, 'DbUtime' => 10, 'DbLPtime' => 11, 'DbMd5' => 12, 'DbTrackTitle' => 13, 'DbArtistName' => 14, 'DbBitRate' => 15, 'DbSampleRate' => 16, 'DbFormat' => 17, 'DbLength' => 18, 'DbAlbumTitle' => 19, 'DbGenre' => 20, 'DbComments' => 21, 'DbYear' => 22, 'DbTrackNumber' => 23, 'DbChannels' => 24, 'DbUrl' => 25, 'DbBpm' => 26, 'DbRating' => 27, 'DbEncodedBy' => 28, 'DbDiscNumber' => 29, 'DbMood' => 30, 'DbLabel' => 31, 'DbComposer' => 32, 'DbEncoder' => 33, 'DbChecksum' => 34, 'DbLyrics' => 35, 'DbOrchestra' => 36, 'DbConductor' => 37, 'DbLyricist' => 38, 'DbOriginalLyricist' => 39, 'DbRadioStationName' => 40, 'DbInfoUrl' => 41, 'DbArtistUrl' => 42, 'DbAudioSourceUrl' => 43, 'DbRadioStationUrl' => 44, 'DbBuyThisUrl' => 45, 'DbIsrcNumber' => 46, 'DbCatalogNumber' => 47, 'DbOriginalArtist' => 48, 'DbCopyright' => 49, 'DbReportDatetime' => 50, 'DbReportLocation' => 51, 'DbReportOrganization' => 52, 'DbSubject' => 53, 'DbContributor' => 54, 'DbLanguage' => 55, 'DbFileExists' => 56, 'DbSoundcloudId' => 57, 'DbSoundcloudErrorCode' => 58, 'DbSoundcloudErrorMsg' => 59, 'DbSoundcloudLinkToFile' => 60, 'DbSoundCloundUploadTime' => 61, 'DbReplayGain' => 62, 'DbOwnerId' => 63, 'DbCuein' => 64, 'DbCueout' => 65, 'DbHidden' => 66, ),
BasePeer::TYPE_STUDLYPHPNAME => array ('dbId' => 0, 'dbName' => 1, 'dbMime' => 2, 'dbFtype' => 3, 'dbDirectory' => 4, 'dbFilepath' => 5, 'dbState' => 6, 'dbCurrentlyaccessing' => 7, 'dbEditedby' => 8, 'dbMtime' => 9, 'dbUtime' => 10, 'dbLPtime' => 11, 'dbMd5' => 12, 'dbTrackTitle' => 13, 'dbArtistName' => 14, 'dbBitRate' => 15, 'dbSampleRate' => 16, 'dbFormat' => 17, 'dbLength' => 18, 'dbAlbumTitle' => 19, 'dbGenre' => 20, 'dbComments' => 21, 'dbYear' => 22, 'dbTrackNumber' => 23, 'dbChannels' => 24, 'dbUrl' => 25, 'dbBpm' => 26, 'dbRating' => 27, 'dbEncodedBy' => 28, 'dbDiscNumber' => 29, 'dbMood' => 30, 'dbLabel' => 31, 'dbComposer' => 32, 'dbEncoder' => 33, 'dbChecksum' => 34, 'dbLyrics' => 35, 'dbOrchestra' => 36, 'dbConductor' => 37, 'dbLyricist' => 38, 'dbOriginalLyricist' => 39, 'dbRadioStationName' => 40, 'dbInfoUrl' => 41, 'dbArtistUrl' => 42, 'dbAudioSourceUrl' => 43, 'dbRadioStationUrl' => 44, 'dbBuyThisUrl' => 45, 'dbIsrcNumber' => 46, 'dbCatalogNumber' => 47, 'dbOriginalArtist' => 48, 'dbCopyright' => 49, 'dbReportDatetime' => 50, 'dbReportLocation' => 51, 'dbReportOrganization' => 52, 'dbSubject' => 53, 'dbContributor' => 54, 'dbLanguage' => 55, 'dbFileExists' => 56, 'dbSoundcloudId' => 57, 'dbSoundcloudErrorCode' => 58, 'dbSoundcloudErrorMsg' => 59, 'dbSoundcloudLinkToFile' => 60, 'dbSoundCloundUploadTime' => 61, 'dbReplayGain' => 62, 'dbOwnerId' => 63, 'dbCuein' => 64, 'dbCueout' => 65, 'dbHidden' => 66, ),
BasePeer::TYPE_COLNAME => array (self::ID => 0, self::NAME => 1, self::MIME => 2, self::FTYPE => 3, self::DIRECTORY => 4, self::FILEPATH => 5, self::STATE => 6, self::CURRENTLYACCESSING => 7, self::EDITEDBY => 8, self::MTIME => 9, self::UTIME => 10, self::LPTIME => 11, self::MD5 => 12, self::TRACK_TITLE => 13, self::ARTIST_NAME => 14, self::BIT_RATE => 15, self::SAMPLE_RATE => 16, self::FORMAT => 17, self::LENGTH => 18, self::ALBUM_TITLE => 19, self::GENRE => 20, self::COMMENTS => 21, self::YEAR => 22, self::TRACK_NUMBER => 23, self::CHANNELS => 24, self::URL => 25, self::BPM => 26, self::RATING => 27, self::ENCODED_BY => 28, self::DISC_NUMBER => 29, self::MOOD => 30, self::LABEL => 31, self::COMPOSER => 32, self::ENCODER => 33, self::CHECKSUM => 34, self::LYRICS => 35, self::ORCHESTRA => 36, self::CONDUCTOR => 37, self::LYRICIST => 38, self::ORIGINAL_LYRICIST => 39, self::RADIO_STATION_NAME => 40, self::INFO_URL => 41, self::ARTIST_URL => 42, self::AUDIO_SOURCE_URL => 43, self::RADIO_STATION_URL => 44, self::BUY_THIS_URL => 45, self::ISRC_NUMBER => 46, self::CATALOG_NUMBER => 47, self::ORIGINAL_ARTIST => 48, self::COPYRIGHT => 49, self::REPORT_DATETIME => 50, self::REPORT_LOCATION => 51, self::REPORT_ORGANIZATION => 52, self::SUBJECT => 53, self::CONTRIBUTOR => 54, self::LANGUAGE => 55, self::FILE_EXISTS => 56, self::SOUNDCLOUD_ID => 57, self::SOUNDCLOUD_ERROR_CODE => 58, self::SOUNDCLOUD_ERROR_MSG => 59, self::SOUNDCLOUD_LINK_TO_FILE => 60, self::SOUNDCLOUD_UPLOAD_TIME => 61, self::REPLAY_GAIN => 62, self::OWNER_ID => 63, self::CUEIN => 64, self::CUEOUT => 65, self::HIDDEN => 66, ),
BasePeer::TYPE_RAW_COLNAME => array ('ID' => 0, 'NAME' => 1, 'MIME' => 2, 'FTYPE' => 3, 'DIRECTORY' => 4, 'FILEPATH' => 5, 'STATE' => 6, 'CURRENTLYACCESSING' => 7, 'EDITEDBY' => 8, 'MTIME' => 9, 'UTIME' => 10, 'LPTIME' => 11, 'MD5' => 12, 'TRACK_TITLE' => 13, 'ARTIST_NAME' => 14, 'BIT_RATE' => 15, 'SAMPLE_RATE' => 16, 'FORMAT' => 17, 'LENGTH' => 18, 'ALBUM_TITLE' => 19, 'GENRE' => 20, 'COMMENTS' => 21, 'YEAR' => 22, 'TRACK_NUMBER' => 23, 'CHANNELS' => 24, 'URL' => 25, 'BPM' => 26, 'RATING' => 27, 'ENCODED_BY' => 28, 'DISC_NUMBER' => 29, 'MOOD' => 30, 'LABEL' => 31, 'COMPOSER' => 32, 'ENCODER' => 33, 'CHECKSUM' => 34, 'LYRICS' => 35, 'ORCHESTRA' => 36, 'CONDUCTOR' => 37, 'LYRICIST' => 38, 'ORIGINAL_LYRICIST' => 39, 'RADIO_STATION_NAME' => 40, 'INFO_URL' => 41, 'ARTIST_URL' => 42, 'AUDIO_SOURCE_URL' => 43, 'RADIO_STATION_URL' => 44, 'BUY_THIS_URL' => 45, 'ISRC_NUMBER' => 46, 'CATALOG_NUMBER' => 47, 'ORIGINAL_ARTIST' => 48, 'COPYRIGHT' => 49, 'REPORT_DATETIME' => 50, 'REPORT_LOCATION' => 51, 'REPORT_ORGANIZATION' => 52, 'SUBJECT' => 53, 'CONTRIBUTOR' => 54, 'LANGUAGE' => 55, 'FILE_EXISTS' => 56, 'SOUNDCLOUD_ID' => 57, 'SOUNDCLOUD_ERROR_CODE' => 58, 'SOUNDCLOUD_ERROR_MSG' => 59, 'SOUNDCLOUD_LINK_TO_FILE' => 60, 'SOUNDCLOUD_UPLOAD_TIME' => 61, 'REPLAY_GAIN' => 62, 'OWNER_ID' => 63, 'CUEIN' => 64, 'CUEOUT' => 65, 'HIDDEN' => 66, ),
BasePeer::TYPE_FIELDNAME => array ('id' => 0, 'name' => 1, 'mime' => 2, 'ftype' => 3, 'directory' => 4, 'filepath' => 5, 'state' => 6, 'currentlyaccessing' => 7, 'editedby' => 8, 'mtime' => 9, 'utime' => 10, 'lptime' => 11, 'md5' => 12, 'track_title' => 13, 'artist_name' => 14, 'bit_rate' => 15, 'sample_rate' => 16, 'format' => 17, 'length' => 18, 'album_title' => 19, 'genre' => 20, 'comments' => 21, 'year' => 22, 'track_number' => 23, 'channels' => 24, 'url' => 25, 'bpm' => 26, 'rating' => 27, 'encoded_by' => 28, 'disc_number' => 29, 'mood' => 30, 'label' => 31, 'composer' => 32, 'encoder' => 33, 'checksum' => 34, 'lyrics' => 35, 'orchestra' => 36, 'conductor' => 37, 'lyricist' => 38, 'original_lyricist' => 39, 'radio_station_name' => 40, 'info_url' => 41, 'artist_url' => 42, 'audio_source_url' => 43, 'radio_station_url' => 44, 'buy_this_url' => 45, 'isrc_number' => 46, 'catalog_number' => 47, 'original_artist' => 48, 'copyright' => 49, 'report_datetime' => 50, 'report_location' => 51, 'report_organization' => 52, 'subject' => 53, 'contributor' => 54, 'language' => 55, 'file_exists' => 56, 'soundcloud_id' => 57, 'soundcloud_error_code' => 58, 'soundcloud_error_msg' => 59, 'soundcloud_link_to_file' => 60, 'soundcloud_upload_time' => 61, 'replay_gain' => 62, 'owner_id' => 63, 'cuein' => 64, 'cueout' => 65, 'hidden' => 66, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, )
);
/**
@ -398,6 +404,8 @@ abstract class BaseCcFilesPeer {
$criteria->addSelectColumn(CcFilesPeer::SOUNDCLOUD_UPLOAD_TIME);
$criteria->addSelectColumn(CcFilesPeer::REPLAY_GAIN);
$criteria->addSelectColumn(CcFilesPeer::OWNER_ID);
$criteria->addSelectColumn(CcFilesPeer::CUEIN);
$criteria->addSelectColumn(CcFilesPeer::CUEOUT);
$criteria->addSelectColumn(CcFilesPeer::HIDDEN);
} else {
$criteria->addSelectColumn($alias . '.ID');
@ -464,6 +472,8 @@ abstract class BaseCcFilesPeer {
$criteria->addSelectColumn($alias . '.SOUNDCLOUD_UPLOAD_TIME');
$criteria->addSelectColumn($alias . '.REPLAY_GAIN');
$criteria->addSelectColumn($alias . '.OWNER_ID');
$criteria->addSelectColumn($alias . '.CUEIN');
$criteria->addSelectColumn($alias . '.CUEOUT');
$criteria->addSelectColumn($alias . '.HIDDEN');
}
}

View File

@ -70,6 +70,8 @@
* @method CcFilesQuery orderByDbSoundCloundUploadTime($order = Criteria::ASC) Order by the soundcloud_upload_time column
* @method CcFilesQuery orderByDbReplayGain($order = Criteria::ASC) Order by the replay_gain column
* @method CcFilesQuery orderByDbOwnerId($order = Criteria::ASC) Order by the owner_id column
* @method CcFilesQuery orderByDbCuein($order = Criteria::ASC) Order by the cuein column
* @method CcFilesQuery orderByDbCueout($order = Criteria::ASC) Order by the cueout column
* @method CcFilesQuery orderByDbHidden($order = Criteria::ASC) Order by the hidden column
*
* @method CcFilesQuery groupByDbId() Group by the id column
@ -136,6 +138,8 @@
* @method CcFilesQuery groupByDbSoundCloundUploadTime() Group by the soundcloud_upload_time column
* @method CcFilesQuery groupByDbReplayGain() Group by the replay_gain column
* @method CcFilesQuery groupByDbOwnerId() Group by the owner_id column
* @method CcFilesQuery groupByDbCuein() Group by the cuein column
* @method CcFilesQuery groupByDbCueout() Group by the cueout column
* @method CcFilesQuery groupByDbHidden() Group by the hidden column
*
* @method CcFilesQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
@ -237,6 +241,8 @@
* @method CcFiles findOneByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return the first CcFiles filtered by the soundcloud_upload_time column
* @method CcFiles findOneByDbReplayGain(string $replay_gain) Return the first CcFiles filtered by the replay_gain column
* @method CcFiles findOneByDbOwnerId(int $owner_id) Return the first CcFiles filtered by the owner_id column
* @method CcFiles findOneByDbCuein(string $cuein) Return the first CcFiles filtered by the cuein column
* @method CcFiles findOneByDbCueout(string $cueout) Return the first CcFiles filtered by the cueout column
* @method CcFiles findOneByDbHidden(boolean $hidden) Return the first CcFiles filtered by the hidden column
*
* @method array findByDbId(int $id) Return CcFiles objects filtered by the id column
@ -303,6 +309,8 @@
* @method array findByDbSoundCloundUploadTime(string $soundcloud_upload_time) Return CcFiles objects filtered by the soundcloud_upload_time column
* @method array findByDbReplayGain(string $replay_gain) Return CcFiles objects filtered by the replay_gain column
* @method array findByDbOwnerId(int $owner_id) Return CcFiles objects filtered by the owner_id column
* @method array findByDbCuein(string $cuein) Return CcFiles objects filtered by the cuein column
* @method array findByDbCueout(string $cueout) Return CcFiles objects filtered by the cueout column
* @method array findByDbHidden(boolean $hidden) Return CcFiles objects filtered by the hidden column
*
* @package propel.generator.airtime.om
@ -1955,6 +1963,50 @@ abstract class BaseCcFilesQuery extends ModelCriteria
return $this->addUsingAlias(CcFilesPeer::OWNER_ID, $dbOwnerId, $comparison);
}
/**
* Filter the query on the cuein column
*
* @param string $dbCuein The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbCuein($dbCuein = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbCuein)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbCuein)) {
$dbCuein = str_replace('*', '%', $dbCuein);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::CUEIN, $dbCuein, $comparison);
}
/**
* Filter the query on the cueout column
*
* @param string $dbCueout The value to use as filter.
* Accepts wildcards (* and % trigger a LIKE)
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return CcFilesQuery The current query, for fluid interface
*/
public function filterByDbCueout($dbCueout = null, $comparison = null)
{
if (null === $comparison) {
if (is_array($dbCueout)) {
$comparison = Criteria::IN;
} elseif (preg_match('/[\%\*]/', $dbCueout)) {
$dbCueout = str_replace('*', '%', $dbCueout);
$comparison = Criteria::LIKE;
}
}
return $this->addUsingAlias(CcFilesPeer::CUEOUT, $dbCueout, $comparison);
}
/**
* Filter the query on the hidden column
*

View File

@ -2,7 +2,7 @@
<h2><? echo _("About") ?></h2>
<p>
<?php
echo sprintf(_("%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"),
echo sprintf(_("%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"),
"<a href='http://airtime.sourcefabric.org' target='_blank'>",
"</a>",
$this->airtime_version,

View File

@ -1,5 +1,6 @@
<div id="content" class="jp-container">
<h1><? echo _("Live stream") ?></h1>
<h1><? echo _("Live stream") ?></h1>
<a id="popup-link" href="#"><?php echo _("Share") ?></a>
<?php $ids = Application_Model_StreamSetting::getEnabledStreamIds(); ?>
<script>
function setjPlayer(url, type, serverType){
@ -31,22 +32,35 @@ $(document).ready(function(){
setjPlayer(elem.attr("data-url"), elem.attr("data-type"), elem.attr("server-type"));
});
<?php
if (count($ids) > 0){
$id = $ids[0];
$streamData = Application_Model_StreamSetting::getStreamData($id);
$url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"];
$type = $streamData["${id}_type"];
$serverType = $streamData["${id}_output"];
if ($type == "ogg")
$type = "oga";
echo "setjPlayer('$url', '$type', '$serverType');";
}
?>
<?php
if (count($ids) > 0){
$id = $ids[0];
$streamData = Application_Model_StreamSetting::getStreamData($id);
$url = "http://".$streamData["${id}_host"].":".$streamData["${id}_port"]."/".$streamData["${id}_mount"];
$type = $streamData["${id}_type"];
$serverType = $streamData["${id}_output"];
if ($type == "ogg")
$type = "oga";
echo "setjPlayer('$url', '$type', '$serverType');";
}
?>
$("#popup-link").click(function() {
$("#popup-share").show("slow");
$("#popup-share-link").val($("#combo-box option:selected").attr("data-url"));
});
$("#popup-close").click(function() {
$("#popup-share").hide("slow");
});
});
</script>
<div class="jp-logo"><img id="logo-img" onload='resizeToMaxHeight(this, 40);' src="<?php echo $this->logo ?>" /></div>
<div class="jp-stream">
<div id="popup-share">
<a class="close-round" href="#" id="popup-close"></a>
<input id="popup-share-link" type="text" readonly="readonly"/>
</div>
<div class="jp-stream stream-player-label">
<div class="jp-stream-text"><? echo _("Select stream:"); ?></div>
<form id="form1" method="post" action="">

View File

@ -114,6 +114,34 @@
</ul>
<?php endif; ?>
</dd>
<dt id="cu-locale-label">
<label><?php echo $this->element->getElement('cu_locale')->getLabel() ?>
</label>
</dt>
<dd id="cu-locale-element">
<?php echo $this->element->getElement('cu_locale') ?>
<?php if($this->element->getElement('cu_locale')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('cu_locale')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt id="cu-timezone-label">
<label><?php echo $this->element->getElement('cu_timezone')->getLabel() ?>
</label>
</dt>
<dd id="cu-timezone-element">
<?php echo $this->element->getElement('cu_timezone') ?>
<?php if($this->element->getElement('cu_timezone')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('cu_timezone')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<button id="cu_save_user" type="button" class="btn btn-small right-floated">Save</button>
</dl>
</form>

View File

@ -67,8 +67,8 @@
</dd>
<dt id="timezone-label" class="block-display">
<label class="required" for="timezone"><?php echo $this->element->getElement('timezone')->getLabel() ?>
<span class="info-text-small"><?php _("(Required)") ?></span> :
<label class="required" for="timezone"><?php echo $this->element->getElement('timezone')->getLabel() ?>:
<span class="info-text-small"><?php _("(Required)") ?></span>
</label>
</dt>
<dd id="timezone-element" class="block-display">
@ -108,23 +108,5 @@
</ul>
<?php endif; ?>
</dd>
<dt id="replayGainModifier-label" class="block-display">
<label><?php echo $this->element->getElement('replayGainModifier')->getLabel() ?>:
</label>
<span id="rg_modifier_value" style="border: 0; color: #f6931f; font-weight: bold;">
<?php echo $this->element->getElement('replayGainModifier')->getValue() ?>
</span>
</dt>
<dd id="replayGainModifier-element" class="block-display">
<?php echo $this->element->getElement('replayGainModifier') ?>
<?php if($this->element->getElement('replayGainModifier')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('replayGainModifier')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<div id="slider-range-max"></div>
</dd>
</dl>
</fieldset>

View File

@ -1,4 +1,4 @@
<?php
<?php
$s_name = "s".$this->stream_number;
?>
<h3 class="collapsible-header <?php echo $this->stream_number == '1'?"closed":""?>"><span class="arrow-icon"></span><? echo _("Stream "); ?><?php echo $this->stream_number?></h3>
@ -104,6 +104,34 @@
</ul>
<?php endif; ?>
</dd>
<dt id="adminUser-label">
<label for="outputUser"><?php echo $this->element->getElement('admin_user')->getLabel()?> :
<span class='admin_username_help_icon'></span>
</label>
</dt>
<dd id="adminUser-element">
<?php echo $this->element->getElement('admin_user')?>
<?php if($this->element->getElement('admin_user')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('admin_user')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt id="adminPassword-label">
<label class="optional" for="outputPassword"><?php echo $this->element->getElement('admin_pass')->getLabel()?> :</label>
</dt>
<dd id="adminPassword-element" class="clearfix">
<?php echo $this->element->getElement('admin_pass')?>
<?php if($this->element->getElement('admin_pass')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->element->getElement('admin_pass')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</dd>
<dt class="block-display info-block">
<?php echo _("The following info will be displayed to listeners in their media player:")?>
</dt>

View File

@ -1,6 +1,3 @@
<div class="ui-widget ui-widget-content block-shadow simple-formblock clearfix padded-strong" id="edit-md-dialog">
<h2><? echo _("Edit Metadata") ?></h2>
<?php //$this->form->setAction($this->url());
echo $this->form; ?>
<?php echo $this->form; ?>
</div>

View File

@ -18,7 +18,7 @@
<tr><td><? echo _("Isrc Number:"); ?></td><td><?php echo ($this->md["MDATA_KEY_ISRC"]);?></td></tr>
<tr><td><? echo _("Website:"); ?></td><td><?php echo ($this->md["MDATA_KEY_URL"]);?></td></tr>
<tr><td><? echo _("Language:"); ?></td><td><?php echo ($this->md["MDATA_KEY_LANGUAGE"]);?></td></tr>
<tr><td><? echo _("File"); ?>&nbsp;<? echo _("Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr>
<tr><td class='file-md-qtip-nowrap'><? echo _("File Path:"); ?></td><td><?php echo ($this->md["MDATA_KEY_FILEPATH"]);?></td></tr>
</table>
<?php endif; ?>

View File

@ -2,5 +2,13 @@
<?php echo _("Listener Count Over Time")?><br>
<div id="flot_placeholder" style="width:600px;height:300px;margin:0px 50px 0px 50px"></div>
<div id="legend" style="width:600px;height:70px;margin:0px 50px 0px 50px"></div>
<div id="date_form" style="margin:0px 50px 0px 50px"><?php echo $this->date_form; ?></div>
<div id="date_form" style="float:left; margin:0px 50px 0px 50px"><?php echo $this->date_form; ?></div>
<div id="errorStatus" style="float:right; width: 400px">
<fieldset class="padded stream-setting-global">
<legend>Status</legend>
<?php foreach ($this->errorStatus as $k=>$v) {?>
<div class='stream-status <?php echo ($v == 'OK')? 'status-good' : 'status-error' ?>'><h3><?php echo $k?>: <?php echo $v?></h3></div>
<?php }?>
</fieldset>
</div>
</div>

View File

@ -63,6 +63,33 @@
</ul>
<?php endif; ?>
</dd>
<dt id="offAirMeta-label">
<label>
<?php echo $this->form->getElement('offAirMeta')->getLabel() ?> :
</label>
</dt>
<dd id="offAirMeta-element">
<?php echo $this->form->getElement('offAirMeta') ?>
</dd>
<dt id="replayGainModifier-label" class="block-display">
<label><?php echo $this->form->getElement('replayGainModifier')->getLabel() ?>:
</label>
<span id="rg_modifier_value" style="border: 0; color: #f6931f; font-weight: bold;">
<?php echo $this->form->getElement('replayGainModifier')->getValue() ?>
</span>
dB
</dt>
<dd id="replayGainModifier-element" class="block-display">
<?php echo $this->form->getElement('replayGainModifier') ?>
<?php if($this->form->getElement('replayGainModifier')->hasErrors()) : ?>
<ul class='errors'>
<?php foreach($this->form->getElement('replayGainModifier')->getMessages() as $error): ?>
<li><?php echo $error; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<div id="slider-range-max" style="width: 99%"></div>
</dd>
</dl>
</fieldset>
<?php echo $this->form->getSubform('live_stream_subform'); ?>

View File

@ -1,3 +1,5 @@
<div class="ui-widget ui-widget-content block-shadow clearfix padded-strong edit-current-user">
<h2><? echo _("Edit User") ?></h2>
<?php echo $this->successMessage ?>
<?php echo $this->form?>
</div>

View File

@ -76,6 +76,8 @@
<column name="soundcloud_upload_time" phpName="DbSoundCloundUploadTime" type="TIMESTAMP" size="6" required="false"/>
<column name="replay_gain" phpName="DbReplayGain" type="NUMERIC" required="false"/>
<column name="owner_id" phpName="DbOwnerId" type="INTEGER" required="false"/>
<column name="cuein" phpName="DbCuein" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cueout" phpName="DbCueout" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="hidden" phpName="DbHidden" type="BOOLEAN" defaultValue="false"/>
<foreign-key foreignTable="cc_subjs" phpName="FkOwner" name="cc_files_owner_fkey">
<reference local="owner_id" foreign="id"/>

View File

@ -1,4 +1,7 @@
INSERT INTO cc_subjs ("login", "type", "pass") VALUES ('admin', 'A', md5('admin'));
-- added in 2.3
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('off_air_meta', 'Airtime - offline', 'string');
-- end of added in 2.3
-- added in 2.1
INSERT INTO cc_pref("keystr", "valstr") VALUES('scheduled_play_switch', 'on');
@ -25,6 +28,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_host', '1
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_port', '8000', 'integer');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_pass', 'hackme', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_admin_pass', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_mount', 'airtime_128', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_url', 'http://airtime.sourcefabric.org', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s1_description', 'Airtime Radio! Stream #1', 'string');
@ -38,6 +43,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_host', ''
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_port', '', 'integer');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_pass', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_admin_pass', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_mount', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_url', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s2_description', '', 'string');
@ -51,6 +58,8 @@ INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_host', ''
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_port', '', 'integer');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_pass', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_user', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_admin_pass', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_mount', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_url', '', 'string');
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('s3_description', '', 'string');
@ -313,10 +322,14 @@ INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s3_channels', 'ste
-- added in 2.3
INSERT INTO cc_pref("keystr", "valstr") VALUES('locale', 'en_CA');
INSERT INTO cc_pref("subjid", "keystr", "valstr") VALUES(1, 'user_1_locale', 'en_CA');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('zh_CN', 'Chinese');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_CA', 'English');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('en_US', 'English - US');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('fr_FR', 'French');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('de_DE', 'German');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('it_IT', 'Italian');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ko_KR', 'Korean');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ru_RU', 'Russian');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('es_ES', 'Spanish');

View File

@ -94,6 +94,8 @@ CREATE TABLE "cc_files"
"soundcloud_upload_time" TIMESTAMP(6),
"replay_gain" NUMERIC,
"owner_id" INTEGER,
"cuein" interval default '00:00:00',
"cueout" interval default '00:00:00',
"hidden" BOOLEAN default 'f',
PRIMARY KEY ("id")
);

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-11-29 11:31-0500\n"
"Last-Translator: Denise Rigato <denise.rigato@sourcefabric.org>\n"
"PO-Revision-Date: 2013-01-04 17:50+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Canadian Localization <contact@sourcefabric.org>\n"
"Language: en_CA\n"
"MIME-Version: 1.0\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-12-05 11:41+0100\n"
"PO-Revision-Date: 2013-01-04 17:47+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: British Localization <contact@sourcefabric.org>\n"
"Language: en_GB\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-28 16:00-0500\n"
"PO-Revision-Date: 2012-12-05 11:35+0100\n"
"PO-Revision-Date: 2013-01-04 17:48+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: United States Localization <contact@sourcefabric.org>\n"
"Language: en_US\n"
@ -2650,8 +2650,8 @@ msgstr "User Type"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format

View File

@ -7,9 +7,9 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-03 20:19-0600\n"
"Last-Translator: Claudia Cruz <claudia.cruz@sourcefabric.org>\n"
"Language-Team: <contact@sourcefabric.org>\n"
"PO-Revision-Date: 2013-01-04 17:38+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Spanish Localization <contact@sourcefabric.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -56,7 +56,7 @@ msgstr "Streams"
#: airtime_mvc/application/configs/navigation.php:70
#: airtime_mvc/application/controllers/PreferenceController.php:134
msgid "Support Feedback"
msgstr "Retroalimentación sobre el soporte técnico"
msgstr "Tu estación en nuestro catálogo"
#: airtime_mvc/application/configs/navigation.php:76
#: airtime_mvc/application/views/scripts/systemstatus/index.phtml:5
@ -2597,7 +2597,7 @@ msgstr "Fuente del show"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid "Scheduled Play"
msgstr "Reproducción programada"
msgstr "Contenido programado"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR"
@ -2649,8 +2649,8 @@ msgstr "Tipo de usuario"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, , el software de código abierto para programar y administrar estaciones de radio de forma remota. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, el software de código abierto para programar y administrar estaciones de radio de forma remota. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format

View File

@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-08 13:56+0100\n"
"Last-Translator: Albert Bruc <a.bruc@ab-ae.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"PO-Revision-Date: 2013-01-04 17:39+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: French Localization <contact@sourcefabric.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -105,12 +105,8 @@ msgstr "Déconnexion"
#: airtime_mvc/application/layouts/scripts/login.phtml:16
#, php-format
msgid ""
"Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained "
"and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgstr ""
"Airtime Copyright &copy;Sourcefabric o.p.s. Tous droits réservés.%sMaintenu "
"et distribué sous la GNU GPL v.3 par %sSourcefabric o.p.s%s"
msgid "Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgstr "Airtime Copyright &copy;Sourcefabric o.p.s. Tous droits réservés.%sMaintenu et distribué sous la GNU GPL v.3 par %sSourcefabric o.p.s%s"
#: airtime_mvc/application/models/StoredFile.php:797
#: airtime_mvc/application/controllers/LocaleController.php:277
@ -135,28 +131,16 @@ msgstr "Impossible de créer le répertoire \"organize\"."
#: airtime_mvc/application/models/StoredFile.php:950
#, php-format
msgid ""
"The file was not uploaded, there is %s MB of disk space left and the file "
"you are uploading has a size of %s MB."
msgstr ""
"Le fichier n'a pas été téléchargé, il y a %s Mo d'espace libre sur le disque "
"et le fichier que vous téléchargez a une taille de %s MB."
msgid "The file was not uploaded, there is %s MB of disk space left and the file you are uploading has a size of %s MB."
msgstr "Le fichier n'a pas été téléchargé, il y a %s Mo d'espace libre sur le disque et le fichier que vous téléchargez a une taille de %s MB."
#: airtime_mvc/application/models/StoredFile.php:959
msgid ""
"This file appears to be corrupted and will not be added to media library."
msgstr ""
"Ce fichier semble être endommagé et ne sera pas ajouté à la médiathèque."
msgid "This file appears to be corrupted and will not be added to media library."
msgstr "Ce fichier semble être endommagé et ne sera pas ajouté à la médiathèque."
#: airtime_mvc/application/models/StoredFile.php:995
msgid ""
"The file was not uploaded, this error can occur if the computer hard drive "
"does not have enough disk space or the stor directory does not have correct "
"write permissions."
msgstr ""
"Le fichier n'a pas été téléchargé, cette erreur peut se produire si le "
"disque dur de l'ordinateur ne dispose pas de suffisamment d'espace libre ou "
"le répertoire stockage ne dispose pas des autorisations d'écriture correctes."
msgid "The file was not uploaded, this error can occur if the computer hard drive does not have enough disk space or the stor directory does not have correct write permissions."
msgstr "Le fichier n'a pas été téléchargé, cette erreur peut se produire si le disque dur de l'ordinateur ne dispose pas de suffisamment d'espace libre ou le répertoire stockage ne dispose pas des autorisations d'écriture correctes."
#: airtime_mvc/application/models/Preference.php:469
msgid "Select Country"
@ -185,19 +169,13 @@ msgstr "%s n'est pas un répertoire valide."
#: airtime_mvc/application/models/MusicDir.php:231
#, php-format
msgid ""
"%s is already set as the current storage dir or in the watched folders list"
msgstr ""
"%s est déjà défini comme le répertoire de stockage courant ou dans la liste "
"des dossiers surveillés"
msgid "%s is already set as the current storage dir or in the watched folders list"
msgstr "%s est déjà défini comme le répertoire de stockage courant ou dans la liste des dossiers surveillés"
#: airtime_mvc/application/models/MusicDir.php:381
#, php-format
msgid ""
"%s is already set as the current storage dir or in the watched folders list."
msgstr ""
"%s est déjà défini comme espace de stockage courant ou dans la liste des "
"répertoires surveillés."
msgid "%s is already set as the current storage dir or in the watched folders list."
msgstr "%s est déjà défini comme espace de stockage courant ou dans la liste des répertoires surveillés."
#: airtime_mvc/application/models/MusicDir.php:424
#, php-format
@ -214,16 +192,14 @@ msgstr "Le Point d'entré et le point de sortie sont nul."
#: airtime_mvc/application/models/Block.php:803
#: airtime_mvc/application/models/Block.php:824
msgid "Can't set cue in to be larger than cue out."
msgstr ""
"Impossible de définir un point d'entrée plus grand que le point de sortie."
msgstr "Impossible de définir un point d'entrée plus grand que le point de sortie."
#: airtime_mvc/application/models/Playlist.php:761
#: airtime_mvc/application/models/Playlist.php:802
#: airtime_mvc/application/models/Block.php:792
#: airtime_mvc/application/models/Block.php:848
msgid "Can't set cue out to be greater than file length."
msgstr ""
"Ne peut pas fixer un point de sortie plus grand que la durée du fichier."
msgstr "Ne peut pas fixer un point de sortie plus grand que la durée du fichier."
#: airtime_mvc/application/models/Playlist.php:795
#: airtime_mvc/application/models/Block.php:859
@ -245,8 +221,7 @@ msgid ""
"Note: Resizing a repeating show affects all of its repeats."
msgstr ""
"Ne peux pas programmer des émissions qui se chevauchent. \n"
"Remarque: Le redimensionnement d'une émission répétée affecte l'ensemble de "
"ses répétitions."
"Remarque: Le redimensionnement d'une émission répétée affecte l'ensemble de ses répétitions."
#: airtime_mvc/application/models/Webstream.php:157
msgid "Length needs to be greater than 0 minutes"
@ -295,8 +270,7 @@ msgstr "Type de flux non reconnu: %s"
#: airtime_mvc/application/models/ShowInstance.php:245
msgid "Can't drag and drop repeating shows"
msgstr ""
"Vous ne pouvez pas faire glisser et déposer des émissions en répétition"
msgstr "Vous ne pouvez pas faire glisser et déposer des émissions en répétition"
#: airtime_mvc/application/models/ShowInstance.php:253
msgid "Can't move a past show"
@ -317,15 +291,11 @@ msgstr "Ne peux pas programmer des émissions qui se chevauchent"
#: airtime_mvc/application/models/ShowInstance.php:290
msgid "Can't move a recorded show less than 1 hour before its rebroadcasts."
msgstr ""
"Impossible de déplacer une émission enregistrée à moins d'1 heure avant ses "
"rediffusions."
msgstr "Impossible de déplacer une émission enregistrée à moins d'1 heure avant ses rediffusions."
#: airtime_mvc/application/models/ShowInstance.php:303
msgid "Show was deleted because recorded show does not exist!"
msgstr ""
"L'Emission a été éffacée parce que l'enregistrement de l'émission n'existe "
"pas!"
msgstr "L'Emission a été éffacée parce que l'enregistrement de l'émission n'existe pas!"
#: airtime_mvc/application/models/ShowInstance.php:310
msgid "Must wait 1 hour to rebroadcast."
@ -356,13 +326,11 @@ msgstr "Mot de passe Airtime Réinitialisé"
#: airtime_mvc/application/models/Scheduler.php:82
msgid "The schedule you're viewing is out of date! (sched mismatch)"
msgstr ""
"Le calendrier que vous consultez n'est pas à jour! (décalage calendaire)"
msgstr "Le calendrier que vous consultez n'est pas à jour! (décalage calendaire)"
#: airtime_mvc/application/models/Scheduler.php:87
msgid "The schedule you're viewing is out of date! (instance mismatch)"
msgstr ""
"La programmation que vous consultez n'est pas à jour! (décalage d'instance)"
msgstr "La programmation que vous consultez n'est pas à jour! (décalage d'instance)"
#: airtime_mvc/application/models/Scheduler.php:95
#: airtime_mvc/application/models/Scheduler.php:346
@ -669,9 +637,7 @@ msgstr "Promouvoir ma station sur Sourcefabric.org"
#: airtime_mvc/application/forms/SupportSettings.php:148
#, php-format
msgid "By checking this box, I agree to Sourcefabric's %sprivacy policy%s."
msgstr ""
"En cochant cette case, j'accepte la %spolitique de confidentialité%s de "
"Sourcefabric ."
msgstr "En cochant cette case, j'accepte la %spolitique de confidentialité%s de Sourcefabric ."
#: airtime_mvc/application/forms/RegisterAirtime.php:166
#: airtime_mvc/application/forms/SupportSettings.php:173
@ -723,11 +689,8 @@ msgid "Value is required and can't be empty"
msgstr "Une Valeur est requise, ne peut pas être vide"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:19
msgid ""
"'%value%' is no valid email address in the basic format local-part@hostname"
msgstr ""
"'%value%' n'est pas une adresse de courriel valide dans le format de type "
"partie-locale@nomdedomaine"
msgid "'%value%' is no valid email address in the basic format local-part@hostname"
msgstr "'%value%' n'est pas une adresse de courriel valide dans le format de type partie-locale@nomdedomaine"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:33
msgid "'%value%' does not fit the date format '%format%'"
@ -1149,11 +1112,11 @@ msgstr "'%value%' ne correspond pas au format de durée 'HH:mm'"
#: airtime_mvc/application/forms/AddShowWhen.php:22
msgid "Date/Time Start:"
msgstr "Date / Heure de Début:"
msgstr "Date/Heure de Début:"
#: airtime_mvc/application/forms/AddShowWhen.php:49
msgid "Date/Time End:"
msgstr "Date / Heure de Fin:"
msgstr "Date/Heure de Fin:"
#: airtime_mvc/application/forms/AddShowWhen.php:74
msgid "Duration:"
@ -1169,9 +1132,7 @@ msgstr "Impossible de créer un émission dans le passé"
#: airtime_mvc/application/forms/AddShowWhen.php:111
msgid "Cannot modify start date/time of the show that is already started"
msgstr ""
"Vous ne pouvez pas modifier la date / heure de début de l'émission qui a "
"déjà commencé"
msgstr "Vous ne pouvez pas modifier la date / heure de début de l'émission qui a déjà commencé"
#: airtime_mvc/application/forms/AddShowWhen.php:130
msgid "Cannot have duration 00h 00m"
@ -1399,11 +1360,8 @@ msgstr "La 'Durée' doit être au format '00:00:00'"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:502
#: airtime_mvc/application/forms/SmartBlockCriteria.php:515
msgid ""
"The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
msgstr ""
"La valeur doit être en format d'horodatage (par exemple 0000-00-00 ou "
"00-00-00 00:00:00)"
msgid "The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
msgstr "La valeur doit être en format d'horodatage (par exemple 0000-00-00 ou 00-00-00 00:00:00)"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:529
msgid "The value has to be numeric"
@ -1464,12 +1422,8 @@ msgstr "Entrez une durée en secondes 0{.0}"
#: airtime_mvc/application/forms/GeneralPreferences.php:48
#, php-format
msgid ""
"Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make "
"front-end widgets work.)"
msgstr ""
"Autoriser les sites internet à acceder aux informations de la Programmation ?"
"%s (Activer cette option permettra aux widgets de fonctionner.)"
msgid "Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make front-end widgets work.)"
msgstr "Autoriser les sites internet à acceder aux informations de la Programmation ?%s (Activer cette option permettra aux widgets de fonctionner.)"
#: airtime_mvc/application/forms/GeneralPreferences.php:49
msgid "Disabled"
@ -1662,17 +1616,11 @@ msgstr "S'il vous plaît saisissez votre nom d'utilisateur et mot de passe"
#: airtime_mvc/application/controllers/LoginController.php:73
msgid "Wrong username or password provided. Please try again."
msgstr ""
"Mauvais Nom d'utilisateur ou mot de passe fourni. S'il vous plaît essayez de "
"nouveau."
msgstr "Mauvais Nom d'utilisateur ou mot de passe fourni. S'il vous plaît essayez de nouveau."
#: airtime_mvc/application/controllers/LoginController.php:135
msgid ""
"Email could not be sent. Check your mail server settings and ensure it has "
"been configured properly."
msgstr ""
"Le Courriel n'a pas pu être envoyé. Vérifiez vos paramètres du serveur de "
"messagerie et s'assurez vous qu'il a été correctement configuré."
msgid "Email could not be sent. Check your mail server settings and ensure it has been configured properly."
msgstr "Le Courriel n'a pas pu être envoyé. Vérifiez vos paramètres du serveur de messagerie et s'assurez vous qu'il a été correctement configuré."
#: airtime_mvc/application/controllers/LoginController.php:138
msgid "Given email not found."
@ -1786,9 +1734,7 @@ msgstr "Vous pouvez seulement ajouter des pistes aux Blocs Intelligents."
#: airtime_mvc/application/controllers/LocaleController.php:54
#: airtime_mvc/application/controllers/PlaylistController.php:160
msgid "You can only add tracks, smart blocks, and webstreams to playlists."
msgstr ""
"Vous pouvez uniquement ajouter des pistes, des blocs intelligents et flux "
"web aux listes de lecture."
msgstr "Vous pouvez uniquement ajouter des pistes, des blocs intelligents et flux web aux listes de lecture."
#: airtime_mvc/application/controllers/LocaleController.php:60
msgid "Add to selected show"
@ -1898,13 +1844,8 @@ msgstr "L'entrée doit être au format suivant: hh:mm:ss.t"
#: airtime_mvc/application/controllers/LocaleController.php:111
#, php-format
msgid ""
"You are currently uploading files. %sGoing to another screen will cancel the "
"upload process. %sAre you sure you want to leave the page?"
msgstr ""
"Vous êtes en train de téléverser des fichiers. %s Aller vers un autre écran "
"pour annuler le processus de téléversement. %s Êtes-vous sûr de vouloir "
"quitter la page?"
msgid "You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"
msgstr "Vous êtes en train de téléverser des fichiers. %s Aller vers un autre écran pour annuler le processus de téléversement. %s Êtes-vous sûr de vouloir quitter la page?"
#: airtime_mvc/application/controllers/LocaleController.php:113
msgid "please put in a time '00:00:00 (.0)'"
@ -1916,8 +1857,7 @@ msgstr "s'il vous plaît mettez dans une durée en secondes '00 (.0) '"
#: airtime_mvc/application/controllers/LocaleController.php:115
msgid "Your browser does not support playing this file type: "
msgstr ""
"Votre navigateur ne prend pas en charge la lecture de ce type de fichier:"
msgstr "Votre navigateur ne prend pas en charge la lecture de ce type de fichier:"
#: airtime_mvc/application/controllers/LocaleController.php:116
msgid "Dynamic block is not previewable"
@ -1932,14 +1872,8 @@ msgid "Playlist saved"
msgstr "Liste de Lecture sauvegardé"
#: airtime_mvc/application/controllers/LocaleController.php:120
msgid ""
"Airtime is unsure about the status of this file. This can happen when the "
"file is on a remote drive that is unaccessible or the file is in a directory "
"that isn't 'watched' anymore."
msgstr ""
"Airtime n'est pas sûr de l'état de ce fichier. Cela peut arriver lorsque le "
"fichier se trouve sur un lecteur distant qui est inaccessible ou si le "
"fichier est dans un répertoire qui n'est pas plus «sruveillé»."
msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
msgstr "Airtime n'est pas sûr de l'état de ce fichier. Cela peut arriver lorsque le fichier se trouve sur un lecteur distant qui est inaccessible ou si le fichier est dans un répertoire qui n'est pas plus «sruveillé»."
#: airtime_mvc/application/controllers/LocaleController.php:122
#, php-format
@ -1964,36 +1898,16 @@ msgid "Image must be one of jpg, jpeg, png, or gif"
msgstr "L'Image doit être du type jpg, jpeg, png, ou gif"
#: airtime_mvc/application/controllers/LocaleController.php:130
msgid ""
"A static smart block will save the criteria and generate the block content "
"immediately. This allows you to edit and view it in the Library before "
"adding it to a show."
msgstr ""
"Un bloc statique intelligent permettra d'économiser les critères et générera "
"le contenu du bloc immédiatement. Cela vous permet d'éditer et de le voir "
"dans la médiathèque avant de l'ajouter à une émission."
msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show."
msgstr "Un bloc statique intelligent permettra d'économiser les critères et générera le contenu du bloc immédiatement. Cela vous permet d'éditer et de le voir dans la médiathèque avant de l'ajouter à une émission."
#: airtime_mvc/application/controllers/LocaleController.php:132
msgid ""
"A dynamic smart block will only save the criteria. The block content will "
"get generated upon adding it to a show. You will not be able to view and "
"edit the content in the Library."
msgstr ""
"Un bloc dynamique intelligent enregistre uniquement les critères. Le contenu "
"du bloc que vous obtiendrez sera généré lors de l'ajout à l'émission. Vous "
"ne serez pas en mesure d'afficher et de modifier le contenu de la "
"médiathèque."
msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library."
msgstr "Un bloc dynamique intelligent enregistre uniquement les critères. Le contenu du bloc que vous obtiendrez sera généré lors de l'ajout à l'émission. Vous ne serez pas en mesure d'afficher et de modifier le contenu de la médiathèque."
#: airtime_mvc/application/controllers/LocaleController.php:134
msgid ""
"The desired block length will not be reached if Airtime cannot find enough "
"unique tracks to match your criteria. Enable this option if you wish to "
"allow tracks to be added multiple times to the smart block."
msgstr ""
"La longueur du bloc souhaité ne sera pas atteint si de temps d'antenne ne "
"peut pas trouver suffisamment de pistes uniques en fonction de vos critères. "
"Activez cette option si vous souhaitez autoriser les pistes à s'ajouter "
"plusieurs fois dans le bloc intelligent."
msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block."
msgstr "La longueur du bloc souhaité ne sera pas atteint si de temps d'antenne ne peut pas trouver suffisamment de pistes uniques en fonction de vos critères. Activez cette option si vous souhaitez autoriser les pistes à s'ajouter plusieurs fois dans le bloc intelligent."
#: airtime_mvc/application/controllers/LocaleController.php:135
msgid "Smart block shuffled"
@ -2057,19 +1971,8 @@ msgid "Can not connect to the streaming server"
msgstr "Impossible de se connecter au serveur de flux"
#: airtime_mvc/application/controllers/LocaleController.php:171
msgid ""
"If Airtime is behind a router or firewall, you may need to configure port "
"forwarding and this field information will be incorrect. In this case you "
"will need to manually update this field so it shows the correct host/port/"
"mount that your DJ's need to connect to. The allowed range is between 1024 "
"and 49151."
msgstr ""
"Si Airtime est derrière un routeur ou un pare-feu, vous devrez peut-être "
"configurer la redirection de port et ce champ d'information sera alors "
"incorrect.Dans ce cas, vous devrez mettre à jour manuellement ce champ de "
"sorte qu'il affiche l'hôte/le port /le point de montage correct dont le DJ "
"a besoin pour s'y connecter. La plage autorisée est comprise entre 1024 et "
"49151."
msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151."
msgstr "Si Airtime est derrière un routeur ou un pare-feu, vous devrez peut-être configurer la redirection de port et ce champ d'information sera alors incorrect.Dans ce cas, vous devrez mettre à jour manuellement ce champ de sorte qu'il affiche l'hôte/le port /le point de montage correct dont le DJ a besoin pour s'y connecter. La plage autorisée est comprise entre 1024 et 49151."
#: airtime_mvc/application/controllers/LocaleController.php:172
#, php-format
@ -2077,90 +1980,41 @@ msgid "For more details, please read the %sAirtime Manual%s"
msgstr "Pour plus de détails, s'il vous plaît lire le %sManuel d'Airtime%s"
#: airtime_mvc/application/controllers/LocaleController.php:174
msgid ""
"Check this option to enable metadata for OGG streams (stream metadata is the "
"track title, artist, and show name that is displayed in an audio player). "
"VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that "
"has metadata information enabled: they will disconnect from the stream after "
"every song. If you are using an OGG stream and your listeners do not require "
"support for these audio players, then feel free to enable this option."
msgstr ""
"Cochez cette option pour activer les métadonnées pour les flux OGG (les "
"métadonnées du flux est le titre de la piste, l'artiste et le nom de "
"émission qui est affiché dans un lecteur audio). VLC et mplayer ont un "
"sérieux bogue lors de la lecture d'un flux Ogg / Vorbis qui affiche les "
"informations de métadonnées: ils se déconnecteront après chaque chanson. Si "
"vous utilisez un flux OGG et vos auditeurs n'utilisent pas ces lecteurs "
"audio, alors n'hésitez pas à activer cette option."
msgid "Check this option to enable metadata for OGG streams (stream metadata is the track title, artist, and show name that is displayed in an audio player). VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that has metadata information enabled: they will disconnect from the stream after every song. If you are using an OGG stream and your listeners do not require support for these audio players, then feel free to enable this option."
msgstr "Cochez cette option pour activer les métadonnées pour les flux OGG (les métadonnées du flux est le titre de la piste, l'artiste et le nom de émission qui est affiché dans un lecteur audio). VLC et mplayer ont un sérieux bogue lors de la lecture d'un flux Ogg / Vorbis qui affiche les informations de métadonnées: ils se déconnecteront après chaque chanson. Si vous utilisez un flux OGG et vos auditeurs n'utilisent pas ces lecteurs audio, alors n'hésitez pas à activer cette option."
#: airtime_mvc/application/controllers/LocaleController.php:175
msgid ""
"Check this box to automatically switch off Master/Show source upon source "
"disconnection."
msgstr ""
"Cochez cette case arrête automatiquement la source Maître/Emission lors de "
"la déconnexion."
msgid "Check this box to automatically switch off Master/Show source upon source disconnection."
msgstr "Cochez cette case arrête automatiquement la source Maître/Emission lors de la déconnexion."
#: airtime_mvc/application/controllers/LocaleController.php:176
msgid ""
"Check this box to automatically switch on Master/Show source upon source "
"connection."
msgstr ""
"Cochez cette case démarre automatiquement la source Maître/Emission lors de "
"la connexion."
msgid "Check this box to automatically switch on Master/Show source upon source connection."
msgstr "Cochez cette case démarre automatiquement la source Maître/Emission lors de la connexion."
#: airtime_mvc/application/controllers/LocaleController.php:177
msgid ""
"If your Icecast server expects a username of 'source', this field can be "
"left blank."
msgstr ""
"Si votre serveur Icecast s'attend à ce que le nom d'utilisateur soit "
"«source», ce champ peut être laissé vide."
msgid "If your Icecast server expects a username of 'source', this field can be left blank."
msgstr "Si votre serveur Icecast s'attend à ce que le nom d'utilisateur soit «source», ce champ peut être laissé vide."
#: airtime_mvc/application/controllers/LocaleController.php:178
#: airtime_mvc/application/controllers/LocaleController.php:187
msgid ""
"If your live streaming client does not ask for a username, this field should "
"be 'source'."
msgstr ""
"Si votre client de flux audio ne demande pas un nom d'utilisateur, ce champ "
"doit être «source»."
msgid "If your live streaming client does not ask for a username, this field should be 'source'."
msgstr "Si votre client de flux audio ne demande pas un nom d'utilisateur, ce champ doit être «source»."
#: airtime_mvc/application/controllers/LocaleController.php:180
msgid ""
"If you change the username or password values for an enabled stream the "
"playout engine will be rebooted and your listeners will hear silence for "
"5-10 seconds. Changing the following fields will NOT cause a reboot: Stream "
"Label (Global Settings), and Switch Transition Fade(s), Master Username, and "
"Master Password (Input Stream Settings). If Airtime is recording, and if the "
"change causes a playout engine restart, the recording will be interrupted."
msgstr ""
"Si vous modifiez les valeurs du nom d'utilisateur ou du mot de passe pour un "
"flux activé le moteur diffusion sera redémarré et vos auditeurs entendront "
"un silence pendant 5-10 secondes. Changer les champs suivants ne "
"provoqueront pas un redémarrage: Label du Flux (Paramètres globaux), et "
"Commutateur de transition du fondu (s), Nom d'Utilisateur Maître, et le Mot "
"de passe Maître (Paramètres du flux d'entrée). Si Airtime enregistre, et si "
"la modification entraîne un redémarrage du moteur, l'enregistrement sera "
"interrompu."
msgid "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
msgstr "Si vous modifiez les valeurs du nom d'utilisateur ou du mot de passe pour un flux activé le moteur diffusion sera redémarré et vos auditeurs entendront un silence pendant 5-10 secondes. Changer les champs suivants ne provoqueront pas un redémarrage: Label du Flux (Paramètres globaux), et Commutateur de transition du fondu (s), Nom d'Utilisateur Maître, et le Mot de passe Maître (Paramètres du flux d'entrée). Si Airtime enregistre, et si la modification entraîne un redémarrage du moteur, l'enregistrement sera interrompu."
#: airtime_mvc/application/controllers/LocaleController.php:184
msgid "No result found"
msgstr "aucun résultat trouvé"
#: airtime_mvc/application/controllers/LocaleController.php:185
msgid ""
"This follows the same security pattern for the shows: only users assigned to "
"the show can connect."
msgstr ""
"Cela suit le même modèle de sécurité que pour les émissions: seuls les "
"utilisateurs affectés à l' émission peuvent se connecter."
msgid "This follows the same security pattern for the shows: only users assigned to the show can connect."
msgstr "Cela suit le même modèle de sécurité que pour les émissions: seuls les utilisateurs affectés à l' émission peuvent se connecter."
#: airtime_mvc/application/controllers/LocaleController.php:186
msgid "Specify custom authentication which will work only for this show."
msgstr ""
"Spécifiez l'authentification personnalisée qui ne fonctionnera que pour "
"cette émission."
msgstr "Spécifiez l'authentification personnalisée qui ne fonctionnera que pour cette émission."
#: airtime_mvc/application/controllers/LocaleController.php:188
msgid "The show instance doesn't exist anymore!"
@ -2316,11 +2170,8 @@ msgid "month"
msgstr "mois"
#: airtime_mvc/application/controllers/LocaleController.php:253
msgid ""
"Shows longer than their scheduled time will be cut off by a following show."
msgstr ""
"Les émissions qui dépassent leur programmation seront coupés par les "
"émissions suivantes."
msgid "Shows longer than their scheduled time will be cut off by a following show."
msgstr "Les émissions qui dépassent leur programmation seront coupés par les émissions suivantes."
#: airtime_mvc/application/controllers/LocaleController.php:254
msgid "Cancel Current Show?"
@ -2798,19 +2649,13 @@ msgstr "Type d'Utilisateur"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid ""
"%sAirtime%s %s, , the open radio software for scheduling and remote station "
"management. %s"
msgstr ""
"%sAirtime%s %s, , est un logiciel libre pour la gestion et l'automation "
"d'une station de radio distante. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, est un logiciel libre pour la gestion et l'automation d'une station de radio distante. %s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format
msgid ""
"%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
msgstr ""
"%sSourcefabric%s o.p.s. Airtime est distribué sous la licence %sGNU GPL v.3%s"
msgid "%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
msgstr "%sSourcefabric%s o.p.s. Airtime est distribué sous la licence %sGNU GPL v.3%s"
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50
msgid "Select stream:"
@ -2831,46 +2676,24 @@ msgid "Welcome to Airtime!"
msgstr "Bienvenue à Airtime!"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:4
msgid ""
"Here's how you can get started using Airtime to automate your broadcasts: "
msgstr ""
"Voici comment vous pouvez commencer à utiliser Airtime pour automatiser vos "
"diffusions:"
msgid "Here's how you can get started using Airtime to automate your broadcasts: "
msgstr "Voici comment vous pouvez commencer à utiliser Airtime pour automatiser vos diffusions:"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:7
msgid ""
"Begin by adding your files to the library using the 'Add Media' menu button. "
"You can drag and drop your files to this window too."
msgstr ""
"Commencez par ajouter vos fichiers à l'aide du menu \"Ajouter un média\". "
"Vous pouvez faire glisser et déposer vos fichiers sur la fenêtre."
msgid "Begin by adding your files to the library using the 'Add Media' menu button. You can drag and drop your files to this window too."
msgstr "Commencez par ajouter vos fichiers à l'aide du menu \"Ajouter un média\". Vous pouvez faire glisser et déposer vos fichiers sur la fenêtre."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:8
msgid ""
"Create a show by going to 'Calendar' in the menu bar, and then clicking the "
"'+ Show' icon. This can be either a one-time or repeating show. Only admins "
"and program managers can add shows."
msgstr ""
"Créer une émission en allant sur «Calendrier» dans la barre de menus, puis "
"en cliquant sur l'icône 'Emission + \". Il peut s'agir d'une seule fois ou "
"d'une émission en répétition. Seuls les administrateurs et les gestionnaires "
"de programmation peuvent ajouter des émissions."
msgid "Create a show by going to 'Calendar' in the menu bar, and then clicking the '+ Show' icon. This can be either a one-time or repeating show. Only admins and program managers can add shows."
msgstr "Créer une émission en allant sur «Calendrier» dans la barre de menus, puis en cliquant sur l'icône 'Emission + \". Il peut s'agir d'une seule fois ou d'une émission en répétition. Seuls les administrateurs et les gestionnaires de programmation peuvent ajouter des émissions."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:9
msgid ""
"Add media to the show by going to your show in the Schedule calendar, left-"
"clicking on it and selecting 'Add / Remove Content'"
msgstr ""
"Ajouter des médias à votre émission en cliquant sur votre émission dans le "
"calendrier, Clic gauche dessus et selectionnez 'Ajouter / Supprimer Contenu'"
msgid "Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting 'Add / Remove Content'"
msgstr "Ajouter des médias à votre émission en cliquant sur votre émission dans le calendrier, Clic gauche dessus et selectionnez 'Ajouter / Supprimer Contenu'"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:10
msgid ""
"Select your media from the left pane and drag them to your show in the right "
"pane."
msgstr ""
"Sélectionnez votre média dans le cadre de gauche et glissez-les dans votre "
"émission dans le cadre de droite."
msgid "Select your media from the left pane and drag them to your show in the right pane."
msgstr "Sélectionnez votre média dans le cadre de gauche et glissez-les dans votre émission dans le cadre de droite."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:12
msgid "Then you're good to go!"
@ -3031,12 +2854,8 @@ msgid "Back to login screen"
msgstr "Retour à l'écran de connexion"
#: airtime_mvc/application/views/scripts/login/index.phtml:7
msgid ""
"Welcome to the online Airtime demo! You can log in using the username "
"'admin' and the password 'admin'."
msgstr ""
"Bienvenue à la démonstration en ligne d'Airtime! Vous pouvez vous connecter "
"en utilisant \"admin\" comme nom d'utilisateur et «admin» comme mot de passe."
msgid "Welcome to the online Airtime demo! You can log in using the username 'admin' and the password 'admin'."
msgstr "Bienvenue à la démonstration en ligne d'Airtime! Vous pouvez vous connecter en utilisant \"admin\" comme nom d'utilisateur et «admin» comme mot de passe."
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:3
#: airtime_mvc/application/views/scripts/form/login.phtml:25
@ -3044,12 +2863,8 @@ msgid "Reset password"
msgstr "Réinitialisation du Mot de Passe"
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:7
msgid ""
"Please enter your account e-mail address. You will receive a link to create "
"a new password via e-mail."
msgstr ""
"S'il vous plaît saisissez votre adresse de courriel. Vous recevrez un lien "
"pour créer un nouveau mot de passe par courriel."
msgid "Please enter your account e-mail address. You will receive a link to create a new password via e-mail."
msgstr "S'il vous plaît saisissez votre adresse de courriel. Vous recevrez un lien pour créer un nouveau mot de passe par courriel."
#: airtime_mvc/application/views/scripts/login/password-change.phtml:3
msgid "New password"
@ -3057,9 +2872,7 @@ msgstr "Nouveau mot de passe"
#: airtime_mvc/application/views/scripts/login/password-change.phtml:6
msgid "Please enter and confirm your new password in the fields below."
msgstr ""
"S'il vous plaît saisir et confirmer votre nouveau mot de passe dans les "
"champs ci-dessous."
msgstr "S'il vous plaît saisir et confirmer votre nouveau mot de passe dans les champs ci-dessous."
#: airtime_mvc/application/views/scripts/systemstatus/index.phtml:4
msgid "Service"
@ -3115,12 +2928,8 @@ msgstr "Mise à Jour Requise"
#: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70
#, php-format
msgid ""
"To play the media you will need to either update your browser to a recent "
"version or update your %sFlash plugin%s."
msgstr ""
"Pour lire le média, vous devrez mettre à jour votre navigateur vers une "
"version récente ou mettre à jour votre %sPlugin Flash%s."
msgid "To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."
msgstr "Pour lire le média, vous devrez mettre à jour votre navigateur vers une version récente ou mettre à jour votre %sPlugin Flash%s."
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51
msgid "Stream URL:"
@ -3168,11 +2977,8 @@ msgid "Additional Options"
msgstr "options supplémentaires"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108
msgid ""
"The following info will be displayed to listeners in their media player:"
msgstr ""
"Les informations suivantes seront affichées aux auditeurs dans leur lecteur "
"multimédia:"
msgid "The following info will be displayed to listeners in their media player:"
msgstr "Les informations suivantes seront affichées aux auditeurs dans leur lecteur multimédia:"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:141
msgid "(Your radio station website)"
@ -3202,12 +3008,8 @@ msgid "Add"
msgstr "Ajouter"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43
msgid ""
"Rescan watched directory (This is useful if it is network mount and may be "
"out of sync with Airtime)"
msgstr ""
"Rescanner le répertoire surveillé (Peut être utile si c'est un montage "
"réseau et est peut être désynchronisé avec Airtime)"
msgid "Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)"
msgstr "Rescanner le répertoire surveillé (Peut être utile si c'est un montage réseau et est peut être désynchronisé avec Airtime)"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44
msgid "Remove watched directory"
@ -3232,29 +3034,13 @@ msgstr "Enregistrez Airtime"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6
#, php-format
msgid ""
"Help Airtime improve by letting us know how you are using it. This info will "
"be collected regularly in order to enhance your user experience.%sClick "
"'Yes, help Airtime' and we'll make sure the features you use are constantly "
"improving."
msgstr ""
"Aidez Airtime à s' améliorer en nous faisant savoir comment vous l'utilisez. "
"Cette information sera recueillie régulièrement afin d'améliorer votre "
"expérience utilisateur.%sClickez «Oui, aidez Airtime» et nous nous "
"assurerons que les fonctions que vous utilisez soient en constante "
"amélioration."
msgid "Help Airtime improve by letting us know how you are using it. This info will be collected regularly in order to enhance your user experience.%sClick 'Yes, help Airtime' and we'll make sure the features you use are constantly improving."
msgstr "Aidez Airtime à s' améliorer en nous faisant savoir comment vous l'utilisez. Cette information sera recueillie régulièrement afin d'améliorer votre expérience utilisateur.%sClickez «Oui, aidez Airtime» et nous nous assurerons que les fonctions que vous utilisez soient en constante amélioration."
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25
#, php-format
msgid ""
"Click the box below to advertise your station on %sSourcefabric.org%s. In "
"order to promote your station, 'Send support feedback' must be enabled. This "
"data will be collected in addition to the support feedback."
msgstr ""
"Cliquez sur la case ci-dessous pour annoncer votre station sur "
"%sSourcefabric.org%s. Afin de promouvoir votre station, 'Envoyez vos "
"remarques au support \"doit être activé. Ces données seront recueillies en "
"plus des retours d'informations."
msgid "Click the box below to advertise your station on %sSourcefabric.org%s. In order to promote your station, 'Send support feedback' must be enabled. This data will be collected in addition to the support feedback."
msgstr "Cliquez sur la case ci-dessous pour annoncer votre station sur %sSourcefabric.org%s. Afin de promouvoir votre station, 'Envoyez vos remarques au support \"doit être activé. Ces données seront recueillies en plus des retours d'informations."
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79
@ -3330,31 +3116,17 @@ msgstr "Réglages SoundCloud"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:5
#, php-format
msgid ""
"Help Airtime improve by letting Sourcefabric know how you are using it. This "
"information will be collected regularly in order to enhance your user "
"experience.%sClick the 'Send support feedback' box and we'll make sure the "
"features you use are constantly improving."
msgstr ""
"Aide Airtime à s'améliorer en laissant Sourcefabric savoir comment vous "
"l'utilisez. Ces informations seront recueillies régulièrement afin "
"d'améliorer votre expérience utilisateur.%sCochez la case 'Envoyer un retour "
"d'information au support' et nous ferons en sorte que les fonctions que vous "
"utilisez s'améliorent constamment."
msgid "Help Airtime improve by letting Sourcefabric know how you are using it. This information will be collected regularly in order to enhance your user experience.%sClick the 'Send support feedback' box and we'll make sure the features you use are constantly improving."
msgstr "Aide Airtime à s'améliorer en laissant Sourcefabric savoir comment vous l'utilisez. Ces informations seront recueillies régulièrement afin d'améliorer votre expérience utilisateur.%sCochez la case 'Envoyer un retour d'information au support' et nous ferons en sorte que les fonctions que vous utilisez s'améliorent constamment."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:23
#, php-format
msgid "Click the box below to promote your station on %sSourcefabric.org%s."
msgstr ""
"Cliquez sur la case ci-dessous pour la promotion de votre station sur "
"%sSourcefabric.org%s."
msgstr "Cliquez sur la case ci-dessous pour la promotion de votre station sur %sSourcefabric.org%s."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:41
msgid ""
"(In order to promote your station, 'Send support feedback' must be enabled)."
msgstr ""
"(Pour la promotion de votre station, 'Envoyez vos remarques au support' doit "
"être activé)."
msgid "(In order to promote your station, 'Send support feedback' must be enabled)."
msgstr "(Pour la promotion de votre station, 'Envoyez vos remarques au support' doit être activé)."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:186
msgid "Sourcefabric Privacy Policy"
@ -3465,3 +3237,4 @@ msgstr "S'il vous plait, selectionnez une option"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records"
msgstr "Aucun Enregistrements"

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -3,14 +3,13 @@
# This file is distributed under the same license as the Airtime package.
# Sourcefabric <contact@sourcefabric.org>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: contact@sourcefabric.org\n"
"POT-Creation-Date: 2012-11-26 14:16-0500\n"
"PO-Revision-Date: 2012-11-26 14:16-0500\n"
"Last-Translator: James Moon <james.moon@sourcefabric.org>\n"
"PO-Revision-Date: 2013-01-04 17:45+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Korean Localization <contact@sourcefabric.org>\n"
"Language: ko_KR\n"
"MIME-Version: 1.0\n"
@ -106,9 +105,7 @@ msgstr "로그아웃"
#: airtime_mvc/application/layouts/scripts/login.phtml:16
#, php-format
msgid ""
"Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained "
"and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgid "Airtime Copyright &copy;Sourcefabric o.p.s. All rights reserved.%sMaintained and distributed under GNU GPL v.3 by %sSourcefabric o.p.s%s"
msgstr ""
#: airtime_mvc/application/models/StoredFile.php:797
@ -134,26 +131,16 @@ msgstr "스마트 블록"
#: airtime_mvc/application/models/StoredFile.php:950
#, php-format
msgid ""
"The file was not uploaded, there is %s MB of disk space left and the file "
"you are uploading has a size of %s MB."
msgstr ""
"파일 업로드를 실패 하였습니다. 남은 disk공간이 %s MB 이고, "
"파일 크기가 %s MB 입니다."
msgid "The file was not uploaded, there is %s MB of disk space left and the file you are uploading has a size of %s MB."
msgstr "파일 업로드를 실패 하였습니다. 남은 disk공간이 %s MB 이고, 파일 크기가 %s MB 입니다."
#: airtime_mvc/application/models/StoredFile.php:959
msgid ""
"This file appears to be corrupted and will not be added to media library."
msgstr ""
"파일이 손상되었으므로, 라이브러리에 추가 되지 않습니다."
msgid "This file appears to be corrupted and will not be added to media library."
msgstr "파일이 손상되었으므로, 라이브러리에 추가 되지 않습니다."
#: airtime_mvc/application/models/StoredFile.php:995
msgid ""
"The file was not uploaded, this error can occur if the computer hard drive "
"does not have enough disk space or the stor directory does not have correct "
"write permissions."
msgstr ""
"파일이 업로드 되지 않았습니다. 이 에러는 하드 디스크에 공간이 충분치 않거나, 권한이 부족하여 생길수 있습니다."
msgid "The file was not uploaded, this error can occur if the computer hard drive does not have enough disk space or the stor directory does not have correct write permissions."
msgstr "파일이 업로드 되지 않았습니다. 이 에러는 하드 디스크에 공간이 충분치 않거나, 권한이 부족하여 생길수 있습니다."
#: airtime_mvc/application/models/MusicDir.php:160
#, php-format
@ -178,14 +165,12 @@ msgstr "%s는 옳은 경로가 아닙니다."
#: airtime_mvc/application/models/MusicDir.php:231
#, php-format
msgid ""
"%s is already set as the current storage dir or in the watched folders list"
msgid "%s is already set as the current storage dir or in the watched folders list"
msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다."
#: airtime_mvc/application/models/MusicDir.php:381
#, php-format
msgid ""
"%s is already set as the current storage dir or in the watched folders list."
msgid "%s is already set as the current storage dir or in the watched folders list."
msgstr "%s는 이미 현재 저장 폴더로 지정이 되었거나 모니터중인 폴더 입니다."
#: airtime_mvc/application/models/MusicDir.php:424
@ -230,7 +215,8 @@ msgstr "종료 날짜/시간을 과거로 설정할수 없습니다"
msgid ""
"Cannot schedule overlapping shows.\n"
"Note: Resizing a repeating show affects all of its repeats."
msgstr "쇼를 중복되게 스케줄 알수 없습니다.\n"
msgstr ""
"쇼를 중복되게 스케줄 알수 없습니다.\n"
"주의: 반복 쇼의 크기를 조정하면, 모든 반복 쇼의 크기가 바뀝니다."
#: airtime_mvc/application/models/Webstream.php:157
@ -325,7 +311,8 @@ msgid ""
"Hi %s, \n"
"\n"
"Click this link to reset your password: "
msgstr "안녕하세요 %s님, \n"
msgstr ""
"안녕하세요 %s님, \n"
"암호 재설정을 하시려면 링크를 클릭하세요: "
#: airtime_mvc/application/models/Scheduler.php:82
@ -344,7 +331,7 @@ msgstr "현재 보고 계신 스케쥴이 맞지 않습니다"
#: airtime_mvc/application/models/Scheduler.php:105
#, php-format
msgid "You are not allowed to schedule show %s."
msgstr "쇼를 스케쥴 할수 있는 권한이 없습니다"
msgstr "쇼를 스케쥴 할수 있는 권한이 없습니다 %s."
#: airtime_mvc/application/models/Scheduler.php:109
msgid "You cannot add files to recording shows."
@ -538,7 +525,7 @@ msgstr "년도"
#: airtime_mvc/application/common/DateHelper.php:335
#, php-format
msgid "The year %s must be within the range of 1753 - 9999"
msgstr "년도 값은 1753 - 9999 입니다"
msgstr "년도 값은 %s 1753 - 9999 입니다"
#: airtime_mvc/application/common/DateHelper.php:338
#, php-format
@ -685,8 +672,8 @@ msgstr "종료"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:15
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:6
msgid ""
msgstr ""
msgid "days"
msgstr ""
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:63
#: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:58
@ -1333,8 +1320,7 @@ msgstr "길이는 00:00:00 형태로 입력하세요"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:502
#: airtime_mvc/application/forms/SmartBlockCriteria.php:515
msgid ""
"The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
msgid "The value should be in timestamp format(eg. 0000-00-00 or 00-00-00 00:00:00)"
msgstr "이 값은 timestamp 형태(eg. 0000-00-00 or 00-00-00 00:00:00)로 입력해주세요"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:529
@ -1396,9 +1382,7 @@ msgstr "초단위를 입력해주세요 0{.0}"
#: airtime_mvc/application/forms/GeneralPreferences.php:47
#, php-format
msgid ""
"Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make "
"front-end widgets work."
msgid "Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make front-end widgets work.)"
msgstr "리모트 웹사이트에서 스케쥴 정보에 접근을 허용? %s (위젯을 사용하려면 체크 하세요)"
#: airtime_mvc/application/forms/GeneralPreferences.php:48
@ -1595,9 +1579,7 @@ msgid "Wrong username or password provided. Please try again."
msgstr "아이디와 암호가 맞지 않습니다. 다시 시도해주세요"
#: airtime_mvc/application/controllers/LoginController.php:135
msgid ""
"Email could not be sent. Check your mail server settings and ensure it has "
"been configured properly."
msgid "Email could not be sent. Check your mail server settings and ensure it has been configured properly."
msgstr "이메일을 전송 할수 없습니다. 메일 서버 세팅을 다시 확인 하여 주세요"
#: airtime_mvc/application/controllers/LoginController.php:138
@ -1822,9 +1804,7 @@ msgstr "hh:mm:ss.t의 형태로 입력해주세요"
#: airtime_mvc/application/controllers/LocaleController.php:106
#, php-format
msgid ""
"You are currently uploading files. %sGoing to another screen will cancel the "
"upload process. %sAre you sure you want to leave the page?"
msgid "You are currently uploading files. %sGoing to another screen will cancel the upload process. %sAre you sure you want to leave the page?"
msgstr "현재 파일이 업로드 중입니다. %s다른 화면으로 이동하면 현재까지 업로드한 프로세스가 취소됩니다. %s이동하겠습니까?"
#: airtime_mvc/application/controllers/LocaleController.php:108
@ -1852,12 +1832,8 @@ msgid "Playlist saved"
msgstr "재생 목록이 저장 되었습니다"
#: airtime_mvc/application/controllers/LocaleController.php:116
msgid ""
"Airtime is unsure about the status of this file. This can happen when the "
"file is on a remote drive that is unaccessible or the file is in a directory "
"that isn't 'watched' anymore."
msgstr "Airtime이 파일에 대해 정확히 알수 없습니다. 이 경우는 파일이 접근할수 없는 리모트 드라이브에 있거나,"
" 파일이 있는 폴더가 더이상 모니터 되지 않을때 일어날수 있습니다."
msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
msgstr "Airtime이 파일에 대해 정확히 알수 없습니다. 이 경우는 파일이 접근할수 없는 리모트 드라이브에 있거나, 파일이 있는 폴더가 더이상 모니터 되지 않을때 일어날수 있습니다."
#: airtime_mvc/application/controllers/LocaleController.php:118
msgid "Listener Count on %s: %s"
@ -1881,27 +1857,16 @@ msgid "Image must be one of jpg, jpeg, png, or gif"
msgstr "허용된 이미지 파일 타입은 jpg, jpeg, png 또는 gif 입니다"
#: airtime_mvc/application/controllers/LocaleController.php:128
msgid ""
"A static smart block will save the criteria and generate the block content "
"immediately. This allows you to edit and view it in the Library before "
"adding it to a show."
msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show."
msgstr "정적 스마트 블록은 크라이테리아를 저장하고 내용을 생성 합니다. 그러므로 쇼에 추가 하기전에 내용을 수정하실수 있습니다 "
#: airtime_mvc/application/controllers/LocaleController.php:130
msgid ""
"A dynamic smart block will only save the criteria. The block content will "
"get generated upon adding it to a show. You will not be able to view and "
"edit the content in the Library."
msgstr "동적 스마트 블록은 크라이테리아만 저장하고 내용은 쇼에 추가 할때까지 생성하지 않습니다."
" 이는 동적 스마트 블록을 쇼에 추가 할때마다 다른 내용을 추가하게 됩니다."
msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library."
msgstr "동적 스마트 블록은 크라이테리아만 저장하고 내용은 쇼에 추가 할때까지 생성하지 않습니다. 이는 동적 스마트 블록을 쇼에 추가 할때마다 다른 내용을 추가하게 됩니다."
#: airtime_mvc/application/controllers/LocaleController.php:132
msgid ""
"The desired block length will not be reached if Airtime cannot find enough "
"unique tracks to match your criteria. Enable this option if you wish to "
"allow tracks to be added multiple times to the smart block."
msgstr "블록 생성시 충분한 파일을 찾지 못하면, 블록 길이가 원하는 길이보다 짧아 질수 있습니다. 이 옵션을 선택하시면,"
"Airtime이 트랙을 반복적으로 사용하여 길이를 채웁니다."
msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block."
msgstr "블록 생성시 충분한 파일을 찾지 못하면, 블록 길이가 원하는 길이보다 짧아 질수 있습니다. 이 옵션을 선택하시면,Airtime이 트랙을 반복적으로 사용하여 길이를 채웁니다."
#: airtime_mvc/application/controllers/LocaleController.php:133
msgid "Smart block shuffled"
@ -1967,15 +1932,8 @@ msgid "Can not connect to the streaming server"
msgstr "스트리밍 서버에 접속 할수 없음"
#: airtime_mvc/application/controllers/LocaleController.php:168
msgid ""
"If Airtime is behind a router or firewall, you may need to configure port "
"forwarding and this field information will be incorrect. In this case you "
"will need to manually update this field so it shows the correct host/port/"
"mount that your DJ's need to connect to. The allowed range is between 1024 "
"and 49151."
msgstr "Airtime이 방화벽 뒤에 설치 되었다면, 포트 포워딩을 설정해야 할수도 있습니다. 이 경우엔 "
" 자동으로 생성된 이 정보가 틀릴수 있습니다. 수동적으로 이 필드를 수정하여 DJ들이 접속해야 하는"
"서버/마운트/포트 등을 공지 하십시오. 포트 범위는 1024~49151 입니다."
msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151."
msgstr "Airtime이 방화벽 뒤에 설치 되었다면, 포트 포워딩을 설정해야 할수도 있습니다. 이 경우엔 자동으로 생성된 이 정보가 틀릴수 있습니다. 수동적으로 이 필드를 수정하여 DJ들이 접속해야 하는서버/마운트/포트 등을 공지 하십시오. 포트 범위는 1024~49151 입니다."
#: airtime_mvc/application/controllers/LocaleController.php:169
#, php-format
@ -1983,62 +1941,36 @@ msgid "For more details, please read the %sAirtime Manual%s"
msgstr "더 자세한 정보는 %sAirtime Manual%s에서 찾으실수 있습니다"
#: airtime_mvc/application/controllers/LocaleController.php:171
msgid ""
"Check this option to enable metadata for OGG streams (stream metadata is the "
"track title, artist, and show name that is displayed in an audio player). "
"VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that "
"has metadata information enabled: they will disconnect from the stream after "
"every song. If you are using an OGG stream and your listeners do not require "
"support for these audio players, then feel free to enable this option."
msgstr "OGG 스트림의 메타데이타를 사용하고 싶으시면, 이 옵션을 체크 해주세요. VLC나 mplayer 같은"
" 플래이어들에서 버그가 발견되어 OGG 스트림을 메타데이타와 함꼐 사용시, 각 파일 종료시 스트림을 끊어버립니다."
msgid "Check this option to enable metadata for OGG streams (stream metadata is the track title, artist, and show name that is displayed in an audio player). VLC and mplayer have a serious bug when playing an OGG/VORBIS stream that has metadata information enabled: they will disconnect from the stream after every song. If you are using an OGG stream and your listeners do not require support for these audio players, then feel free to enable this option."
msgstr "OGG 스트림의 메타데이타를 사용하고 싶으시면, 이 옵션을 체크 해주세요. VLC나 mplayer 같은 플래이어들에서 버그가 발견되어 OGG 스트림을 메타데이타와 함꼐 사용시, 각 파일 종료시 스트림을 끊어버립니다."
#: airtime_mvc/application/controllers/LocaleController.php:172
msgid ""
"Check this box to automatically switch off Master/Show source upon source "
"disconnection."
msgid "Check this box to automatically switch off Master/Show source upon source disconnection."
msgstr "마스터/쇼 소스가 끊어졌을때 자동으로 스위치를 끔."
#: airtime_mvc/application/controllers/LocaleController.php:173
msgid ""
"Check this box to automatically switch on Master/Show source upon source "
"connection."
msgid "Check this box to automatically switch on Master/Show source upon source connection."
msgstr "마스터/쇼 소스가 접속 되었을때 자동으로 스위를 켬."
#: airtime_mvc/application/controllers/LocaleController.php:174
msgid ""
"If your Icecast server expects a username of 'source', this field can be "
"left blank."
msgid "If your Icecast server expects a username of 'source', this field can be left blank."
msgstr "Icecast 서버 인증 아이디가 source로 설정이 되어있다면, 이 필드는 입렵 하실필요 없습니다."
#: airtime_mvc/application/controllers/LocaleController.php:175
#: airtime_mvc/application/controllers/LocaleController.php:184
msgid ""
"If your live streaming client does not ask for a username, this field should "
"be 'source'."
msgid "If your live streaming client does not ask for a username, this field should be 'source'."
msgstr "현재 사용중이신 라이브 스트리밍 클라이언트에 사용자 필드가 없다면, 이 필드에 'source'라고 입력 해주세요."
#: airtime_mvc/application/controllers/LocaleController.php:177
msgid ""
"If you change the username or password values for an enabled stream the "
"playout engine will be rebooted and your listeners will hear silence for "
"5-10 seconds. Changing the following fields will NOT cause a reboot: Stream "
"Label (Global Settings), and Switch Transition Fade(s), Master Username, and "
"Master Password (Input Stream Settings). If Airtime is recording, and if the "
"change causes a playout engine restart, the recording will be interrupted."
msgstr "스트림 되고 있는 스트림에 아이디나 암호를 수정한다면, 플레이 아웃 엔진이 다시 시작되며,"
" 청취자들이 5~10초 정도 정적이 들릴것입니다. 다음 필드들을 수정하는것은 엔진을 다시 시작 하지 않습니다: "
" (스트림 레이블, 스위치 페이딩, 마스터 마이디, 마스터 암호). Airtime이 현재 녹음 중이고 엔진이 재시작 되면"
" 녹음이 중단 됩니다"
msgid "If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted."
msgstr "스트림 되고 있는 스트림에 아이디나 암호를 수정한다면, 플레이 아웃 엔진이 다시 시작되며, 청취자들이 5~10초 정도 정적이 들릴것입니다. 다음 필드들을 수정하는것은 엔진을 다시 시작 하지 않습니다: (스트림 레이블, 스위치 페이딩, 마스터 마이디, 마스터 암호). Airtime이 현재 녹음 중이고 엔진이 재시작 되면 녹음이 중단 됩니다"
#: airtime_mvc/application/controllers/LocaleController.php:181
msgid "No result found"
msgstr "결과 없음"
#: airtime_mvc/application/controllers/LocaleController.php:182
msgid ""
"This follows the same security pattern for the shows: only users assigned to "
"the show can connect."
msgid "This follows the same security pattern for the shows: only users assigned to the show can connect."
msgstr "쇼에 지정된 사람들만 접속 할수 있습니다"
#: airtime_mvc/application/controllers/LocaleController.php:183
@ -2199,8 +2131,7 @@ msgid "month"
msgstr "월별"
#: airtime_mvc/application/controllers/LocaleController.php:250
msgid ""
"Shows longer than their scheduled time will be cut off by a following show."
msgid "Shows longer than their scheduled time will be cut off by a following show."
msgstr "쇼가 자신의 길이보다 더 길게 스케쥴 되었다면, 쇼 길이에 맞게 짤라지며, 다음 쇼가 시작 됩니다"
#: airtime_mvc/application/controllers/LocaleController.php:251
@ -2622,8 +2553,8 @@ msgid "Show Source"
msgstr "쇼 소스"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid " Scheduled Play"
msgstr " 스케쥴"
msgid "Scheduled Play"
msgstr "스케쥴"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR"
@ -2681,15 +2612,12 @@ msgstr "성"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid ""
"%sAirtime%s %s, , the open radio software for scheduling and remote station "
"management. %s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format
msgid ""
"%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
msgid "%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s"
msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:50
@ -2711,35 +2639,23 @@ msgid "Welcome to Airtime!"
msgstr "Airtime에 오신걸 환영합니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:4
msgid ""
"Here's how you can get started using Airtime to automate your broadcasts: "
msgid "Here's how you can get started using Airtime to automate your broadcasts: "
msgstr "Airtime을 이용하여 방송을 자동화 할수 있는 기본 가이드 입니다:"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:7
msgid ""
"Begin by adding your files to the library using the 'Add Media' menu button. "
"You can drag and drop your files to this window too."
msgstr "미디어 추가 페이지로 가셔서 원하는 파일을 드래그 앤 드랍 하십시오. 라이브러리 페이지를 가시면"
" 업로드된 파일을 확인 할수 있습니다."
msgid "Begin by adding your files to the library using the 'Add Media' menu button. You can drag and drop your files to this window too."
msgstr "미디어 추가 페이지로 가셔서 원하는 파일을 드래그 앤 드랍 하십시오. 라이브러리 페이지를 가시면 업로드된 파일을 확인 할수 있습니다."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:8
msgid ""
"Create a show by going to 'Calendar' in the menu bar, and then clicking the "
"'+ Show' icon. This can be either a one-time or repeating show. Only admins "
"and program managers can add shows."
msgstr "스케쥴 페이지에 가셔서 원하는 날짜에 더블클릭 하셔서 쇼를 생성 하십시오. 관지자와 프로그램 매니저만 "
" 쇼를 생성할수 있는 권한이 있습니다"
msgid "Create a show by going to 'Calendar' in the menu bar, and then clicking the '+ Show' icon. This can be either a one-time or repeating show. Only admins and program managers can add shows."
msgstr "스케쥴 페이지에 가셔서 원하는 날짜에 더블클릭 하셔서 쇼를 생성 하십시오. 관지자와 프로그램 매니저만 쇼를 생성할수 있는 권한이 있습니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:9
msgid ""
"Add media to the show by going to your show in the Schedule calendar, left-"
"clicking on it and selecting 'Add / Remove Content'"
msgid "Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting 'Add / Remove Content'"
msgstr "만드신 쇼에 클릭을 하신다음 '내용 추가/제거' 를 클릭하십시오."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:10
msgid ""
"Select your media from the left pane and drag them to your show in the right "
"pane."
msgid "Select your media from the left pane and drag them to your show in the right pane."
msgstr "왼쪽 라이브러리 스크린에서 오른쪽 쇼 내용 패널로 드래그 앤 드랍 하며 미디어를 추가 합니다"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:12
@ -2895,9 +2811,7 @@ msgid "Back to login screen"
msgstr "로그인 페이지로 가기"
#: airtime_mvc/application/views/scripts/login/index.phtml:7
msgid ""
"Welcome to the online Airtime demo! You can log in using the username "
"'admin' and the password 'admin'."
msgid "Welcome to the online Airtime demo! You can log in using the username 'admin' and the password 'admin'."
msgstr ""
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:3
@ -2906,9 +2820,7 @@ msgid "Reset password"
msgstr "암호 초기화"
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:7
msgid ""
"Please enter your account e-mail address. You will receive a link to create "
"a new password via e-mail."
msgid "Please enter your account e-mail address. You will receive a link to create a new password via e-mail."
msgstr "사용자 계정의 이메일을 입력해 주세요. 새로 암호를 설정할수 있는 링크가 포함된 이메일이 전송 됩니다"
#: airtime_mvc/application/views/scripts/login/password-change.phtml:3
@ -2973,9 +2885,7 @@ msgstr "업데이트가 필요함"
#: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:70
#, php-format
msgid ""
"To play the media you will need to either update your browser to a recent "
"version or update your %sFlash plugin%s."
msgid "To play the media you will need to either update your browser to a recent version or update your %sFlash plugin%s."
msgstr "미디어를 재생하기 위해선, 브라우저를 최신 버젼으로 업데이트 하시고, %sFlash plugin%s도 업데이트 해주세요"
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:51
@ -3023,8 +2933,7 @@ msgid "Additional Options"
msgstr "추가 설정"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:108
msgid ""
"The following info will be displayed to listeners in their media player:"
msgid "The following info will be displayed to listeners in their media player:"
msgstr "밑에 정보들은 청취자에 플래이어에 표시 됩니다:"
#: airtime_mvc/application/views/scripts/form/stream-setting-form.phtml:179
@ -3051,9 +2960,7 @@ msgid "Add"
msgstr "추가"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:43
msgid ""
"Rescan watched directory (This is useful if it is network mount and may be "
"out of sync with Airtime)"
msgid "Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)"
msgstr "모니터중인 폴더 다시 검색(네트워크 드라이브를 모니터중일떄, Airtime과 동기화 실패시 사용)"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:44
@ -3079,22 +2986,13 @@ msgstr "Airtime 등록"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:6
#, php-format
msgid ""
"Help Airtime improve by letting us know how you are using it. This info will "
"be collected regularly in order to enhance your user experience.%sClick "
"'Yes, help Airtime' and we'll make sure the features you use are constantly "
"improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는"
"Airtime이 되겠습니다. 'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
msgid "Help Airtime improve by letting us know how you are using it. This info will be collected regularly in order to enhance your user experience.%sClick 'Yes, help Airtime' and we'll make sure the features you use are constantly improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는Airtime이 되겠습니다. %s'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:25
#, php-format
msgid ""
"Click the box below to advertise your station on %sSourcefabric.org%s. In "
"order to promote your station, 'Send support feedback' must be enabled. This "
"data will be collected in addition to the support feedback."
msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요. 체크 하기 위해선 '피드백 보내기'를 "
"체크 하셔야 합니다"
msgid "Click the box below to advertise your station on %sSourcefabric.org%s. In order to promote your station, 'Send support feedback' must be enabled. This data will be collected in addition to the support feedback."
msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요. 체크 하기 위해선 '피드백 보내기'를 체크 하셔야 합니다"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:65
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:79
@ -3173,13 +3071,8 @@ msgstr "SoundCloud 설정"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:5
#, php-format
msgid ""
"Help Airtime improve by letting Sourcefabric know how you are using it. This "
"information will be collected regularly in order to enhance your user "
"experience.%sClick the 'Send support feedback' box and we'll make sure the "
"features you use are constantly improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는"
"Airtime이 되겠습니다. 'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
msgid "Help Airtime improve by letting Sourcefabric know how you are using it. This information will be collected regularly in order to enhance your user experience.%sClick the 'Send support feedback' box and we'll make sure the features you use are constantly improving."
msgstr "Airtime 사용자들 께서 피드백을 보내주시면, 그걸 기본으로 사용자들이 원하는 방향으로 나아가는Airtime이 되겠습니다. %s'Airtime 도와주기' 클릭하여 피드백을 보내주세요"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:23
#, php-format
@ -3187,8 +3080,7 @@ msgid "Click the box below to promote your station on %sSourcefabric.org%s."
msgstr "%sSourcefabric.org%s에 방송국을 홍보 하시려면 체크 하세요."
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:41
msgid ""
"(In order to promote your station, 'Send support feedback' must be enabled)."
msgid "(In order to promote your station, 'Send support feedback' must be enabled)."
msgstr "(체크 하기 위해선 '피드백 보내기'를 체크 하셔야 합니다)"
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:186
@ -3318,8 +3210,7 @@ msgid "Value is required and can't be empty"
msgstr "이 필드는 비워둘수 없습니다."
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:19
msgid ""
"'%value%' is no valid email address in the basic format local-part@hostname"
msgid "'%value%' is no valid email address in the basic format local-part@hostname"
msgstr "'%value%'은 맞지 않는 이메일 형식 입니다."
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:33

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: http://forum.sourcefabric.org/\n"
"POT-Creation-Date: 2012-11-29 11:44-0500\n"
"PO-Revision-Date: 2012-12-14 09:50+0100\n"
"Last-Translator: Luba Sirina <contact@sourcefabric.org>\n"
"PO-Revision-Date: 2013-01-04 17:49+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Russian Localization <contact@sourcefabric.org>\n"
"Language: ru_RU\n"
"MIME-Version: 1.0\n"
@ -599,7 +599,7 @@ msgstr "Телефон:"
#: airtime_mvc/application/forms/AddUser.php:54
#: airtime_mvc/application/forms/SupportSettings.php:46
msgid "Email:"
msgstr "Электронный адрес:"
msgstr "Email:"
#: airtime_mvc/application/forms/RegisterAirtime.php:62
#: airtime_mvc/application/forms/SupportSettings.php:57
@ -826,7 +826,7 @@ msgstr "Не является допустимой папкой"
#: airtime_mvc/application/forms/AddUser.php:23
#: airtime_mvc/application/forms/Login.php:19
msgid "Username:"
msgstr "Имя пользователя:"
msgstr "Логин:"
#: airtime_mvc/application/forms/AddUser.php:32
#: airtime_mvc/application/forms/Login.php:34
@ -843,7 +843,7 @@ msgstr "Фамилия"
#: airtime_mvc/application/forms/AddUser.php:63
msgid "Mobile Phone:"
msgstr "Мобильный телефон:"
msgstr "Тел:"
#: airtime_mvc/application/forms/AddUser.php:69
msgid "Skype:"
@ -1934,7 +1934,7 @@ msgstr "Проиграно"
#: airtime_mvc/application/controllers/LocaleController.php:158
msgid "Choose Storage Folder"
msgstr "Выберите папку для хранения"
msgstr "выберите папку для хранения"
#: airtime_mvc/application/controllers/LocaleController.php:159
msgid "Choose Folder to Watch"
@ -2600,7 +2600,7 @@ msgstr "Источник Show "
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid "Scheduled Play"
msgstr "Запланированное проигрывание"
msgstr "Из календаря"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR"
@ -2652,8 +2652,8 @@ msgstr "Тип пользователя"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, , the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s , открытое программное обеспечение для радио для планирования и удаленного управления станцией.%s"
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, открытое программное обеспечение для радио для планирования и удаленного управления станцией.%s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format
@ -2994,7 +2994,7 @@ msgstr "URL потока: "
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:9
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:27
msgid "Choose folder"
msgstr "Выберите папку"
msgstr "Выбрать"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:10
msgid "Set"
@ -3080,7 +3080,7 @@ msgstr "Настройки входного потока"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:109
msgid "Master Source Connection URL:"
msgstr "URL подключения к источнику Master:"
msgstr "URL подключения к Master:"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:115
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:159
@ -3099,7 +3099,7 @@ msgstr "ВОССТАНОВИТЬ"
#: airtime_mvc/application/views/scripts/form/preferences_livestream.phtml:153
msgid "Show Source Connection URL:"
msgstr "URL подключения к источнику Show:"
msgstr "URL подключения к Show:"
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast.phtml:4
msgid "Repeat Days:"

View File

@ -2702,7 +2702,7 @@ msgstr ""
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid ""
"%sAirtime%s %s, , the open radio software for scheduling and remote station "
"%sAirtime%s %s, the open radio software for scheduling and remote station "
"management. %s"
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
}
.source-info-block li {
list-style-type:none;
font-size:11px;
font-size:10px;
color:#bdbdbd;
margin:0;
height:15px;

View File

@ -97,6 +97,21 @@ select {
padding-bottom: 20px;
}
.edit-current-user {
width: 450px;
}
.edit-current-user label {
font-weight: bold;
}
.stream-player-label {
padding-left: 8px !important;
}
.jp-stream form {
margin-left: 7px !important;
}
.override_help_icon, .icecast_metadata_help_icon {
cursor: help;
position: relative;
@ -109,7 +124,8 @@ select {
}
.airtime_auth_help_icon, .custom_auth_help_icon, .stream_username_help_icon,
.playlist_type_help_icon, .master_username_help_icon, .repeat_tracks_help_icon{
.playlist_type_help_icon, .master_username_help_icon, .repeat_tracks_help_icon,
.admin_username_help_icon {
cursor: help;
position: relative;
display:inline-block; zoom:1;
@ -1390,6 +1406,14 @@ h2#scheduled_playlist_name span {
padding: 4px 0 8px;
}
.user-form-label {
width: 30% !important;
}
.user-form-element {
width: 65% !important;
}
.simple-formblock dd.block-display {
width: 100%;
}
@ -1972,6 +1996,9 @@ span.errors.sp-errors{
.small-icon.show-empty {
background:url(images/icon_alert_cal_alt.png) no-repeat 0 0;
}
.small-icon.show-partial-filled {
background:url(images/icon_alert_cal_alt.png) no-repeat 0 0;
}
.medium-icon {
display:block;
width:25px;
@ -2001,9 +2028,12 @@ span.errors.sp-errors{
.medium-icon.finishedplaying {
background:url(images/icon_finishedplaying_m.png) no-repeat 0 0;
}
.preferences, .manage-folders {
.preferences {
width: 500px;
}
.manage-folders {
width: 610px;
}
.stream-config {
width: 1100px;
@ -2941,17 +2971,52 @@ dd .stream-status {
}
.edit-user-global dt {
width: 90px;
width: 150px;
float: left;
margin-top: 4px;
margin-left: 2px;
}
.edit-user-global dd {
width: 230px;
width: 340px;
padding-bottom: 5px;
}
.edit-user-global input {
width: 170px;
.edit-user-global input, .edit-user-global select {
width: 200px;
}
.jp-container a#popup-link {
width: 104px;
border: 1px solid black;
font-size: 13px;
font-weight: bold;
text-decoration: none;
margin-top:3px;
text-align: center;
right: 16px;
position: absolute;
top: 40px;
color: #FF5D1A
}
#popup-share {
display:none;
position: fixed;
width:360px;
height: 26px;
margin-left:8px;
margin-right: 150px;
margin-top: 0px;
border:1px solid black;
background-color:#282828;
padding:10px;
z-index:102;
font-size:10pt;
font-weight:bold;
}
#popup-share-link {
width: 320px;
}

View File

@ -453,52 +453,27 @@ function setCurrentUserPseudoPassword() {
$(document).ready(function() {
if ($('#master-panel').length > 0)
init();
var timer;
$('.tipsy').live('mouseover', function() {
clearTimeout(timer);
});
$('.tipsy').live('mouseout', function() {
timer = setTimeout("$('#current-user').tipsy('hide')", 500);
});
$('#current-user').bind('mouseover', function() {
setCurrentUserPseudoPassword();
$('#current-user').live('click', function() {
$.ajax({
url: baseUrl+'/user/edit-user/format/json',
success: function(json) {
$('#current-user').tipsy({
gravity: 'n',
html: true,
fade: true,
opacity: 0.9,
trigger: 'manual',
title: function() {
return json.html;
}
});
},
cache: false,
complete: function() {
$('#current-user').tipsy('show');
setCurrentUserPseudoPassword();
}
url: baseUrl+'/user/edit-user/format/json'
});
});
$('#current-user').bind('mouseout', function() {
timer = setTimeout("$('#current-user').tipsy('hide')", 500);
});
$('#cu_save_user').live('click', function() {
var data = $('#current-user-form').serialize();
$.post(baseUrl+'/user/edit-user', {format: 'json', data: data}, function(data) {
var json = $.parseJSON(data);
$('.tipsy-inner').empty().append(json.html);
$('.edit-current-user').parent().empty().append(json.html);
setCurrentUserPseudoPassword();
setTimeout(removeSuccessMsg, 5000);
});
});
// When the 'Listen' button is clicked we set the width
// of the share button to the width of the 'Live Stream'
// text. This differs depending on the language setting
$('#popup-link').css('width', $('.jp-container h1').css('width'));
});

View File

@ -558,20 +558,18 @@ var AIRTIME = (function(AIRTIME) {
// add the play function to the library_type td
$(nRow).find('td.library_type').click(function(){
if (aData.ftype === 'playlist' && aData.length !== '0.0'){
playlistIndex = $(this).parent().attr('id').substring(3); // remove
// the
// pl_
playlistIndex = $(this).parent().attr('id').substring(3);
open_playlist_preview(playlistIndex, 0);
} else if (aData.ftype === 'audioclip') {
if (isAudioSupported(aData.mime)) {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name);
}
} else if (aData.ftype == 'stream') {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name);
if (isAudioSupported(aData.mime)) {
open_audio_preview(aData.ftype, aData.audioFile, aData.track_title, aData.artist_name);
}
} else if (aData.ftype == 'block' && aData.bl_type == 'static') {
blockIndex = $(this).parent().attr('id').substring(3); // remove
// the
// bl_
blockIndex = $(this).parent().attr('id').substring(3);
open_block_preview(blockIndex, 0);
}
return false;
@ -915,6 +913,16 @@ var AIRTIME = (function(AIRTIME) {
soundcloud.view.callback = callback;
}
}
// add callbacks for duplicate menu items.
if (oItems.duplicate !== undefined) {
var url = oItems.duplicate.url;
callback = function() {
$.post(url, {format: "json", id: data.id }, function(json){
oTable.fnStandingRedraw();
});
};
oItems.duplicate.callback = callback;
}
// remove 'Add to smart block' option if the current
// block is dynamic
if ($('input:radio[name=sp_type]:checked').val() === "1") {
@ -1043,6 +1051,9 @@ function addQtipToSCIcons(){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover
// event
@ -1072,6 +1083,9 @@ function addQtipToSCIcons(){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover
// event
@ -1101,6 +1115,9 @@ function addQtipToSCIcons(){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover
// event

View File

@ -94,17 +94,25 @@ var AIRTIME = (function(AIRTIME) {
"oTableTools": {
"sSwfPath": baseUrl+"/js/datatables/plugin/TableTools/swf/copy_cvs_xls_pdf.swf",
"aButtons": [
"copy",
{
"sExtends": "csv",
"fnClick": setFlashFileName
},
{
"sExtends": "pdf",
"fnClick": setFlashFileName
},
"print"
]
{
"sExtends": "copy",
"fnComplete": function(nButton, oConfig, oFlash, text) {
var lines = text.split('\n').length,
len = this.s.dt.nTFoot === null ? lines-1 : lines-2,
plural = (len==1) ? "" : "s";
alert(sprintf($.i18n._('Copied %s row%s to the clipboard'), len, plural));
}
},
{
"sExtends": "csv",
"fnClick": setFlashFileName
},
{
"sExtends": "pdf",
"fnClick": setFlashFileName
},
"print"
]
}
});
oTable.fnSetFilteringDelay(350);

View File

@ -80,20 +80,6 @@ function setMsAuthenticationFieldsReadonly(ele) {
}
}
function setSliderForReplayGain(){
$( "#slider-range-max" ).slider({
range: "max",
min: 0,
max: 10,
value: $("#rg_modifier_value").html(),
slide: function( event, ui ) {
$( "#replayGainModifier" ).val( ui.value );
$("#rg_modifier_value").html(ui.value);
}
});
$( "#replayGainModifier" ).val( $( "#slider-range-max" ).slider( "value" ) );
}
$(document).ready(function() {
$('.collapsible-header').live('click',function() {
@ -111,7 +97,6 @@ $(document).ready(function() {
$('#content').empty().append(json.html);
setTimeout(removeSuccessMsg, 5000);
showErrorSections();
setSliderForReplayGain();
});
});
@ -121,6 +106,4 @@ $(document).ready(function() {
setSystemFromEmailReadonly();
setConfigureMailServerListener();
setEnableSystemEmailsListener();
setSliderForReplayGain();
});

View File

@ -39,8 +39,8 @@ function restrictOggBitrate(ele, on){
div.find("select[id$=data-bitrate]").find("option[value='24']").attr("disabled","disabled");
div.find("select[id$=data-bitrate]").find("option[value='32']").attr("disabled","disabled");
}else{
div.find("select[id$=data-bitrate]").find("option[value='24']").attr("disabled","");
div.find("select[id$=data-bitrate]").find("option[value='32']").attr("disabled","");
div.find("select[id$=data-bitrate]").find("option[value='24']").removeAttr("disabled");
div.find("select[id$=data-bitrate]").find("option[value='32']").removeAttr("disabled");
}
}
function hideForShoutcast(ele){
@ -231,7 +231,7 @@ function setupEventListeners() {
}
})
$('.toggle legend').live('click',function() {
$('.toggle legend').click(function() {
$(this).parent().toggleClass('closed');
return false;
});
@ -355,6 +355,27 @@ function setupEventListeners() {
},
})
$(".admin_username_help_icon").qtip({
content: {
text: $.i18n._("This is the admin username and password for Icecast/SHOUTcast to get listener statistics.")
},
hide: {
delay: 500,
fixed: true
},
style: {
border: {
width: 0,
radius: 4
},
classes: "ui-tooltip-dark ui-tooltip-rounded"
},
position: {
my: "left bottom",
at: "right center"
},
})
$(".master_username_help_icon").qtip({
content: {
text: $.i18n._("If your live streaming client does not ask for a username, this field should be 'source'.")
@ -375,6 +396,25 @@ function setupEventListeners() {
at: "right center"
},
})
}
function setSliderForReplayGain(){
$( "#slider-range-max" ).slider({
range: "max",
min: -10,
max: 10,
value: $("#rg_modifier_value").html(),
slide: function( event, ui ) {
$( "#replayGainModifier" ).val( ui.value );
$("#rg_modifier_value").html(ui.value);
}
});
$( "#replayGainModifier" ).val( $( "#slider-range-max" ).slider( "value" ) );
}
$(document).ready(function() {
setupEventListeners();
setSliderForReplayGain();
$('#stream_save').live('click', function(){
var confirm_pypo_restart_text = $.i18n._("If you change the username or password values for an enabled stream the playout engine will be rebooted and your listeners will hear silence for 5-10 seconds. Changing the following fields will NOT cause a reboot: Stream Label (Global Settings), and Switch Transition Fade(s), Master Username, and Master Password (Input Stream Settings). If Airtime is recording, and if the change causes a playout engine restart, the recording will be interrupted.");
@ -386,12 +426,9 @@ function setupEventListeners() {
var json = $.parseJSON(data);
$('#content').empty().append(json.html);
setupEventListeners();
setSliderForReplayGain();
});
}
});
}
$(document).ready(function() {
setupEventListeners();
});

View File

@ -252,40 +252,28 @@ function eventRender(event, element, view) {
} else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -3) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon sc-error"></span>');
}
//add scheduled show content empty icon
//addIcon = checkEmptyShowStatus(event);
//if (!addIcon) {
if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
if (event.soundcloud_id === -1) {
$(element)
.find(".fc-event-time")
.before('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
} else if (event.soundcloud_id > 0) {
} else if (event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -3) {
}
}
} else if (view.name === 'month') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
if (event.soundcloud_id === -1) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
} else if (event.soundcloud_id > 0) {
} else if (event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -3) {
}
}
if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
$(element)
.find(".fc-event-time")
.before('<span id="'+event.id+'" class="small-icon show-empty"></span>');
} else if (event.show_partial_filled === true) {
$(element)
.find(".fc-event-time")
.before('<span id="'+event.id+'" class="small-icon show-partial-filled"></span>');
}
//}
} else if (view.name === 'month') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
} else if (event.show_partial_filled === true) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is partially filled")+'" class="small-icon show-partial-filled"></span>');
}
}
//rebroadcast icon
if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.rebroadcast === 1) {
@ -300,7 +288,7 @@ function eventRender(event, element, view) {
function eventAfterRender( event, element, view ) {
$(element).find(".small-icon").live('mouseover',function(){
addQtipToSCIcons($(this));
addQtipsToIcons($(this));
});
}
@ -418,7 +406,8 @@ function getCurrentShow(){
});
}
function addQtipToSCIcons(ele){
function addQtipsToIcons(ele){
var id = $(ele).attr("id");
if($(ele).hasClass("progress")){
@ -435,6 +424,9 @@ function addQtipToSCIcons(ele){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
@ -446,7 +438,7 @@ function addQtipToSCIcons(ele){
ajax: {
url: baseUrl+"/Library/get-upload-to-soundcloud-status",
type: "post",
data: ({format: "json", id : id, type: "file"}),
data: ({format: "json", id : id, type: "show"}),
success: function(json, status){
this.set('content.text', $.i18n._("The soundcloud id for this file is: ")+json.sc_id);
}
@ -461,6 +453,9 @@ function addQtipToSCIcons(ele){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
@ -488,6 +483,9 @@ function addQtipToSCIcons(ele){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
@ -506,45 +504,36 @@ function addQtipToSCIcons(ele){
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
});
} else if ($(ele).hasClass("show-partial-filled")){
$(ele).qtip({
content: {
text: $.i18n._("This show is not completely filled with content.")
},
position:{
adjust: {
resize: true,
method: "flip flip"
},
at: "right center",
my: "left top",
viewport: $(window)
},
style: {
classes: "ui-tooltip-dark file-md-long"
},
show: {
ready: true // Needed to make it show on first mouseover event
}
});
}
}
/* This functions does two things:
* 1. Checks if each event(i.e. a show) is over and removes the show empty icon if it is
* 2. Else, if an event is passed in, it checks if the event(i.e. a show) is over
* This gets checked when we are deciding if the show-empty icon should be added
* at the beginning of an event render callback.
*/
/*
function checkEmptyShowStatus(e) {
var currDate = new Date();
var endTime;
if (e === undefined) {
var events = $('#schedule_calendar').fullCalendar('clientEvents');
$.each(events, function(i, event){
endTime = event.end;
$emptyIcon = $("span[id="+event.id+"][class='small-icon show-empty']");
if (currDate.getTime() > endTime.getTime() && $emptyIcon.length === 1) {
$emptyIcon.remove();
}
});
} else {
endTime = e.end;
var showOver = false;
if (currDate.getTime() > endTime.getTime()) {
showOver = true;
}
return showOver;
}
}
*/
//Alert the error and reload the page
//this function is used to resolve concurrency issue
function alertShowErrorAndReload(){
@ -555,7 +544,6 @@ function alertShowErrorAndReload(){
$(document).ready(function(){
setInterval( "checkSCUploadStatus()", 5000 );
setInterval( "getCurrentShow()", 5000 );
//setInterval( "checkEmptyShowStatus()", 5000 );
});
var view_name;

View File

@ -122,7 +122,7 @@ $(document).ready(function() {
case 'P':
$(this).attr('id', 'user-type-P');
$(this).attr('user-rights',
$.i18n._('Progam Managers can do the following:')+'<br><br>'+
$.i18n._('Program Managers can do the following:')+'<br><br>'+
$.i18n._('View schedule')+'<br>'+
$.i18n._('View and manage show content')+'<br>'+
$.i18n._('Schedule shows')+'<br>'+
@ -193,4 +193,7 @@ $(document).ready(function() {
});
});
$("dt[id$='label']").addClass('user-form-label');
$("dd[id$='element']").addClass('user-form-element');
});

View File

@ -0,0 +1,23 @@
{
"sEmptyTable": "Nessun dato presente nella tabella",
"sInfo": "Vista da _START_ a _END_ di _TOTAL_ elementi",
"sInfoEmpty": "Vista da 0 a 0 di 0 elementi",
"sInfoFiltered": "(filtrati da _MAX_ elementi totali)",
"sInfoPostFix": "",
"sInfoThousands": ",",
"sLengthMenu": "Visualizza _MENU_ elementi",
"sLoadingRecords": "Caricamento...",
"sProcessing": "Elaborazione...",
"sSearch": "",
"sZeroRecords": "La ricerca non ha portato alcun risultato.",
"oPaginate": {
"sFirst": "Inizio",
"sPrevious": "Precedente",
"sNext": "Successivo",
"sLast": "Fine"
},
"oAria": {
"sSortAscending": ": attiva per ordinare la colonna in ordine crescente",
"sSortDescending": ": attiva per ordinare la colonna in ordine decrescente"
}
}

View File

@ -0,0 +1,17 @@
{
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
}
}

View File

@ -20,5 +20,6 @@ plupload.addI18n({
'IO error.': 'Ein/Ausgabe-Fehler',
'Stop Upload': 'Hochladen stoppen',
'Start upload': 'Hochladen',
'%d files queued': '%d Dateien in der Warteschlange'
'%d files queued': '%d Dateien in der Warteschlange',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': 'Add Files',
'Start Upload': 'Start Upload',
'Start upload': 'Start upload',
'%d files queued': '%d files queued'
'%d files queued': '%d files queued',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': 'Add Files',
'Start Upload': 'Start Upload',
'Start upload': 'Start upload',
'%d files queued': '%d files queued'
'%d files queued': '%d files queued',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -21,5 +21,6 @@ plupload.addI18n({
'Stop Upload': 'Detener Subida.',
'Add Files': 'Agregar Archivos',
'Start upload': 'Comenzar Subida',
'%d files queued': '%d archivos en cola.'
'%d files queued': '%d archivos en cola.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -21,5 +21,6 @@ plupload.addI18n({
'Stop Upload': 'Arrêter les envois.',
'Add Files': 'Ajouter des fichiers',
'Start upload': 'Démarrer les envois.',
'%d files queued': '%d fichiers en attente.'
'%d files queued': '%d fichiers en attente.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -0,0 +1,25 @@
// Italian
plupload.addI18n({
'Select files' : 'Seleziona i files',
'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.',
'Filename' : 'Nome file',
'Status' : 'Stato',
'Size' : 'Dimensione',
'Add files' : 'Aggiungi file',
'Stop current upload' : 'Interrompi il caricamento',
'Start uploading queue' : 'Avvia il caricamento',
'Uploaded %d/%d files': 'Caricati %d/%d file',
'N/A' : 'N/D',
'Drag files here.' : 'Trascina i file qui.',
'File extension error.': 'Errore estensione file.',
'File size error.': 'Errore dimensione file.',
'Init error.': 'Errore inizializzazione.',
'HTTP Error.': 'Errore HTTP.',
'Security error.': 'Errore sicurezza.',
'Generic error.': 'Errore generico.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: "),
'IO error.': 'Errore IO.',
'Stop Upload': 'Ferma Upload',
'Start upload': 'Inizia Upload',
'%d files queued': '%d file in lista'
});

View File

@ -22,5 +22,6 @@ plupload.addI18n({
'Add Files': '파일 추가',
'Start Upload': '업로드 시작',
'Start upload': '업로드 시작',
'%d files queued': '%d개의 파일이 큐 되었습니다'
'%d files queued': '%d개의 파일이 큐 되었습니다',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -17,5 +17,6 @@ plupload.addI18n({
'HTTP Error.': 'Ошибка HTTP.',
'Security error.': 'Ошибка безопасности.',
'Generic error.': 'Общая ошибка.',
'IO error.': 'Ошибка ввода-вывода.'
'IO error.': 'Ошибка ввода-вывода.',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View File

@ -0,0 +1,27 @@
// Chinese
plupload.addI18n({
'Select files' : '选择文件',
'Add files to the upload queue and click the start button.' : '往上传队列中添加文件,并且点击按钮开始上传。',
'Filename' : '文件名',
'Status' : '上传状态',
'Size' : '大小',
'Add files' : '添加文件',
'Stop current upload' : '中断当前上传',
'Start uploading queue' : '启动上传队列',
'Uploaded %d/%d files': '已经上传%d/%d',
'N/A' : '未知',
'Drag files here.' : '拖拽文件至此处。',
'File extension error.': '文件后缀名不符合要求。',
'File size error.': '文件大小错误。',
'Init error.': '初始化出错。',
'HTTP Error.': 'HTTP错误。',
'Security error.': '安全性错误',
'Generic error.': '系统错误。',
'IO error.': '输入输出错误。',
'Stop Upload': '停止上传',
'Add Files': '添加文件',
'Start Upload': '开始上传',
'Start upload': '开始上传',
'%d files queued': '%d个文件在队列中',
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
[main]
liquidsoap_tar_url = http://dl.dropbox.com/u/256410/airtime/savonet.tar.gz
liquidsoap_tar_url = https://dl.dropbox.com/u/256410/airtime/liquidsoap-jan-02-2013.tar.gz

View File

@ -99,7 +99,7 @@ def create_fresh_os(vm_name, debian=False):
do_local('VBoxManage startvm %s'%vm_name)
print "Please wait while attempting to acquire IP address"
time.sleep(15)
time.sleep(30)
try_again = True
while try_again:
@ -115,7 +115,7 @@ def create_fresh_os(vm_name, debian=False):
env.host_string = ip_addr
if debian:
append('/etc/apt/sources.list', "deb http://www.debian-multimedia.org squeeze main non-free", use_sudo=True)
append('/etc/apt/sources.list', "deb http://backports.debian.org/debian-backports squeeze-backports main", use_sudo=True)
def ubuntu_lucid_32(fresh_os=True):
if (fresh_os):
@ -157,6 +157,14 @@ def ubuntu_precise_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.04_32')
def ubuntu_quantal_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_32')
def ubuntu_quantal_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_64')
def debian_squeeze_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Squeeze_32', debian=True)
@ -165,6 +173,14 @@ def debian_squeeze_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Squeeze_64', debian=True)
def debian_wheezy_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_32')
def debian_wheezy_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_64')
def compile_liquidsoap(filename="liquidsoap"):
@ -179,11 +195,11 @@ def compile_liquidsoap(filename="liquidsoap"):
do_sudo('''apt-get install -y --force-yes ocaml-findlib libao-ocaml-dev libportaudio-ocaml-dev \
libmad-ocaml-dev libtaglib-ocaml-dev libalsa-ocaml-dev libtaglib-ocaml-dev libvorbis-ocaml-dev \
libspeex-dev libspeexdsp-dev speex libladspa-ocaml-dev festival festival-dev \
libsamplerate-dev libxmlplaylist-ocaml-dev libxmlrpc-light-ocaml-dev libflac-dev \
libsamplerate-dev libxmlplaylist-ocaml-dev libflac-dev \
libxml-dom-perl libxml-dom-xpath-perl patch autoconf libmp3lame-dev \
libcamomile-ocaml-dev libcamlimages-ocaml-dev libtool libpulse-dev libjack-dev
libcamomile-ocaml-dev libcamlimages-ocaml-dev libtool libpulse-dev libjack-dev \
camlidl libfaad-dev libpcre-ocaml-dev''')
#libxmlrpc-light-ocaml-dev
root = '/home/martin/src'
do_run('mkdir -p %s' % root)
@ -202,13 +218,14 @@ camlidl libfaad-dev libpcre-ocaml-dev''')
#do_run('cd %s/liquidsoap-1.0.1-full && make' % root)
#get('%s/liquidsoap-1.0.1-full/liquidsoap-1.0.1/src/liquidsoap' % root, filename)
do_run('cd %s/savonet && cp PACKAGES.minimal PACKAGES' % root)
sed('%s/savonet/PACKAGES' % root, '#ocaml-portaudio', 'ocaml-portaudio')
sed('%s/savonet/PACKAGES' % root, '#ocaml-alsa', 'ocaml-alsa')
sed('%s/savonet/PACKAGES' % root, '#ocaml-pulseaudio', 'ocaml-pulseaudio')
sed('%s/savonet/PACKAGES' % root, '#ocaml-faad', 'ocaml-faad')
do_run('cd %s/savonet && make clean' % root)
do_run('cd %s/savonet && ./bootstrap' % root)
do_run('cd %s/savonet && ./configure' % root)
do_run('cd %s/savonet && make' % root)
get('%s/savonet/liquidsoap/src/liquidsoap' % root, filename)
do_run('cd %s/liquidsoap && cp PACKAGES.minimal PACKAGES' % root)
sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-portaudio', 'ocaml-portaudio')
sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-alsa', 'ocaml-alsa')
sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-pulseaudio', 'ocaml-pulseaudio')
sed('%s/liquidsoap/PACKAGES' % root, '#ocaml-faad', 'ocaml-faad')
do_run('cd %s/liquidsoap && ./bootstrap' % root)
do_run('cd %s/liquidsoap && ./configure' % root)
do_run('cd %s/liquidsoap && make clean' % root)
do_run('cd %s/liquidsoap && make' % root)
do_sudo('chmod 755 %s/liquidsoap/liquidsoap/src/liquidsoap' % root)
get('%s/liquidsoap/liquidsoap/src/liquidsoap' % root, filename)

View File

@ -83,7 +83,7 @@ def download_if_needed(vdi_dir, xml_dir, vm_name, vm_vdi_file, vm_xml_file):
do_local("wget %s/%s/%s -O %s"%(env.vm_download_url, vm_name, vm_xml_file, os.path.join(xml_dir, vm_xml_file)))
def create_fresh_os(vm_name, lucid=False, debian=False):
def create_fresh_os(vm_name, lucid=False, debian=False, icecast2_config=False):
"""
remove known_hosts because if two virtual machines get the same ip address,
@ -115,7 +115,7 @@ def create_fresh_os(vm_name, lucid=False, debian=False):
do_local('VBoxManage startvm %s'%vm_name)
print "Please wait while attempting to acquire IP address"
time.sleep(15)
time.sleep(30)
try_again = True
while try_again:
@ -143,7 +143,11 @@ def create_fresh_os(vm_name, lucid=False, debian=False):
do_sudo('echo "rabbitmq-server rabbitmq-server/upgrade_previous note" | debconf-set-selections')
if debian:
append('/etc/apt/sources.list', "deb http://www.debian-multimedia.org squeeze main non-free", use_sudo=True)
append('/etc/apt/sources.list', "deb http://backports.debian.org/debian-backports squeeze-backports main", use_sudo=True)
if icecast2_config:
print "Updating icecast2 setup settings"
do_sudo('echo "icecast2 icecast2/icecast-setup boolean false" | debconf-set-selections')
def ubuntu_lucid_32(fresh_os=True):
if (fresh_os):
@ -176,6 +180,22 @@ def ubuntu_oneiric_32(fresh_os=True):
def ubuntu_oneiric_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_11.10_64')
def ubuntu_precise_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.04_32', icecast2_config=True)
def ubuntu_precise_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.04_64', icecast2_config=True)
def ubuntu_quantal_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_32', icecast2_config=True)
def ubuntu_quantal_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Ubuntu_12.10_64', icecast2_config=True)
def debian_squeeze_32(fresh_os=True):
if (fresh_os):
@ -184,6 +204,14 @@ def debian_squeeze_32(fresh_os=True):
def debian_squeeze_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Squeeze_64', debian=True)
def debian_wheezy_32(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_32', icecast2_config=True)
def debian_wheezy_64(fresh_os=True):
if (fresh_os):
create_fresh_os('Debian_Wheezy_64', icecast2_config=True)
def airtime_180_tar():
airtime_18x_tar("airtime", "1.8.0")
@ -286,6 +314,58 @@ def airtime_195_tar():
do_run('tar xfz airtime-1.9.5.tar.gz')
do_sudo('cd /home/martin/airtime-1.9.5/install_full/ubuntu && ./airtime-full-install')
def airtime_200_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.0/airtime-2.0.0.tar.gz')
do_run('tar xfz airtime-2.0.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.0/install_full/ubuntu && ./airtime-full-install')
def airtime_201_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.1/airtime-2.0.1.tar.gz')
do_run('tar xfz airtime-2.0.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.1/install_full/ubuntu && ./airtime-full-install')
def airtime_202_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.2/airtime-2.0.2.tar.gz')
do_run('tar xfz airtime-2.0.2.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.2/install_full/ubuntu && ./airtime-full-install')
def airtime_203_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.0.3/airtime-2.0.3.tar.gz')
do_run('tar xfz airtime-2.0.3.tar.gz')
do_sudo('cd /home/martin/airtime-2.0.3/install_full/ubuntu && ./airtime-full-install')
def airtime_210_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.0/airtime-2.1.0.tar.gz')
do_run('tar xfz airtime-2.1.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.0/install_full/ubuntu && ./airtime-full-install')
def airtime_211_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.1/airtime-2.1.1.tar.gz')
do_run('tar xfz airtime-2.1.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.1/install_full/ubuntu && ./airtime-full-install')
def airtime_212_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.2/airtime-2.1.2.tar.gz')
do_run('tar xfz airtime-2.1.2.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.2/install_full/ubuntu && ./airtime-full-install')
def airtime_213_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.1.3/airtime-2.1.3.tar.gz')
do_run('tar xfz airtime-2.1.3.tar.gz')
do_sudo('cd /home/martin/airtime-2.1.3/install_full/ubuntu && ./airtime-full-install')
def airtime_220_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.2.0/airtime-2.2.0.tar.gz')
do_run('tar xfz airtime-2.2.0.tar.gz')
do_sudo('cd /home/martin/airtime-2.2.0/install_full/ubuntu && ./airtime-full-install')
def airtime_221_tar():
do_run('wget http://downloads.sourceforge.net/project/airtime/2.2.1/airtime-2.2.1.tar.gz')
do_run('tar xfz airtime-2.2.1.tar.gz')
do_sudo('cd /home/martin/airtime-2.2.1/install_full/ubuntu && ./airtime-full-install')
def airtime_latest_deb():
append('/etc/apt/sources.list', "deb http://apt.sourcefabric.org/ lucid main", use_sudo=True)
append('/etc/apt/sources.list', "deb http://archive.ubuntu.com/ubuntu/ lucid multiverse", use_sudo=True)
@ -303,5 +383,5 @@ def airtime_git_branch(branch="devel"):
do_sudo('cd /home/martin/airtime_git && git checkout %s && install_full/ubuntu/airtime-full-install || true' % branch)
def airtime_200():
pass
#def airtime_200():
# pass

View File

@ -2,11 +2,12 @@
exec 2>&1
target="airtime_git_branch:airtime-2.0.0-RC1"
airtime_versions=("" "airtime_180_tar" "airtime_181_tar" "airtime_182_tar" "airtime_190_tar" "airtime_191_tar" "airtime_192_tar" "airtime_193_tar" "airtime_194_tar" "airtime_195_tar")
target="airtime_git_branch:devel"
#target="airtime_git_branch:airtime-2.0.0-RC1"
airtime_versions=("")
#airtime_versions=("airtime_191_tar" "airtime_192_tar" "airtime_192_tar" "airtime_194_tar" "airtime_195_tar")
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_maverick_32" "ubuntu_maverick_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64")
#ubuntu_versions=("ubuntu_natty_64")
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "ubuntu_precise_32" "ubuntu_precise_64" "ubuntu_quantal_32" "ubuntu_quantal_64" "debian_squeeze_32" "debian_squeeze_64" "debian_wheezy_32" "debian_wheezy_64")
#ubuntu_versions=("debian_wheezy_32" "debian_wheezy_64")
num1=${#ubuntu_versions[@]}
num2=${#airtime_versions[@]}
@ -18,7 +19,19 @@ do
#echo fab -f fab_setup.py os_update shutdown
for j in $(seq 0 $(($num2 -1)));
do
echo fab -f fab_setup.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown
fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown 2>&1 | tee "./upgrade_logs/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
#since 2.2.0 airtime start to support wheezy and quantal, before that, we don't need to test on those combinations
platform=`echo ${ubuntu_versions[$i]} | awk '/(quantal)|(wheezy)/'`
airtime=`echo ${airtime_versions[$j]} | awk '/2(0|1)[0-3]/'`
if [ "$platform" = "" ] || [ "$airtime" = "" ];then
echo fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown
fab -f fab_release_test.py ${ubuntu_versions[$i]} ${airtime_versions[$j]} $target shutdown 2>&1 | tee "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
#touch "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
tail -20 "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log" | grep -E "Your installation of Airtime looks OK"
returncode=$?
if [ "$returncode" -ne "0" ]; then
mv "./$upgrade_log_folder/${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log" "./$upgrade_log_folder/fail_${ubuntu_versions[$i]}_${airtime_versions[$j]}_$target.log"
fi
fi
done
done

View File

@ -2,8 +2,9 @@
exec 2>&1
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_maverick_32" "ubuntu_maverick_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64" "ubuntu_precise_32" "ubuntu_precise_64")
ubuntu_versions=("ubuntu_lucid_32" "ubuntu_lucid_64" "ubuntu_natty_32" "ubuntu_natty_64" "ubuntu_oneiric_32" "ubuntu_oneiric_64" "debian_squeeze_32" "debian_squeeze_64" "ubuntu_precise_32" "ubuntu_precise_64" "ubuntu_quantal_32" "ubuntu_quantal_64" "debian_wheezy_32" "debian_wheezy_64")
#ubuntu_versions=("ubuntu_quantal_64")
num1=${#ubuntu_versions[@]}
mkdir -p ./upgrade_logs2

View File

@ -19,6 +19,7 @@ showhelp () {
--pypo|-p Install only pypo and liquidsoap
--web|-w Install only files for web-server
--liquidsoap-keep-alive|-l Keep Liquidsoap alive when upgrading"
exit 0
}
overwrite="f"

View File

@ -340,6 +340,11 @@ class AirtimeInstall
if ($result < 1) {
return false;
}
$sql = "INSERT INTO cc_pref (subjid, keystr, valstr) VALUES (1, 'user_1_timezone', '$defaultTimezone')";
$result = $con->exec($sql);
if ($result < 1) {
return false;
}
return true;
}

View File

@ -7,6 +7,9 @@ if [[ $EUID -ne 0 ]]; then
exit 1
fi
echo "Generating locales"
for i in `ls /usr/share/airtime/locale | grep ".._.."`; do locale-gen "$i.utf8"; done
# Absolute path to this script, e.g. /home/user/bin/foo.sh
SCRIPT=`readlink -f $0`
# Absolute path this script is in, thus /home/user/bin

View File

@ -124,3 +124,5 @@ notify_liquidsoap_started = 'rabbitmq-do-push/api_key/%%api_key%%/format/json'
get_stream_parameters = 'get-stream-parameters/api_key/%%api_key%%/format/json'
push_stream_stats = 'push-stream-stats/api_key/%%api_key%%/format/json'
update_stream_setting_table = 'update-stream-setting-table/api_key/%%api_key%%/format/json'

View File

@ -383,3 +383,7 @@ class AirtimeApiClient(object):
# TODO : users of this method should do their own error handling
response = self.services.push_stream_stats(_post_data={'data': json.dumps(data)})
return response
def update_stream_setting_table(self, data):
response = self.services.update_stream_setting_table(_post_data={'data': json.dumps(data)})
return response

View File

@ -16,6 +16,16 @@ def load_definitions():
t.default(u'0.0')
t.depends('length')
t.translate(lambda k: format_length(k['length']))
with md.metadata('MDATA_KEY_CUE_IN') as t:
t.default(u'0.0')
t.depends('cuein')
t.translate(lambda k: format_length(k['cuein']))
with md.metadata('MDATA_KEY_CUE_OUT') as t:
t.default(u'0.0')
t.depends('cueout')
t.translate(lambda k: format_length(k['cueout']))
with md.metadata('MDATA_KEY_MIME') as t:
t.default(u'')

View File

@ -7,6 +7,9 @@ from media.monitor.log import Loggable
import media.monitor.pure as mmp
from collections import namedtuple
import mutagen
import subprocess
import json
import logging
class FakeMutagen(dict):
"""
@ -94,7 +97,6 @@ class MetadataElement(Loggable):
# If value is present and normalized then we only check if it's
# normalized or not. We normalize if it's not normalized already
if self.name in original:
v = original[self.name]
if self.__is_normalized(v): return v
@ -167,6 +169,19 @@ def normalize_mutagen(path):
md['sample_rate'] = getattr(m.info, 'sample_rate', 0)
md['mime'] = m.mime[0] if len(m.mime) > 0 else u''
md['path'] = normpath(path)
# silence detect(set default queue in and out)
try:
command = ['silan', '-f', 'JSON', md['path']]
proc = subprocess.Popen(command, stdout=subprocess.PIPE)
out = proc.stdout.read()
info = json.loads(out)
md['cuein'] = info['sound'][0][0]
md['cueout'] = info['sound'][-1][1]
except Exception:
logger = logging.getLogger()
logger.info('silan is missing')
if 'title' not in md: md['title'] = u''
return md

View File

@ -45,6 +45,8 @@ airtime2mutagen = {
"MDATA_KEY_URL" : "website",
"MDATA_KEY_ISRC" : "isrc",
"MDATA_KEY_COPYRIGHT" : "copyright",
"MDATA_KEY_CUE_IN" : "cuein",
"MDATA_KEY_CUE_OUT" : "cueout",
}

View File

@ -9,6 +9,7 @@ import contextlib
import shutil, pipes
import re
import sys
import stat
import hashlib
import locale
import operator as op
@ -411,17 +412,26 @@ def owner_id(original_path):
def file_playable(pathname):
""" Returns True if 'pathname' is playable by liquidsoap. False
otherwise. """
return True
#remove all write permissions. This is due to stupid taglib library bug
#where all files are opened in write mode. The only way around this is to
#modify the file permissions
os.chmod(pathname, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
# when there is an single apostrophe inside of a string quoted by
# apostrophes, we can only escape it by replace that apostrophe with
# '\''. This breaks the string into two, and inserts an escaped
# single quote in between them. We run the command as pypo because
# otherwise the target file is opened with write permissions, and
# this causes an inotify ON_CLOSE_WRITE event to be fired :/
# single quote in between them.
command = ("airtime-liquidsoap -c 'output.dummy" + \
"(audio_to_stereo(single(\"%s\")))' > /dev/null 2>&1") % \
pathname.replace("'", "'\\''")
return True
return_code = subprocess.call(command, shell=True)
#change/restore permissions to acceptable
os.chmod(pathname, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | \
stat.S_IWUSR | stat.S_IWGRP | stat.S_IWOTH)
return (return_code == 0)
def toposort(data):
@ -460,7 +470,7 @@ def format_length(mutagen_length):
m = int(math.floor(t / 60))
s = t % 60
# will be ss.uuu
s = str(s)
s = str('{0:f}'.format(s))
seconds = s.split(".")
s = seconds[0]
# have a maximum of 6 subseconds.

Some files were not shown because too many files have changed in this diff Show More