}
child = child->next;
}
- if (name && value) {
- GtkType type = GTK_OBJECT_TYPE (element);
- GtkArgInfo *info;
- gchar *result;
- result = gtk_object_arg_get_info (type, name, &info);
-
- if (result) {
- g_print("gstelement: %s\n", result);
- }
- else if (info->arg_flags & GTK_ARG_WRITABLE) {
- switch (info->type) {
- case GTK_TYPE_STRING:
- gtk_object_set (GTK_OBJECT (element), name, value, NULL);
- break;
- case GTK_TYPE_INT: {
- gint i;
- sscanf (value, "%d", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_LONG: {
- glong i;
- sscanf (value, "%ld", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_ULONG: {
- gulong i;
- sscanf (value, "%lu", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_BOOL: {
- gboolean i = FALSE;
- if (!strcmp ("true", value)) i = TRUE;
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_CHAR: {
- gchar i;
- sscanf (value, "%c", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_UCHAR: {
- guchar i;
- sscanf (value, "%c", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_FLOAT: {
- gfloat i;
- sscanf (value, "%f", &i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- case GTK_TYPE_DOUBLE: {
- gdouble i;
- sscanf (value, "%g", (float *)&i);
- gtk_object_set (GTK_OBJECT (element), name, i, NULL);
- break;
- }
- default:
- if (info->type == GST_TYPE_FILENAME) {
- gtk_object_set (GTK_OBJECT (element), name, value, NULL);
- }
- break;
- }
-
- }
- }
+ gst_util_set_object_arg (GTK_OBJECT (element), name, value);
}
children = children->next;
}
#include "gstparse.h"
#include "gstpipeline.h"
#include "gstthread.h"
+#include "gstutils.h"
typedef struct _gst_parse_priv gst_parse_priv;
struct _gst_parse_priv {
argval = pos+1;
DEBUG("attempting to set argument '%s' to '%s' on element '%s'\n",
argname,argval,GST_ELEMENT_NAME(previous));
- gtk_object_set(GTK_OBJECT(previous),argname,argval,NULL);
+ //gtk_object_set(GTK_OBJECT(previous),argname,argval,NULL);
+ gst_util_set_object_arg (GTK_OBJECT(previous), argname, argval);
g_free(argname);
// element or argument, or beginning of bin or thread