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< Glib::RefPtr<Gst::Element> > property_text_sink() ;
00446 #endif //#GLIBMM_PROPERTIES_ENABLED
00447
00448 #ifdef GLIBMM_PROPERTIES_ENABLED
00449
00455 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Element> > property_text_sink() const;
00456 #endif //#GLIBMM_PROPERTIES_ENABLED
00457
00458 #ifdef GLIBMM_PROPERTIES_ENABLED
00459
00465 Glib::PropertyProxy<double> property_volume() ;
00466 #endif //#GLIBMM_PROPERTIES_ENABLED
00467
00468 #ifdef GLIBMM_PROPERTIES_ENABLED
00469
00475 Glib::PropertyProxy_ReadOnly<double> property_volume() const;
00476 #endif //#GLIBMM_PROPERTIES_ENABLED
00477
00478 #ifdef GLIBMM_PROPERTIES_ENABLED
00479
00485 Glib::PropertyProxy<bool> property_mute() ;
00486 #endif //#GLIBMM_PROPERTIES_ENABLED
00487
00488 #ifdef GLIBMM_PROPERTIES_ENABLED
00489
00495 Glib::PropertyProxy_ReadOnly<bool> property_mute() const;
00496 #endif //#GLIBMM_PROPERTIES_ENABLED
00497
00498 #ifdef GLIBMM_PROPERTIES_ENABLED
00499
00505 Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Gst::Buffer> > property_frame() const;
00506 #endif //#GLIBMM_PROPERTIES_ENABLED
00507
00508
00509 #ifdef GLIBMM_PROPERTIES_ENABLED
00510
00516 Glib::PropertyProxy_WriteOnly<Glib::ustring> property_subtitle_font_desc() ;
00517 #endif //#GLIBMM_PROPERTIES_ENABLED
00518
00519
00520 #ifdef GLIBMM_PROPERTIES_ENABLED
00521
00527 Glib::PropertyProxy<guint> property_connection_speed() ;
00528 #endif //#GLIBMM_PROPERTIES_ENABLED
00529
00530 #ifdef GLIBMM_PROPERTIES_ENABLED
00531
00537 Glib::PropertyProxy_ReadOnly<guint> property_connection_speed() const;
00538 #endif //#GLIBMM_PROPERTIES_ENABLED
00539
00540 #ifdef GLIBMM_PROPERTIES_ENABLED
00541
00547 Glib::PropertyProxy<int> property_buffer_size() ;
00548 #endif //#GLIBMM_PROPERTIES_ENABLED
00549
00550 #ifdef GLIBMM_PROPERTIES_ENABLED
00551
00557 Glib::PropertyProxy_ReadOnly<int> property_buffer_size() const;
00558 #endif //#GLIBMM_PROPERTIES_ENABLED
00559
00560 #ifdef GLIBMM_PROPERTIES_ENABLED
00561
00567 Glib::PropertyProxy<gint64> property_buffer_duration() ;
00568 #endif //#GLIBMM_PROPERTIES_ENABLED
00569
00570 #ifdef GLIBMM_PROPERTIES_ENABLED
00571
00577 Glib::PropertyProxy_ReadOnly<gint64> property_buffer_duration() const;
00578 #endif //#GLIBMM_PROPERTIES_ENABLED
00579
00580
00586 Glib::SignalProxy0< void > signal_about_to_finish();
00587
00588
00594 Glib::SignalProxy0< void > signal_video_changed();
00595
00596
00602 Glib::SignalProxy0< void > signal_audio_changed();
00603
00604
00610 Glib::SignalProxy0< void > signal_text_changed();
00611
00612
00618 Glib::SignalProxy1< Gst::TagList,int > signal_get_video_tags();
00619
00620
00626 Glib::SignalProxy1< Gst::TagList,int > signal_get_audio_tags();
00627
00628
00634 Glib::SignalProxy1< Gst::TagList,int > signal_get_text_tags();
00635
00636
00642 Glib::SignalProxy1< Glib::RefPtr<Gst::Buffer>,const Glib::RefPtr<Gst::Caps>& > signal_convert_frame();
00643
00644
00650 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_video_pad();
00651
00652
00658 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_audio_pad();
00659
00660
00666 Glib::SignalProxy1< Glib::RefPtr<Gst::Pad>,int > signal_get_text_pad();
00667
00668
00669 public:
00670
00671 public:
00672
00673 #ifdef GLIBMM_VFUNCS_ENABLED
00674 #endif //GLIBMM_VFUNCS_ENABLED
00675
00676 protected:
00677
00678 #ifdef GLIBMM_VFUNCS_ENABLED
00679 #endif //GLIBMM_VFUNCS_ENABLED
00680
00681
00682 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00683 virtual void on_about_to_finish();
00684 virtual void on_video_changed();
00685 virtual void on_audio_changed();
00686 virtual void on_text_changed();
00687 virtual Gst::TagList on_get_video_tags(int arg0);
00688 virtual Gst::TagList on_get_audio_tags(int arg0);
00689 virtual Gst::TagList on_get_text_tags(int arg0);
00690 virtual Glib::RefPtr<Gst::Buffer> on_convert_frame(const Glib::RefPtr<Gst::Caps>& arg0);
00691 virtual Glib::RefPtr<Gst::Pad> on_get_video_pad(int arg0);
00692 virtual Glib::RefPtr<Gst::Pad> on_get_audio_pad(int arg0);
00693 virtual Glib::RefPtr<Gst::Pad> on_get_text_pad(int arg0);
00694 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00695
00696
00697 };
00698
00699 }
00700
00701
00702 namespace Glib
00703 {
00712 Glib::RefPtr<Gst::PlayBin2> wrap(GstPlayBin2* object, bool take_copy = false);
00713 }
00714
00715
00716 #endif
00717