CC-430: Audio normalization (Replaygain Support)
-values are now written through to database
This commit is contained in:
parent
b4f1cc13c0
commit
632f039977
|
@ -956,4 +956,22 @@ class ApiController extends Zend_Controller_Action
|
||||||
//connect to db and get get sql
|
//connect to db and get get sql
|
||||||
$this->view->rows = Application_Model_StoredFile::listAllFiles2($dir_id, 100);
|
$this->view->rows = Application_Model_StoredFile::listAllFiles2($dir_id, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updateReplayGainValueAction()
|
||||||
|
{
|
||||||
|
$this->checkAuth();
|
||||||
|
|
||||||
|
// disable layout
|
||||||
|
$this->view->layout()->disableLayout();
|
||||||
|
$request = $this->getRequest();
|
||||||
|
$data = json_decode($request->getParam('data'));
|
||||||
|
|
||||||
|
foreach ($data as $pair) {
|
||||||
|
list($id, $gain) = $pair;
|
||||||
|
|
||||||
|
$file = Application_Model_StoredFile::Recall($p_id = $id)->getPropelOrm();
|
||||||
|
Logging::log("Setting $gain for file id $id");
|
||||||
|
$file->setDbReplayGain($gain);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,9 +96,6 @@ update_item_url = 'notify-schedule-group-play/api_key/%%api_key%%/schedule_id/%%
|
||||||
# Update whether an audio clip is currently playing.
|
# Update whether an audio clip is currently playing.
|
||||||
update_start_playing_url = 'notify-media-item-start-play/api_key/%%api_key%%/media_id/%%media_id%%/schedule_id/%%schedule_id%%'
|
update_start_playing_url = 'notify-media-item-start-play/api_key/%%api_key%%/media_id/%%media_id%%/schedule_id/%%schedule_id%%'
|
||||||
|
|
||||||
# ???
|
|
||||||
generate_range_url = 'generate_range_dp.php'
|
|
||||||
|
|
||||||
# URL to tell Airtime we want to get stream setting
|
# URL to tell Airtime we want to get stream setting
|
||||||
get_stream_setting = 'get-stream-setting/format/json/api_key/%%api_key%%/'
|
get_stream_setting = 'get-stream-setting/format/json/api_key/%%api_key%%/'
|
||||||
|
|
||||||
|
@ -113,5 +110,6 @@ update_source_status = 'update-source-status/format/json/api_key/%%api_key%%/sou
|
||||||
|
|
||||||
get_bootstrap_info = 'get-bootstrap-info/format/json/api_key/%%api_key%%'
|
get_bootstrap_info = 'get-bootstrap-info/format/json/api_key/%%api_key%%'
|
||||||
|
|
||||||
get-files-without-replay-gain = 'get-files-without-replay-gain/api_key/%%api_key%%/dir_id/%%dir_id%%'
|
get_files_without_replay_gain = 'get-files-without-replay-gain/api_key/%%api_key%%/dir_id/%%dir_id%%'
|
||||||
|
|
||||||
|
update_replay_gain_value = 'update-replay-gain-value/api_key/%%api_key%%'
|
||||||
|
|
|
@ -626,7 +626,7 @@ class AirTimeApiClient():
|
||||||
|
|
||||||
logger = self.logger
|
logger = self.logger
|
||||||
try:
|
try:
|
||||||
url = "http://%(base_url)s:%(base_port)s/%(api_base)s/%(get-files-without-replay-gain)s/" % (self.config)
|
url = "http://%(base_url)s:%(base_port)s/%(api_base)s/%(get_files_without_replay_gain)s/" % (self.config)
|
||||||
url = url.replace("%%api_key%%", self.config["api_key"])
|
url = url.replace("%%api_key%%", self.config["api_key"])
|
||||||
url = url.replace("%%dir_id%%", dir_id)
|
url = url.replace("%%dir_id%%", dir_id)
|
||||||
response = self.get_response_from_server(url)
|
response = self.get_response_from_server(url)
|
||||||
|
@ -641,3 +641,20 @@ class AirTimeApiClient():
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
def update_replay_gain_values(self, pairs):
|
||||||
|
"""
|
||||||
|
'pairs' is a list of pairs in (x, y), where x is the file's database row id
|
||||||
|
and y is the file's replay_gain value in dB
|
||||||
|
"""
|
||||||
|
|
||||||
|
#http://localhost/api/update-replay-gain-value/
|
||||||
|
try:
|
||||||
|
url = "http://%(base_url)s:%(base_port)s/%(api_base)s/%(update_replay_gain_value)s/" % (self.config)
|
||||||
|
url = url.replace("%%api_key%%", self.config["api_key"])
|
||||||
|
data = urllib.urlencode({'data': json.dumps(pairs)})
|
||||||
|
request = urllib2.Request(url, data)
|
||||||
|
|
||||||
|
self.get_response_from_server(request)
|
||||||
|
except Exception, e:
|
||||||
|
response = None
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,11 @@ import os
|
||||||
import logging
|
import logging
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
import sys
|
||||||
|
sys.path.append('/home/martin/workspace/airtime/python_apps/media-monitor2/')
|
||||||
|
|
||||||
from api_clients import api_client
|
from api_clients import api_client
|
||||||
import replaygain
|
from media.update import replaygain
|
||||||
|
|
||||||
|
|
||||||
class ReplayGainUpdater(Thread):
|
class ReplayGainUpdater(Thread):
|
||||||
|
@ -52,6 +55,7 @@ class ReplayGainUpdater(Thread):
|
||||||
finished = True
|
finished = True
|
||||||
|
|
||||||
#send data here
|
#send data here
|
||||||
|
self.api_client.update_replay_gain_values(processed_data)
|
||||||
print processed_data
|
print processed_data
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
print e
|
print e
|
Loading…
Reference in New Issue