elementfactory.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GSTREAMERMM_ELEMENTFACTORY_H
00004 #define _GSTREAMERMM_ELEMENTFACTORY_H
00005 
00006 
00007 #include <glibmm.h>
00008 
00009 // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00010 
00011 /* gstreamermm - a C++ wrapper for gstreamer
00012  *
00013  * Copyright 2008 The gstreamermm Development Team
00014  *
00015  * This library is free software; you can redistribute it and/or
00016  * modify it under the terms of the GNU Library General Public
00017  * License as published by the Free Software Foundation; either
00018  * version 2 of the License, or (at your option) any later version.
00019  *
00020  * This library is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00023  * Library General Public License for more details.
00024  *
00025  * You should have received a copy of the GNU Library General Public
00026  * License along with this library; if not, write to the Free
00027  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00028  */
00029 
00030 #include <gst/gstelement.h>
00031 #include <gstreamermm/pluginfeature.h>
00032 
00033 
00034 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00035 typedef struct _GstElementFactory GstElementFactory;
00036 typedef struct _GstElementFactoryClass GstElementFactoryClass;
00037 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00038 
00039 
00040 namespace Gst
00041 { class ElementFactory_Class; } // namespace Gst
00042 namespace Gst
00043 {
00044 
00045 class Caps;
00046 class Element;
00047 class PadTemplate;
00048 class Plugin;
00049 
00091 class ElementFactory : public PluginFeature
00092 {
00093   
00094 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00095 
00096 public:
00097   typedef ElementFactory CppObjectType;
00098   typedef ElementFactory_Class CppClassType;
00099   typedef GstElementFactory BaseObjectType;
00100   typedef GstElementFactoryClass BaseClassType;
00101 
00102 private:  friend class ElementFactory_Class;
00103   static CppClassType elementfactory_class_;
00104 
00105 private:
00106   // noncopyable
00107   ElementFactory(const ElementFactory&);
00108   ElementFactory& operator=(const ElementFactory&);
00109 
00110 protected:
00111   explicit ElementFactory(const Glib::ConstructParams& construct_params);
00112   explicit ElementFactory(GstElementFactory* castitem);
00113 
00114 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00115 
00116 public:
00117   virtual ~ElementFactory();
00118 
00119 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00120   static GType get_type()      G_GNUC_CONST;
00121   static GType get_base_type() G_GNUC_CONST;
00122 #endif
00123 
00125   GstElementFactory*       gobj()       { return reinterpret_cast<GstElementFactory*>(gobject_); }
00126 
00128   const GstElementFactory* gobj() const { return reinterpret_cast<GstElementFactory*>(gobject_); }
00129 
00131   GstElementFactory* gobj_copy();
00132 
00133 private:
00134 
00135 
00136 public:
00137   
00143   static Glib::RefPtr<ElementFactory> find(const Glib::ustring& name);
00144 
00145   //Note that name can't be NULL here, though it seems like gstreamer should allow that as for gst_element_factory_make().
00146   
00153   Glib::RefPtr<Element> create_named_element(const Glib::ustring& name);
00154 
00155   
00161   static Glib::RefPtr<Element> create_element(const Glib::ustring& factory_name, const Glib::ustring& name);
00162   
00169   static Glib::RefPtr<Element> create_element(const Glib::ustring& factory_name);
00170 
00171   
00178   GType get_element_type() const;
00179   
00183   Glib::ustring get_long_name() const;
00184   
00188   Glib::ustring get_kclass() const;
00189   
00193   Glib::ustring get_description() const;
00194   
00198   Glib::ustring get_author() const;
00199   
00203   guint get_num_pad_templates() const;
00204   
00208   int get_uri_type() const;
00209 
00210  
00217   Glib::StringArrayHandle get_uri_protocols() const;
00218 
00219   
00226   bool has_interface(const Glib::ustring& name) const;
00227   
00232   bool can_sink_caps(const Glib::RefPtr<const Caps>& caps) const;
00233   
00238   bool can_src_caps(const Glib::RefPtr<const Caps>& caps) const;
00239 
00240  
00244   Glib::ListHandle< Glib::RefPtr<const PadTemplate> > get_static_pad_templates();
00245 
00246   
00247 public:
00248 
00249 public:
00250   //C++ methods used to invoke GTK+ virtual functions:
00251 #ifdef GLIBMM_VFUNCS_ENABLED
00252 #endif //GLIBMM_VFUNCS_ENABLED
00253 
00254 protected:
00255   //GTK+ Virtual Functions (override these to change behaviour):
00256 #ifdef GLIBMM_VFUNCS_ENABLED
00257 #endif //GLIBMM_VFUNCS_ENABLED
00258 
00259   //Default Signal Handlers::
00260 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00261 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00262 
00263 
00264 };
00265 
00266 } // namespace Gst
00267 
00268 
00269 namespace Glib
00270 {
00279   Glib::RefPtr<Gst::ElementFactory> wrap(GstElementFactory* object, bool take_copy = false);
00280 }
00281 
00282 
00283 #endif /* _GSTREAMERMM_ELEMENTFACTORY_H */
00284 

Generated on Sun Jul 27 17:07:20 2008 for gstreamermm by  doxygen 1.5.4