mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-26 02:00:33 +00:00
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
This commit is contained in:
parent
b170a21e71
commit
2ebfe048cc
35 changed files with 695 additions and 77 deletions
|
@ -9,5 +9,23 @@ noinst_LTLIBRARIES = libgstcolorbalance.la
|
||||||
|
|
||||||
libgstcolorbalance_la_SOURCES = \
|
libgstcolorbalance_la_SOURCES = \
|
||||||
colorbalance.c \
|
colorbalance.c \
|
||||||
colorbalancechannel.c
|
colorbalancechannel.c \
|
||||||
|
colorbalancemarshal.c
|
||||||
libgstcolorbalance_la_CFLAGS = $(GST_CFLAGS) $(GST_OPT_CFLAGS)
|
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
|
||||||
|
|
|
@ -25,9 +25,17 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "colorbalance.h"
|
#include "colorbalance.h"
|
||||||
|
#include "colorbalancemarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
VALUE_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_color_balance_class_init (GstColorBalanceClass *klass);
|
static void gst_color_balance_class_init (GstColorBalanceClass *klass);
|
||||||
|
|
||||||
|
static guint gst_color_balance_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_color_balance_get_type (void)
|
gst_color_balance_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +58,7 @@ gst_color_balance_get_type (void)
|
||||||
"GstColorBalance",
|
"GstColorBalance",
|
||||||
&gst_color_balance_info, 0);
|
&gst_color_balance_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_color_balance_type,
|
g_type_interface_add_prerequisite (gst_color_balance_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_color_balance_type;
|
return gst_color_balance_type;
|
||||||
|
@ -59,6 +67,21 @@ gst_color_balance_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_color_balance_class_init (GstColorBalanceClass *klass)
|
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 */
|
/* default virtual functions */
|
||||||
klass->list_channels = NULL;
|
klass->list_channels = NULL;
|
||||||
klass->set_value = NULL;
|
klass->set_value = NULL;
|
||||||
|
@ -101,3 +124,15 @@ gst_color_balance_get_value (GstColorBalance *balance,
|
||||||
|
|
||||||
return channel->min_value;
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -30,13 +30,13 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_COLOR_BALANCE \
|
#define GST_TYPE_COLOR_BALANCE \
|
||||||
(gst_color_balance_get_type ())
|
(gst_color_balance_get_type ())
|
||||||
#define GST_COLOR_BALANCE(obj) \
|
#define GST_COLOR_BALANCE(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
|
||||||
GstColorBalance))
|
GstColorBalance))
|
||||||
#define GST_COLOR_BALANCE_CLASS(klass) \
|
#define GST_COLOR_BALANCE_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_COLOR_BALANCE, \
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_COLOR_BALANCE, \
|
||||||
GstColorBalanceClass))
|
GstColorBalanceClass))
|
||||||
#define GST_IS_COLOR_BALANCE(obj) \
|
#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) \
|
#define GST_IS_COLOR_BALANCE_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE))
|
||||||
#define GST_COLOR_BALANCE_GET_CLASS(inst) \
|
#define GST_COLOR_BALANCE_GET_CLASS(inst) \
|
||||||
|
@ -55,6 +55,13 @@ typedef struct _GstColorBalanceClass {
|
||||||
gint value);
|
gint value);
|
||||||
gint (* get_value) (GstColorBalance *balance,
|
gint (* get_value) (GstColorBalance *balance,
|
||||||
GstColorBalanceChannel *channel);
|
GstColorBalanceChannel *channel);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (* value_changed) (GstColorBalance *balance,
|
||||||
|
GstColorBalanceChannel *channel,
|
||||||
|
gint value);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstColorBalanceClass;
|
} GstColorBalanceClass;
|
||||||
|
|
||||||
GType gst_color_balance_get_type (void);
|
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,
|
gint gst_color_balance_get_value (GstColorBalance *balance,
|
||||||
GstColorBalanceChannel *channel);
|
GstColorBalanceChannel *channel);
|
||||||
|
|
||||||
|
/* trigger signal */
|
||||||
|
void gst_color_balance_value_changed (GstColorBalance *balance,
|
||||||
|
GstColorBalanceChannel *channel,
|
||||||
|
gint value);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_COLOR_BALANCE_H__ */
|
#endif /* __GST_COLOR_BALANCE_H__ */
|
||||||
|
|
|
@ -96,8 +96,7 @@ gst_color_balance_channel_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
GstColorBalanceChannel *channel = GST_COLOR_BALANCE_CHANNEL (object);
|
GstColorBalanceChannel *channel = GST_COLOR_BALANCE_CHANNEL (object);
|
||||||
|
|
||||||
if (channel->label)
|
g_free (channel->label);
|
||||||
g_free (channel->label);
|
|
||||||
|
|
||||||
if (parent_class->dispose)
|
if (parent_class->dispose)
|
||||||
parent_class->dispose (object);
|
parent_class->dispose (object);
|
||||||
|
|
|
@ -53,6 +53,8 @@ typedef struct _GstColorBalanceChannelClass {
|
||||||
/* signals */
|
/* signals */
|
||||||
void (* value_changed) (GstColorBalanceChannel *channel,
|
void (* value_changed) (GstColorBalanceChannel *channel,
|
||||||
gint value);
|
gint value);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstColorBalanceChannelClass;
|
} GstColorBalanceChannelClass;
|
||||||
|
|
||||||
GType gst_color_balance_channel_get_type (void);
|
GType gst_color_balance_channel_get_type (void);
|
||||||
|
|
1
gst-libs/gst/colorbalance/colorbalancemarshal.list
Normal file
1
gst-libs/gst/colorbalance/colorbalancemarshal.list
Normal file
|
@ -0,0 +1 @@
|
||||||
|
VOID:OBJECT,INT
|
|
@ -25,9 +25,17 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "colorbalance.h"
|
#include "colorbalance.h"
|
||||||
|
#include "colorbalancemarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
VALUE_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_color_balance_class_init (GstColorBalanceClass *klass);
|
static void gst_color_balance_class_init (GstColorBalanceClass *klass);
|
||||||
|
|
||||||
|
static guint gst_color_balance_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_color_balance_get_type (void)
|
gst_color_balance_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +58,7 @@ gst_color_balance_get_type (void)
|
||||||
"GstColorBalance",
|
"GstColorBalance",
|
||||||
&gst_color_balance_info, 0);
|
&gst_color_balance_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_color_balance_type,
|
g_type_interface_add_prerequisite (gst_color_balance_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_color_balance_type;
|
return gst_color_balance_type;
|
||||||
|
@ -59,6 +67,21 @@ gst_color_balance_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_color_balance_class_init (GstColorBalanceClass *klass)
|
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 */
|
/* default virtual functions */
|
||||||
klass->list_channels = NULL;
|
klass->list_channels = NULL;
|
||||||
klass->set_value = NULL;
|
klass->set_value = NULL;
|
||||||
|
@ -101,3 +124,15 @@ gst_color_balance_get_value (GstColorBalance *balance,
|
||||||
|
|
||||||
return channel->min_value;
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -30,13 +30,13 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_COLOR_BALANCE \
|
#define GST_TYPE_COLOR_BALANCE \
|
||||||
(gst_color_balance_get_type ())
|
(gst_color_balance_get_type ())
|
||||||
#define GST_COLOR_BALANCE(obj) \
|
#define GST_COLOR_BALANCE(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_COLOR_BALANCE, \
|
||||||
GstColorBalance))
|
GstColorBalance))
|
||||||
#define GST_COLOR_BALANCE_CLASS(klass) \
|
#define GST_COLOR_BALANCE_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_COLOR_BALANCE, \
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_COLOR_BALANCE, \
|
||||||
GstColorBalanceClass))
|
GstColorBalanceClass))
|
||||||
#define GST_IS_COLOR_BALANCE(obj) \
|
#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) \
|
#define GST_IS_COLOR_BALANCE_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE))
|
||||||
#define GST_COLOR_BALANCE_GET_CLASS(inst) \
|
#define GST_COLOR_BALANCE_GET_CLASS(inst) \
|
||||||
|
@ -55,6 +55,13 @@ typedef struct _GstColorBalanceClass {
|
||||||
gint value);
|
gint value);
|
||||||
gint (* get_value) (GstColorBalance *balance,
|
gint (* get_value) (GstColorBalance *balance,
|
||||||
GstColorBalanceChannel *channel);
|
GstColorBalanceChannel *channel);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (* value_changed) (GstColorBalance *balance,
|
||||||
|
GstColorBalanceChannel *channel,
|
||||||
|
gint value);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstColorBalanceClass;
|
} GstColorBalanceClass;
|
||||||
|
|
||||||
GType gst_color_balance_get_type (void);
|
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,
|
gint gst_color_balance_get_value (GstColorBalance *balance,
|
||||||
GstColorBalanceChannel *channel);
|
GstColorBalanceChannel *channel);
|
||||||
|
|
||||||
|
/* trigger signal */
|
||||||
|
void gst_color_balance_value_changed (GstColorBalance *balance,
|
||||||
|
GstColorBalanceChannel *channel,
|
||||||
|
gint value);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_COLOR_BALANCE_H__ */
|
#endif /* __GST_COLOR_BALANCE_H__ */
|
||||||
|
|
|
@ -96,8 +96,7 @@ gst_color_balance_channel_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
GstColorBalanceChannel *channel = GST_COLOR_BALANCE_CHANNEL (object);
|
GstColorBalanceChannel *channel = GST_COLOR_BALANCE_CHANNEL (object);
|
||||||
|
|
||||||
if (channel->label)
|
g_free (channel->label);
|
||||||
g_free (channel->label);
|
|
||||||
|
|
||||||
if (parent_class->dispose)
|
if (parent_class->dispose)
|
||||||
parent_class->dispose (object);
|
parent_class->dispose (object);
|
||||||
|
|
|
@ -53,6 +53,8 @@ typedef struct _GstColorBalanceChannelClass {
|
||||||
/* signals */
|
/* signals */
|
||||||
void (* value_changed) (GstColorBalanceChannel *channel,
|
void (* value_changed) (GstColorBalanceChannel *channel,
|
||||||
gint value);
|
gint value);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstColorBalanceChannelClass;
|
} GstColorBalanceChannelClass;
|
||||||
|
|
||||||
GType gst_color_balance_channel_get_type (void);
|
GType gst_color_balance_channel_get_type (void);
|
||||||
|
|
|
@ -24,9 +24,19 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
#include "mixermarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MUTE_TOGGLED,
|
||||||
|
RECORD_TOGGLED,
|
||||||
|
VOLUME_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_mixer_class_init (GstMixerClass *klass);
|
static void gst_mixer_class_init (GstMixerClass *klass);
|
||||||
|
|
||||||
|
static guint gst_mixer_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_mixer_get_type (void)
|
gst_mixer_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +59,7 @@ gst_mixer_get_type (void)
|
||||||
"GstMixer",
|
"GstMixer",
|
||||||
&gst_mixer_info, 0);
|
&gst_mixer_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_mixer_type,
|
g_type_interface_add_prerequisite (gst_mixer_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_mixer_type;
|
return gst_mixer_type;
|
||||||
|
@ -58,6 +68,34 @@ gst_mixer_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_mixer_class_init (GstMixerClass *klass)
|
gst_mixer_class_init (GstMixerClass *klass)
|
||||||
{
|
{
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
gst_mixer_signals[RECORD_TOGGLED] =
|
||||||
|
g_signal_new ("record_toggled",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, record_toggled),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_BOOLEAN);
|
||||||
|
gst_mixer_signals[MUTE_TOGGLED] =
|
||||||
|
g_signal_new ("mute_toggled",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, mute_toggled),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_BOOLEAN);
|
||||||
|
gst_mixer_signals[VOLUME_CHANGED] =
|
||||||
|
g_signal_new ("volume_changed",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, volume_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_POINTER, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_POINTER);
|
||||||
|
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* default virtual functions */
|
/* default virtual functions */
|
||||||
klass->list_tracks = NULL;
|
klass->list_tracks = NULL;
|
||||||
klass->set_volume = NULL;
|
klass->set_volume = NULL;
|
||||||
|
@ -131,3 +169,45 @@ gst_mixer_set_record (GstMixer *mixer,
|
||||||
klass->set_record (mixer, track, record);
|
klass->set_record (mixer, track, record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_mute_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean mute)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[MUTE_TOGGLED], 0,
|
||||||
|
track, mute);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"mute_toggled",
|
||||||
|
mute);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_record_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean record)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[RECORD_TOGGLED], 0,
|
||||||
|
track, record);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"record_toggled",
|
||||||
|
record);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_volume_changed (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gint *volumes)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[VOLUME_CHANGED], 0,
|
||||||
|
track, volumes);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"volume_changed",
|
||||||
|
volumes);
|
||||||
|
}
|
||||||
|
|
|
@ -30,11 +30,11 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_MIXER \
|
#define GST_TYPE_MIXER \
|
||||||
(gst_mixer_get_type ())
|
(gst_mixer_get_type ())
|
||||||
#define GST_MIXER(obj) \
|
#define GST_MIXER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer))
|
||||||
#define GST_MIXER_CLASS(klass) \
|
#define GST_MIXER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER, GstMixerClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER, GstMixerClass))
|
||||||
#define GST_IS_MIXER(obj) \
|
#define GST_IS_MIXER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER))
|
||||||
#define GST_IS_MIXER_CLASS(klass) \
|
#define GST_IS_MIXER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER))
|
||||||
#define GST_MIXER_GET_CLASS(inst) \
|
#define GST_MIXER_GET_CLASS(inst) \
|
||||||
|
@ -62,25 +62,47 @@ typedef struct _GstMixerClass {
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean record);
|
gboolean record);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (* mute_toggled) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gboolean mute);
|
||||||
|
void (* record_toggled) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gboolean record);
|
||||||
|
void (* volume_changed) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gint *volumes);
|
||||||
|
|
||||||
GST_CLASS_PADDING
|
GST_CLASS_PADDING
|
||||||
} GstMixerClass;
|
} GstMixerClass;
|
||||||
|
|
||||||
GType gst_mixer_get_type (void);
|
GType gst_mixer_get_type (void);
|
||||||
|
|
||||||
/* virtual class function wrappers */
|
/* virtual class function wrappers */
|
||||||
const GList * gst_mixer_list_tracks (GstMixer *mixer);
|
const GList * gst_mixer_list_tracks (GstMixer *mixer);
|
||||||
void gst_mixer_set_volume (GstMixer *mixer,
|
void gst_mixer_set_volume (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
void gst_mixer_get_volume (GstMixer *mixer,
|
void gst_mixer_get_volume (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
void gst_mixer_set_mute (GstMixer *mixer,
|
void gst_mixer_set_mute (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean mute);
|
gboolean mute);
|
||||||
void gst_mixer_set_record (GstMixer *mixer,
|
void gst_mixer_set_record (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean record);
|
gboolean record);
|
||||||
|
|
||||||
|
/* trigger signals */
|
||||||
|
void gst_mixer_mute_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean mute);
|
||||||
|
void gst_mixer_record_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean record);
|
||||||
|
void gst_mixer_volume_changed (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gint *volumes);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -71,12 +71,15 @@ typedef struct _GstMixerTrack {
|
||||||
typedef struct _GstMixerTrackClass {
|
typedef struct _GstMixerTrackClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
|
/* signals */
|
||||||
void (* mute_toggled) (GstMixerTrack *channel,
|
void (* mute_toggled) (GstMixerTrack *channel,
|
||||||
gboolean on);
|
gboolean mute);
|
||||||
void (* record_toggled) (GstMixerTrack *channel,
|
void (* record_toggled) (GstMixerTrack *channel,
|
||||||
gboolean on);
|
gboolean record);
|
||||||
void (* volume_changed) (GstMixerTrack *channel,
|
void (* volume_changed) (GstMixerTrack *channel,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstMixerTrackClass;
|
} GstMixerTrackClass;
|
||||||
|
|
||||||
GType gst_mixer_track_get_type (void);
|
GType gst_mixer_track_get_type (void);
|
||||||
|
|
|
@ -24,9 +24,20 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "tuner.h"
|
#include "tuner.h"
|
||||||
|
#include "tunermarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NORM_CHANGED,
|
||||||
|
CHANNEL_CHANGED,
|
||||||
|
FREQUENCY_CHANGED,
|
||||||
|
SIGNAL_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_tuner_class_init (GstTunerClass *klass);
|
static void gst_tuner_class_init (GstTunerClass *klass);
|
||||||
|
|
||||||
|
static guint gst_tuner_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_tuner_get_type (void)
|
gst_tuner_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +60,7 @@ gst_tuner_get_type (void)
|
||||||
"GstTuner",
|
"GstTuner",
|
||||||
&gst_tuner_info, 0);
|
&gst_tuner_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_tuner_type,
|
g_type_interface_add_prerequisite (gst_tuner_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_tuner_type;
|
return gst_tuner_type;
|
||||||
|
@ -58,6 +69,41 @@ gst_tuner_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_tuner_class_init (GstTunerClass *klass)
|
gst_tuner_class_init (GstTunerClass *klass)
|
||||||
{
|
{
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, norm_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_TUNER_NORM);
|
||||||
|
gst_tuner_signals[CHANNEL_CHANGED] =
|
||||||
|
g_signal_new ("channel_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, channel_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_TUNER_CHANNEL);
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, frequency_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_tuner_marshal_VOID__OBJECT_ULONG, G_TYPE_NONE, 2,
|
||||||
|
GST_TYPE_TUNER_CHANNEL, G_TYPE_ULONG);
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, signal_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_tuner_marshal_VOID__OBJECT_INT, G_TYPE_NONE, 2,
|
||||||
|
GST_TYPE_TUNER_CHANNEL, G_TYPE_INT);
|
||||||
|
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* default virtual functions */
|
/* default virtual functions */
|
||||||
klass->list_channels = NULL;
|
klass->list_channels = NULL;
|
||||||
klass->set_channel = NULL;
|
klass->set_channel = NULL;
|
||||||
|
@ -188,3 +234,49 @@ gst_tuner_signal_strength (GstTuner *tuner,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_channel_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[CHANNEL_CHANGED], 0,
|
||||||
|
channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_norm_changed (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[NORM_CHANGED], 0,
|
||||||
|
norm);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_frequency_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[FREQUENCY_CHANGED], 0,
|
||||||
|
channel, frequency);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (channel),
|
||||||
|
"frequency_changed",
|
||||||
|
frequency);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_signal_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[SIGNAL_CHANGED], 0,
|
||||||
|
channel, signal);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (channel),
|
||||||
|
"signal_changed",
|
||||||
|
signal);
|
||||||
|
}
|
||||||
|
|
|
@ -31,11 +31,11 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_TUNER \
|
#define GST_TYPE_TUNER \
|
||||||
(gst_tuner_get_type ())
|
(gst_tuner_get_type ())
|
||||||
#define GST_TUNER(obj) \
|
#define GST_TUNER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner))
|
||||||
#define GST_TUNER_CLASS(klass) \
|
#define GST_TUNER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER, GstTunerClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER, GstTunerClass))
|
||||||
#define GST_IS_TUNER(obj) \
|
#define GST_IS_TUNER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER))
|
||||||
#define GST_IS_TUNER_CLASS(klass) \
|
#define GST_IS_TUNER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER))
|
||||||
#define GST_TUNER_GET_CLASS(inst) \
|
#define GST_TUNER_GET_CLASS(inst) \
|
||||||
|
@ -66,6 +66,20 @@ typedef struct _GstTunerClass {
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
gint (* signal_strength) (GstTuner *tuner,
|
gint (* signal_strength) (GstTuner *tuner,
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (*channel_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel);
|
||||||
|
void (*norm_changed) (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm);
|
||||||
|
void (*frequency_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency);
|
||||||
|
void (*signal_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerClass;
|
} GstTunerClass;
|
||||||
|
|
||||||
GType gst_tuner_get_type (void);
|
GType gst_tuner_get_type (void);
|
||||||
|
@ -91,6 +105,18 @@ gulong gst_tuner_get_frequency (GstTuner *tuner,
|
||||||
gint gst_tuner_signal_strength (GstTuner *tuner,
|
gint gst_tuner_signal_strength (GstTuner *tuner,
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
|
|
||||||
|
/* trigger signals */
|
||||||
|
void gst_tuner_channel_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel);
|
||||||
|
void gst_tuner_norm_changed (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm);
|
||||||
|
void gst_tuner_frequency_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency);
|
||||||
|
void gst_tuner_signal_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_TUNER_H__ */
|
#endif /* __GST_TUNER_H__ */
|
||||||
|
|
|
@ -64,10 +64,12 @@ typedef struct _GstTunerChannelClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*frequency_changed) (GstTunerChannel *tuner,
|
void (*frequency_changed) (GstTunerChannel *channel,
|
||||||
gulong frequency);
|
gulong frequency);
|
||||||
void (*signal_changed) (GstTunerChannel *tuner,
|
void (*signal_changed) (GstTunerChannel *channel,
|
||||||
gint signal);
|
gint signal);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerChannelClass;
|
} GstTunerChannelClass;
|
||||||
|
|
||||||
GType gst_tuner_channel_get_type (void);
|
GType gst_tuner_channel_get_type (void);
|
||||||
|
|
|
@ -46,6 +46,8 @@ typedef struct _GstTunerNorm {
|
||||||
|
|
||||||
typedef struct _GstTunerNormClass {
|
typedef struct _GstTunerNormClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerNormClass;
|
} GstTunerNormClass;
|
||||||
|
|
||||||
GType gst_tuner_norm_get_type (void);
|
GType gst_tuner_norm_get_type (void);
|
||||||
|
|
|
@ -56,7 +56,7 @@ gst_x_overlay_get_type (void)
|
||||||
"GstXOverlay",
|
"GstXOverlay",
|
||||||
&gst_x_overlay_info, 0);
|
&gst_x_overlay_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_x_overlay_type,
|
g_type_interface_add_prerequisite (gst_x_overlay_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_x_overlay_type;
|
return gst_x_overlay_type;
|
||||||
|
@ -79,6 +79,8 @@ gst_x_overlay_base_init (gpointer g_class)
|
||||||
|
|
||||||
initialized = TRUE;
|
initialized = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_X_OVERLAY_CLASS (g_class)->set_xwindow_id = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,11 +31,12 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_X_OVERLAY \
|
#define GST_TYPE_X_OVERLAY \
|
||||||
(gst_x_overlay_get_type ())
|
(gst_x_overlay_get_type ())
|
||||||
#define GST_X_OVERLAY(obj) \
|
#define GST_X_OVERLAY(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, GstXOverlay))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, \
|
||||||
|
GstXOverlay))
|
||||||
#define GST_X_OVERLAY_CLASS(klass) \
|
#define GST_X_OVERLAY_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_X_OVERLAY, GstXOverlayClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_X_OVERLAY, GstXOverlayClass))
|
||||||
#define GST_IS_X_OVERLAY(obj) \
|
#define GST_IS_X_OVERLAY(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_X_OVERLAY))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_X_OVERLAY))
|
||||||
#define GST_IS_X_OVERLAY_CLASS(klass) \
|
#define GST_IS_X_OVERLAY_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_X_OVERLAY))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_X_OVERLAY))
|
||||||
#define GST_X_OVERLAY_GET_CLASS(inst) \
|
#define GST_X_OVERLAY_GET_CLASS(inst) \
|
||||||
|
@ -53,6 +54,8 @@ typedef struct _GstXOverlayClass {
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*have_xwindow_id) (GstXOverlay *overlay,
|
void (*have_xwindow_id) (GstXOverlay *overlay,
|
||||||
XID xwindow_id);
|
XID xwindow_id);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstXOverlayClass;
|
} GstXOverlayClass;
|
||||||
|
|
||||||
GType gst_x_overlay_get_type (void);
|
GType gst_x_overlay_get_type (void);
|
||||||
|
|
|
@ -9,5 +9,23 @@ noinst_LTLIBRARIES = libgstmixer.la
|
||||||
|
|
||||||
libgstmixer_la_SOURCES = \
|
libgstmixer_la_SOURCES = \
|
||||||
mixer.c \
|
mixer.c \
|
||||||
mixertrack.c
|
mixertrack.c \
|
||||||
|
mixermarshal.c
|
||||||
libgstmixer_la_CFLAGS = $(GST_CFLAGS)
|
libgstmixer_la_CFLAGS = $(GST_CFLAGS)
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
mixermarshal.c \
|
||||||
|
mixermarshal.h
|
||||||
|
built_headers = \
|
||||||
|
mixermarshal.h
|
||||||
|
|
||||||
|
EXTRA_DIST = mixermarshal.list
|
||||||
|
|
||||||
|
mixermarshal.h: mixermarshal.list
|
||||||
|
glib-genmarshal --header --prefix=gst_mixer_marshal $^ > mixermarshal.h.tmp
|
||||||
|
mv mixermarshal.h.tmp mixermarshal.h
|
||||||
|
|
||||||
|
mixermarshal.c: mixermarshal.list
|
||||||
|
echo "#include \"mixermarshal.h\"" >> mixermarshal.c.tmp
|
||||||
|
glib-genmarshal --body --prefix=gst_mixer_marshal $^ >> mixermarshal.c.tmp
|
||||||
|
mv mixermarshal.c.tmp mixermarshal.c
|
||||||
|
|
|
@ -24,9 +24,19 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "mixer.h"
|
#include "mixer.h"
|
||||||
|
#include "mixermarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MUTE_TOGGLED,
|
||||||
|
RECORD_TOGGLED,
|
||||||
|
VOLUME_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_mixer_class_init (GstMixerClass *klass);
|
static void gst_mixer_class_init (GstMixerClass *klass);
|
||||||
|
|
||||||
|
static guint gst_mixer_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_mixer_get_type (void)
|
gst_mixer_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +59,7 @@ gst_mixer_get_type (void)
|
||||||
"GstMixer",
|
"GstMixer",
|
||||||
&gst_mixer_info, 0);
|
&gst_mixer_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_mixer_type,
|
g_type_interface_add_prerequisite (gst_mixer_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_mixer_type;
|
return gst_mixer_type;
|
||||||
|
@ -58,6 +68,34 @@ gst_mixer_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_mixer_class_init (GstMixerClass *klass)
|
gst_mixer_class_init (GstMixerClass *klass)
|
||||||
{
|
{
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
gst_mixer_signals[RECORD_TOGGLED] =
|
||||||
|
g_signal_new ("record_toggled",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, record_toggled),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_BOOLEAN);
|
||||||
|
gst_mixer_signals[MUTE_TOGGLED] =
|
||||||
|
g_signal_new ("mute_toggled",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, mute_toggled),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_BOOLEAN);
|
||||||
|
gst_mixer_signals[VOLUME_CHANGED] =
|
||||||
|
g_signal_new ("volume_changed",
|
||||||
|
GST_TYPE_MIXER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstMixerClass, volume_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_mixer_marshal_VOID__OBJECT_POINTER, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_MIXER_TRACK, G_TYPE_POINTER);
|
||||||
|
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* default virtual functions */
|
/* default virtual functions */
|
||||||
klass->list_tracks = NULL;
|
klass->list_tracks = NULL;
|
||||||
klass->set_volume = NULL;
|
klass->set_volume = NULL;
|
||||||
|
@ -131,3 +169,45 @@ gst_mixer_set_record (GstMixer *mixer,
|
||||||
klass->set_record (mixer, track, record);
|
klass->set_record (mixer, track, record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_mute_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean mute)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[MUTE_TOGGLED], 0,
|
||||||
|
track, mute);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"mute_toggled",
|
||||||
|
mute);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_record_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean record)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[RECORD_TOGGLED], 0,
|
||||||
|
track, record);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"record_toggled",
|
||||||
|
record);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_mixer_volume_changed (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gint *volumes)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (mixer),
|
||||||
|
gst_mixer_signals[VOLUME_CHANGED], 0,
|
||||||
|
track, volumes);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (track),
|
||||||
|
"volume_changed",
|
||||||
|
volumes);
|
||||||
|
}
|
||||||
|
|
|
@ -30,11 +30,11 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_MIXER \
|
#define GST_TYPE_MIXER \
|
||||||
(gst_mixer_get_type ())
|
(gst_mixer_get_type ())
|
||||||
#define GST_MIXER(obj) \
|
#define GST_MIXER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MIXER, GstMixer))
|
||||||
#define GST_MIXER_CLASS(klass) \
|
#define GST_MIXER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER, GstMixerClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MIXER, GstMixerClass))
|
||||||
#define GST_IS_MIXER(obj) \
|
#define GST_IS_MIXER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MIXER))
|
||||||
#define GST_IS_MIXER_CLASS(klass) \
|
#define GST_IS_MIXER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MIXER))
|
||||||
#define GST_MIXER_GET_CLASS(inst) \
|
#define GST_MIXER_GET_CLASS(inst) \
|
||||||
|
@ -62,25 +62,47 @@ typedef struct _GstMixerClass {
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean record);
|
gboolean record);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (* mute_toggled) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gboolean mute);
|
||||||
|
void (* record_toggled) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gboolean record);
|
||||||
|
void (* volume_changed) (GstMixer *mixer,
|
||||||
|
GstMixerTrack *channel,
|
||||||
|
gint *volumes);
|
||||||
|
|
||||||
GST_CLASS_PADDING
|
GST_CLASS_PADDING
|
||||||
} GstMixerClass;
|
} GstMixerClass;
|
||||||
|
|
||||||
GType gst_mixer_get_type (void);
|
GType gst_mixer_get_type (void);
|
||||||
|
|
||||||
/* virtual class function wrappers */
|
/* virtual class function wrappers */
|
||||||
const GList * gst_mixer_list_tracks (GstMixer *mixer);
|
const GList * gst_mixer_list_tracks (GstMixer *mixer);
|
||||||
void gst_mixer_set_volume (GstMixer *mixer,
|
void gst_mixer_set_volume (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
void gst_mixer_get_volume (GstMixer *mixer,
|
void gst_mixer_get_volume (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
void gst_mixer_set_mute (GstMixer *mixer,
|
void gst_mixer_set_mute (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean mute);
|
gboolean mute);
|
||||||
void gst_mixer_set_record (GstMixer *mixer,
|
void gst_mixer_set_record (GstMixer *mixer,
|
||||||
GstMixerTrack *track,
|
GstMixerTrack *track,
|
||||||
gboolean record);
|
gboolean record);
|
||||||
|
|
||||||
|
/* trigger signals */
|
||||||
|
void gst_mixer_mute_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean mute);
|
||||||
|
void gst_mixer_record_toggled (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gboolean record);
|
||||||
|
void gst_mixer_volume_changed (GstMixer *mixer,
|
||||||
|
GstMixerTrack *track,
|
||||||
|
gint *volumes);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
2
gst-libs/gst/mixer/mixermarshal.list
Normal file
2
gst-libs/gst/mixer/mixermarshal.list
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
VOID:OBJECT,BOOLEAN
|
||||||
|
VOID:OBJECT,POINTER
|
|
@ -71,12 +71,15 @@ typedef struct _GstMixerTrack {
|
||||||
typedef struct _GstMixerTrackClass {
|
typedef struct _GstMixerTrackClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
|
/* signals */
|
||||||
void (* mute_toggled) (GstMixerTrack *channel,
|
void (* mute_toggled) (GstMixerTrack *channel,
|
||||||
gboolean on);
|
gboolean mute);
|
||||||
void (* record_toggled) (GstMixerTrack *channel,
|
void (* record_toggled) (GstMixerTrack *channel,
|
||||||
gboolean on);
|
gboolean record);
|
||||||
void (* volume_changed) (GstMixerTrack *channel,
|
void (* volume_changed) (GstMixerTrack *channel,
|
||||||
gint *volumes);
|
gint *volumes);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstMixerTrackClass;
|
} GstMixerTrackClass;
|
||||||
|
|
||||||
GType gst_mixer_track_get_type (void);
|
GType gst_mixer_track_get_type (void);
|
||||||
|
|
|
@ -11,6 +11,23 @@ noinst_LTLIBRARIES = libgsttuner.la
|
||||||
libgsttuner_la_SOURCES = \
|
libgsttuner_la_SOURCES = \
|
||||||
tuner.c \
|
tuner.c \
|
||||||
tunernorm.c \
|
tunernorm.c \
|
||||||
tunerchannel.c
|
tunerchannel.c \
|
||||||
|
tunermarshal.c
|
||||||
libgsttuner_la_CFLAGS = $(GST_CFLAGS)
|
libgsttuner_la_CFLAGS = $(GST_CFLAGS)
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
tunermarshal.c \
|
||||||
|
tunermarshal.h
|
||||||
|
built_headers = \
|
||||||
|
tunermarshal.h
|
||||||
|
|
||||||
|
EXTRA_DIST = tunermarshal.list
|
||||||
|
|
||||||
|
tunermarshal.h: tunermarshal.list
|
||||||
|
glib-genmarshal --header --prefix=gst_tuner_marshal $^ > tunermarshal.h.tmp
|
||||||
|
mv tunermarshal.h.tmp tunermarshal.h
|
||||||
|
|
||||||
|
tunermarshal.c: tunermarshal.list
|
||||||
|
echo "#include \"tunermarshal.h\"" >> tunermarshal.c.tmp
|
||||||
|
glib-genmarshal --body --prefix=gst_tuner_marshal $^ >> tunermarshal.c.tmp
|
||||||
|
mv tunermarshal.c.tmp tunermarshal.c
|
||||||
|
|
|
@ -24,9 +24,20 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "tuner.h"
|
#include "tuner.h"
|
||||||
|
#include "tunermarshal.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NORM_CHANGED,
|
||||||
|
CHANNEL_CHANGED,
|
||||||
|
FREQUENCY_CHANGED,
|
||||||
|
SIGNAL_CHANGED,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
|
||||||
static void gst_tuner_class_init (GstTunerClass *klass);
|
static void gst_tuner_class_init (GstTunerClass *klass);
|
||||||
|
|
||||||
|
static guint gst_tuner_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
GType
|
GType
|
||||||
gst_tuner_get_type (void)
|
gst_tuner_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +60,7 @@ gst_tuner_get_type (void)
|
||||||
"GstTuner",
|
"GstTuner",
|
||||||
&gst_tuner_info, 0);
|
&gst_tuner_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_tuner_type,
|
g_type_interface_add_prerequisite (gst_tuner_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_tuner_type;
|
return gst_tuner_type;
|
||||||
|
@ -58,6 +69,41 @@ gst_tuner_get_type (void)
|
||||||
static void
|
static void
|
||||||
gst_tuner_class_init (GstTunerClass *klass)
|
gst_tuner_class_init (GstTunerClass *klass)
|
||||||
{
|
{
|
||||||
|
static gboolean initialized = FALSE;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, norm_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_TUNER_NORM);
|
||||||
|
gst_tuner_signals[CHANNEL_CHANGED] =
|
||||||
|
g_signal_new ("channel_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, channel_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
|
||||||
|
GST_TYPE_TUNER_CHANNEL);
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, frequency_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_tuner_marshal_VOID__OBJECT_ULONG, G_TYPE_NONE, 2,
|
||||||
|
GST_TYPE_TUNER_CHANNEL, G_TYPE_ULONG);
|
||||||
|
gst_tuner_signals[NORM_CHANGED] =
|
||||||
|
g_signal_new ("norm_changed",
|
||||||
|
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstTunerClass, signal_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
gst_tuner_marshal_VOID__OBJECT_INT, G_TYPE_NONE, 2,
|
||||||
|
GST_TYPE_TUNER_CHANNEL, G_TYPE_INT);
|
||||||
|
|
||||||
|
initialized = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* default virtual functions */
|
/* default virtual functions */
|
||||||
klass->list_channels = NULL;
|
klass->list_channels = NULL;
|
||||||
klass->set_channel = NULL;
|
klass->set_channel = NULL;
|
||||||
|
@ -188,3 +234,49 @@ gst_tuner_signal_strength (GstTuner *tuner,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_channel_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[CHANNEL_CHANGED], 0,
|
||||||
|
channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_norm_changed (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[NORM_CHANGED], 0,
|
||||||
|
norm);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_frequency_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[FREQUENCY_CHANGED], 0,
|
||||||
|
channel, frequency);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (channel),
|
||||||
|
"frequency_changed",
|
||||||
|
frequency);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gst_tuner_signal_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal)
|
||||||
|
{
|
||||||
|
g_signal_emit (G_OBJECT (tuner),
|
||||||
|
gst_tuner_signals[SIGNAL_CHANGED], 0,
|
||||||
|
channel, signal);
|
||||||
|
|
||||||
|
g_signal_emit_by_name (G_OBJECT (channel),
|
||||||
|
"signal_changed",
|
||||||
|
signal);
|
||||||
|
}
|
||||||
|
|
|
@ -31,11 +31,11 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_TUNER \
|
#define GST_TYPE_TUNER \
|
||||||
(gst_tuner_get_type ())
|
(gst_tuner_get_type ())
|
||||||
#define GST_TUNER(obj) \
|
#define GST_TUNER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TUNER, GstTuner))
|
||||||
#define GST_TUNER_CLASS(klass) \
|
#define GST_TUNER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER, GstTunerClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TUNER, GstTunerClass))
|
||||||
#define GST_IS_TUNER(obj) \
|
#define GST_IS_TUNER(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TUNER))
|
||||||
#define GST_IS_TUNER_CLASS(klass) \
|
#define GST_IS_TUNER_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER))
|
||||||
#define GST_TUNER_GET_CLASS(inst) \
|
#define GST_TUNER_GET_CLASS(inst) \
|
||||||
|
@ -66,6 +66,20 @@ typedef struct _GstTunerClass {
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
gint (* signal_strength) (GstTuner *tuner,
|
gint (* signal_strength) (GstTuner *tuner,
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (*channel_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel);
|
||||||
|
void (*norm_changed) (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm);
|
||||||
|
void (*frequency_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency);
|
||||||
|
void (*signal_changed) (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerClass;
|
} GstTunerClass;
|
||||||
|
|
||||||
GType gst_tuner_get_type (void);
|
GType gst_tuner_get_type (void);
|
||||||
|
@ -91,6 +105,18 @@ gulong gst_tuner_get_frequency (GstTuner *tuner,
|
||||||
gint gst_tuner_signal_strength (GstTuner *tuner,
|
gint gst_tuner_signal_strength (GstTuner *tuner,
|
||||||
GstTunerChannel *channel);
|
GstTunerChannel *channel);
|
||||||
|
|
||||||
|
/* trigger signals */
|
||||||
|
void gst_tuner_channel_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel);
|
||||||
|
void gst_tuner_norm_changed (GstTuner *tuner,
|
||||||
|
GstTunerNorm *norm);
|
||||||
|
void gst_tuner_frequency_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gulong frequency);
|
||||||
|
void gst_tuner_signal_changed (GstTuner *tuner,
|
||||||
|
GstTunerChannel *channel,
|
||||||
|
gint signal);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_TUNER_H__ */
|
#endif /* __GST_TUNER_H__ */
|
||||||
|
|
|
@ -64,10 +64,12 @@ typedef struct _GstTunerChannelClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*frequency_changed) (GstTunerChannel *tuner,
|
void (*frequency_changed) (GstTunerChannel *channel,
|
||||||
gulong frequency);
|
gulong frequency);
|
||||||
void (*signal_changed) (GstTunerChannel *tuner,
|
void (*signal_changed) (GstTunerChannel *channel,
|
||||||
gint signal);
|
gint signal);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerChannelClass;
|
} GstTunerChannelClass;
|
||||||
|
|
||||||
GType gst_tuner_channel_get_type (void);
|
GType gst_tuner_channel_get_type (void);
|
||||||
|
|
2
gst-libs/gst/tuner/tunermarshal.list
Normal file
2
gst-libs/gst/tuner/tunermarshal.list
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
VOID:OBJECT,ULONG
|
||||||
|
VOID:OBJECT,INT
|
|
@ -46,6 +46,8 @@ typedef struct _GstTunerNorm {
|
||||||
|
|
||||||
typedef struct _GstTunerNormClass {
|
typedef struct _GstTunerNormClass {
|
||||||
GObjectClass parent;
|
GObjectClass parent;
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstTunerNormClass;
|
} GstTunerNormClass;
|
||||||
|
|
||||||
GType gst_tuner_norm_get_type (void);
|
GType gst_tuner_norm_get_type (void);
|
||||||
|
|
|
@ -56,7 +56,7 @@ gst_x_overlay_get_type (void)
|
||||||
"GstXOverlay",
|
"GstXOverlay",
|
||||||
&gst_x_overlay_info, 0);
|
&gst_x_overlay_info, 0);
|
||||||
g_type_interface_add_prerequisite (gst_x_overlay_type,
|
g_type_interface_add_prerequisite (gst_x_overlay_type,
|
||||||
GST_TYPE_INTERFACE);
|
GST_TYPE_IMPLEMENTS_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return gst_x_overlay_type;
|
return gst_x_overlay_type;
|
||||||
|
@ -79,6 +79,8 @@ gst_x_overlay_base_init (gpointer g_class)
|
||||||
|
|
||||||
initialized = TRUE;
|
initialized = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_X_OVERLAY_CLASS (g_class)->set_xwindow_id = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,11 +31,12 @@ G_BEGIN_DECLS
|
||||||
#define GST_TYPE_X_OVERLAY \
|
#define GST_TYPE_X_OVERLAY \
|
||||||
(gst_x_overlay_get_type ())
|
(gst_x_overlay_get_type ())
|
||||||
#define GST_X_OVERLAY(obj) \
|
#define GST_X_OVERLAY(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, GstXOverlay))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_X_OVERLAY, \
|
||||||
|
GstXOverlay))
|
||||||
#define GST_X_OVERLAY_CLASS(klass) \
|
#define GST_X_OVERLAY_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_X_OVERLAY, GstXOverlayClass))
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_X_OVERLAY, GstXOverlayClass))
|
||||||
#define GST_IS_X_OVERLAY(obj) \
|
#define GST_IS_X_OVERLAY(obj) \
|
||||||
(GST_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_X_OVERLAY))
|
(GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_X_OVERLAY))
|
||||||
#define GST_IS_X_OVERLAY_CLASS(klass) \
|
#define GST_IS_X_OVERLAY_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_X_OVERLAY))
|
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_X_OVERLAY))
|
||||||
#define GST_X_OVERLAY_GET_CLASS(inst) \
|
#define GST_X_OVERLAY_GET_CLASS(inst) \
|
||||||
|
@ -53,6 +54,8 @@ typedef struct _GstXOverlayClass {
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*have_xwindow_id) (GstXOverlay *overlay,
|
void (*have_xwindow_id) (GstXOverlay *overlay,
|
||||||
XID xwindow_id);
|
XID xwindow_id);
|
||||||
|
|
||||||
|
GST_CLASS_PADDING
|
||||||
} GstXOverlayClass;
|
} GstXOverlayClass;
|
||||||
|
|
||||||
GType gst_x_overlay_get_type (void);
|
GType gst_x_overlay_get_type (void);
|
||||||
|
|
|
@ -78,8 +78,8 @@ static GstElementClass *parent_class = NULL;
|
||||||
static guint gst_v4lelement_signals[LAST_SIGNAL] = { 0 };
|
static guint gst_v4lelement_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_v4l_iface_supported (GstInterface *iface,
|
gst_v4l_iface_supported (GstImplementsInterface *iface,
|
||||||
GType iface_type)
|
GType iface_type)
|
||||||
{
|
{
|
||||||
GstV4lElement *v4lelement = GST_V4LELEMENT (iface);
|
GstV4lElement *v4lelement = GST_V4LELEMENT (iface);
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ gst_v4l_iface_supported (GstInterface *iface,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_v4l_interface_init (GstInterfaceClass *klass)
|
gst_v4l_interface_init (GstImplementsInterfaceClass *klass)
|
||||||
{
|
{
|
||||||
/* default virtual functions */
|
/* default virtual functions */
|
||||||
klass->supported = gst_v4l_iface_supported;
|
klass->supported = gst_v4l_iface_supported;
|
||||||
|
@ -333,7 +333,7 @@ gst_v4lelement_get_type (void)
|
||||||
&v4lelement_info, 0);
|
&v4lelement_info, 0);
|
||||||
|
|
||||||
g_type_add_interface_static (v4lelement_type,
|
g_type_add_interface_static (v4lelement_type,
|
||||||
GST_TYPE_INTERFACE,
|
GST_TYPE_IMPLEMENTS_INTERFACE,
|
||||||
&v4liface_info);
|
&v4liface_info);
|
||||||
g_type_add_interface_static (v4lelement_type,
|
g_type_add_interface_static (v4lelement_type,
|
||||||
GST_TYPE_TUNER,
|
GST_TYPE_TUNER,
|
||||||
|
|
|
@ -802,14 +802,14 @@ gst_ximagesink_get_bufferpool (GstPad *pad)
|
||||||
/* Interfaces stuff */
|
/* Interfaces stuff */
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_ximagesink_interface_supported (GstInterface *iface, GType type)
|
gst_ximagesink_interface_supported (GstImplementsInterface *iface, GType type)
|
||||||
{
|
{
|
||||||
g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
|
g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_ximagesink_interface_init (GstInterfaceClass *klass)
|
gst_ximagesink_interface_init (GstImplementsInterfaceClass *klass)
|
||||||
{
|
{
|
||||||
klass->supported = gst_ximagesink_interface_supported;
|
klass->supported = gst_ximagesink_interface_supported;
|
||||||
}
|
}
|
||||||
|
@ -1059,7 +1059,7 @@ gst_ximagesink_get_type (void)
|
||||||
"GstXImageSink",
|
"GstXImageSink",
|
||||||
&ximagesink_info, 0);
|
&ximagesink_info, 0);
|
||||||
|
|
||||||
g_type_add_interface_static (ximagesink_type, GST_TYPE_INTERFACE,
|
g_type_add_interface_static (ximagesink_type, GST_TYPE_IMPLEMENTS_INTERFACE,
|
||||||
&iface_info);
|
&iface_info);
|
||||||
g_type_add_interface_static (ximagesink_type, GST_TYPE_NAVIGATION,
|
g_type_add_interface_static (ximagesink_type, GST_TYPE_NAVIGATION,
|
||||||
&navigation_info);
|
&navigation_info);
|
||||||
|
|
|
@ -953,14 +953,14 @@ gst_xvimagesink_get_bufferpool (GstPad *pad)
|
||||||
/* Interfaces stuff */
|
/* Interfaces stuff */
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_xvimagesink_interface_supported (GstInterface *iface, GType type)
|
gst_xvimagesink_interface_supported (GstImplementsInterface *iface, GType type)
|
||||||
{
|
{
|
||||||
g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
|
g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_xvimagesink_interface_init (GstInterfaceClass *klass)
|
gst_xvimagesink_interface_init (GstImplementsInterfaceClass *klass)
|
||||||
{
|
{
|
||||||
klass->supported = gst_xvimagesink_interface_supported;
|
klass->supported = gst_xvimagesink_interface_supported;
|
||||||
}
|
}
|
||||||
|
@ -1203,7 +1203,7 @@ gst_xvimagesink_get_type (void)
|
||||||
"GstXvImageSink",
|
"GstXvImageSink",
|
||||||
&xvimagesink_info, 0);
|
&xvimagesink_info, 0);
|
||||||
|
|
||||||
g_type_add_interface_static (xvimagesink_type, GST_TYPE_INTERFACE,
|
g_type_add_interface_static (xvimagesink_type, GST_TYPE_IMPLEMENTS_INTERFACE,
|
||||||
&iface_info);
|
&iface_info);
|
||||||
g_type_add_interface_static (xvimagesink_type, GST_TYPE_NAVIGATION,
|
g_type_add_interface_static (xvimagesink_type, GST_TYPE_NAVIGATION,
|
||||||
&navigation_info);
|
&navigation_info);
|
||||||
|
|
Loading…
Reference in a new issue