- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

# propertyprobe.h

Go to the documentation of this file.

    00001 // -*- c++ -*-
    00002 // Generated by gtkmmproc -- DO NOT MODIFY!
    00003 #ifndef _GSTREAMERMM_PROPERTYPROBE_H
    00004 #define _GSTREAMERMM_PROPERTYPROBE_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/interfaces/propertyprobe.h>
    00029 #include <glibmm/interface.h>
    00030
    00031
    00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00033 typedef struct _GstPropertyProbe GstPropertyProbe;
    00034 typedef struct _GstPropertyProbeClass GstPropertyProbeClass;
    00035 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00036
    00037
    00038 namespace Gst
    00039 { class PropertyProbe_Class; } // namespace Gst
    00040 namespace Gst
    00041 {
    00042
    00052 class PropertyProbe : public Glib::Interface
    00053 {
    00054
    00055 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00056
    00057 public:
    00058   typedef PropertyProbe CppObjectType;
    00059   typedef PropertyProbe_Class CppClassType;
    00060   typedef GstPropertyProbe BaseObjectType;
    00061   typedef GstPropertyProbeInterface BaseClassType;
    00062
    00063 private:
    00064   friend class PropertyProbe_Class;
    00065   static CppClassType propertyprobe_class_;
    00066
    00067   // noncopyable
    00068   PropertyProbe(const PropertyProbe&);
    00069   PropertyProbe& operator=(const PropertyProbe&);
    00070
    00071 protected:
    00072   PropertyProbe(); // you must derive from this class
    00073
    00080   explicit PropertyProbe(const Glib::Interface_Class& interface_class);
    00081
    00082 public:
    00083   // This is public so that C++ wrapper instances can be
    00084   // created for C instances of unwrapped types.
    00085   // For instance, if an unexpected C type implements the C interface.
    00086   explicit PropertyProbe(GstPropertyProbe* castitem);
    00087
    00088 protected:
    00089 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
    00090
    00091 public:
    00092   virtual ~PropertyProbe();
    00093
    00094   static void add_interface(GType gtype_implementer);
    00095
    00096 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00097   static GType get_type()      G_GNUC_CONST;
    00098   static GType get_base_type() G_GNUC_CONST;
    00099 #endif
    00100
    00102   GstPropertyProbe*       gobj()       { return reinterpret_cast<GstPropertyProbe*>(gobject_); }
    00103
    00105   const GstPropertyProbe* gobj() const { return reinterpret_cast<GstPropertyProbe*>(gobject_); }
    00106
    00107 private:
    00108
    00109
    00110 public:
    00111   //TODO: Use something other than const GList* as return (A Glib::ListHandle<>
    00112   //is not used because it's hard to know how to place GParamSpec* in one):
    00113
    00118   const GList* get_properties() const;
    00119
    00120
    00125   const GParamSpec* get_property(const Glib::ustring& name) const;
    00126
    00127
    00133   Glib::ValueArray get_values(const GParamSpec* pspec) const;
    00134
    00139   Glib::ValueArray get_values(const Glib::ustring& name) const;
    00140
    00141
    00150   bool needs_probe(const GParamSpec* pspec) const;
    00151
    00156   bool needs_probe(const Glib::ustring& name) const;
    00157
    00164   Glib::ValueArray probe_and_get_values(const GParamSpec* pspec);
    00165
    00170   Glib::ValueArray probe_and_get_values(const Glib::ustring& name);
    00171
    00175   void probe_property(const GParamSpec *pspec);
    00176
    00180   void probe_property(const Glib::ustring& name);
    00181
    00182
    00188   Glib::SignalProxy1< void,const GParamSpec* > signal_probe_needed();
    00189
    00190
    00191   #ifdef GLIBMM_VFUNCS_ENABLED
    00192   virtual const GList* get_properties_vfunc() const;
    00193 #endif //GLIBMM_VFUNCS_ENABLED
    00194
    00195   #ifdef GLIBMM_VFUNCS_ENABLED
    00196   virtual bool needs_probe_vfunc(guint prop_id, const GParamSpec* pspec) const;
    00197 #endif //GLIBMM_VFUNCS_ENABLED
    00198
    00199   #ifdef GLIBMM_VFUNCS_ENABLED
    00200   virtual void probe_property_vfunc(guint prop_id, const GParamSpec* pspec);
    00201 #endif //GLIBMM_VFUNCS_ENABLED
    00202
    00203
    00204   #ifdef GLIBMM_VFUNCS_ENABLED
    00205   virtual Glib::ValueArray get_values_vfunc(guint prop_id, const GParamSpec* pspec) const;
    00206 #endif //GLIBMM_VFUNCS_ENABLED
    00207
    00208
    00209 public:
    00210
    00211 public:
    00212   //C++ methods used to invoke GTK+ virtual functions:
    00213 #ifdef GLIBMM_VFUNCS_ENABLED
    00214 #endif //GLIBMM_VFUNCS_ENABLED
    00215
    00216 protected:
    00217   //GTK+ Virtual Functions (override these to change behaviour):
    00218 #ifdef GLIBMM_VFUNCS_ENABLED
    00219 #endif //GLIBMM_VFUNCS_ENABLED
    00220
    00221   //Default Signal Handlers::
    00222 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
    00223   virtual void on_probe_needed(const GParamSpec* pspec);
    00224 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
    00225
    00226
    00227 };
    00228
    00229 } // namespace Gst
    00230
    00231
    00232 namespace Glib
    00233 {
    00242   Glib::RefPtr<Gst::PropertyProbe> wrap(GstPropertyProbe* object, bool take_copy = false);
    00243
    00244 } // namespace Glib
    00245
    00246
    00247 #endif /* _GSTREAMERMM_PROPERTYPROBE_H */
    00248