summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/colorbalance
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-12-07 12:11:30 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2003-12-07 12:11:30 +0000
commit9bda5831b8818d0fe4286fdb1217085913277c0d (patch)
tree404583dd41a644b2e2dd72aa587357b252c135d8 /gst-libs/gst/colorbalance
parentef074394e68785508b4def25078ffaba572cb0c8 (diff)
downloadgst-plugins-bad-9bda5831b8818d0fe4286fdb1217085913277c0d.tar.gz
gst-plugins-bad-9bda5831b8818d0fe4286fdb1217085913277c0d.tar.bz2
gst-plugins-bad-9bda5831b8818d0fe4286fdb1217085913277c0d.zip
Move over from GstInterface to GstImplementsInterface. Also adds some signals to several interfaces
Original commit message from CVS: Move over from GstInterface to GstImplementsInterface. Also adds some signals to several interfaces
Diffstat (limited to 'gst-libs/gst/colorbalance')
-rw-r--r--gst-libs/gst/colorbalance/Makefile.am20
-rw-r--r--gst-libs/gst/colorbalance/colorbalance.c37
-rw-r--r--gst-libs/gst/colorbalance/colorbalance.h18
-rw-r--r--gst-libs/gst/colorbalance/colorbalancechannel.c3
-rw-r--r--gst-libs/gst/colorbalance/colorbalancechannel.h2
-rw-r--r--gst-libs/gst/colorbalance/colorbalancemarshal.list1
6 files changed, 74 insertions, 7 deletions
diff --git a/gst-libs/gst/colorbalance/Makefile.am b/gst-libs/gst/colorbalance/Makefile.am
index dc8bd0ea..b1f6bec4 100644
--- a/gst-libs/gst/colorbalance/Makefile.am
+++ b/gst-libs/gst/colorbalance/Makefile.am
@@ -9,5 +9,23 @@ noinst_LTLIBRARIES = libgstcolorbalance.la
libgstcolorbalance_la_SOURCES = \
colorbalance.c \
- colorbalancechannel.c
+ colorbalancechannel.c \
+ colorbalancemarshal.c
libgstcolorbalance_la_CFLAGS = $(GST_CFLAGS) $(GST_OPT_CFLAGS)
+
+BUILT_SOURCES = \
+ colorbalancemarshal.c \
+ colorbalancemarshal.h
+built_headers = \
+ colorbalancemarshal.h
+
+EXTRA_DIST = colorbalancemarshal.list
+
+colorbalancemarshal.h: colorbalancemarshal.list
+ glib-genmarshal --header --prefix=gst_color_balance_marshal $^ > colorbalancemarshal.h.tmp
+ mv colorbalancemarshal.h.tmp colorbalancemarshal.h
+
+colorbalancemarshal.c: colorbalancemarshal.list
+ echo "#include \"colorbalancemarshal.h\"" >> colorbalancemarshal.c.tmp
+ glib-genmarshal --body --prefix=gst_color_balance_marshal $^ >> colorbalancemarshal.c.tmp
+ mv colorbalancemarshal.c.tmp colorbalancemarshal.c
diff --git a/gst-libs/gst/colorbalance/colorbalance.c b/gst-libs/gst/colorbalance/colorbalance.c
index 829cf5f6..163111cd 100644
--- a/gst-libs/gst/colorbalance/colorbalance.c
+++ b/gst-libs/gst/colorbalance/colorbalance.c
@@ -25,9 +25,17 @@
#endif
#include "colorbalance.h"
+#include "colorbalancemarshal.h"
+
+enum {
+ VALUE_CHANGED,
+ LAST_SIGNAL
+};
static void gst_color_balance_class_init (GstColorBalanceClass *klass);
+static guint gst_color_balance_signals[LAST_SIGNAL] = { 0 };
+
GType
gst_color_balance_get_type (void)
{
@@ -50,7 +58,7 @@ gst_color_balance_get_type (void)
"GstColorBalance",
&gst_color_balance_info, 0);
g_type_interface_add_prerequisite (gst_color_balance_type,
- GST_TYPE_INTERFACE);
+ GST_TYPE_IMPLEMENTS_INTERFACE);
}
return gst_color_balance_type;
@@ -59,6 +67,21 @@ gst_color_balance_get_type (void)
static void
gst_color_balance_class_init (GstColorBalanceClass *klass)
{
+ static gboolean initialized = FALSE;
+
+ if (!initialized) {
+ gst_color_balance_signals[VALUE_CHANGED] =
+ g_signal_new ("value_changed",
+ GST_TYPE_COLOR_BALANCE, G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GstColorBalanceClass, value_changed),
+ NULL, NULL,
+ gst_color_balance_marshal_VOID__OBJECT_INT,
+ G_TYPE_NONE, 2,
+ GST_TYPE_COLOR_BALANCE_CHANNEL, G_TYPE_INT);
+
+ initialized = TRUE;
+ }
+
/* default virtual functions */
klass->list_channels = NULL;
klass->set_value = NULL;
@@ -101,3 +124,15 @@ gst_color_balance_get_value (GstColorBalance *balance,
return channel->min_value;
}
+
+void
+gst_color_balance_value_changed (GstColorBalance *balance,
+ GstColorBalanceChannel *channel,
+ gint value)
+{
+ g_signal_emit (G_OBJECT (balance),
+ gst_color_balance_signals[VALUE_CHANGED],
+ 0, channel, value);
+
+ g_signal_emit_by_name (G_OBJECT (channel), "value_changed", value);
+}
diff --git a/gst-libs/gst/colorbalance/colorbalance.h b/gst-libs/gst/colorbalance/colorbalance.h
index 2b9d27d3..041c4e8f 100644
--- a/gst-libs/gst/colorbalance/colorbalance.h
+++ b/gst-libs/gst/colorbalance/colorbalance.h
@@ -30,13 +30,13 @@ G_BEGIN_DECLS
#define GST_TYPE_COLOR_BALANCE \
(gst_color_balance_get_type ())
#define GST_COLOR_BALANCE(obj) \
- (GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
- GstColorBalance))
+ (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
+ GstColorBalance))
#define GST_COLOR_BALANCE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_COLOR_BALANCE, \
GstColorBalanceClass))
#define GST_IS_COLOR_BALANCE(obj) \
- (GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_COLOR_BALANCE))
+ (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_COLOR_BALANCE))
#define GST_IS_COLOR_BALANCE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE))
#define GST_COLOR_BALANCE_GET_CLASS(inst) \
@@ -55,6 +55,13 @@ typedef struct _GstColorBalanceClass {
gint value);
gint (* get_value) (GstColorBalance *balance,
GstColorBalanceChannel *channel);
+
+ /* signals */
+ void (* value_changed) (GstColorBalance *balance,
+ GstColorBalanceChannel *channel,
+ gint value);
+
+ GST_CLASS_PADDING
} GstColorBalanceClass;
GType gst_color_balance_get_type (void);
@@ -68,6 +75,11 @@ void gst_color_balance_set_value (GstColorBalance *balance,
gint gst_color_balance_get_value (GstColorBalance *balance,
GstColorBalanceChannel *channel);
+/* trigger signal */
+void gst_color_balance_value_changed (GstColorBalance *balance,
+ GstColorBalanceChannel *channel,
+ gint value);
+
G_END_DECLS
#endif /* __GST_COLOR_BALANCE_H__ */
diff --git a/gst-libs/gst/colorbalance/colorbalancechannel.c b/gst-libs/gst/colorbalance/colorbalancechannel.c
index 8241bfe7..f8710120 100644
--- a/gst-libs/gst/colorbalance/colorbalancechannel.c
+++ b/gst-libs/gst/colorbalance/colorbalancechannel.c
@@ -96,8 +96,7 @@ gst_color_balance_channel_dispose (GObject *object)
{
GstColorBalanceChannel *channel = GST_COLOR_BALANCE_CHANNEL (object);
- if (channel->label)
- g_free (channel->label);
+ g_free (channel->label);
if (parent_class->dispose)
parent_class->dispose (object);
diff --git a/gst-libs/gst/colorbalance/colorbalancechannel.h b/gst-libs/gst/colorbalance/colorbalancechannel.h
index 5f738ecb..81d0bd34 100644
--- a/gst-libs/gst/colorbalance/colorbalancechannel.h
+++ b/gst-libs/gst/colorbalance/colorbalancechannel.h
@@ -53,6 +53,8 @@ typedef struct _GstColorBalanceChannelClass {
/* signals */
void (* value_changed) (GstColorBalanceChannel *channel,
gint value);
+
+ GST_CLASS_PADDING
} GstColorBalanceChannelClass;
GType gst_color_balance_channel_get_type (void);
diff --git a/gst-libs/gst/colorbalance/colorbalancemarshal.list b/gst-libs/gst/colorbalance/colorbalancemarshal.list
new file mode 100644
index 00000000..b9d0c499
--- /dev/null
+++ b/gst-libs/gst/colorbalance/colorbalancemarshal.list
@@ -0,0 +1 @@
+VOID:OBJECT,INT