/* * Copyright (C) 2005 by the gtk2-perl team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * $Id: GstElementFactory.xs,v 1.1 2005/12/03 00:28:13 kaffeetisch Exp $ */ #include "gst2perl.h" MODULE = GStreamer::ElementFactory PACKAGE = GStreamer::ElementFactory PREFIX = gst_element_factory_ # FIXME? # gboolean gst_element_register (GstPlugin *plugin, const gchar *name, guint rank, GType type); # GstElementFactory * gst_element_factory_find (const gchar *name); GstElementFactory_ornull * gst_element_factory_find (class, name) const gchar *name C_ARGS: name # GType gst_element_factory_get_element_type (GstElementFactory *factory); const char * gst_element_factory_get_element_type (GstElementFactory *factory) CODE: RETVAL = gperl_package_from_type (gst_element_factory_get_element_type (factory)); OUTPUT: RETVAL const gchar * gst_element_factory_get_longname (GstElementFactory *factory); const gchar * gst_element_factory_get_klass (GstElementFactory *factory); const gchar * gst_element_factory_get_description (GstElementFactory *factory); const gchar * gst_element_factory_get_author (GstElementFactory *factory); # FIXME: Need GstStaticPadTemplate handlers. # # guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory); # # const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory); # void # gst_element_factory_get_static_pad_templates (factory) # GstElementFactory *factory # PREINIT: # GList *templates, *i; # PPCODE: # templates = (GList *) gst_element_factory_get_static_pad_templates (factory); # for (i = templates; i != NULL; i = i->next) # XPUSHs (sv_2mortal (newSVGstPadTemplate (i->data))); GstURIType gst_element_factory_get_uri_type (GstElementFactory *factory); # gchar ** gst_element_factory_get_uri_protocols (GstElementFactory *factory); void gst_element_factory_get_uri_protocols (factory) GstElementFactory *factory PREINIT: gchar **uris; PPCODE: uris = gst_element_factory_get_uri_protocols (factory); if (uris) { gchar *uri; while ((uri = *(uris++)) != NULL) XPUSHs (sv_2mortal (newSVGChar (uri))); } GstElement_ornull * gst_element_factory_create (GstElementFactory *factory, const gchar_ornull *name); # GstElement * gst_element_factory_make (const gchar *factoryname, const gchar *name); void gst_element_factory_make (class, factoryname, name, ...); const gchar *factoryname const gchar *name PREINIT: int i; PPCODE: for (i = 1; i < items; i += 2) XPUSHs ( sv_2mortal ( newSVGstElement_ornull ( gst_element_factory_make (SvGChar (ST (i)), SvGChar (ST (i + 1)))))); # void __gst_element_factory_add_static_pad_template (GstElementFactory *elementfactory, GstStaticPadTemplate *templ); # void __gst_element_factory_add_interface (GstElementFactory *elementfactory, const gchar *interfacename); gboolean gst_element_factory_can_src_caps (GstElementFactory *factory, const GstCaps *caps); gboolean gst_element_factory_can_sink_caps (GstElementFactory *factory, const GstCaps *caps);