urihandler.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GSTREAMERMM_URIHANDLER_H
00004 #define _GSTREAMERMM_URIHANDLER_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/gsturi.h>
00031 #include <glibmm/interface.h>
00032 #include <gstreamermm/enums.h>
00033 
00034 
00035 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00036 typedef struct _GstURIHandler GstURIHandler;
00037 typedef struct _GstURIHandlerClass GstURIHandlerClass;
00038 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00039 
00040 
00041 namespace Gst
00042 { class URIHandler_Class; } // namespace Gst
00043 namespace Gst
00044 {
00045 
00046 enum URIType
00047 {
00048   URI_UNKNOWN = GST_URI_UNKNOWN,
00049   URI_SINK = GST_URI_SINK,
00050   URI_SRC = GST_URI_SRC 
00051 };
00052 
00053 class Element;
00054 
00067 class URIHandler : public Glib::Interface
00068 {
00069   
00070 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00071 
00072 public:
00073   typedef URIHandler CppObjectType;
00074   typedef URIHandler_Class CppClassType;
00075   typedef GstURIHandler BaseObjectType;
00076   typedef GstURIHandlerInterface BaseClassType;
00077 
00078 private:
00079   friend class URIHandler_Class;
00080   static CppClassType urihandler_class_;
00081 
00082   // noncopyable
00083   URIHandler(const URIHandler&);
00084   URIHandler& operator=(const URIHandler&);
00085 
00086 protected:
00087   URIHandler(); // you must derive from this class
00088 
00095   explicit URIHandler(const Glib::Interface_Class& interface_class);
00096 
00097 public:
00098   // This is public so that C++ wrapper instances can be
00099   // created for C instances of unwrapped types.
00100   // For instance, if an unexpected C type implements the C interface. 
00101   explicit URIHandler(GstURIHandler* castitem);
00102 
00103 protected:
00104 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00105 
00106 public:
00107   virtual ~URIHandler();
00108 
00109   static void add_interface(GType gtype_implementer);
00110 
00111 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00112   static GType get_type()      G_GNUC_CONST;
00113   static GType get_base_type() G_GNUC_CONST;
00114 #endif
00115 
00117   GstURIHandler*       gobj()       { return reinterpret_cast<GstURIHandler*>(gobject_); }
00118 
00120   const GstURIHandler* gobj() const { return reinterpret_cast<GstURIHandler*>(gobject_); }
00121 
00122 private:
00123 
00124 
00125 public:
00126   
00133   static bool protocol_is_valid(const Glib::ustring& protocol);
00134   
00144   static bool protocol_is_supported(const URIType type, const Glib::ustring& protocol);
00145   
00151   static bool uri_is_valid(const Glib::ustring& uri);
00152   
00160   static bool uri_has_protocol(const Glib::ustring& uri, const Glib::ustring& protocol);
00161   
00167   static Glib::ustring get_protocol(const Glib::ustring& uri);
00168   
00177   static Glib::ustring get_location(const Glib::ustring& uri);
00178   
00185   static Glib::ustring construct_uri(const Glib::ustring& protocol, const Glib::ustring& location);
00186   
00193   static Glib::RefPtr<Element> make_element_from_uri(const URIType type, const Glib::ustring& uri, const Glib::ustring& name);
00194 
00195   
00201   guint get_uri_type();
00202 
00203  
00211   Glib::StringArrayHandle get_protocols();
00212 
00213   
00220   Glib::ustring get_uri();
00221   
00226   bool set_uri(const Glib::ustring& uri);
00227   
00232   void new_uri(const Glib::ustring& uri);
00233 
00240   Glib::SignalProxy1< void,const Glib::ustring& > signal_new_uri();
00241 
00242 
00243 public:
00244 
00245 public:
00246   //C++ methods used to invoke GTK+ virtual functions:
00247 #ifdef GLIBMM_VFUNCS_ENABLED
00248 #endif //GLIBMM_VFUNCS_ENABLED
00249 
00250 protected:
00251   //GTK+ Virtual Functions (override these to change behaviour):
00252 #ifdef GLIBMM_VFUNCS_ENABLED
00253 #endif //GLIBMM_VFUNCS_ENABLED
00254 
00255   //Default Signal Handlers::
00256 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00257   virtual void on_new_uri(const Glib::ustring& uri);
00258 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00259 
00260 
00261 };
00262 
00263 } // namespace Gst
00264 
00265 
00266 namespace Glib
00267 {
00276   Glib::RefPtr<Gst::URIHandler> wrap(GstURIHandler* object, bool take_copy = false);
00277 
00278 } // namespace Glib
00279 
00280 
00281 #endif /* _GSTREAMERMM_URIHANDLER_H */
00282 

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