From 7a778ee4b7ec09a1f5b2185c9cceee3910dfbdf2 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Sun, 14 Mar 2004 22:34:33 +0000 Subject: gst-indent Original commit message from CVS: gst-indent --- sys/v4l2/gstv4l2element.c | 731 ++++++++++++++++++++++------------------------ 1 file changed, 355 insertions(+), 376 deletions(-) (limited to 'sys/v4l2/gstv4l2element.c') diff --git a/sys/v4l2/gstv4l2element.c b/sys/v4l2/gstv4l2element.c index eb12501d..246d4949 100644 --- a/sys/v4l2/gstv4l2element.c +++ b/sys/v4l2/gstv4l2element.c @@ -35,21 +35,23 @@ /* elementfactory details */ static GstElementDetails gst_v4l2element_details = { - "Generic video4linux2 Element", - "Generic/Video", - "Generic plugin for handling common video4linux2 calls", - "Ronald Bultje " + "Generic video4linux2 Element", + "Generic/Video", + "Generic plugin for handling common video4linux2 calls", + "Ronald Bultje " }; /* V4l2Element signals and args */ -enum { +enum +{ /* FILL ME */ SIGNAL_OPEN, SIGNAL_CLOSE, LAST_SIGNAL }; -enum { +enum +{ ARG_0, ARG_DEVICE, ARG_DEVICE_NAME, @@ -60,20 +62,16 @@ enum { }; -static void gst_v4l2element_class_init (GstV4l2ElementClass *klass); -static void gst_v4l2element_base_init (GstV4l2ElementClass *klass); -static void gst_v4l2element_init (GstV4l2Element *v4lelement); -static void gst_v4l2element_dispose (GObject *object); -static void gst_v4l2element_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gst_v4l2element_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); +static void gst_v4l2element_class_init (GstV4l2ElementClass * klass); +static void gst_v4l2element_base_init (GstV4l2ElementClass * klass); +static void gst_v4l2element_init (GstV4l2Element * v4lelement); +static void gst_v4l2element_dispose (GObject * object); +static void gst_v4l2element_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_v4l2element_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); static GstElementStateReturn - gst_v4l2element_change_state (GstElement *element); +gst_v4l2element_change_state (GstElement * element); static GstElementClass *parent_class = NULL; @@ -81,260 +79,244 @@ static guint gst_v4l2element_signals[LAST_SIGNAL] = { 0 }; static gboolean -gst_v4l2_iface_supported (GstImplementsInterface *iface, - GType iface_type) +gst_v4l2_iface_supported (GstImplementsInterface * iface, GType iface_type) { - GstV4l2Element *v4l2element = GST_V4L2ELEMENT (iface); + GstV4l2Element *v4l2element = GST_V4L2ELEMENT (iface); - g_assert (iface_type == GST_TYPE_TUNER || - iface_type == GST_TYPE_X_OVERLAY || - iface_type == GST_TYPE_COLOR_BALANCE); + g_assert (iface_type == GST_TYPE_TUNER || + iface_type == GST_TYPE_X_OVERLAY || iface_type == GST_TYPE_COLOR_BALANCE); - if (v4l2element->video_fd == -1) - return FALSE; + if (v4l2element->video_fd == -1) + return FALSE; - if (iface_type == GST_TYPE_X_OVERLAY && - !GST_V4L2_IS_OVERLAY(v4l2element)) - return FALSE; + if (iface_type == GST_TYPE_X_OVERLAY && !GST_V4L2_IS_OVERLAY (v4l2element)) + return FALSE; - return TRUE; + return TRUE; } static void -gst_v4l2_interface_init (GstImplementsInterfaceClass *klass) +gst_v4l2_interface_init (GstImplementsInterfaceClass * klass) { - /* default virtual functions */ - klass->supported = gst_v4l2_iface_supported; + /* default virtual functions */ + klass->supported = gst_v4l2_iface_supported; } static const GList * -gst_v4l2_probe_get_properties (GstPropertyProbe *probe) +gst_v4l2_probe_get_properties (GstPropertyProbe * probe) { - GObjectClass *klass = G_OBJECT_GET_CLASS (probe); - static GList *list = NULL; + GObjectClass *klass = G_OBJECT_GET_CLASS (probe); + static GList *list = NULL; - if (!list) { - list = g_list_append (NULL, - g_object_class_find_property (klass, "device")); - } + if (!list) { + list = g_list_append (NULL, g_object_class_find_property (klass, "device")); + } - return list; + return list; } static gboolean -gst_v4l2_class_probe_devices (GstV4l2ElementClass *klass, - gboolean check) +gst_v4l2_class_probe_devices (GstV4l2ElementClass * klass, gboolean check) { - static gboolean init = FALSE; - static GList *devices = NULL; - - if (!init && !check) { - gchar *dev_base[] = { "/dev/video", "/dev/v4l/video", NULL }; - gint base, n, fd; - - while (devices) { - GList *item = devices; - gchar *device = item->data; - - devices = g_list_remove (devices, item); - g_free (device); - } - - /* detect /dev entries */ - for (n = 0; n < 64; n++) { - for (base = 0; dev_base[base] != NULL; base++) { - struct stat s; - gchar *device = g_strdup_printf ("%s%d", - dev_base[base], n); - - /* does the /dev/ entry exist at all? */ - if (stat (device, &s) == 0) { - /* yes: is a device attached? */ - if ((fd = open (device, O_RDONLY)) > 0 || - errno == EBUSY) { - if (fd > 0) - close (fd); - - devices = - g_list_append (devices, - device); - break; - } - } - g_free (device); - } - } - - init = TRUE; + static gboolean init = FALSE; + static GList *devices = NULL; + + if (!init && !check) { + gchar *dev_base[] = { "/dev/video", "/dev/v4l/video", NULL }; + gint base, n, fd; + + while (devices) { + GList *item = devices; + gchar *device = item->data; + + devices = g_list_remove (devices, item); + g_free (device); + } + + /* detect /dev entries */ + for (n = 0; n < 64; n++) { + for (base = 0; dev_base[base] != NULL; base++) { + struct stat s; + gchar *device = g_strdup_printf ("%s%d", + dev_base[base], n); + + /* does the /dev/ entry exist at all? */ + if (stat (device, &s) == 0) { + /* yes: is a device attached? */ + if ((fd = open (device, O_RDONLY)) > 0 || errno == EBUSY) { + if (fd > 0) + close (fd); + + devices = g_list_append (devices, device); + break; + } } + g_free (device); + } + } - klass->devices = devices; + init = TRUE; + } - return init; + klass->devices = devices; + + return init; } static void -gst_v4l2_probe_probe_property (GstPropertyProbe *probe, - guint prop_id, - const GParamSpec *pspec) +gst_v4l2_probe_probe_property (GstPropertyProbe * probe, + guint prop_id, const GParamSpec * pspec) { - GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); - - switch (prop_id) { - case ARG_DEVICE: - gst_v4l2_class_probe_devices (klass, FALSE); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } + GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); + + switch (prop_id) { + case ARG_DEVICE: + gst_v4l2_class_probe_devices (klass, FALSE); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); + break; + } } static gboolean -gst_v4l2_probe_needs_probe (GstPropertyProbe *probe, - guint prop_id, - const GParamSpec *pspec) +gst_v4l2_probe_needs_probe (GstPropertyProbe * probe, + guint prop_id, const GParamSpec * pspec) { - GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); - gboolean ret = FALSE; - - switch (prop_id) { - case ARG_DEVICE: - ret = !gst_v4l2_class_probe_devices (klass, TRUE); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } + GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); + gboolean ret = FALSE; - return ret; + switch (prop_id) { + case ARG_DEVICE: + ret = !gst_v4l2_class_probe_devices (klass, TRUE); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); + break; + } + + return ret; } static GValueArray * -gst_v4l2_class_list_devices (GstV4l2ElementClass *klass) +gst_v4l2_class_list_devices (GstV4l2ElementClass * klass) { - GValueArray *array; - GValue value = { 0 }; - GList *item; + GValueArray *array; + GValue value = { 0 }; + GList *item; - if (!klass->devices) - return NULL; + if (!klass->devices) + return NULL; - array = g_value_array_new (g_list_length (klass->devices)); - item = klass->devices; - g_value_init (&value, G_TYPE_STRING); - while (item) { - gchar *device = item->data; + array = g_value_array_new (g_list_length (klass->devices)); + item = klass->devices; + g_value_init (&value, G_TYPE_STRING); + while (item) { + gchar *device = item->data; - g_value_set_string (&value, device); - g_value_array_append (array, &value); + g_value_set_string (&value, device); + g_value_array_append (array, &value); - item = item->next; - } - g_value_unset (&value); + item = item->next; + } + g_value_unset (&value); - return array; + return array; } static GValueArray * -gst_v4l2_probe_get_values (GstPropertyProbe *probe, - guint prop_id, - const GParamSpec *pspec) +gst_v4l2_probe_get_values (GstPropertyProbe * probe, + guint prop_id, const GParamSpec * pspec) { - GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); - GValueArray *array = NULL; - - switch (prop_id) { - case ARG_DEVICE: - array = gst_v4l2_class_list_devices (klass); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); - break; - } + GstV4l2ElementClass *klass = GST_V4L2ELEMENT_GET_CLASS (probe); + GValueArray *array = NULL; + + switch (prop_id) { + case ARG_DEVICE: + array = gst_v4l2_class_list_devices (klass); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec); + break; + } - return array; + return array; } static void -gst_v4l2_property_probe_interface_init (GstPropertyProbeInterface *iface) +gst_v4l2_property_probe_interface_init (GstPropertyProbeInterface * iface) { - iface->get_properties = gst_v4l2_probe_get_properties; - iface->probe_property = gst_v4l2_probe_probe_property; - iface->needs_probe = gst_v4l2_probe_needs_probe; - iface->get_values = gst_v4l2_probe_get_values; + iface->get_properties = gst_v4l2_probe_get_properties; + iface->probe_property = gst_v4l2_probe_probe_property; + iface->needs_probe = gst_v4l2_probe_needs_probe; + iface->get_values = gst_v4l2_probe_get_values; } GType gst_v4l2element_get_type (void) { - static GType v4l2element_type = 0; - - if (!v4l2element_type) { - static const GTypeInfo v4l2element_info = { - sizeof(GstV4l2ElementClass), - (GBaseInitFunc) gst_v4l2element_base_init, - NULL, - (GClassInitFunc) gst_v4l2element_class_init, - NULL, - NULL, - sizeof(GstV4l2Element), - 0, - (GInstanceInitFunc) gst_v4l2element_init, - NULL - }; - static const GInterfaceInfo v4l2iface_info = { - (GInterfaceInitFunc) gst_v4l2_interface_init, - NULL, - NULL, - }; - static const GInterfaceInfo v4l2_tuner_info = { - (GInterfaceInitFunc) gst_v4l2_tuner_interface_init, - NULL, - NULL, - }; - static const GInterfaceInfo v4l2_xoverlay_info = { - (GInterfaceInitFunc) gst_v4l2_xoverlay_interface_init, - NULL, - NULL, - }; - static const GInterfaceInfo v4l2_colorbalance_info = { - (GInterfaceInitFunc) gst_v4l2_color_balance_interface_init, - NULL, - NULL, - }; - static const GInterfaceInfo v4l2_propertyprobe_info = { - (GInterfaceInitFunc) gst_v4l2_property_probe_interface_init, - NULL, - NULL, - }; - - v4l2element_type = - g_type_register_static(GST_TYPE_ELEMENT, - "GstV4l2Element", &v4l2element_info, 0); - - g_type_add_interface_static (v4l2element_type, - GST_TYPE_IMPLEMENTS_INTERFACE, - &v4l2iface_info); - g_type_add_interface_static (v4l2element_type, - GST_TYPE_TUNER, - &v4l2_tuner_info); - g_type_add_interface_static (v4l2element_type, - GST_TYPE_X_OVERLAY, - &v4l2_xoverlay_info); - g_type_add_interface_static (v4l2element_type, - GST_TYPE_COLOR_BALANCE, - &v4l2_colorbalance_info); - g_type_add_interface_static (v4l2element_type, - GST_TYPE_PROPERTY_PROBE, - &v4l2_propertyprobe_info); - } + static GType v4l2element_type = 0; + + if (!v4l2element_type) { + static const GTypeInfo v4l2element_info = { + sizeof (GstV4l2ElementClass), + (GBaseInitFunc) gst_v4l2element_base_init, + NULL, + (GClassInitFunc) gst_v4l2element_class_init, + NULL, + NULL, + sizeof (GstV4l2Element), + 0, + (GInstanceInitFunc) gst_v4l2element_init, + NULL + }; + static const GInterfaceInfo v4l2iface_info = { + (GInterfaceInitFunc) gst_v4l2_interface_init, + NULL, + NULL, + }; + static const GInterfaceInfo v4l2_tuner_info = { + (GInterfaceInitFunc) gst_v4l2_tuner_interface_init, + NULL, + NULL, + }; + static const GInterfaceInfo v4l2_xoverlay_info = { + (GInterfaceInitFunc) gst_v4l2_xoverlay_interface_init, + NULL, + NULL, + }; + static const GInterfaceInfo v4l2_colorbalance_info = { + (GInterfaceInitFunc) gst_v4l2_color_balance_interface_init, + NULL, + NULL, + }; + static const GInterfaceInfo v4l2_propertyprobe_info = { + (GInterfaceInitFunc) gst_v4l2_property_probe_interface_init, + NULL, + NULL, + }; + + v4l2element_type = + g_type_register_static (GST_TYPE_ELEMENT, + "GstV4l2Element", &v4l2element_info, 0); + + g_type_add_interface_static (v4l2element_type, + GST_TYPE_IMPLEMENTS_INTERFACE, &v4l2iface_info); + g_type_add_interface_static (v4l2element_type, + GST_TYPE_TUNER, &v4l2_tuner_info); + g_type_add_interface_static (v4l2element_type, + GST_TYPE_X_OVERLAY, &v4l2_xoverlay_info); + g_type_add_interface_static (v4l2element_type, + GST_TYPE_COLOR_BALANCE, &v4l2_colorbalance_info); + g_type_add_interface_static (v4l2element_type, + GST_TYPE_PROPERTY_PROBE, &v4l2_propertyprobe_info); + } - return v4l2element_type; + return v4l2element_type; } @@ -342,80 +324,78 @@ gst_v4l2element_get_type (void) GType gst_v4l2_device_get_type (void) { - static GType v4l2_device_type = 0; - - if (v4l2_device_type == 0) { - static const GFlagsValue values[] = { - { V4L2_CAP_VIDEO_CAPTURE, "CAPTURE", - "Device can capture" }, - { V4L2_CAP_VIDEO_OUTPUT, "PLAYBACK", - "Device can playback" }, - { V4L2_CAP_VIDEO_OVERLAY, "OVERLAY", - "Device can do overlay" }, - { V4L2_CAP_TUNER, "TUNER", - "Device has a tuner" }, - { V4L2_CAP_AUDIO, "AUDIO", - "Device handles audio" }, - { 0, NULL, NULL } - }; - - v4l2_device_type = - g_flags_register_static ("GstV4l2DeviceTypeFlags", - values); - } + static GType v4l2_device_type = 0; + + if (v4l2_device_type == 0) { + static const GFlagsValue values[] = { + {V4L2_CAP_VIDEO_CAPTURE, "CAPTURE", + "Device can capture"}, + {V4L2_CAP_VIDEO_OUTPUT, "PLAYBACK", + "Device can playback"}, + {V4L2_CAP_VIDEO_OVERLAY, "OVERLAY", + "Device can do overlay"}, + {V4L2_CAP_TUNER, "TUNER", + "Device has a tuner"}, + {V4L2_CAP_AUDIO, "AUDIO", + "Device handles audio"}, + {0, NULL, NULL} + }; + + v4l2_device_type = + g_flags_register_static ("GstV4l2DeviceTypeFlags", values); + } - return v4l2_device_type; + return v4l2_device_type; } static void -gst_v4l2element_base_init (GstV4l2ElementClass *klass) +gst_v4l2element_base_init (GstV4l2ElementClass * klass) { - GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); - klass->devices = NULL; + klass->devices = NULL; - gst_element_class_set_details (gstelement_class, - &gst_v4l2element_details); + gst_element_class_set_details (gstelement_class, &gst_v4l2element_details); } static void -gst_v4l2element_class_init (GstV4l2ElementClass *klass) +gst_v4l2element_class_init (GstV4l2ElementClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); parent_class = g_type_class_peek_parent (klass); - g_object_class_install_property(gobject_class, ARG_DEVICE, - g_param_spec_string("device", "Device", "Device location", - NULL, G_PARAM_READWRITE)); - g_object_class_install_property(gobject_class, ARG_DEVICE_NAME, - g_param_spec_string("device_name", "Device name", - "Name of the device", NULL, G_PARAM_READABLE)); - g_object_class_install_property(gobject_class, ARG_FLAGS, - g_param_spec_flags("flags", "Flags", "Device type flags", - GST_TYPE_V4L2_DEVICE_FLAGS, 0, G_PARAM_READABLE)); - g_object_class_install_property(gobject_class, ARG_NORM, - g_param_spec_string("norm", "norm", - "Norm to use", NULL, G_PARAM_READWRITE)); - g_object_class_install_property(gobject_class, ARG_CHANNEL, - g_param_spec_string("channel", "channel", - "input/output to switch to", NULL, G_PARAM_READWRITE)); - g_object_class_install_property(gobject_class, ARG_FREQUENCY, + g_object_class_install_property (gobject_class, ARG_DEVICE, + g_param_spec_string ("device", "Device", "Device location", + NULL, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, ARG_DEVICE_NAME, + g_param_spec_string ("device_name", "Device name", + "Name of the device", NULL, G_PARAM_READABLE)); + g_object_class_install_property (gobject_class, ARG_FLAGS, + g_param_spec_flags ("flags", "Flags", "Device type flags", + GST_TYPE_V4L2_DEVICE_FLAGS, 0, G_PARAM_READABLE)); + g_object_class_install_property (gobject_class, ARG_NORM, + g_param_spec_string ("norm", "norm", + "Norm to use", NULL, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, ARG_CHANNEL, + g_param_spec_string ("channel", "channel", + "input/output to switch to", NULL, G_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, ARG_FREQUENCY, g_param_spec_ulong ("frequency", "frequency", "frequency to tune to", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); /* signals */ gst_v4l2element_signals[SIGNAL_OPEN] = - g_signal_new("open", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GstV4l2ElementClass, open), - NULL, NULL, g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, G_TYPE_STRING); + g_signal_new ("open", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GstV4l2ElementClass, open), + NULL, NULL, g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, G_TYPE_STRING); gst_v4l2element_signals[SIGNAL_CLOSE] = - g_signal_new("close", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GstV4l2ElementClass, close), - NULL, NULL, g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, G_TYPE_STRING); + g_signal_new ("close", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GstV4l2ElementClass, close), + NULL, NULL, g_cclosure_marshal_VOID__STRING, + G_TYPE_NONE, 1, G_TYPE_STRING); gobject_class->set_property = gst_v4l2element_set_property; gobject_class->get_property = gst_v4l2element_get_property; @@ -426,29 +406,29 @@ gst_v4l2element_class_init (GstV4l2ElementClass *klass) static void -gst_v4l2element_init (GstV4l2Element *v4l2element) +gst_v4l2element_init (GstV4l2Element * v4l2element) { - /* some default values */ - v4l2element->video_fd = -1; - v4l2element->buffer = NULL; - v4l2element->device = g_strdup("/dev/video"); - v4l2element->display = g_strdup(g_getenv("DISPLAY")); + /* some default values */ + v4l2element->video_fd = -1; + v4l2element->buffer = NULL; + v4l2element->device = g_strdup ("/dev/video"); + v4l2element->display = g_strdup (g_getenv ("DISPLAY")); - v4l2element->channels = NULL; - v4l2element->norms = NULL; - v4l2element->colors = NULL; + v4l2element->channels = NULL; + v4l2element->norms = NULL; + v4l2element->colors = NULL; - v4l2element->overlay = gst_v4l2_xoverlay_new(v4l2element); + v4l2element->overlay = gst_v4l2_xoverlay_new (v4l2element); } static void -gst_v4l2element_dispose (GObject *object) +gst_v4l2element_dispose (GObject * object) { - GstV4l2Element *v4l2element = GST_V4L2ELEMENT(object); + GstV4l2Element *v4l2element = GST_V4L2ELEMENT (object); if (v4l2element->overlay) { - gst_v4l2_xoverlay_free(v4l2element); + gst_v4l2_xoverlay_free (v4l2element); } if (v4l2element->display) { @@ -461,37 +441,36 @@ gst_v4l2element_dispose (GObject *object) v4l2element->norm = NULL; g_free (v4l2element->channel); v4l2element->channel = NULL; - + if (((GObjectClass *) parent_class)->dispose) - ((GObjectClass *) parent_class)->dispose(object); + ((GObjectClass *) parent_class)->dispose (object); } static void -gst_v4l2element_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) +gst_v4l2element_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) { GstV4l2Element *v4l2element; GstTuner *tuner; - + /* it's not null if we got it, but it might not be ours */ g_return_if_fail (GST_IS_V4L2ELEMENT (object)); v4l2element = GST_V4L2ELEMENT (object); /* stupid GstInterface */ tuner = (GstTuner *) object; - + switch (prop_id) { case ARG_DEVICE: - if (!GST_V4L2_IS_OPEN(v4l2element)) { + if (!GST_V4L2_IS_OPEN (v4l2element)) { if (v4l2element->device) - g_free(v4l2element->device); - v4l2element->device = g_value_dup_string(value); + g_free (v4l2element->device); + v4l2element->device = g_value_dup_string (value); } break; case ARG_NORM: - if (GST_V4L2_IS_OPEN(v4l2element)) { + if (GST_V4L2_IS_OPEN (v4l2element)) { GstTunerNorm *norm = gst_tuner_get_norm (tuner); + if (norm) { gst_tuner_set_norm (tuner, norm); } @@ -502,8 +481,9 @@ gst_v4l2element_set_property (GObject *object, } break; case ARG_CHANNEL: - if (GST_V4L2_IS_OPEN(v4l2element)) { + if (GST_V4L2_IS_OPEN (v4l2element)) { GstTunerChannel *channel = gst_tuner_get_channel (tuner); + if (channel) { gst_tuner_set_channel (tuner, channel); } @@ -514,9 +494,11 @@ gst_v4l2element_set_property (GObject *object, } break; case ARG_FREQUENCY: - if (GST_V4L2_IS_OPEN(v4l2element)) { + if (GST_V4L2_IS_OPEN (v4l2element)) { GstTunerChannel *channel; - if (!v4l2element->channel) return; + + if (!v4l2element->channel) + return; channel = gst_tuner_get_channel (tuner); g_assert (channel); gst_tuner_set_frequency (tuner, channel, g_value_get_ulong (value)); @@ -533,94 +515,91 @@ gst_v4l2element_set_property (GObject *object, static void -gst_v4l2element_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +gst_v4l2element_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) { - GstV4l2Element *v4l2element; - - /* it's not null if we got it, but it might not be ours */ - g_return_if_fail(GST_IS_V4L2ELEMENT(object)); - v4l2element = GST_V4L2ELEMENT(object); - - switch (prop_id) { - case ARG_DEVICE: - g_value_set_string(value, v4l2element->device); - break; - case ARG_DEVICE_NAME: { - gchar *new = NULL; - if (GST_V4L2_IS_OPEN(v4l2element)) - new = v4l2element->vcap.card; - g_value_set_string(value, new); - break; - } - case ARG_FLAGS: { - guint flags = 0; - if (GST_V4L2_IS_OPEN(v4l2element)) { - flags |= v4l2element->vcap.capabilities & - 30007; - } - g_value_set_flags(value, flags); - break; - } - case ARG_NORM: - g_value_set_string (value, v4l2element->norm); - break; - case ARG_CHANNEL: - g_value_set_string (value, v4l2element->channel); - break; - case ARG_FREQUENCY: - g_value_set_ulong (value, v4l2element->frequency); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } + GstV4l2Element *v4l2element; + + /* it's not null if we got it, but it might not be ours */ + g_return_if_fail (GST_IS_V4L2ELEMENT (object)); + v4l2element = GST_V4L2ELEMENT (object); + + switch (prop_id) { + case ARG_DEVICE: + g_value_set_string (value, v4l2element->device); + break; + case ARG_DEVICE_NAME:{ + gchar *new = NULL; + + if (GST_V4L2_IS_OPEN (v4l2element)) + new = v4l2element->vcap.card; + g_value_set_string (value, new); + break; + } + case ARG_FLAGS:{ + guint flags = 0; + + if (GST_V4L2_IS_OPEN (v4l2element)) { + flags |= v4l2element->vcap.capabilities & 30007; + } + g_value_set_flags (value, flags); + break; + } + case ARG_NORM: + g_value_set_string (value, v4l2element->norm); + break; + case ARG_CHANNEL: + g_value_set_string (value, v4l2element->channel); + break; + case ARG_FREQUENCY: + g_value_set_ulong (value, v4l2element->frequency); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static GstElementStateReturn -gst_v4l2element_change_state (GstElement *element) +gst_v4l2element_change_state (GstElement * element) { - GstV4l2Element *v4l2element; - - g_return_val_if_fail(GST_IS_V4L2ELEMENT(element), GST_STATE_FAILURE); - - v4l2element = GST_V4L2ELEMENT(element); - - /* if going down into NULL state, close the device if it's open - * if going to READY, open the device (and set some options) - */ - switch (GST_STATE_TRANSITION(element)) { - case GST_STATE_NULL_TO_READY: - gst_v4l2_set_display(v4l2element); - - if (!gst_v4l2_open(v4l2element)) - return GST_STATE_FAILURE; - - gst_v4l2_xoverlay_open(v4l2element); - - /* emit a signal! whoopie! */ - g_signal_emit(G_OBJECT(v4l2element), - gst_v4l2element_signals[SIGNAL_OPEN], 0, - v4l2element->device); - break; - case GST_STATE_READY_TO_NULL: - gst_v4l2_xoverlay_close(v4l2element); - - if (!gst_v4l2_close(v4l2element)) - return GST_STATE_FAILURE; - - /* emit yet another signal! wheehee! */ - g_signal_emit(G_OBJECT(v4l2element), - gst_v4l2element_signals[SIGNAL_CLOSE], 0, - v4l2element->device); - break; - } + GstV4l2Element *v4l2element; + + g_return_val_if_fail (GST_IS_V4L2ELEMENT (element), GST_STATE_FAILURE); + + v4l2element = GST_V4L2ELEMENT (element); + + /* if going down into NULL state, close the device if it's open + * if going to READY, open the device (and set some options) + */ + switch (GST_STATE_TRANSITION (element)) { + case GST_STATE_NULL_TO_READY: + gst_v4l2_set_display (v4l2element); + + if (!gst_v4l2_open (v4l2element)) + return GST_STATE_FAILURE; + + gst_v4l2_xoverlay_open (v4l2element); + + /* emit a signal! whoopie! */ + g_signal_emit (G_OBJECT (v4l2element), + gst_v4l2element_signals[SIGNAL_OPEN], 0, v4l2element->device); + break; + case GST_STATE_READY_TO_NULL: + gst_v4l2_xoverlay_close (v4l2element); + + if (!gst_v4l2_close (v4l2element)) + return GST_STATE_FAILURE; + + /* emit yet another signal! wheehee! */ + g_signal_emit (G_OBJECT (v4l2element), + gst_v4l2element_signals[SIGNAL_CLOSE], 0, v4l2element->device); + break; + } - if (GST_ELEMENT_CLASS(parent_class)->change_state) - return GST_ELEMENT_CLASS(parent_class)->change_state(element); + if (GST_ELEMENT_CLASS (parent_class)->change_state) + return GST_ELEMENT_CLASS (parent_class)->change_state (element); - return GST_STATE_SUCCESS; + return GST_STATE_SUCCESS; } -- cgit v1.2.1