00001
00002
00003 #ifndef _GSTREAMERMM_TUNER_H
00004 #define _GSTREAMERMM_TUNER_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <gst/interfaces/tuner.h>
00029 #include <glibmm/interface.h>
00030
00031
00032 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00033 typedef struct _GstTuner GstTuner;
00034 typedef struct _GstTunerClass GstTunerClass;
00035 #endif
00036
00037
00038 namespace Gst
00039 { class Tuner_Class; }
00040 namespace Gst
00041 {
00042
00043 class TunerChannel;
00044 class TunerNorm;
00045
00050 class Tuner : public Glib::Interface
00051 {
00052
00053 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00054
00055 public:
00056 typedef Tuner CppObjectType;
00057 typedef Tuner_Class CppClassType;
00058 typedef GstTuner BaseObjectType;
00059 typedef GstTunerClass BaseClassType;
00060
00061 private:
00062 friend class Tuner_Class;
00063 static CppClassType tuner_class_;
00064
00065
00066 Tuner(const Tuner&);
00067 Tuner& operator=(const Tuner&);
00068
00069 protected:
00070 Tuner();
00071
00078 explicit Tuner(const Glib::Interface_Class& interface_class);
00079
00080 public:
00081
00082
00083
00084 explicit Tuner(GstTuner* castitem);
00085
00086 protected:
00087 #endif
00088
00089 public:
00090 virtual ~Tuner();
00091
00092 static void add_interface(GType gtype_implementer);
00093
00094 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00095 static GType get_type() G_GNUC_CONST;
00096 static GType get_base_type() G_GNUC_CONST;
00097 #endif
00098
00100 GstTuner* gobj() { return reinterpret_cast<GstTuner*>(gobject_); }
00101
00103 const GstTuner* gobj() const { return reinterpret_cast<GstTuner*>(gobject_); }
00104
00105 private:
00106
00107
00108 public:
00109
00110
00116 Glib::ListHandle< Glib::RefPtr<Gst::TunerChannel> > list_channels();
00117
00118
00124 Glib::ListHandle< Glib::RefPtr<const Gst::TunerChannel> > list_channels() const;
00125
00126
00130 Glib::RefPtr<Gst::TunerChannel> get_channel();
00131
00135 Glib::RefPtr<const Gst::TunerChannel> get_channel() const;
00136
00140 void set_channel(const Glib::RefPtr<Gst::TunerChannel>& channel);
00141
00142
00149 Glib::ListHandle< Glib::RefPtr<Gst::TunerNorm> > list_norms();
00150
00151
00158 Glib::ListHandle< Glib::RefPtr<const Gst::TunerNorm> > list_norms() const;
00159
00160
00165 Glib::RefPtr<Gst::TunerNorm> get_norm();
00166
00171 Glib::RefPtr<const Gst::TunerNorm> get_norm() const;
00172
00176 void set_norm(const Glib::RefPtr<Gst::TunerNorm>& norm);
00177
00184 gulong get_frequency(const Glib::RefPtr<const Gst::TunerChannel>& channel) const;
00185
00198 void set_frequency(const Glib::RefPtr<Gst::TunerChannel>& channel, gulong frequency);
00199
00211 int get_signal_strength(const Glib::RefPtr<Gst::TunerChannel>& channel);
00212
00218 Glib::RefPtr<Gst::TunerNorm> find_norm(const Glib::ustring& norm);
00219
00225 Glib::RefPtr<const Gst::TunerNorm> find_norm(const Glib::ustring& norm) const;
00226
00232 Glib::RefPtr<Gst::TunerChannel> find_channel(const Glib::ustring& channel);
00233
00239 Glib::RefPtr<const Gst::TunerChannel> find_channel(const Glib::ustring& channel) const;
00240
00245 void channel_changed(const Glib::RefPtr<Gst::TunerChannel>& channel);
00246
00251 void norm_changed(const Glib::RefPtr<Gst::TunerNorm>& norm);
00252
00260 void frequency_changed(const Glib::RefPtr<Gst::TunerChannel>& channel, gulong frequency);
00261
00269 void signal_changed(const Glib::RefPtr<Gst::TunerChannel>& channel, int signal);
00270
00271
00279 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::TunerChannel>& > signal_channel_changed();
00280
00281
00290 Glib::SignalProxy2< void,const Glib::RefPtr<Gst::TunerChannel>&,gulong > signal_frequency_changed();
00291
00292
00300 Glib::SignalProxy1< void,const Glib::RefPtr<Gst::TunerNorm>& > signal_norm_changed();
00301
00302
00311 Glib::SignalProxy2< void,const Glib::RefPtr<Gst::TunerChannel>&,int > signal_signal_changed();
00312
00313
00314 public:
00315
00316 public:
00317
00318 #ifdef GLIBMM_VFUNCS_ENABLED
00319 #endif //GLIBMM_VFUNCS_ENABLED
00320
00321 protected:
00322
00323 #ifdef GLIBMM_VFUNCS_ENABLED
00324 #endif //GLIBMM_VFUNCS_ENABLED
00325
00326
00327 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00328 virtual void on_channel_changed(const Glib::RefPtr<Gst::TunerChannel>& channel);
00329 virtual void on_frequency_changed(const Glib::RefPtr<Gst::TunerChannel>& channel, gulong frequency);
00330 virtual void on_norm_changed(const Glib::RefPtr<Gst::TunerNorm>& norm);
00331 virtual void on_signal_changed(const Glib::RefPtr<Gst::TunerChannel>& channel, int signal);
00332 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00333
00334
00335 };
00336
00337 }
00338
00339
00340 namespace Glib
00341 {
00350 Glib::RefPtr<Gst::Tuner> wrap(GstTuner* object, bool take_copy = false);
00351
00352 }
00353
00354
00355 #endif
00356