#include #include #include #include #include static int launch_argc; static char **launch_argv; GtkWidget *window; GtkWidget *gtk_socket; typedef void (*found_handler) (GstElement *element, gint xid, void *priv); void arg_search (GstBin *bin, gchar *argname, found_handler handler, void *priv) { GList *children; gchar *ccargname; ccargname = g_strdup_printf("::%s",argname); children = gst_bin_get_list(bin); while (children) { GstElement *child; child = GST_ELEMENT (children->data); children = g_list_next (children); if (GST_IS_BIN (child)) arg_search (GST_BIN (child), argname, handler, priv); else { GtkType type; type = GTK_OBJECT_TYPE (child); while (type != GTK_TYPE_INVALID) { GtkArg *args; guint32 *flags; guint num_args,i; args = gtk_object_query_args(type,&flags,&num_args); for (i=0;i