00001
00002
00003 #ifndef _GSTREAMERMM_PLAYBIN2_H
00004 #define _GSTREAMERMM_PLAYBIN2_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 <gstreamermm/pipeline.h>
00029 #include <gstreamermm/element.h>
00030 #include <gstreamermm/buffer.h>
00031 #include <gstreamermm/taglist.h>
00032 #include <gstreamermm/caps.h>
00033 #include <gstreamermm/pad.h>
00034
00035
00036 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00037 typedef struct _GstPlayBin2 GstPlayBin2;
00038 typedef struct _GstPlayBin2Class GstPlayBin2Class;
00039 #endif
00040
00041
00042 namespace Gst
00043 { class PlayBin2_Class; }
00044 namespace Gst
00045 {
00046
00060 enum PlayFlags
00061 {
00062 PLAY_FLAG_VIDEO = 1 << 0,
00063 PLAY_FLAG_AUDIO = 1 << 1,
00064 PLAY_FLAG_TEXT = 1 << 2,
00065 PLAY_FLAG_VIS = 1 << 3,
00066 PLAY_FLAG_SOFT_VOLUME = 1 << 4,
00067 PLAY_FLAG_NATIVE_AUDIO = 1 << 5,
00068 PLAY_FLAG_NATIVE_VIDEO = 1 << 6
00069 };
00070
00072 inline PlayFlags operator|(PlayFlags lhs, PlayFlags rhs)
00073 { return static_cast<PlayFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00074
00076 inline PlayFlags operator&(PlayFlags lhs, PlayFlags rhs)
00077 { return static_cast<PlayFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00078
00080 inline PlayFlags operator^(PlayFlags lhs, PlayFlags rhs)
00081 { return static_cast<PlayFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00082
00084 inline PlayFlags operator~(PlayFlags flags)
00085 { return static_cast<PlayFlags>(~static_cast<unsigned>(flags)); }
00086
00088 inline PlayFlags& operator|=(PlayFlags& lhs, PlayFlags rhs)
00089 { return (lhs = static_cast<PlayFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00090
00092 inline PlayFlags& operator&=(PlayFlags& lhs, PlayFlags rhs)
00093 { return (lhs = static_cast<PlayFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00094
00096 inline PlayFlags& operator^=(PlayFlags& lhs, PlayFlags rhs)
00097 { return (lhs = static_cast<PlayFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00098
00099 }
00100
00101
00102 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00103 namespace Glib
00104 {
00105
00106 template <>
00107 class Value<Gst::PlayFlags> : public Glib::Value_Flags<Gst::PlayFlags>
00108 {
00109 public:
00110 static GType value_type() G_GNUC_CONST;
00111 };
00112
00113 }
00114 #endif
00115
00116
00117 namespace Gst
00118 {
00119
00120
00131 class PlayBin2
00132 : public Gst::Pipeline
00133 {
00134
00135 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00136
00137 public:
00138 typedef PlayBin2 CppObjectType;
00139 typedef PlayBin2_Class CppClassType;
00140 typedef GstPlayBin2 BaseObjectType;
00141 typedef GstPlayBin2Class BaseClassType;
00142
00143 private: friend class PlayBin2_Class;
00144 static CppClassType playbin2_class_;
00145
00146 private:
00147
00148 PlayBin2(const PlayBin2&);
00149 PlayBin2& operator=(const PlayBin2&);
00150
00151 protected:
00152 explicit PlayBin2(const Glib::ConstructParams& construct_params);
00153 explicit PlayBin2(GstPlayBin2* castitem);
00154
00155 #endif
00156
00157 public:
00158 virtual ~PlayBin2();
00159
00160 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00161 static GType get_type() G_GNUC_CONST;
00162 static GType get_base_type() G_GNUC_CONST;
00163 #endif
00164
00166 GstPlayBin2* gobj() { return reinterpret_cast<GstPlayBin2*>(gobject_); }
00167
00169 const GstPlayBin2* gobj() const { return reinterpret_cast<GstPlayBin2*>(gobject_); }
00170
00172 GstPlayBin2* gobj_copy();
00173
00174 private:
00175
00176
00177 protected:
00178 PlayBin2();
00179 PlayBin2(const Glib::ustring& name);
00180
00181 public:
00185 static Glib::RefPtr<PlayBin2> create();
00186
00187
00191 static Glib::RefPtr<PlayBin2> create(const Glib::ustring& name);
00192
00193
00194 #ifdef GLIBMM_PROPERTIES_ENABLED
00195
00201 Glib::PropertyProxy<Glib::ustring> property_uri() ;
00202 #endif //#GLIBMM_PROPERTIES_ENABLED
00203
00204 #ifdef GLIBMM_PROPERTIES_ENABLED
00205
00211 Glib::PropertyProxy_ReadOnly<Glib::ustring> property_uri() const;
00212 #endif //#GLIBMM_PROPERTIES_ENABLED
00213
00214 #ifdef GLIBMM_PROPERTIES_ENABLED
00215
00221 Glib::PropertyProxy<Glib::ustring> property_suburi() ;
00222 #endif //#GLIBMM_PROPERTIES_ENABLED
00223
00224 #ifdef GLIBMM_PROPERTIES_ENABLED
00225
00231 Glib::PropertyProxy_ReadOnly<Glib::ustring> property_suburi() const;
00232 #endif //#GLIBMM_PROPERTIES_ENABLED
00233
00234 #ifdef GLIBMM_PROPERTIES_ENABLED
00235
00241 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Element> > property_source() const;
00242 #endif //#GLIBMM_PROPERTIES_ENABLED
00243
00244
00245 #ifdef GLIBMM_PROPERTIES_ENABLED
00246
00252 Glib::PropertyProxy<PlayFlags> property_flags() ;
00253 #endif //#GLIBMM_PROPERTIES_ENABLED
00254
00255 #ifdef GLIBMM_PROPERTIES_ENABLED
00256
00262 Glib::PropertyProxy_ReadOnly<PlayFlags> property_flags() const;
00263 #endif //#GLIBMM_PROPERTIES_ENABLED
00264
00265 #ifdef GLIBMM_PROPERTIES_ENABLED
00266
00272 Glib::PropertyProxy_ReadOnly<int> property_n_video() const;
00273 #endif //#GLIBMM_PROPERTIES_ENABLED
00274
00275
00276 #ifdef GLIBMM_PROPERTIES_ENABLED
00277
00283 Glib::PropertyProxy<int> property_current_video() ;
00284 #endif //#GLIBMM_PROPERTIES_ENABLED
00285
00286 #ifdef GLIBMM_PROPERTIES_ENABLED
00287
00293 Glib::PropertyProxy_ReadOnly<int> property_current_video() const;
00294 #endif //#GLIBMM_PROPERTIES_ENABLED
00295
00296 #ifdef GLIBMM_PROPERTIES_ENABLED
00297
00303 Glib::PropertyProxy_ReadOnly<int> property_n_audio() const;
00304 #endif //#GLIBMM_PROPERTIES_ENABLED
00305
00306
00307 #ifdef GLIBMM_PROPERTIES_ENABLED
00308
00314 Glib::PropertyProxy<int> property_current_audio() ;
00315 #endif //#GLIBMM_PROPERTIES_ENABLED
00316
00317 #ifdef GLIBMM_PROPERTIES_ENABLED
00318
00324 Glib::PropertyProxy_ReadOnly<int> property_current_audio() const;
00325 #endif //#GLIBMM_PROPERTIES_ENABLED
00326
00327 #ifdef GLIBMM_PROPERTIES_ENABLED
00328
00334 Glib::PropertyProxy_ReadOnly<int> property_n_text() const;
00335 #endif //#GLIBMM_PROPERTIES_ENABLED
00336
00337
00338 #ifdef GLIBMM_PROPERTIES_ENABLED
00339
00345 Glib::PropertyProxy<int> property_current_text() ;
00346 #endif //#GLIBMM_PROPERTIES_ENABLED
00347
00348 #ifdef GLIBMM_PROPERTIES_ENABLED
00349
00355 Glib::PropertyProxy_ReadOnly<int> property_current_text() const;
00356 #endif //#GLIBMM_PROPERTIES_ENABLED
00357
00358 #ifdef GLIBMM_PROPERTIES_ENABLED
00359
00365 Glib::PropertyProxy<Glib::ustring> property_subtitle_encoding() ;
00366 #endif //#GLIBMM_PROPERTIES_ENABLED
00367
00368 #ifdef GLIBMM_PROPERTIES_ENABLED
00369
00375 Glib::PropertyProxy_ReadOnly<Glib::ustring> property_subtitle_encoding() const;
00376 #endif //#GLIBMM_PROPERTIES_ENABLED
00377
00378 #ifdef GLIBMM_PROPERTIES_ENABLED
00379
00385 Glib::PropertyProxy< Glib::RefPtr<Gst::Element> > property_audio_sink() ;
00386 #endif //#GLIBMM_PROPERTIES_ENABLED
00387
00388 #ifdef GLIBMM_PROPERTIES_ENABLED
00389
00395 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Element> > property_audio_sink() const;
00396 #endif //#GLIBMM_PROPERTIES_ENABLED
00397
00398 #ifdef GLIBMM_PROPERTIES_ENABLED
00399
00405 Glib::PropertyProxy< Glib::RefPtr<Gst::Element> > property_video_sink() ;
00406 #endif //#GLIBMM_PROPERTIES_ENABLED
00407
00408 #ifdef GLIBMM_PROPERTIES_ENABLED
00409
00415 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Element> > property_video_sink() const;
00416 #endif //#GLIBMM_PROPERTIES_ENABLED
00417
00418 #ifdef GLIBMM_PROPERTIES_ENABLED
00419
00425 Glib::PropertyProxy< Glib::RefPtr<Gst::Element> > property_vis_plugin() ;
00426 #endif //#GLIBMM_PROPERTIES_ENABLED
00427
00428 #ifdef GLIBMM_PROPERTIES_ENABLED
00429
00435 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Element> > property_vis_plugin() const;
00436 #endif //#GLIBMM_PROPERTIES_ENABLED
00437
00438 #ifdef GLIBMM_PROPERTIES_ENABLED
00439
00445 Glib::PropertyProxy<double> property_volume() ;
00446 #endif //#GLIBMM_PROPERTIES_ENABLED
00447
00448 #ifdef GLIBMM_PROPERTIES_ENABLED
00449
00455 Glib::PropertyProxy_ReadOnly<double> property_volume() const;
00456 #endif //#GLIBMM_PROPERTIES_ENABLED
00457
00458 #ifdef GLIBMM_PROPERTIES_ENABLED
00459
00465 Glib::PropertyProxy<bool> property_mute() ;
00466 #endif //#GLIBMM_PROPERTIES_ENABLED
00467
00468 #ifdef GLIBMM_PROPERTIES_ENABLED
00469
00475 Glib::PropertyProxy_ReadOnly<bool> property_mute() const;
00476 #endif //#GLIBMM_PROPERTIES_ENABLED
00477
00478 #ifdef GLIBMM_PROPERTIES_ENABLED
00479
00485 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Buffer> > property_frame() const;
00486 #endif //#GLIBMM_PROPERTIES_ENABLED
00487
00488
00489 #ifdef GLIBMM_PROPERTIES_ENABLED
00490
00496 Glib::PropertyProxy_WriteOnly<Glib::ustring> property_subtitle_font_desc() ;
00497 #endif //#GLIBMM_PROPERTIES_ENABLED
00498
00499
00500 #ifdef GLIBMM_PROPERTIES_ENABLED
00501
00507 Glib::PropertyProxy<guint> property_connection_speed() ;
00508 #endif //#GLIBMM_PROPERTIES_ENABLED
00509
00510 #ifdef GLIBMM_PROPERTIES_ENABLED
00511
00517 Glib::PropertyProxy_ReadOnly<guint> property_connection_speed() const;
00518 #endif //#GLIBMM_PROPERTIES_ENABLED
00519
00520 #ifdef GLIBMM_PROPERTIES_ENABLED
00521
00527 Glib::PropertyProxy<int> property_buffer_size() ;
00528 #endif //#GLIBMM_PROPERTIES_ENABLED
00529
00530 #ifdef GLIBMM_PROPERTIES_ENABLED
00531
00537 Glib::PropertyProxy_ReadOnly<int> property_buffer_size() const;
00538 #endif //#GLIBMM_PROPERTIES_ENABLED
00539
00540 #ifdef GLIBMM_PROPERTIES_ENABLED
00541
00547 Glib::PropertyProxy<gint64> property_buffer_duration() ;
00548 #endif //#GLIBMM_PROPERTIES_ENABLED
00549
00550 #ifdef GLIBMM_PROPERTIES_ENABLED
00551
00557 Glib::PropertyProxy_ReadOnly<gint64> property_buffer_duration() const;
00558 #endif //#GLIBMM_PROPERTIES_ENABLED
00559
00560
00566 Glib::SignalProxy0< void > signal_about_to_finish();
00567
00568
00574 Glib::SignalProxy0< void > signal_video_changed();
00575
00576
00582 Glib::SignalProxy0< void > signal_audio_changed();
00583
00584
00590 Glib::SignalProxy0< void > signal_text_changed();
00591
00592
00598 Glib::SignalProxy1< Gst::TagList,int > signal_get_video_tags();
00599
00600
00606 Glib::SignalProxy1< Gst::TagList,int > signal_get_audio_tags();
00607
00608
00614 Glib::SignalProxy1< Gst::TagList,int > signal_get_text_tags();
00615
00616
00622 Glib::SignalProxy1< Glib::RefPtr<Gst::Buffer>,const Glib::RefPtr<Gst::Caps>& > signal_convert_frame();
00623
00624
00630 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_video_pad();
00631
00632
00638 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_audio_pad();
00639
00640
00646 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_text_pad();
00647
00648
00649 public:
00650
00651 public:
00652
00653 #ifdef GLIBMM_VFUNCS_ENABLED
00654 #endif //GLIBMM_VFUNCS_ENABLED
00655
00656 protected:
00657
00658 #ifdef GLIBMM_VFUNCS_ENABLED
00659 #endif //GLIBMM_VFUNCS_ENABLED
00660
00661
00662 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00663 virtual void on_about_to_finish();
00664 virtual void on_video_changed();
00665 virtual void on_audio_changed();
00666 virtual void on_text_changed();
00667 virtual Gst::TagList on_get_video_tags(int arg0);
00668 virtual Gst::TagList on_get_audio_tags(int arg0);
00669 virtual Gst::TagList on_get_text_tags(int arg0);
00670 virtual Glib::RefPtr<Gst::Buffer> on_convert_frame(const Glib::RefPtr<Gst::Caps>& arg0);
00671 virtual Glib::RefPtr<Gst::Pad> on_get_video_pad(int arg0);
00672 virtual Glib::RefPtr<Gst::Pad> on_get_audio_pad(int arg0);
00673 virtual Glib::RefPtr<Gst::Pad> on_get_text_pad(int arg0);
00674 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00675
00676
00677 };
00678
00679 }
00680
00681
00682 namespace Glib
00683 {
00692 Glib::RefPtr<Gst::PlayBin2> wrap(GstPlayBin2* object, bool take_copy = false);
00693 }
00694
00695
00696 #endif
00697