summaryrefslogtreecommitdiff
path: root/src/plugin_xmms
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2006-09-14 00:40:03 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2006-09-14 00:40:03 +0000
commitb292e75ebf3ef755d60522021de67c45b313d694 (patch)
treead65633494ccf701d6a2168b9cd124eb708e2f94 /src/plugin_xmms
parentdcf04428feb792754aea4b0a484243850afc0114 (diff)
downloadflac-b292e75ebf3ef755d60522021de67c45b313d694.tar.gz
add support for new REPLAYGAIN_REFERENCE_LOUDNESS tag
Diffstat (limited to 'src/plugin_xmms')
-rw-r--r--src/plugin_xmms/fileinfo.c15
-rw-r--r--src/plugin_xmms/plugin.c4
2 files changed, 14 insertions, 5 deletions
diff --git a/src/plugin_xmms/fileinfo.c b/src/plugin_xmms/fileinfo.c
index 09c32050..ecb1e85a 100644
--- a/src/plugin_xmms/fileinfo.c
+++ b/src/plugin_xmms/fileinfo.c
@@ -41,7 +41,7 @@ static GtkWidget *window = NULL;
static GList *genre_list = NULL;
static GtkWidget *filename_entry, *tag_frame;
static GtkWidget *title_entry, *artist_entry, *album_entry, *date_entry, *tracknum_entry, *comment_entry;
-static GtkWidget *replaygain_track_gain, *replaygain_album_gain, *replaygain_track_peak, *replaygain_album_peak;
+static GtkWidget *replaygain_reference, *replaygain_track_gain, *replaygain_album_gain, *replaygain_track_peak, *replaygain_album_peak;
static GtkWidget *genre_combo;
static GtkWidget *flac_samplerate, *flac_channels, *flac_bits_per_sample, *flac_blocksize, *flac_filesize, *flac_samples, *flac_bitrate;
@@ -244,22 +244,26 @@ static void show_replaygain()
/* known limitation: If only one of gain and peak is set, neither will be shown. This is true for
* both track and album replaygain tags. Written so it will be easy to fix, with some trouble. */
+ gtk_label_set_text(GTK_LABEL(replaygain_reference), "");
gtk_label_set_text(GTK_LABEL(replaygain_track_gain), "");
gtk_label_set_text(GTK_LABEL(replaygain_album_gain), "");
gtk_label_set_text(GTK_LABEL(replaygain_track_peak), "");
gtk_label_set_text(GTK_LABEL(replaygain_album_peak), "");
- double track_gain, track_peak, album_gain, album_peak;
- FLAC__bool track_gain_set, track_peak_set, album_gain_set, album_peak_set;
+ double reference, track_gain, track_peak, album_gain, album_peak;
+ FLAC__bool reference_set, track_gain_set, track_peak_set, album_gain_set, album_peak_set;
FLAC_plugin__replaygain_get_from_file(
current_filename,
+ &reference, &reference_set,
&track_gain, &track_gain_set,
&album_gain, &album_gain_set,
&track_peak, &track_peak_set,
&album_peak, &album_peak_set
);
+ if(reference_set)
+ label_set_text(replaygain_reference, _("ReplayGain Reference Loudness: %2.1f dB"), reference);
if(track_gain_set)
label_set_text(replaygain_track_gain, _("ReplayGain Track Gain: %+2.2f dB"), track_gain);
if(album_gain_set)
@@ -438,6 +442,11 @@ void FLAC_XMMS__file_info_box(char *filename)
gtk_label_set_justify(GTK_LABEL(flac_bitrate), GTK_JUSTIFY_LEFT);
gtk_box_pack_start(GTK_BOX(flac_box), flac_bitrate, FALSE, FALSE, 0);
+ replaygain_reference = gtk_label_new("");
+ gtk_misc_set_alignment(GTK_MISC(replaygain_reference), 0, 0);
+ gtk_label_set_justify(GTK_LABEL(replaygain_reference), GTK_JUSTIFY_LEFT);
+ gtk_box_pack_start(GTK_BOX(flac_box), replaygain_reference, FALSE, FALSE, 0);
+
replaygain_track_gain = gtk_label_new("");
gtk_misc_set_alignment(GTK_MISC(replaygain_track_gain), 0, 0);
gtk_label_set_justify(GTK_LABEL(replaygain_track_gain), GTK_JUSTIFY_LEFT);
diff --git a/src/plugin_xmms/plugin.c b/src/plugin_xmms/plugin.c
index 4e5b9a17..ba0219af 100644
--- a/src/plugin_xmms/plugin.c
+++ b/src/plugin_xmms/plugin.c
@@ -662,8 +662,8 @@ void metadata_callback_(const FLAC__StreamDecoder *decoder, const FLAC__StreamMe
}
}
else if(metadata->type == FLAC__METADATA_TYPE_VORBIS_COMMENT) {
- double gain, peak;
- if(grabbag__replaygain_load_from_vorbiscomment(metadata, flac_cfg.output.replaygain.album_mode, /*strict=*/false, &gain, &peak)) {
+ double reference, gain, peak;
+ if(grabbag__replaygain_load_from_vorbiscomment(metadata, flac_cfg.output.replaygain.album_mode, /*strict=*/false, &reference, &gain, &peak)) {
stream_data->has_replaygain = true;
stream_data->replay_scale = grabbag__replaygain_compute_scale_factor(peak, gain, (double)flac_cfg.output.replaygain.preamp, /*prevent_clipping=*/!flac_cfg.output.replaygain.hard_limit);
}