From 011c7b3a964351ed774e3ea37208f2836c0bcff1 Mon Sep 17 00:00:00 2001 From: David Schleef Date: Wed, 10 Dec 2003 22:28:01 +0000 Subject: [PATCH] Change structure_field_foreach() look more like glib functions. Original commit message from CVS: Change structure_field_foreach() look more like glib functions. --- gst/gststructure.c | 9 +-------- gst/gststructure.h | 5 +++++ gst/gsttag.c | 15 ++++++++++----- gst/gsttaglist.c | 15 ++++++++++----- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/gst/gststructure.c b/gst/gststructure.c index 0af92a768d..ce1be5bfdb 100644 --- a/gst/gststructure.c +++ b/gst/gststructure.c @@ -28,13 +28,6 @@ #include #include -//#define G_TYPE_FOURCC G_TYPE_FLOAT - -struct _GstStructureField { - GQuark name; - GValue value; -}; - static GType _gst_structure_type; static void _gst_structure_transform_to_string(const GValue *src_value, @@ -660,7 +653,7 @@ gst_structure_field_foreach (GstStructure *structure, for(i=0;ifields->len;i++){ field = GST_STRUCTURE_FIELD(structure, i); - ret = func (structure, field->name, &field->value, user_data); + ret = func (field->name, &field->value, user_data); if (!ret) return; } } diff --git a/gst/gststructure.h b/gst/gststructure.h index c3481d0f72..566ccef35c 100644 --- a/gst/gststructure.h +++ b/gst/gststructure.h @@ -31,6 +31,11 @@ typedef struct _GstStructureField GstStructureField; typedef gboolean (*GstStructureForeachFunc) (GQuark field_id, GValue *value, gpointer user_data); +struct _GstStructureField { + GQuark name; + GValue value; +}; + struct _GstStructure { GType type; int len; diff --git a/gst/gsttag.c b/gst/gsttag.c index 558939b039..fbf37d75d5 100644 --- a/gst/gsttag.c +++ b/gst/gsttag.c @@ -438,12 +438,14 @@ gst_tag_list_add_value_internal (GstStructure *list, GstTagMergeMode mode, GQuar } } } -static void -gst_tag_list_copy_foreach (GstStructure *structure, GQuark tag, GValue *value, gpointer user_data) +static int +gst_tag_list_copy_foreach (GQuark tag, GValue *value, gpointer user_data) { GstTagCopyData *copy = (GstTagCopyData *) user_data; gst_tag_list_add_value_internal (copy->list, copy->mode, tag, value); + + return TRUE; } /** * gst_tag_list_insert: @@ -631,14 +633,16 @@ gst_tag_list_remove_tag (GstTagList *list, const gchar *tag) } typedef struct { GstTagForeachFunc func; + GstTagList * tag_list; gpointer data; } TagForeachData; -static void -structure_foreach_wrapper (GstStructure *structure, GQuark field_id, +static int +structure_foreach_wrapper (GQuark field_id, GValue *value, gpointer user_data) { TagForeachData *data = (TagForeachData *) user_data; - data->func (GST_TAG_LIST (structure), g_quark_to_string (field_id), data->data); + data->func (data->tag_list, g_quark_to_string (field_id), data->data); + return TRUE; } /** * gst_tag_list_foreach: @@ -658,6 +662,7 @@ gst_tag_list_foreach (GstTagList *list, GstTagForeachFunc func, gpointer user_da g_return_if_fail (func != NULL); data.func = func; + data.tag_list = list; data.data = user_data; gst_structure_field_foreach ((GstStructure *) list, structure_foreach_wrapper, &data); } diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c index 558939b039..fbf37d75d5 100644 --- a/gst/gsttaglist.c +++ b/gst/gsttaglist.c @@ -438,12 +438,14 @@ gst_tag_list_add_value_internal (GstStructure *list, GstTagMergeMode mode, GQuar } } } -static void -gst_tag_list_copy_foreach (GstStructure *structure, GQuark tag, GValue *value, gpointer user_data) +static int +gst_tag_list_copy_foreach (GQuark tag, GValue *value, gpointer user_data) { GstTagCopyData *copy = (GstTagCopyData *) user_data; gst_tag_list_add_value_internal (copy->list, copy->mode, tag, value); + + return TRUE; } /** * gst_tag_list_insert: @@ -631,14 +633,16 @@ gst_tag_list_remove_tag (GstTagList *list, const gchar *tag) } typedef struct { GstTagForeachFunc func; + GstTagList * tag_list; gpointer data; } TagForeachData; -static void -structure_foreach_wrapper (GstStructure *structure, GQuark field_id, +static int +structure_foreach_wrapper (GQuark field_id, GValue *value, gpointer user_data) { TagForeachData *data = (TagForeachData *) user_data; - data->func (GST_TAG_LIST (structure), g_quark_to_string (field_id), data->data); + data->func (data->tag_list, g_quark_to_string (field_id), data->data); + return TRUE; } /** * gst_tag_list_foreach: @@ -658,6 +662,7 @@ gst_tag_list_foreach (GstTagList *list, GstTagForeachFunc func, gpointer user_da g_return_if_fail (func != NULL); data.func = func; + data.tag_list = list; data.data = user_data; gst_structure_field_foreach ((GstStructure *) list, structure_foreach_wrapper, &data); }