1 /* GStreamer ReplayGain volume adjustment
3 * Copyright (C) 2007 Rene Stadler <mail@renestadler.de>
5 * gstrgvolume.h: Element to apply ReplayGain volume adjustment
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * as published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 #ifndef __GST_RG_VOLUME_H__
24 #define __GST_RG_VOLUME_H__
30 #define GST_TYPE_RG_VOLUME \
31 (gst_rg_volume_get_type())
32 #define GST_RG_VOLUME(obj) \
33 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RG_VOLUME,GstRgVolume))
34 #define GST_RG_VOLUME_CLASS(klass) \
35 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RG_VOLUME,GstRgVolumeClass))
36 #define GST_IS_RG_VOLUME(obj) \
37 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RG_VOLUME))
38 #define GST_IS_RG_VOLUME_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RG_VOLUME))
41 typedef struct _GstRgVolume GstRgVolume;
42 typedef struct _GstRgVolumeClass GstRgVolumeClass;
47 * Opaque data structure.
55 GstElement *volume_element;
61 gdouble fallback_gain;
71 gboolean has_track_gain;
72 gboolean has_track_peak;
73 gboolean has_album_gain;
74 gboolean has_album_peak;
76 gdouble reference_level;
79 struct _GstRgVolumeClass
81 GstBinClass parent_class;
84 GType gst_rg_volume_get_type (void);
88 #endif /* __GST_RG_VOLUME_H__ */