diff --git a/legacy/application/assets.json b/legacy/application/assets.json index ad0eaa857..05739af05 100644 --- a/legacy/application/assets.json +++ b/legacy/application/assets.json @@ -26,7 +26,7 @@ "css/media_library.css": "e1982d1f673543f7730898fb49450f8b", "css/player-form.css": "e08a4545715fc56b75c845b44a5b2a1c", "css/player.css": "904bc7aede4d5f0372468528d88094f1", - "css/playlist_builder.css": "e92ef56ddffca440a7741934edbb7f7f", + "css/playlist_builder.css": "9e35f1b7a1e79a7a73e7e9666d5a711f", "css/playouthistory.css": "983cc1bac566b18b745b6e0da9ef3c0c", "css/plupload.queue.css": "0acfb6b54c18654452727d4abf297394", "css/pro_dropdown_3.css": "9848a27dad960c2218751c1656e9206a", @@ -43,7 +43,7 @@ "css/show_analytics.css": "4393c521308277447afabe8791779bf1", "css/showbuilder.css": "4421c01b5c2dfb03f8d06dd6023b4bd7", "css/station_podcast.css": "88e9b38ead71eddc69ef50bfc8cb2d0d", - "css/styles.css": "6890a553402f44cefc7c6915f38aa657", + "css/styles.css": "29ce2292b2c007e86d192d0deeaf88ad", "css/tipsy/jquery.tipsy.css": "b13517583583f83ed7d5fc067a0c9372", "css/tracktypes.css": "94c94817a8505ff4dfcd090987859a7e", "css/users.css": "94c94817a8505ff4dfcd090987859a7e", @@ -63,7 +63,7 @@ "js/airtime/library/plupload.js": "0f6be5b133650828b9ffc74e7852dc89", "js/airtime/library/podcast.js": "4dedd84cb571cdba2401bfb8ba621e69", "js/airtime/library/publish.js": "ab3a1452dd332cdb0773241a1c17b7e0", - "js/airtime/library/spl.js": "c4cbac0c237b548064685a2cb16d3fa2", + "js/airtime/library/spl.js": "5bddd886303ff15e8b78e79b30a9e56f", "js/airtime/listenerstat/listenerstat.js": "a3733dae8f9549668125ec9852d356ed", "js/airtime/listenerstat/showlistenerstat.js": "7cf0c375420f1c8471d304bc8758b2cd", "js/airtime/login/login.js": "7278cf49618791d75bacce38dd1b1d46", @@ -180,5 +180,16 @@ "js/waveformplaylist/playout.js": "7dfc5fe760f3c6739e38499df7b61e47", "js/waveformplaylist/time_scale.js": "74e0e17e1c8cd597449220c98de408ba", "js/waveformplaylist/track.js": "5456e6081ffedf55a9e38571bc178781", - "js/waveformplaylist/track_render.js": "e371b582b23e4b618e039f096d2f0570" + "js/waveformplaylist/track_render.js": "e371b582b23e4b618e039f096d2f0570", + "js/wavesurfer/cursor.js": "8ed17a7437f3ec84972d15d0073249b2", + "js/wavesurfer/cursor.min.js": "831165862b629e615cf59112fa00d963", + "js/wavesurfer/libretime.js": "17133cacf09fc204a572b56c99d44278", + "js/wavesurfer/minimap.js": "c17dd315386006bb3cffdabb5f715c7b", + "js/wavesurfer/minimap.min.js": "90b2f2d1d1b4eb189d1a9c3c27dcb4f7", + "js/wavesurfer/regions.js": "aafe4f696d3da50c976d11e472fd56d1", + "js/wavesurfer/regions.min.js": "2ed2f8b5880beee568942000a6139e85", + "js/wavesurfer/timeline.js": "0bd70779070513c2a4f34237a0f9f573", + "js/wavesurfer/timeline.min.js": "90ea16b23cacebfad10cad42f94403d0", + "js/wavesurfer/wavesurfer.js": "9e2ced8a136449f4fd78911b0f01f6ed", + "js/wavesurfer/wavesurfer.min.js": "42ebd7fdd574dfe8cae587145751a1f2" } diff --git a/legacy/application/controllers/LibraryController.php b/legacy/application/controllers/LibraryController.php index f2311f532..dfd50f570 100644 --- a/legacy/application/controllers/LibraryController.php +++ b/legacy/application/controllers/LibraryController.php @@ -400,6 +400,12 @@ class LibraryController extends Zend_Controller_Action $this->view->artist_name = $file->getPropelOrm()->getDbArtistName(); $this->view->filePath = $file->getPropelOrm()->getDbFilepath(); $this->view->artwork = $file->getPropelOrm()->getDbArtwork(); + $this->view->replay_gain = $file->getPropelOrm()->getDbReplayGain(); + $this->view->cuein = $file->getPropelOrm()->getDbCuein(); + $this->view->cueout = $file->getPropelOrm()->getDbCueout(); + $this->view->format = $file->getPropelOrm()->getDbFormat(); + $this->view->bit_rate = $file->getPropelOrm()->getDbBitRate(); + $this->view->sample_rate = $file->getPropelOrm()->getDbSampleRate(); $this->view->html = $this->view->render('library/edit-file-md.phtml'); } diff --git a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php index 991493aa1..76dc771e2 100644 --- a/legacy/application/controllers/plugins/PageLayoutInitPlugin.php +++ b/legacy/application/controllers/plugins/PageLayoutInitPlugin.php @@ -217,6 +217,13 @@ class PageLayoutInitPlugin extends Zend_Controller_Plugin_Abstract ->appendFile(Assets::url('js/airtime/common/common.js'), 'text/javascript') ->appendFile(Assets::url('js/airtime/common/audioplaytest.js'), 'text/javascript'); + // include wavesurfer.js for waveform display + $view->headScript()->appendFile(Assets::url('js/wavesurfer/wavesurfer.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/wavesurfer/timeline.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/wavesurfer/regions.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/wavesurfer/cursor.min.js'), 'text/javascript') + ->appendFile(Assets::url('js/wavesurfer/libretime.js'), 'text/javascript'); + $user = Application_Model_User::getCurrentUser(); if (!is_null($user)) { $userType = $user->getType(); diff --git a/legacy/application/forms/EditAudioMD.php b/legacy/application/forms/EditAudioMD.php index fc3539ae6..2247e2d21 100644 --- a/legacy/application/forms/EditAudioMD.php +++ b/legacy/application/forms/EditAudioMD.php @@ -8,9 +8,11 @@ class Application_Form_EditAudioMD extends Zend_Form { // Set the method for the display form to POST $this->setMethod('post'); + $this->setAttrib('id', 'track_edit_' . $p_id); $file_id = new Zend_Form_Element_Hidden('file_id'); $file_id->setValue($p_id); + $file_id->setDecorators(['ViewHelper']); $file_id->addDecorator('HtmlTag', ['tag' => 'div', 'style' => 'display:none']); $file_id->removeDecorator('Label'); $file_id->setAttrib('class', 'obj_id'); @@ -188,6 +190,14 @@ class Application_Form_EditAudioMD extends Zend_Form ]); $this->addElement($mood); + // Add replay gain field + $replay_gain = new Zend_Form_Element_Hidden('replay_gain'); + $replay_gain->class = 'input_text replay_gain_' . $p_id; + $replay_gain->setLabel(_('Replay Gain:')) + ->addDecorator('HtmlTag', ['tag' => 'div', 'style' => 'display:none']) + ->removeDecorator('Label'); + $this->addElement($replay_gain); + // Add bmp field $bpm = new Zend_Form_Element_Text('bpm'); $bpm->class = 'input_text'; @@ -242,7 +252,7 @@ class Application_Form_EditAudioMD extends Zend_Form $validCuePattern = '/^(?:[0-9]{1,2}:)?(?:[0-9]{1,2}:)?[0-9]{1,6}(\.\d{1,6})?$/'; $cueIn = new Zend_Form_Element_Text('cuein'); - $cueIn->class = 'input_text'; + $cueIn->class = 'input_text cuein_' . $p_id; $cueIn->setLabel('Cue In:'); $cueInValidator = Application_Form_Helper_ValidationTypes::overrideRegexValidator( $validCuePattern, @@ -252,7 +262,7 @@ class Application_Form_EditAudioMD extends Zend_Form $this->addElement($cueIn); $cueOut = new Zend_Form_Element_Text('cueout'); - $cueOut->class = 'input_text'; + $cueOut->class = 'input_text cueout_' . $p_id; $cueOut->setLabel('Cue Out:'); $cueOutValidator = Application_Form_Helper_ValidationTypes::overrideRegexValidator( $validCuePattern, diff --git a/legacy/application/views/scripts/library/edit-file-md.phtml b/legacy/application/views/scripts/library/edit-file-md.phtml index fa26736d6..06a7ebd9f 100644 --- a/legacy/application/views/scripts/library/edit-file-md.phtml +++ b/legacy/application/views/scripts/library/edit-file-md.phtml @@ -1,39 +1,186 @@ -artwork, 256); ?> +artwork, 256); + +$baseUrl = Config::getBasePath(); + +$get_replay_gain = Application_Model_Preference::getReplayGainModifier(); +if (!Application_Model_Preference::GetEnableReplayGain() ) { + $get_replay_gain = 0; +} +$analogMeter = true; +?>