summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/codecs/wavpack.c12
-rw-r--r--apps/dsp.c2
-rw-r--r--apps/metadata.c33
3 files changed, 36 insertions, 11 deletions
diff --git a/apps/codecs/wavpack.c b/apps/codecs/wavpack.c
index f76ac5a..30638f9 100644
--- a/apps/codecs/wavpack.c
+++ b/apps/codecs/wavpack.c
@@ -77,12 +77,14 @@ enum codec_status codec_start(struct codec_api* api)
while (!*rb->taginfo_ready && !ci->stop_codec)
ci->sleep(1);
- if (ci->id3->frequency != NATIVE_FREQUENCY) {
- ci->configure(DSP_SET_FREQUENCY, (long *)(ci->id3->frequency));
- ci->configure(CODEC_DSP_ENABLE, (bool *)true);
- } else {
- ci->configure(CODEC_DSP_ENABLE, (bool *)false);
+ if (ci->id3->frequency != NATIVE_FREQUENCY ||
+ ci->global_settings->replaygain) {
+ ci->configure(CODEC_DSP_ENABLE, (bool *)true);
+ ci->configure(DSP_SET_FREQUENCY, (long *)(ci->id3->frequency));
+ codec_set_replaygain(rb->id3);
}
+ else
+ ci->configure(CODEC_DSP_ENABLE, (bool *)false);
/* Create a decoder instance */
wpc = WavpackOpenFileInput (read_callback, error);
diff --git a/apps/dsp.c b/apps/dsp.c
index ea0dece..6f00736 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -397,7 +397,7 @@ static void apply_gain(long* src[], int count)
*d0++ = FRACMUL_8(*s0++, gain);
}
- if (s0 != s1)
+ if (src [0] != src [1])
{
for (i = 0; i < count; i++)
{
diff --git a/apps/metadata.c b/apps/metadata.c
index 09bcb55..409bdf8 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -520,11 +520,34 @@ static bool get_apetag_info (struct mp3entry *entry, int fd)
if (get_apetag_item (&temp_apetag, "track", temp_buffer, rem_space))
entry->tracknum = atoi (temp_buffer);
- if (get_apetag_item (&temp_apetag, "artist", temp_buffer, rem_space)) {
- UTF8ToAnsi (entry->artist = temp_buffer);
- str_space = strlen (temp_buffer) + 1;
- temp_buffer += str_space;
- rem_space -= str_space;
+ if (get_apetag_item (&temp_apetag, "replaygain_track_peak", temp_buffer, rem_space))
+ entry->track_peak = get_replaypeak (temp_buffer);
+
+ if (get_apetag_item (&temp_apetag, "replaygain_album_peak", temp_buffer, rem_space))
+ entry->album_peak = get_replaypeak (temp_buffer);
+
+ if (rem_space > 1 &&
+ get_apetag_item (&temp_apetag, "replaygain_track_gain", temp_buffer, rem_space)) {
+ entry->track_gain = get_replaygain (entry->track_gain_str = temp_buffer);
+ str_space = strlen (temp_buffer) + 1;
+ temp_buffer += str_space;
+ rem_space -= str_space;
+ }
+
+ if (rem_space > 1 &&
+ get_apetag_item (&temp_apetag, "replaygain_album_gain", temp_buffer, rem_space)) {
+ entry->album_gain = get_replaygain (entry->album_gain_str = temp_buffer);
+ str_space = strlen (temp_buffer) + 1;
+ temp_buffer += str_space;
+ rem_space -= str_space;
+ }
+
+ if (rem_space > 1 &&
+ get_apetag_item (&temp_apetag, "artist", temp_buffer, rem_space)) {
+ UTF8ToAnsi (entry->artist = temp_buffer);
+ str_space = strlen (temp_buffer) + 1;
+ temp_buffer += str_space;
+ rem_space -= str_space;
}
if (rem_space > 1 &&