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 /* gstreamermm - a C++ wrapper for gstreamer
00010  *
00011  * Copyright 2008 The gstreamermm Development Team
00012  *
00013  * This library is free software; you can redistribute it and/or
00014  * modify it under the terms of the GNU Lesser General Public
00015  * License as published by the Free Software Foundation; either
00016  * version 2.1 of the License, or (at your option) any later version.
00017  *
00018  * This library is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00021  * Lesser General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU Lesser General Public
00024  * License along with this library; if not, write to the Free
00025  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00026  */
00027 
00028 #include <gst/gstelement.h>
00029 #include <gstreamermm/pluginfeature.h>
00030 
00031 
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstElementFactory GstElementFactory;
00034 typedef struct _GstElementFactoryClass GstElementFactoryClass;
00035 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00036 
00037 
00038 namespace Gst
00039 { class ElementFactory_Class; } // namespace Gst
00040 namespace Gst
00041 {
00042 
00043 class Caps;
00044 class Element;
00045 class PadTemplate;
00046 class Plugin;
00047 
00089 class ElementFactory : public PluginFeature
00090 {
00091   
00092 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00093 
00094 public:
00095   typedef ElementFactory CppObjectType;
00096   typedef ElementFactory_Class CppClassType;
00097   typedef GstElementFactory BaseObjectType;
00098   typedef GstElementFactoryClass BaseClassType;
00099 
00100 private:  friend class ElementFactory_Class;
00101   static CppClassType elementfactory_class_;
00102 
00103 private:
00104   // noncopyable
00105   ElementFactory(const ElementFactory&);
00106   ElementFactory& operator=(const ElementFactory&);
00107 
00108 protected:
00109   explicit ElementFactory(const Glib::ConstructParams& construct_params);
00110   explicit ElementFactory(GstElementFactory* castitem);
00111 
00112 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00113 
00114 public:
00115   virtual ~ElementFactory();
00116 
00117 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00118   static GType get_type()      G_GNUC_CONST;
00119   static GType get_base_type() G_GNUC_CONST;
00120 #endif
00121 
00123   GstElementFactory*       gobj()       { return reinterpret_cast<GstElementFactory*>(gobject_); }
00124 
00126   const GstElementFactory* gobj() const { return reinterpret_cast<GstElementFactory*>(gobject_); }
00127 
00129   GstElementFactory* gobj_copy();
00130 
00131 private:
00132 
00133 
00134 public:
00135   
00141   static Glib::RefPtr<Gst::ElementFactory> find(const Glib::ustring& name);
00142 
00143   //Note that name can't be null here, though it seems like gstreamer should allow that as for gst_element_factory_make().
00144   
00151   Glib::RefPtr<Gst::Element> create_named_element(const Glib::ustring& name);
00152 
00153   
00159   static Glib::RefPtr<Gst::Element> create_element(const Glib::ustring& factory_name, const Glib::ustring& name);
00160   
00168   static Glib::RefPtr<Gst::Element> create_element(const Glib::ustring& factory_name);
00169 
00170   
00177   GType get_element_type() const;
00178   
00182   Glib::ustring get_long_name() const;
00183   
00187   Glib::ustring get_kclass() const;
00188   
00192   Glib::ustring get_description() const;
00193   
00197   Glib::ustring get_author() const;
00198   
00202   guint get_num_pad_templates() const;
00203   
00207   int get_uri_type() const;
00208 
00209  
00216   Glib::StringArrayHandle get_uri_protocols() const;
00217 
00218   
00225   bool has_interface(const Glib::ustring& name) const;
00226   
00231   bool can_sink_caps(const Glib::RefPtr<const Gst::Caps>& caps) const;
00232   
00237   bool can_src_caps(const Glib::RefPtr<const Gst::Caps>& caps) const;
00238 
00239  
00243   Glib::ListHandle< Glib::RefPtr<Gst::PadTemplate> > get_static_pad_templates();
00244 
00245  
00249   Glib::ListHandle< Glib::RefPtr<const Gst::PadTemplate> > get_static_pad_templates() const;
00250 
00251 
00252 public:
00253 
00254 public:
00255   //C++ methods used to invoke GTK+ virtual functions:
00256 #ifdef GLIBMM_VFUNCS_ENABLED
00257 #endif //GLIBMM_VFUNCS_ENABLED
00258 
00259 protected:
00260   //GTK+ Virtual Functions (override these to change behaviour):
00261 #ifdef GLIBMM_VFUNCS_ENABLED
00262 #endif //GLIBMM_VFUNCS_ENABLED
00263 
00264   //Default Signal Handlers::
00265 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00266 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00267 
00268 
00269 };
00270 
00271 } // namespace Gst
00272 
00273 
00274 namespace Glib
00275 {
00284   Glib::RefPtr<Gst::ElementFactory> wrap(GstElementFactory* object, bool take_copy = false);
00285 }
00286 
00287 
00288 #endif /* _GSTREAMERMM_ELEMENTFACTORY_H */
00289 

Generated on Wed Aug 19 15:53:18 2009 for gstreamermm by  doxygen 1.5.4