diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php
index b321372db..86f22822a 100644
--- a/airtime_mvc/application/controllers/PreferenceController.php
+++ b/airtime_mvc/application/controllers/PreferenceController.php
@@ -66,6 +66,7 @@ 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 = "
". _("Preferences updated.")."
";
$this->view->form = $form;
diff --git a/airtime_mvc/application/forms/GeneralPreferences.php b/airtime_mvc/application/forms/GeneralPreferences.php
index 0244c983d..b76ef8c89 100644
--- a/airtime_mvc/application/forms/GeneralPreferences.php
+++ b/airtime_mvc/application/forms/GeneralPreferences.php
@@ -74,6 +74,13 @@ 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()
diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php
index 916bc1deb..326ab6bea 100644
--- a/airtime_mvc/application/models/Preference.php
+++ b/airtime_mvc/application/models/Preference.php
@@ -1183,4 +1183,19 @@ class Application_Model_Preference
$data = self::getValue("nowplaying_screen", true);
return ($data != "") ? unserialize($data) : null;
}
+
+ public static function getReplayGainModifier(){
+ $rg_modifier = self::getValue("replay_gain_modifier");
+
+ if ($rg_modifier === "") {
+ return "0";
+ }
+
+ return $rg_modifier;
+ }
+
+ public static function setReplayGainModifier($rg_modifier)
+ {
+ self::setValue("replay_gain_modifier", $rg_modifier, true);
+ }
}
diff --git a/airtime_mvc/application/models/Schedule.php b/airtime_mvc/application/models/Schedule.php
index bc98168d3..dd6535bd4 100644
--- a/airtime_mvc/application/models/Schedule.php
+++ b/airtime_mvc/application/models/Schedule.php
@@ -679,6 +679,8 @@ SQL;
$same_hour = $start_hour == $end_hour;
$independent_event = !$same_hour;
+ $replay_gain = is_null($item["replay_gain"]) ? "0": $item["replay_gain"];
+ $replay_gain += Application_Model_Preference::getReplayGainModifier();
$schedule_item = array(
'id' => $media_id,
@@ -692,7 +694,7 @@ SQL;
'start' => $start,
'end' => $end,
'show_name' => $item["show_name"],
- 'replay_gain' => is_null($item["replay_gain"]) ? "0": $item["replay_gain"],
+ 'replay_gain' => $replay_gain,
'independent_event' => $independent_event,
);
self::appendScheduleItem($data, $start, $schedule_item);
diff --git a/airtime_mvc/application/views/scripts/form/preferences_general.phtml b/airtime_mvc/application/views/scripts/form/preferences_general.phtml
index cc280b851..993f3da9d 100644
--- a/airtime_mvc/application/views/scripts/form/preferences_general.phtml
+++ b/airtime_mvc/application/views/scripts/form/preferences_general.phtml
@@ -108,6 +108,23 @@
-
+
+
+
+ element->getElement('replayGainModifier')->getValue() ?>
+
+
+
+ element->getElement('replayGainModifier') ?>
+ element->getElement('replayGainModifier')->hasErrors()) : ?>
+
+ element->getElement('replayGainModifier')->getMessages() as $error): ?>
+
+
+
+
+
+
diff --git a/airtime_mvc/public/js/airtime/preferences/preferences.js b/airtime_mvc/public/js/airtime/preferences/preferences.js
index fe5635faf..62562e833 100644
--- a/airtime_mvc/public/js/airtime/preferences/preferences.js
+++ b/airtime_mvc/public/js/airtime/preferences/preferences.js
@@ -80,6 +80,20 @@ 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() {
@@ -97,6 +111,7 @@ $(document).ready(function() {
$('#content').empty().append(json.html);
setTimeout(removeSuccessMsg, 5000);
showErrorSections();
+ setSliderForReplayGain();
});
});
@@ -106,4 +121,6 @@ $(document).ready(function() {
setSystemFromEmailReadonly();
setConfigureMailServerListener();
setEnableSystemEmailsListener();
+
+ setSliderForReplayGain();
});