/* * 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., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * $Id$ */ #include "gst2perl.h" /* ------------------------------------------------------------------------- */ /* Used in GstPlugin.xs, GstRegistry.xs, and GstRegistryPool.xs. */ GPerlCallback * gst2perl_plugin_feature_filter_create (SV *func, SV *data) { GType param_types [1]; param_types[0] = GST_TYPE_PLUGIN_FEATURE; return gperl_callback_new (func, data, G_N_ELEMENTS (param_types), param_types, G_TYPE_BOOLEAN); } gboolean gst2perl_plugin_feature_filter (GstPluginFeature *feature, gpointer user_data) { GPerlCallback *callback = user_data; GValue value = { 0, }; gboolean retval; g_value_init (&value, callback->return_type); gperl_callback_invoke (callback, &value, feature); retval = g_value_get_boolean (&value); g_value_unset (&value); return retval; } /* ------------------------------------------------------------------------- */ MODULE = GStreamer::PluginFeature PACKAGE = GStreamer::PluginFeature PREFIX = gst_plugin_feature_ BOOT: gperl_object_set_no_warn_unreg_subclass (GST_TYPE_PLUGIN_FEATURE, TRUE); GstPluginFeature * gst_plugin_feature_load (GstPluginFeature *feature); # FIXME: Is this needed? It's not documented. # gboolean gst_plugin_feature_type_name_filter (GstPluginFeature *feature, GstTypeNameData *data); void gst_plugin_feature_set_rank (GstPluginFeature *feature, guint rank); void gst_plugin_feature_set_name (GstPluginFeature *feature, const gchar *name); # FIXME: Use enum typemap instead? guint gst_plugin_feature_get_rank (GstPluginFeature *feature); const gchar *gst_plugin_feature_get_name (GstPluginFeature *feature); gboolean gst_plugin_feature_check_version (GstPluginFeature *feature, guint min_major, guint min_minor, guint min_micro);