mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-29 05:01:23 +00:00
gst/: Re-add gst_element_class_install_std_props, move to gstutils.h.
Original commit message from CVS: * gst/gstelement.h: * gst/gstutils.c: (gst_element_populate_std_props), (gst_element_class_install_std_props): * gst/gstutils.h: Re-add gst_element_class_install_std_props, move to gstutils.h.
This commit is contained in:
parent
a476269842
commit
6f40edb7e1
4 changed files with 131 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2005-02-01 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
|
* gst/gstelement.h:
|
||||||
|
* gst/gstutils.c: (gst_element_populate_std_props),
|
||||||
|
(gst_element_class_install_std_props):
|
||||||
|
* gst/gstutils.h:
|
||||||
|
Re-add gst_element_class_install_std_props, move to gstutils.h.
|
||||||
|
|
||||||
2005-01-26 Wim Taymans <wim@fluendo.com>
|
2005-01-26 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* gst/elements/gstidentity.c: (gst_identity_init),
|
* gst/elements/gstidentity.c: (gst_identity_init),
|
||||||
|
|
|
@ -273,8 +273,6 @@ struct _GstElementClass
|
||||||
/* class stuff */
|
/* class stuff */
|
||||||
void gst_element_class_add_pad_template (GstElementClass * klass,
|
void gst_element_class_add_pad_template (GstElementClass * klass,
|
||||||
GstPadTemplate * templ);
|
GstPadTemplate * templ);
|
||||||
void gst_element_class_install_std_props (GstElementClass * klass,
|
|
||||||
const gchar * first_name, ...);
|
|
||||||
void gst_element_class_set_details (GstElementClass * klass,
|
void gst_element_class_set_details (GstElementClass * klass,
|
||||||
const GstElementDetails * details);
|
const GstElementDetails * details);
|
||||||
GstPadTemplate *gst_element_class_get_pad_template (GstElementClass *
|
GstPadTemplate *gst_element_class_get_pad_template (GstElementClass *
|
||||||
|
|
119
gst/gstutils.c
119
gst/gstutils.c
|
@ -1416,3 +1416,122 @@ gst_bin_remove_many (GstBin * bin, GstElement * element_1, ...)
|
||||||
|
|
||||||
va_end (args);
|
va_end (args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_element_populate_std_props (GObjectClass * klass, const gchar * prop_name,
|
||||||
|
guint arg_id, GParamFlags flags)
|
||||||
|
{
|
||||||
|
GQuark prop_id = g_quark_from_string (prop_name);
|
||||||
|
GParamSpec *pspec;
|
||||||
|
|
||||||
|
static GQuark fd_id = 0;
|
||||||
|
static GQuark blocksize_id;
|
||||||
|
static GQuark bytesperread_id;
|
||||||
|
static GQuark dump_id;
|
||||||
|
static GQuark filesize_id;
|
||||||
|
static GQuark mmapsize_id;
|
||||||
|
static GQuark location_id;
|
||||||
|
static GQuark offset_id;
|
||||||
|
static GQuark silent_id;
|
||||||
|
static GQuark touch_id;
|
||||||
|
|
||||||
|
if (!fd_id) {
|
||||||
|
fd_id = g_quark_from_static_string ("fd");
|
||||||
|
blocksize_id = g_quark_from_static_string ("blocksize");
|
||||||
|
bytesperread_id = g_quark_from_static_string ("bytesperread");
|
||||||
|
dump_id = g_quark_from_static_string ("dump");
|
||||||
|
filesize_id = g_quark_from_static_string ("filesize");
|
||||||
|
mmapsize_id = g_quark_from_static_string ("mmapsize");
|
||||||
|
location_id = g_quark_from_static_string ("location");
|
||||||
|
offset_id = g_quark_from_static_string ("offset");
|
||||||
|
silent_id = g_quark_from_static_string ("silent");
|
||||||
|
touch_id = g_quark_from_static_string ("touch");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prop_id == fd_id) {
|
||||||
|
pspec = g_param_spec_int ("fd", "File-descriptor",
|
||||||
|
"File-descriptor for the file being read", 0, G_MAXINT, 0, flags);
|
||||||
|
} else if (prop_id == blocksize_id) {
|
||||||
|
pspec = g_param_spec_ulong ("blocksize", "Block Size",
|
||||||
|
"Block size to read per buffer", 0, G_MAXULONG, 4096, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == bytesperread_id) {
|
||||||
|
pspec = g_param_spec_int ("bytesperread", "Bytes per read",
|
||||||
|
"Number of bytes to read per buffer", G_MININT, G_MAXINT, 0, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == dump_id) {
|
||||||
|
pspec = g_param_spec_boolean ("dump", "Dump",
|
||||||
|
"Dump bytes to stdout", FALSE, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == filesize_id) {
|
||||||
|
pspec = g_param_spec_int64 ("filesize", "File Size",
|
||||||
|
"Size of the file being read", 0, G_MAXINT64, 0, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == mmapsize_id) {
|
||||||
|
pspec = g_param_spec_ulong ("mmapsize", "mmap() Block Size",
|
||||||
|
"Size in bytes of mmap()d regions", 0, G_MAXULONG, 4 * 1048576, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == location_id) {
|
||||||
|
pspec = g_param_spec_string ("location", "File Location",
|
||||||
|
"Location of the file to read", NULL, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == offset_id) {
|
||||||
|
pspec = g_param_spec_int64 ("offset", "File Offset",
|
||||||
|
"Byte offset of current read pointer", 0, G_MAXINT64, 0, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == silent_id) {
|
||||||
|
pspec = g_param_spec_boolean ("silent", "Silent", "Don't produce events",
|
||||||
|
FALSE, flags);
|
||||||
|
|
||||||
|
} else if (prop_id == touch_id) {
|
||||||
|
pspec = g_param_spec_boolean ("touch", "Touch read data",
|
||||||
|
"Touch data to force disk read before " "push ()", TRUE, flags);
|
||||||
|
} else {
|
||||||
|
g_warning ("Unknown - 'standard' property '%s' id %d from klass %s",
|
||||||
|
prop_name, arg_id, g_type_name (G_OBJECT_CLASS_TYPE (klass)));
|
||||||
|
pspec = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pspec) {
|
||||||
|
g_object_class_install_property (klass, arg_id, pspec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_element_class_install_std_props:
|
||||||
|
* @klass: the #GstElementClass to add the properties to.
|
||||||
|
* @first_name: the name of the first property.
|
||||||
|
* in a NULL terminated
|
||||||
|
* @...: the id and flags of the first property, followed by
|
||||||
|
* further 'name', 'id', 'flags' triplets and terminated by NULL.
|
||||||
|
*
|
||||||
|
* Adds a list of standardized properties with types to the @klass.
|
||||||
|
* the id is for the property switch in your get_prop method, and
|
||||||
|
* the flags determine readability / writeability.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
gst_element_class_install_std_props (GstElementClass * klass,
|
||||||
|
const gchar * first_name, ...)
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
g_return_if_fail (GST_IS_ELEMENT_CLASS (klass));
|
||||||
|
|
||||||
|
va_start (args, first_name);
|
||||||
|
|
||||||
|
name = first_name;
|
||||||
|
|
||||||
|
while (name) {
|
||||||
|
int arg_id = va_arg (args, int);
|
||||||
|
int flags = va_arg (args, int);
|
||||||
|
|
||||||
|
gst_element_populate_std_props ((GObjectClass *) klass, name, arg_id,
|
||||||
|
flags);
|
||||||
|
|
||||||
|
name = va_arg (args, char *);
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
|
|
@ -257,6 +257,10 @@ GstPadLinkReturn gst_element_link_pads_filtered (GstElement *src, const
|
||||||
void gst_element_unlink_pads (GstElement *src, const gchar *srcpadname,
|
void gst_element_unlink_pads (GstElement *src, const gchar *srcpadname,
|
||||||
GstElement *dest, const gchar *destpadname);
|
GstElement *dest, const gchar *destpadname);
|
||||||
|
|
||||||
|
/* element class functions */
|
||||||
|
void gst_element_class_install_std_props (GstElementClass * klass,
|
||||||
|
const gchar * first_name, ...);
|
||||||
|
|
||||||
/* pad functions */
|
/* pad functions */
|
||||||
gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
|
gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
|
||||||
gboolean gst_pad_can_link_filtered (GstPad *srcpad, GstPad *sinkpad, const GstCaps *filtercaps);
|
gboolean gst_pad_can_link_filtered (GstPad *srcpad, GstPad *sinkpad, const GstCaps *filtercaps);
|
||||||
|
|
Loading…
Reference in a new issue