From a6804212818e5652acba8fb98f4d8bc7a947334f Mon Sep 17 00:00:00 2001 From: Naomi Aro Date: Mon, 24 Jun 2013 11:09:03 -0400 Subject: [PATCH] CC-5251 : Playlist length is not shown in Library --- airtime_mvc/application/models/Scheduler.php | 39 +++++++++--------- airtime_mvc/application/models/StoredFile.php | 40 +++++++++---------- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/airtime_mvc/application/models/Scheduler.php b/airtime_mvc/application/models/Scheduler.php index c62fed647..299b78073 100644 --- a/airtime_mvc/application/models/Scheduler.php +++ b/airtime_mvc/application/models/Scheduler.php @@ -17,7 +17,7 @@ class Application_Model_Scheduler private $epochNow; private $nowDT; private $user; - + private $crossfadeDuration; private $checkUserPermissions = true; @@ -40,7 +40,7 @@ class Application_Model_Scheduler } $this->user = Application_Model_User::getCurrentUser(); - + $this->crossfadeDuration = Application_Model_Preference::GetDefaultCrossfadeDuration(); } @@ -200,9 +200,12 @@ class Application_Model_Scheduler } else { $data = $this->fileInfo; $data["id"] = $id; - $data["cliplength"] = Application_Model_StoredFile::getRealClipLength( - $file->getDbCuein(), - $file->getDbCueout()); + + $cuein = Application_Common_DateHelper::playlistTimeToSeconds($file->getDbCuein()); + $cueout = Application_Common_DateHelper::playlistTimeToSeconds($file->getDbCueout()); + $row_length = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein); + + $data["cliplength"] = $row_length; $data["cuein"] = $file->getDbCuein(); $data["cueout"] = $file->getDbCueout(); @@ -265,11 +268,11 @@ class Application_Model_Scheduler $cuein = Application_Common_DateHelper::calculateLengthInSeconds($data["cuein"]); $cueout = Application_Common_DateHelper::calculateLengthInSeconds($data["cueout"]); $data["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein); - + //fade is in format SS.uuuuuu $data["fadein"] = $defaultFadeIn; $data["fadeout"] = $defaultFadeOut; - + $data["type"] = 0; $files[] = $data; } @@ -324,11 +327,11 @@ class Application_Model_Scheduler $cuein = Application_Common_DateHelper::calculateLengthInSeconds($data["cuein"]); $cueout = Application_Common_DateHelper::calculateLengthInSeconds($data["cueout"]); $data["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein); - + //fade is in format SS.uuuuuu $data["fadein"] = $defaultFadeIn; $data["fadeout"] = $defaultFadeOut; - + $data["type"] = 0; $files[] = $data; } @@ -338,7 +341,7 @@ class Application_Model_Scheduler return $files; } - + /* * @param DateTime startDT in UTC * @param string duration @@ -349,18 +352,18 @@ class Application_Model_Scheduler private function findTimeDifference($p_startDT, $p_seconds) { $startEpoch = $p_startDT->format("U.u"); - + //add two float numbers to 6 subsecond precision //DateTime::createFromFormat("U.u") will have a problem if there is no decimal in the resulting number. $newEpoch = bcsub($startEpoch , (string) $p_seconds, 6); - + $dt = DateTime::createFromFormat("U.u", $newEpoch, new DateTimeZone("UTC")); - + if ($dt === false) { //PHP 5.3.2 problem $dt = DateTime::createFromFormat("U", intval($newEpoch), new DateTimeZone("UTC")); } - + return $dt; } @@ -420,7 +423,7 @@ class Application_Model_Scheduler return $nextDT; } - + /* * @param int $showInstance * This function recalculates the start/end times of items in a gapless show to @@ -499,7 +502,7 @@ class Application_Model_Scheduler } /** - * + * * Enter description here ... * @param $scheduleItems * cc_schedule items, where the items get inserted after @@ -882,7 +885,7 @@ class Application_Model_Scheduler private function updateMovedItem() { - + } private function getInstances($instanceId) @@ -1102,7 +1105,7 @@ class Application_Model_Scheduler } else { $removedItem->delete($this->con); } - + // update is_scheduled in cc_files but only if // the file is not scheduled somewhere else $fileId = $removedItem->getDbFileId(); diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 0c503344c..cce04794d 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -778,17 +778,18 @@ SQL; foreach ($results['aaData'] as &$row) { $row['id'] = intval($row['id']); - $len_formatter = new LengthFormatter( - self::getRealClipLength($row["cuein"], $row["cueout"])); - $row['length'] = $len_formatter->format(); - - $cuein_formatter = new LengthFormatter($row["cuein"]); - $row["cuein"] = $cuein_formatter->format(); - - $cueout_formatter = new LengthFormatter($row["cueout"]); - $row["cueout"] = $cueout_formatter->format(); - if ($row['ftype'] === "audioclip") { + + $cuein_formatter = new LengthFormatter($row["cuein"]); + $row["cuein"] = $cuein_formatter->format(); + + $cueout_formatter = new LengthFormatter($row["cueout"]); + $row["cueout"] = $cueout_formatter->format(); + + $cuein = Application_Common_DateHelper::playlistTimeToSeconds($row["cuein"]); + $cueout = Application_Common_DateHelper::playlistTimeToSeconds($row["cueout"]); + $row_length = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein); + $formatter = new SamplerateFormatter($row['sample_rate']); $row['sample_rate'] = $formatter->format(); @@ -801,9 +802,16 @@ SQL; // for audio preview $row['audioFile'] = $row['id'].".".pathinfo($row['filepath'], PATHINFO_EXTENSION); - } else { - $row['audioFile'] = $row['id']; + } + else { + + $row['audioFile'] = $row['id']; + $row_length = $row['length']; + } + + $len_formatter = new LengthFormatter($row_length); + $row['length'] = $len_formatter->format(); //convert mtime and utime to localtime $row['mtime'] = new DateTime($row['mtime'], new DateTimeZone('UTC')); @@ -1347,14 +1355,6 @@ SQL; Application_Common_Database::prepareAndExecute($sql, array(), Application_Common_Database::EXECUTE); } - - public static function getRealClipLength($p_cuein, $p_cueout) { - $sql = "SELECT :cueout::INTERVAL - :cuein::INTERVAL"; - - return Application_Common_Database::prepareAndExecute($sql, array( - ':cueout' => $p_cueout, - ':cuein' => $p_cuein), 'column'); - } } class DeleteScheduledFileException extends Exception {}