basesrc.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 // Generated by gtkmmproc -- DO NOT MODIFY!
00003 #ifndef _GSTREAMERMM_BASESRC_H
00004 #define _GSTREAMERMM_BASESRC_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 <gstreamermm/element.h>
00031 #include <gstreamermm/pad.h>
00032 #include <gstreamermm/format.h>
00033 #include <gstreamermm/clock.h>
00034 #include <gstreamermm/segment.h>
00035 
00036 
00037 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00038 typedef struct _GstBaseSrc GstBaseSrc;
00039 typedef struct _GstBaseSrcClass GstBaseSrcClass;
00040 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00041 
00042 
00043 namespace Gst
00044 { class BaseSrc_Class; } // namespace Gst
00045 namespace Gst
00046 {
00047 
00156 class BaseSrc
00157 : public Element
00158 {
00159   
00160 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00161 
00162 public:
00163   typedef BaseSrc CppObjectType;
00164   typedef BaseSrc_Class CppClassType;
00165   typedef GstBaseSrc BaseObjectType;
00166   typedef GstBaseSrcClass BaseClassType;
00167 
00168 private:  friend class BaseSrc_Class;
00169   static CppClassType basesrc_class_;
00170 
00171 private:
00172   // noncopyable
00173   BaseSrc(const BaseSrc&);
00174   BaseSrc& operator=(const BaseSrc&);
00175 
00176 protected:
00177   explicit BaseSrc(const Glib::ConstructParams& construct_params);
00178   explicit BaseSrc(GstBaseSrc* castitem);
00179 
00180 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00181 
00182 public:
00183   virtual ~BaseSrc();
00184 
00185 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00186   static GType get_type()      G_GNUC_CONST;
00187   static GType get_base_type() G_GNUC_CONST;
00188 #endif
00189 
00191   GstBaseSrc*       gobj()       { return reinterpret_cast<GstBaseSrc*>(gobject_); }
00192 
00194   const GstBaseSrc* gobj() const { return reinterpret_cast<GstBaseSrc*>(gobject_); }
00195 
00197   GstBaseSrc* gobj_copy();
00198 
00199 private:
00200 
00201 
00202 public:
00203   
00215   FlowReturn wait_playing();
00216   
00220   bool is_live();
00221   
00232   void set_live(bool live);
00233   
00243   void set_format(Format format);
00244   
00258   bool query_latency(bool& live, ClockTime& min_latency, ClockTime& max_latency);
00259   
00265   bool get_do_timestamp();
00266   
00274   void set_do_timestamp(bool timestamp);
00275 
00278    Glib::RefPtr<Pad> get_src_pad() const;
00279  
00280   #ifdef GLIBMM_PROPERTIES_ENABLED
00281 
00287   Glib::PropertyProxy<gulong> property_blocksize() ;
00288 #endif //#GLIBMM_PROPERTIES_ENABLED
00289 
00290 #ifdef GLIBMM_PROPERTIES_ENABLED
00291 
00297   Glib::PropertyProxy_ReadOnly<gulong> property_blocksize() const;
00298 #endif //#GLIBMM_PROPERTIES_ENABLED
00299 
00300   #ifdef GLIBMM_PROPERTIES_ENABLED
00301 
00307   Glib::PropertyProxy<bool> property_do_timestamp() ;
00308 #endif //#GLIBMM_PROPERTIES_ENABLED
00309 
00310 #ifdef GLIBMM_PROPERTIES_ENABLED
00311 
00317   Glib::PropertyProxy_ReadOnly<bool> property_do_timestamp() const;
00318 #endif //#GLIBMM_PROPERTIES_ENABLED
00319 
00320   #ifdef GLIBMM_PROPERTIES_ENABLED
00321 
00327   Glib::PropertyProxy<int> property_num_buffers() ;
00328 #endif //#GLIBMM_PROPERTIES_ENABLED
00329 
00330 #ifdef GLIBMM_PROPERTIES_ENABLED
00331 
00337   Glib::PropertyProxy_ReadOnly<int> property_num_buffers() const;
00338 #endif //#GLIBMM_PROPERTIES_ENABLED
00339 
00340   #ifdef GLIBMM_PROPERTIES_ENABLED
00341 
00347   Glib::PropertyProxy<bool> property_typefind() ;
00348 #endif //#GLIBMM_PROPERTIES_ENABLED
00349 
00350 #ifdef GLIBMM_PROPERTIES_ENABLED
00351 
00357   Glib::PropertyProxy_ReadOnly<bool> property_typefind() const;
00358 #endif //#GLIBMM_PROPERTIES_ENABLED
00359 
00360 
00363   #ifdef GLIBMM_VFUNCS_ENABLED
00364   virtual Glib::RefPtr<Caps> get_caps_vfunc();
00365 #endif //GLIBMM_VFUNCS_ENABLED
00366 
00367 
00370   #ifdef GLIBMM_VFUNCS_ENABLED
00371   virtual bool set_caps_vfunc(const Glib::RefPtr<Caps>& caps);
00372 #endif //GLIBMM_VFUNCS_ENABLED
00373 
00374 
00377   #ifdef GLIBMM_VFUNCS_ENABLED
00378   virtual bool negotiate_vfunc();
00379 #endif //GLIBMM_VFUNCS_ENABLED
00380 
00381 
00384   #ifdef GLIBMM_VFUNCS_ENABLED
00385   virtual bool new_segment_vfunc();
00386 #endif //GLIBMM_VFUNCS_ENABLED
00387 
00388 
00392   #ifdef GLIBMM_VFUNCS_ENABLED
00393   virtual bool start_vfunc();
00394 #endif //GLIBMM_VFUNCS_ENABLED
00395 
00396 
00399   #ifdef GLIBMM_VFUNCS_ENABLED
00400   virtual bool stop_vfunc();
00401 #endif //GLIBMM_VFUNCS_ENABLED
00402 
00403 
00407   #ifdef GLIBMM_VFUNCS_ENABLED
00408   virtual void get_times_vfunc(const Glib::RefPtr<Buffer>& buffer, ClockTime& start, ClockTime& end);
00409 #endif //GLIBMM_VFUNCS_ENABLED
00410 
00411 
00414   #ifdef GLIBMM_VFUNCS_ENABLED
00415   virtual bool get_size_vfunc(guint64& size);
00416 #endif //GLIBMM_VFUNCS_ENABLED
00417 
00418 
00421   #ifdef GLIBMM_VFUNCS_ENABLED
00422   virtual bool is_seekable_vfunc();
00423 #endif //GLIBMM_VFUNCS_ENABLED
00424 
00425 
00429   #ifdef GLIBMM_VFUNCS_ENABLED
00430   virtual bool unlock_vfunc();
00431 #endif //GLIBMM_VFUNCS_ENABLED
00432 
00433 
00436   #ifdef GLIBMM_VFUNCS_ENABLED
00437   virtual bool event_vfunc(const Glib::RefPtr<Event>& event);
00438 #endif //GLIBMM_VFUNCS_ENABLED
00439 
00440 
00441 //TODO: #m4 __CONVERSION(`Glib::RefPtr<Buffer>&', `GstBuffer**', `*($3)')
00442   //_WRAP_VFUNC(FlowReturn create(guint64 offset, guint size, Glib::RefPtr<Buffer>& buffer), "create")
00443 
00444  
00447   #ifdef GLIBMM_VFUNCS_ENABLED
00448   virtual bool do_seek_vfunc(Segment segment);
00449 #endif //GLIBMM_VFUNCS_ENABLED
00450 
00451 
00454   #ifdef GLIBMM_VFUNCS_ENABLED
00455   virtual bool query_vfunc(const Glib::RefPtr<Query>& query);
00456 #endif //GLIBMM_VFUNCS_ENABLED
00457 
00458 
00465   #ifdef GLIBMM_VFUNCS_ENABLED
00466   virtual bool check_get_range_vfunc();
00467 #endif //GLIBMM_VFUNCS_ENABLED
00468 
00469 
00473   #ifdef GLIBMM_VFUNCS_ENABLED
00474   virtual void fixate_vfunc(const Glib::RefPtr<Caps>& caps);
00475 #endif //GLIBMM_VFUNCS_ENABLED
00476 
00477 
00481   #ifdef GLIBMM_VFUNCS_ENABLED
00482   virtual bool unlock_stop_vfunc();
00483 #endif //GLIBMM_VFUNCS_ENABLED
00484 
00485 
00492   #ifdef GLIBMM_VFUNCS_ENABLED
00493   virtual bool prepare_seek_segment_vfunc(const Glib::RefPtr<Event>& seek, Segment segment);
00494 #endif //GLIBMM_VFUNCS_ENABLED
00495 
00496 
00497 public:
00498 
00499 public:
00500   //C++ methods used to invoke GTK+ virtual functions:
00501 #ifdef GLIBMM_VFUNCS_ENABLED
00502 #endif //GLIBMM_VFUNCS_ENABLED
00503 
00504 protected:
00505   //GTK+ Virtual Functions (override these to change behaviour):
00506 #ifdef GLIBMM_VFUNCS_ENABLED
00507 #endif //GLIBMM_VFUNCS_ENABLED
00508 
00509   //Default Signal Handlers::
00510 #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00511 #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
00512 
00513 
00514 };
00515 
00516 } //namespace Gst
00517 
00518 
00519 namespace Glib
00520 {
00529   Glib::RefPtr<Gst::BaseSrc> wrap(GstBaseSrc* object, bool take_copy = false);
00530 }
00531 
00532 
00533 #endif /* _GSTREAMERMM_BASESRC_H */
00534 

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