source: trunk/third/gstreamer/gst/gststructure.h @ 21005

Revision 21005, 6.0 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21004, which included commits to RCS files with non-trunk default branches.
Line 
1/* GStreamer
2 * Copyright (C) 2003 David A. Schleef <ds@schleef.org>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20#ifndef __GST_STRUCTURE_H__
21#define __GST_STRUCTURE_H__
22
23#include <gst/gstconfig.h>
24#include <gst/gsttypes.h>
25#include <glib-object.h>
26
27G_BEGIN_DECLS
28
29#define GST_TYPE_STRUCTURE             (gst_structure_get_type ())
30#define GST_STRUCTURE(object)          ((GstStructure *)(object))
31#define GST_IS_STRUCTURE(object)       ((object) && (GST_STRUCTURE(object)->type == GST_TYPE_STRUCTURE))
32
33typedef struct _GstStructure GstStructure;
34
35typedef gboolean (*GstStructureForeachFunc) (GQuark   field_id,
36                                             GValue * value,
37                                             gpointer user_data);
38
39struct _GstStructure {
40  GType type;
41
42  GQuark name;
43
44  GArray *fields;
45
46  gpointer _gst_reserved[GST_PADDING];
47};
48
49GType                   gst_structure_get_type             (void) G_GNUC_CONST;
50
51GstStructure *          gst_structure_empty_new            (const gchar *            name);
52GstStructure *          gst_structure_id_empty_new         (GQuark                   quark);
53GstStructure *          gst_structure_new                  (const gchar *            name,
54                                                            const gchar *            firstfield,
55                                                            ...);
56GstStructure *          gst_structure_new_valist           (const gchar *            name,
57                                                            const gchar *            firstfield,
58                                                            va_list                  varargs);
59GstStructure *          gst_structure_copy                 (const GstStructure      *structure);
60void                    gst_structure_free                 (GstStructure            *structure);
61
62G_CONST_RETURN gchar *  gst_structure_get_name             (const GstStructure      *structure);
63GQuark                  gst_structure_get_name_id          (const GstStructure      *structure);
64void                    gst_structure_set_name             (GstStructure            *structure,
65                                                            const gchar             *name);
66
67void                    gst_structure_id_set_value         (GstStructure            *structure,
68                                                            GQuark                   field,
69                                                            const GValue            *value);
70void                    gst_structure_set_value            (GstStructure            *structure,
71                                                            const gchar             *fieldname,
72                                                            const GValue            *value);
73void                    gst_structure_set                  (GstStructure            *structure,
74                                                            const gchar             *fieldname,
75                                                            ...);
76void                    gst_structure_set_valist           (GstStructure            *structure,
77                                                            const gchar             *fieldname,
78                                                            va_list varargs);
79G_CONST_RETURN GValue * gst_structure_id_get_value         (const GstStructure      *structure,
80                                                            GQuark                   field);
81G_CONST_RETURN GValue * gst_structure_get_value            (const GstStructure      *structure,
82                                                            const gchar             *fieldname);
83void                    gst_structure_remove_field         (GstStructure            *structure,
84                                                            const gchar             *fieldname);
85void                    gst_structure_remove_fields        (GstStructure            *structure,
86                                                             const gchar            *fieldname,
87                                                            ...);
88void                    gst_structure_remove_fields_valist (GstStructure             *structure,
89                                                            const gchar             *fieldname,
90                                                            va_list                  varargs);
91void                    gst_structure_remove_all_fields    (GstStructure            *structure);
92
93GType                   gst_structure_get_field_type       (const GstStructure      *structure,
94                                                            const gchar             *fieldname);
95gboolean                gst_structure_foreach              (GstStructure            *structure,
96                                                            GstStructureForeachFunc  func,
97                                                            gpointer                 user_data);
98gint                    gst_structure_n_fields             (const GstStructure      *structure);
99gboolean                gst_structure_has_field            (const GstStructure      *structure,
100                                                            const gchar             *fieldname);
101gboolean                gst_structure_has_field_typed      (const GstStructure      *structure,
102                                                            const gchar             *fieldname,
103                                                            GType                    type);
104
105/* utility functions */
106gboolean                gst_structure_get_boolean          (const GstStructure      *structure,
107                                                            const gchar             *fieldname,
108                                                            gboolean                *value);
109gboolean                gst_structure_get_int              (const GstStructure      *structure,
110                                                            const gchar             *fieldname,
111                                                            gint                    *value);
112gboolean                gst_structure_get_fourcc           (const GstStructure      *structure,
113                                                            const gchar             *fieldname,
114                                                            guint32                 *value);
115gboolean                gst_structure_get_double           (const GstStructure      *structure,
116                                                            const gchar             *fieldname,
117                                                            gdouble                 *value);
118G_CONST_RETURN gchar *  gst_structure_get_string           (const GstStructure      *structure,
119                                                            const gchar             *fieldname);
120
121gchar *                 gst_structure_to_string            (const GstStructure      *structure);
122GstStructure *          gst_structure_from_string          (const gchar             *string,
123                                                            gchar                  **end);
124
125G_END_DECLS
126
127#endif
128
Note: See TracBrowser for help on using the repository browser.