2004-01-12 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ * gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init),
+ (gst_tuner_find_norm_by_name), (gst_v4l2_find_channel_by_name),
+ (gst_tuner_channel_changed), (gst_tuner_norm_changed),
+ (gst_tuner_frequency_changed), (gst_tuner_signal_changed):
+ * gst-libs/gst/tuner/tuner.h:
+ GObjects aren't const.
+ Add find_by_name functions.
+ Add checks to _changed functions.
+ * sys/v4l/gstv4ltuner.c: (gst_v4l_tuner_get_channel),
+ (gst_v4l_tuner_get_norm):
+ Fixes for above.
+
+2004-01-12 Benjamin Otte <in7y118@public.uni-hamburg.de>
+
* gst-libs/gst/video/video.h:
Fix caps template names to be understandable.
Prefix everything with GST_VIDEO.
#include "tuner.h"
#include "tunermarshal.h"
+#include <string.h>
+
enum {
NORM_CHANGED,
CHANNEL_CHANGED,
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
GST_TYPE_TUNER_CHANNEL);
- gst_tuner_signals[NORM_CHANGED] =
+ gst_tuner_signals[FREQUENCY_CHANGED] =
g_signal_new ("frequency_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] =
+ gst_tuner_signals[SIGNAL_CHANGED] =
g_signal_new ("signal_changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTunerClass, signal_changed),
}
}
-const GstTunerChannel *
+GstTunerChannel *
gst_tuner_get_channel (GstTuner *tuner)
{
GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner);
}
}
-const GstTunerNorm *
+GstTunerNorm *
gst_tuner_get_norm (GstTuner *tuner)
{
GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner);
return 0;
}
+GstTunerNorm *
+gst_tuner_find_norm_by_name (GstTuner *tuner, gchar *norm)
+{
+ GList *walk;
+
+ g_return_val_if_fail (GST_TUNER (tuner), NULL);
+ g_return_val_if_fail (norm != NULL, NULL);
+
+ walk = (GList *) gst_tuner_list_norms (tuner);
+ while (walk) {
+ if (strcmp (GST_TUNER_NORM (walk->data)->label, norm) == 0)
+ return GST_TUNER_NORM (walk->data);
+ walk = g_list_next (walk);
+ }
+ return NULL;
+}
+
+GstTunerChannel *
+gst_v4l2_find_channel_by_name (GstTuner *tuner, gchar *channel)
+{
+ GList *walk;
+
+ g_return_val_if_fail (GST_TUNER (tuner), NULL);
+ g_return_val_if_fail (channel != NULL, NULL);
+
+ walk = (GList *) gst_tuner_list_channels (tuner);
+ while (walk) {
+ if (strcmp (GST_TUNER_CHANNEL (walk->data)->label, channel) == 0)
+ return GST_TUNER_CHANNEL (walk->data);
+ walk = g_list_next (walk);
+ }
+ return NULL;
+}
+
void
gst_tuner_channel_changed (GstTuner *tuner,
GstTunerChannel *channel)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[CHANNEL_CHANGED], 0,
channel);
gst_tuner_norm_changed (GstTuner *tuner,
GstTunerNorm *norm)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_NORM (norm));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[NORM_CHANGED], 0,
norm);
GstTunerChannel *channel,
gulong frequency)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[FREQUENCY_CHANGED], 0,
channel, frequency);
GstTunerChannel *channel,
gint signal)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[SIGNAL_CHANGED], 0,
channel, signal);
const GList * (* list_channels) (GstTuner *tuner);
void (* set_channel) (GstTuner *tuner,
GstTunerChannel *channel);
- const GstTunerChannel *
+ GstTunerChannel *
(* get_channel) (GstTuner *tuner);
const GList * (* list_norms) (GstTuner *tuner);
void (* set_norm) (GstTuner *tuner,
GstTunerNorm *norm);
- const GstTunerNorm *
- (* get_norm) (GstTuner *tuner);
+ GstTunerNorm *(* get_norm) (GstTuner *tuner);
void (* set_frequency) (GstTuner *tuner,
GstTunerChannel *channel,
const GList * gst_tuner_list_channels (GstTuner *tuner);
void gst_tuner_set_channel (GstTuner *tuner,
GstTunerChannel *channel);
-const GstTunerChannel *
+GstTunerChannel *
gst_tuner_get_channel (GstTuner *tuner);
const GList * gst_tuner_list_norms (GstTuner *tuner);
void gst_tuner_set_norm (GstTuner *tuner,
GstTunerNorm *channel);
-const GstTunerNorm *
- gst_tuner_get_norm (GstTuner *tuner);
+GstTunerNorm * gst_tuner_get_norm (GstTuner *tuner);
void gst_tuner_set_frequency (GstTuner *tuner,
GstTunerChannel *channel,
gint gst_tuner_signal_strength (GstTuner *tuner,
GstTunerChannel *channel);
+/* helper functions */
+GstTunerNorm * gst_tuner_find_norm_by_name (GstTuner *tuner,
+ gchar *norm);
+GstTunerChannel * gst_tuner_find_channel_by_name(GstTuner *tuner,
+ gchar *channel);
+
/* trigger signals */
void gst_tuner_channel_changed (GstTuner *tuner,
GstTunerChannel *channel);
#include "tuner.h"
#include "tunermarshal.h"
+#include <string.h>
+
enum {
NORM_CHANGED,
CHANNEL_CHANGED,
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
GST_TYPE_TUNER_CHANNEL);
- gst_tuner_signals[NORM_CHANGED] =
+ gst_tuner_signals[FREQUENCY_CHANGED] =
g_signal_new ("frequency_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] =
+ gst_tuner_signals[SIGNAL_CHANGED] =
g_signal_new ("signal_changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTunerClass, signal_changed),
}
}
-const GstTunerChannel *
+GstTunerChannel *
gst_tuner_get_channel (GstTuner *tuner)
{
GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner);
}
}
-const GstTunerNorm *
+GstTunerNorm *
gst_tuner_get_norm (GstTuner *tuner)
{
GstTunerClass *klass = GST_TUNER_GET_CLASS (tuner);
return 0;
}
+GstTunerNorm *
+gst_tuner_find_norm_by_name (GstTuner *tuner, gchar *norm)
+{
+ GList *walk;
+
+ g_return_val_if_fail (GST_TUNER (tuner), NULL);
+ g_return_val_if_fail (norm != NULL, NULL);
+
+ walk = (GList *) gst_tuner_list_norms (tuner);
+ while (walk) {
+ if (strcmp (GST_TUNER_NORM (walk->data)->label, norm) == 0)
+ return GST_TUNER_NORM (walk->data);
+ walk = g_list_next (walk);
+ }
+ return NULL;
+}
+
+GstTunerChannel *
+gst_v4l2_find_channel_by_name (GstTuner *tuner, gchar *channel)
+{
+ GList *walk;
+
+ g_return_val_if_fail (GST_TUNER (tuner), NULL);
+ g_return_val_if_fail (channel != NULL, NULL);
+
+ walk = (GList *) gst_tuner_list_channels (tuner);
+ while (walk) {
+ if (strcmp (GST_TUNER_CHANNEL (walk->data)->label, channel) == 0)
+ return GST_TUNER_CHANNEL (walk->data);
+ walk = g_list_next (walk);
+ }
+ return NULL;
+}
+
void
gst_tuner_channel_changed (GstTuner *tuner,
GstTunerChannel *channel)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[CHANNEL_CHANGED], 0,
channel);
gst_tuner_norm_changed (GstTuner *tuner,
GstTunerNorm *norm)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_NORM (norm));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[NORM_CHANGED], 0,
norm);
GstTunerChannel *channel,
gulong frequency)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[FREQUENCY_CHANGED], 0,
channel, frequency);
GstTunerChannel *channel,
gint signal)
{
+ g_return_if_fail (GST_IS_TUNER (tuner));
+ g_return_if_fail (GST_IS_TUNER_CHANNEL (channel));
+
g_signal_emit (G_OBJECT (tuner),
gst_tuner_signals[SIGNAL_CHANGED], 0,
channel, signal);
const GList * (* list_channels) (GstTuner *tuner);
void (* set_channel) (GstTuner *tuner,
GstTunerChannel *channel);
- const GstTunerChannel *
+ GstTunerChannel *
(* get_channel) (GstTuner *tuner);
const GList * (* list_norms) (GstTuner *tuner);
void (* set_norm) (GstTuner *tuner,
GstTunerNorm *norm);
- const GstTunerNorm *
- (* get_norm) (GstTuner *tuner);
+ GstTunerNorm *(* get_norm) (GstTuner *tuner);
void (* set_frequency) (GstTuner *tuner,
GstTunerChannel *channel,
const GList * gst_tuner_list_channels (GstTuner *tuner);
void gst_tuner_set_channel (GstTuner *tuner,
GstTunerChannel *channel);
-const GstTunerChannel *
+GstTunerChannel *
gst_tuner_get_channel (GstTuner *tuner);
const GList * gst_tuner_list_norms (GstTuner *tuner);
void gst_tuner_set_norm (GstTuner *tuner,
GstTunerNorm *channel);
-const GstTunerNorm *
- gst_tuner_get_norm (GstTuner *tuner);
+GstTunerNorm * gst_tuner_get_norm (GstTuner *tuner);
void gst_tuner_set_frequency (GstTuner *tuner,
GstTunerChannel *channel,
gint gst_tuner_signal_strength (GstTuner *tuner,
GstTunerChannel *channel);
+/* helper functions */
+GstTunerNorm * gst_tuner_find_norm_by_name (GstTuner *tuner,
+ gchar *norm);
+GstTunerChannel * gst_tuner_find_channel_by_name(GstTuner *tuner,
+ gchar *channel);
+
/* trigger signals */
void gst_tuner_channel_changed (GstTuner *tuner,
GstTunerChannel *channel);
gst_v4l_tuner_list_channels (GstTuner *tuner);
static void gst_v4l_tuner_set_channel (GstTuner *tuner,
GstTunerChannel *channel);
-static const GstTunerChannel *
+static GstTunerChannel *
gst_v4l_tuner_get_channel (GstTuner *tuner);
static const GList *
gst_v4l_tuner_list_norms (GstTuner *tuner);
static void gst_v4l_tuner_set_norm (GstTuner *tuner,
GstTunerNorm *norm);
-static const GstTunerNorm *
+static GstTunerNorm *
gst_v4l_tuner_get_norm (GstTuner *tuner);
static void gst_v4l_tuner_set_frequency (GstTuner *tuner,
gst_v4l_set_chan_norm (v4lelement, v4lchannel->index, norm);
}
-static const GstTunerChannel *
+static GstTunerChannel *
gst_v4l_tuner_get_channel (GstTuner *tuner)
{
GstV4lElement *v4lelement = GST_V4LELEMENT (tuner);
for (item = v4lelement->channels; item != NULL; item = item->next) {
if (channel == GST_V4L_TUNER_CHANNEL (item->data)->index)
- return (const GstTunerChannel *) item->data;
+ return GST_TUNER_CHANNEL (item->data);
}
return NULL;
gst_v4l_set_chan_norm (v4lelement, channel, v4lnorm->index);
}
-static const GstTunerNorm *
+static GstTunerNorm *
gst_v4l_tuner_get_norm (GstTuner *tuner)
{
GstV4lElement *v4lelement = GST_V4LELEMENT (tuner);
for (item = v4lelement->norms; item != NULL; item = item->next) {
if (norm == GST_V4L_TUNER_NORM (item->data)->index)
- return (const GstTunerNorm *) item->data;
+ return GST_TUNER_NORM (item->data);
}
return NULL;