00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef QGST_MESSAGE_H
00018 #define QGST_MESSAGE_H
00019
00020 #include "miniobject.h"
00021 #include "structure.h"
00022 #include "taglist.h"
00023
00024 namespace QGst {
00025
00047 class QTGSTREAMER_EXPORT Message : public MiniObject
00048 {
00049 QGST_WRAPPER(Message)
00050 public:
00051 ObjectPtr source() const;
00052 quint64 timestamp() const;
00053 QString typeName() const;
00054 MessageType type() const;
00055
00056 StructurePtr internalStructure();
00057
00058 quint32 sequenceNumber() const;
00059 void setSequenceNumber(quint32 num);
00060 };
00061
00065 class QTGSTREAMER_EXPORT EosMessage : public Message
00066 {
00067 QGST_WRAPPER_FAKE_SUBCLASS(Eos, Message)
00068 public:
00069 static EosMessagePtr create(const ObjectPtr & source);
00070 };
00071
00075 class QTGSTREAMER_EXPORT ErrorMessage : public Message
00076 {
00077 QGST_WRAPPER_FAKE_SUBCLASS(Error, Message)
00078 public:
00079 static ErrorMessagePtr create(const ObjectPtr & source,
00080 const QGlib::Error & error, const char *debug);
00081
00082 QGlib::Error error() const;
00083 QString debugMessage() const;
00084 };
00085
00089 class QTGSTREAMER_EXPORT WarningMessage : public Message
00090 {
00091 QGST_WRAPPER_FAKE_SUBCLASS(Warning, Message)
00092 public:
00093 static WarningMessagePtr create(const ObjectPtr & source,
00094 const QGlib::Error & error, const char *debug);
00095
00096 QGlib::Error error() const;
00097 QString debugMessage() const;
00098 };
00099
00103 class QTGSTREAMER_EXPORT InfoMessage : public Message
00104 {
00105 QGST_WRAPPER_FAKE_SUBCLASS(Info, Message)
00106 public:
00107 static InfoMessagePtr create(const ObjectPtr & source,
00108 const QGlib::Error & error, const char *debug);
00109
00110 QGlib::Error error() const;
00111 QString debugMessage() const;
00112 };
00113
00117 class QTGSTREAMER_EXPORT TagMessage : public Message
00118 {
00119 QGST_WRAPPER_FAKE_SUBCLASS(Tag, Message)
00120 public:
00121 static TagMessagePtr create(const ObjectPtr & source, const TagList & taglist);
00122
00123 TagList taglist() const;
00124 };
00125
00129 class QTGSTREAMER_EXPORT BufferingMessage : public Message
00130 {
00131 QGST_WRAPPER_FAKE_SUBCLASS(Buffering, Message)
00132 public:
00133 static BufferingMessagePtr create(const ObjectPtr & source, int percent);
00134
00135 int percent() const;
00136 BufferingMode mode() const;
00137 int averageInputRate() const;
00138 int averageOutputRate() const;
00139 qint64 bufferingTimeLeft() const;
00140
00141 void setStats(BufferingMode mode, int avgIn, int avgOut, qint64 bufferingLeft);
00142 };
00143
00147 class QTGSTREAMER_EXPORT StateChangedMessage : public Message
00148 {
00149 QGST_WRAPPER_FAKE_SUBCLASS(StateChanged, Message)
00150 public:
00151 static StateChangedMessagePtr create(const ObjectPtr & source,
00152 State oldState, State newState, State pending);
00153
00154 State oldState() const;
00155 State newState() const;
00156 State pendingState() const;
00157 };
00158
00159
00160
00164 class QTGSTREAMER_EXPORT StepDoneMessage : public Message
00165 {
00166 QGST_WRAPPER_FAKE_SUBCLASS(StepDone, Message)
00167 public:
00168 static StepDoneMessagePtr create(const ObjectPtr & source, Format format, quint64 amount,
00169 double rate, bool flush, bool intermediate, quint64 duration, bool eos);
00170
00171 Format format() const;
00172 quint64 amount() const;
00173 double rate() const;
00174 bool isFlushingStep() const;
00175 bool isIntermediateStep() const;
00176 quint64 duration() const;
00177 bool causedEos() const;
00178 };
00179
00180
00181
00182
00186 class QTGSTREAMER_EXPORT StreamStatusMessage : public Message
00187 {
00188 QGST_WRAPPER_FAKE_SUBCLASS(StreamStatus, Message)
00189 public:
00190 static StreamStatusMessagePtr create(const ObjectPtr & source,
00191 StreamStatusType type, const ElementPtr & owner);
00192
00193 StreamStatusType statusType() const;
00194 ElementPtr owner() const;
00195 QGlib::Value streamStatusObject() const;
00196 void setStreamStatusObject(const QGlib::Value & object);
00197 };
00198
00202 class QTGSTREAMER_EXPORT ApplicationMessage : public Message
00203 {
00204 QGST_WRAPPER_FAKE_SUBCLASS(Application, Message)
00205 public:
00206 static ApplicationMessagePtr create(const ObjectPtr & source,
00207 const Structure & structure = Structure());
00208 };
00209
00213 class QTGSTREAMER_EXPORT ElementMessage : public Message
00214 {
00215 QGST_WRAPPER_FAKE_SUBCLASS(Element, Message)
00216 public:
00217 static ElementMessagePtr create(const ObjectPtr & source,
00218 const Structure & structure = Structure());
00219 };
00220
00221
00222
00226 class QTGSTREAMER_EXPORT SegmentDoneMessage : public Message
00227 {
00228 QGST_WRAPPER_FAKE_SUBCLASS(SegmentDone, Message)
00229 public:
00230 static SegmentDoneMessagePtr create(const ObjectPtr & source, Format format, qint64 position);
00231
00232 Format format() const;
00233 qint64 position() const;
00234 };
00235
00239 class QTGSTREAMER_EXPORT DurationMessage : public Message
00240 {
00241 QGST_WRAPPER_FAKE_SUBCLASS(Duration, Message)
00242 public:
00243 static DurationMessagePtr create(const ObjectPtr & source, Format format, qint64 duration);
00244
00245 Format format() const;
00246 qint64 duration() const;
00247 };
00248
00252 class QTGSTREAMER_EXPORT LatencyMessage : public Message
00253 {
00254 QGST_WRAPPER_FAKE_SUBCLASS(Latency, Message)
00255 public:
00256 static LatencyMessagePtr create(const ObjectPtr & source);
00257 };
00258
00259
00260
00264 class QTGSTREAMER_EXPORT AsyncDoneMessage : public Message
00265 {
00266 QGST_WRAPPER_FAKE_SUBCLASS(AsyncDone, Message)
00267 public:
00268 static AsyncDoneMessagePtr create(const ObjectPtr & source);
00269 };
00270
00274 class QTGSTREAMER_EXPORT RequestStateMessage : public Message
00275 {
00276 QGST_WRAPPER_FAKE_SUBCLASS(RequestState, Message)
00277 public:
00278 static RequestStateMessagePtr create(const ObjectPtr & source, State state);
00279
00280 State state() const;
00281 };
00282
00286 class QTGSTREAMER_EXPORT StepStartMessage : public Message
00287 {
00288 QGST_WRAPPER_FAKE_SUBCLASS(StepStart, Message)
00289 public:
00290 static StepStartMessagePtr create(const ObjectPtr & source, bool active, Format format,
00291 quint64 amount, double rate, bool flush, bool intermediate);
00292 bool isActive() const;
00293 Format format() const;
00294 quint64 amount() const;
00295 double rate() const;
00296 bool isFlushingStep() const;
00297 bool isIntermediateStep() const;
00298 };
00299
00303 class QTGSTREAMER_EXPORT QosMessage : public Message
00304 {
00305 QGST_WRAPPER_FAKE_SUBCLASS(Qos, Message)
00306 public:
00307 static QosMessagePtr create(const ObjectPtr & source, bool live, quint64 runningTime,
00308 quint64 streamTime, quint64 timestamp, quint64 duration);
00309
00310 bool live() const;
00311 quint64 runningTime() const;
00312 quint64 streamTime() const;
00313 quint64 timestamp() const;
00314 quint64 duration() const;
00315
00316 qint64 jitter() const;
00317 double proportion() const;
00318 int quality() const;
00319 void setValues(qint64 jitter, double proportion, int quality);
00320
00321 Format format() const;
00322 quint64 processed() const;
00323 quint64 dropped() const;
00324 void setStats(Format format, quint64 processed, quint64 dropped);
00325 };
00326
00327 }
00328
00329 QGST_REGISTER_TYPE(QGst::Message)
00330 QGST_REGISTER_SUBCLASS(Message, Eos)
00331 QGST_REGISTER_SUBCLASS(Message, Error)
00332 QGST_REGISTER_SUBCLASS(Message, Warning)
00333 QGST_REGISTER_SUBCLASS(Message, Info)
00334 QGST_REGISTER_SUBCLASS(Message, Tag)
00335 QGST_REGISTER_SUBCLASS(Message, Buffering)
00336 QGST_REGISTER_SUBCLASS(Message, StateChanged)
00337 QGST_REGISTER_SUBCLASS(Message, StepDone)
00338 QGST_REGISTER_SUBCLASS(Message, StreamStatus)
00339 QGST_REGISTER_SUBCLASS(Message, Application)
00340 QGST_REGISTER_SUBCLASS(Message, Element)
00341 QGST_REGISTER_SUBCLASS(Message, SegmentDone)
00342 QGST_REGISTER_SUBCLASS(Message, Duration)
00343 QGST_REGISTER_SUBCLASS(Message, Latency)
00344 QGST_REGISTER_SUBCLASS(Message, AsyncDone)
00345 QGST_REGISTER_SUBCLASS(Message, RequestState)
00346 QGST_REGISTER_SUBCLASS(Message, StepStart)
00347 QGST_REGISTER_SUBCLASS(Message, Qos)
00348
00349 #endif