QtGStreamer  0.10.2
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
bus.h
00001 /*
00002     Copyright (C) 2009-2010  George Kiagiadakis <kiagiadakis.george@gmail.com>
00003 
00004     This library is free software; you can redistribute it and/or modify
00005     it under the terms of the GNU Lesser General Public License as published
00006     by the Free Software Foundation; either version 2.1 of the License, or
00007     (at your option) any later version.
00008 
00009     This program is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU Lesser General Public License for more details.
00013 
00014     You should have received a copy of the GNU Lesser General Public License
00015     along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016 */
00017 #ifndef QGST_BUS_H
00018 #define QGST_BUS_H
00019 
00020 #include "object.h"
00021 #include "clocktime.h"
00022 
00023 namespace QGst {
00024 
00051 class QTGSTREAMER_EXPORT Bus : public Object
00052 {
00053     QGST_WRAPPER(Bus)
00054 public:
00056     static BusPtr create();
00057 
00058 
00060     bool post(const MessagePtr & message);
00061 
00062 
00064     bool hasPendingMessages() const;
00065 
00067     MessagePtr peek() const;
00068 
00074     MessagePtr pop(ClockTime timeout = 0);
00075 
00082     MessagePtr pop(MessageType type, ClockTime timeout = 0);
00083 
00084 
00088     void setFlushing(bool flush);
00089 
00090 
00109     void addSignalWatch();
00110 
00115     void removeSignalWatch();
00116 
00117 
00125     void enableSyncMessageEmission();
00126 
00132     void disableSyncMessageEmission();
00133 };
00134 
00135 } //namespace QGst
00136 
00137 QGST_REGISTER_TYPE(QGst::Bus)
00138 
00139 #endif //QGST_BUS_H