1 /* GStreamer 2 * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de> 3 * 4 * gsttagsetter.h: Interfaces for tagging 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public 17 * License along with this library; if not, write to the 18 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 * Boston, MA 02110-1301, USA. 20 */ 21 22 #ifndef __GST_TAG_SETTER_H__ 23 #define __GST_TAG_SETTER_H__ 24 25 #include <gst/gst.h> 26 27 G_BEGIN_DECLS 28 29 #define GST_TYPE_TAG_SETTER (gst_tag_setter_get_type ()) 30 #define GST_TAG_SETTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_SETTER, GstTagSetter)) 31 #define GST_IS_TAG_SETTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_SETTER)) 32 #define GST_TAG_SETTER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TAG_SETTER, GstTagSetterInterface)) 33 34 /** 35 * GstTagSetter: 36 * 37 * Opaque #GstTagSetter data structure. 38 */ 39 typedef struct _GstTagSetter GstTagSetter; /* Dummy typedef */ 40 typedef struct _GstTagSetterInterface GstTagSetterInterface; 41 42 /** 43 * GstTagSetterInterface: 44 * @g_iface: parent interface type. 45 * 46 * #GstTagSetterInterface interface. 47 */ 48 /* use an empty interface here to allow detection of elements using user-set 49 tags */ 50 struct _GstTagSetterInterface 51 { 52 GTypeInterface g_iface; 53 54 /* signals */ 55 56 /* virtual table */ 57 }; 58 59 GST_API 60 GType gst_tag_setter_get_type (void); 61 62 GST_API 63 void gst_tag_setter_reset_tags (GstTagSetter * setter); 64 65 GST_API 66 void gst_tag_setter_merge_tags (GstTagSetter * setter, 67 const GstTagList * list, 68 GstTagMergeMode mode); 69 GST_API 70 void gst_tag_setter_add_tags (GstTagSetter * setter, 71 GstTagMergeMode mode, 72 const gchar * tag, 73 ...) G_GNUC_NULL_TERMINATED; 74 GST_API 75 void gst_tag_setter_add_tag_values (GstTagSetter * setter, 76 GstTagMergeMode mode, 77 const gchar * tag, 78 ...) G_GNUC_NULL_TERMINATED; 79 GST_API 80 void gst_tag_setter_add_tag_valist (GstTagSetter * setter, 81 GstTagMergeMode mode, 82 const gchar * tag, 83 va_list var_args); 84 GST_API 85 void gst_tag_setter_add_tag_valist_values(GstTagSetter * setter, 86 GstTagMergeMode mode, 87 const gchar * tag, 88 va_list var_args); 89 GST_API 90 void gst_tag_setter_add_tag_value (GstTagSetter * setter, 91 GstTagMergeMode mode, 92 const gchar * tag, 93 const GValue * value); 94 GST_API 95 const GstTagList * 96 gst_tag_setter_get_tag_list (GstTagSetter * setter); 97 98 GST_API 99 void gst_tag_setter_set_tag_merge_mode (GstTagSetter * setter, 100 GstTagMergeMode mode); 101 GST_API 102 GstTagMergeMode gst_tag_setter_get_tag_merge_mode (GstTagSetter * setter); 103 104 G_END_DECLS 105 106 #endif /* __GST_TAG_SETTER_H__ */ 107