1 /* GStreamer ReplayGain limiter 2 * 3 * Copyright (C) 2007 Rene Stadler <mail@renestadler.de> 4 * 5 * gstrglimiter.h: Element to apply signal compression to raw audio data 6 * 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. 11 * 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. 16 * 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 20 * 02110-1301 USA 21 */ 22 23 #ifndef __GST_RG_LIMITER_H__ 24 #define __GST_RG_LIMITER_H__ 25 26 #include <gst/gst.h> 27 #include <gst/base/gstbasetransform.h> 28 29 #define GST_TYPE_RG_LIMITER \ 30 (gst_rg_limiter_get_type()) 31 #define GST_RG_LIMITER(obj) \ 32 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RG_LIMITER,GstRgLimiter)) 33 #define GST_RG_LIMITER_CLASS(klass) \ 34 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RG_LIMITER,GstRgLimiterClass)) 35 #define GST_IS_RG_LIMITER(obj) \ 36 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RG_LIMITER)) 37 #define GST_IS_RG_LIMITER_CLASS(klass) \ 38 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RG_LIMITER)) 39 40 typedef struct _GstRgLimiter GstRgLimiter; 41 typedef struct _GstRgLimiterClass GstRgLimiterClass; 42 43 /** 44 * GstRgLimiter: 45 * 46 * Opaque data structure. 47 */ 48 struct _GstRgLimiter 49 { 50 GstBaseTransform element; 51 52 /*< private >*/ 53 54 gboolean enabled; 55 }; 56 57 struct _GstRgLimiterClass 58 { 59 GstBaseTransformClass parent_class; 60 }; 61 62 GType gst_rg_limiter_get_type (void); 63 64 #endif /* __GST_RG_LIMITER_H__ */ 65