Exemplo n.º 1
0
 public function __construct()
 {
     $this->con = Propel::getConnection(CcSchedulePeer::DATABASE_NAME);
     //subtracting one because sometimes when we cancel a track, we set its end time
     //to epochNow and then send the new schedule to pypo. Sometimes the currently cancelled
     //track can still be included in the new schedule because it may have a few ms left to play.
     //subtracting 1 second from epochNow resolves this issue.
     $this->epochNow = microtime(true) - 1;
     $this->nowDT = DateTime::createFromFormat("U.u", $this->epochNow, new DateTimeZone("UTC"));
     if ($this->nowDT === false) {
         // DateTime::createFromFormat does not support millisecond string formatting in PHP 5.3.2 (Ubuntu 10.04).
         // In PHP 5.3.3 (Ubuntu 10.10), this has been fixed.
         $this->nowDT = DateTime::createFromFormat("U", time(), new DateTimeZone("UTC"));
     }
     $this->user = Application_Model_User::getCurrentUser();
     $this->crossfadeDuration = Application_Model_Preference::GetDefaultCrossfadeDuration();
 }
 public function init()
 {
     $notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
     $rangeValidator = Application_Form_Helper_ValidationTypes::overrideBetweenValidator(0, 59.9);
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/preferences_general.phtml'))));
     $defaultFadeIn = Application_Model_Preference::GetDefaultFadeIn();
     $defaultFadeOut = Application_Model_Preference::GetDefaultFadeOut();
     //Station name
     $this->addElement('text', 'stationName', array('class' => 'input_text', 'label' => _('Station Name'), 'required' => false, 'filters' => array('StringTrim'), 'value' => Application_Model_Preference::GetStationName(), 'decorators' => array('ViewHelper')));
     //Default station fade in
     $this->addElement('text', 'stationDefaultCrossfadeDuration', array('class' => 'input_text', 'label' => _('Default Crossfade Duration (s):'), 'required' => true, 'filters' => array('StringTrim'), 'validators' => array(array($rangeValidator, $notEmptyValidator, 'regex', false, array('/^[0-9]{1,2}(\\.\\d{1})?$/', 'messages' => _('enter a time in seconds 0{.0}')))), 'value' => Application_Model_Preference::GetDefaultCrossfadeDuration(), 'decorators' => array('ViewHelper')));
     //Default station fade in
     $this->addElement('text', 'stationDefaultFadeIn', array('class' => 'input_text', 'label' => _('Default Fade In (s):'), 'required' => true, 'filters' => array('StringTrim'), 'validators' => array(array($rangeValidator, $notEmptyValidator, 'regex', false, array('/^[0-9]{1,2}(\\.\\d{1})?$/', 'messages' => _('enter a time in seconds 0{.0}')))), 'value' => $defaultFadeIn, 'decorators' => array('ViewHelper')));
     //Default station fade out
     $this->addElement('text', 'stationDefaultFadeOut', array('class' => 'input_text', 'label' => _('Default Fade Out (s):'), 'required' => true, 'filters' => array('StringTrim'), 'validators' => array(array($rangeValidator, $notEmptyValidator, 'regex', false, array('/^[0-9]{1,2}(\\.\\d{1})?$/', 'messages' => _('enter a time in seconds 0{.0}')))), 'value' => $defaultFadeOut, 'decorators' => array('ViewHelper')));
     $third_party_api = new Zend_Form_Element_Radio('thirdPartyApi');
     $third_party_api->setLabel(sprintf(_('Allow Remote Websites To Access "Schedule" Info?%s (Enable this to make front-end widgets work.)'), '<br>'));
     $third_party_api->setMultiOptions(array(_("Disabled"), _("Enabled")));
     $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(_("Default Interface Language"));
     $locale->setMultiOptions(Application_Model_Locale::getLocales());
     $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(_("Station Timezone"));
     $timezone->setMultiOptions(Application_Common_Timezone::getTimezones());
     $timezone->setValue(Application_Model_Preference::GetDefaultTimezone());
     $timezone->setDecorators(array('ViewHelper'));
     $this->addElement($timezone);
     /* Form Element for setting which day is the start of the week */
     $week_start_day = new Zend_Form_Element_Select("weekStartDay");
     $week_start_day->setLabel(_("Week Starts On"));
     $week_start_day->setMultiOptions($this->getWeekStartDays());
     $week_start_day->setValue(Application_Model_Preference::GetWeekStartDay());
     $week_start_day->setDecorators(array('ViewHelper'));
     $this->addElement($week_start_day);
 }
 public static function fillPreservedLinkedShowContent($ccShow, $showStamp)
 {
     $item = $showStamp->getFirst();
     $timeFilled = $item->getCcShowInstances()->getDbTimeFilled();
     foreach ($ccShow->getCcShowInstancess() as $ccShowInstance) {
         $ccSchedules = CcScheduleQuery::create()->filterByDbInstanceId($ccShowInstance->getDbId())->find();
         if ($ccSchedules->isEmpty()) {
             $nextStartDT = $ccShowInstance->getDbStarts(null);
             foreach ($showStamp as $item) {
                 $endTimeDT = self::findEndTime($nextStartDT, $item->getDbClipLength());
                 $ccSchedule = new CcSchedule();
                 $ccSchedule->setDbStarts($nextStartDT)->setDbEnds($endTimeDT)->setDbFileId($item->getDbFileId())->setDbStreamId($item->getDbStreamId())->setDbClipLength($item->getDbClipLength())->setDbFadeIn($item->getDbFadeIn())->setDbFadeOut($item->getDbFadeOut())->setDbCuein($item->getDbCueIn())->setDbCueOut($item->getDbCueOut())->setDbInstanceId($ccShowInstance->getDbId())->setDbPosition($item->getDbPosition())->save();
                 $nextStartDT = self::findTimeDifference($endTimeDT, Application_Model_Preference::GetDefaultCrossfadeDuration());
             }
             //foreach show item
             $ccShowInstance->setDbTimeFilled($timeFilled)->setDbLastScheduled(gmdate("Y-m-d H:i:s"))->save();
         }
     }
 }
Exemplo n.º 4
0
 public function createCrossfade($id1, $fadeOut, $id2, $fadeIn, $offset)
 {
     $this->con->beginTransaction();
     if (!isset($offset)) {
         $offset = Application_Model_Preference::GetDefaultCrossfadeDuration();
     }
     try {
         if (isset($id1)) {
             $this->changeFadeInfo($id1, null, $fadeOut);
         }
         if (isset($id2)) {
             $this->changeFadeInfo($id2, $fadeIn, null, $offset);
         }
         $this->con->commit();
     } catch (Exception $e) {
         $this->con->rollback();
         throw $e;
     }
 }