summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.co.uk>2011-01-02 14:14:22 +0200
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.co.uk>2011-01-02 14:14:22 +0200
commit1e16778c2abe392428ab7d3c7a33dcc88d7eb0a9 (patch)
treee63010b531a6717f989f92a9c51c48d8ad607251
parentbc60329a64092cc3ec4bcd6cb2f04eae7347a856 (diff)
Adjust the wrapper declaration macros to support the new wrapper construction method.
-rw-r--r--src/QGlib/global.h20
-rw-r--r--src/QGst/event.h22
-rw-r--r--src/QGst/global.h17
-rw-r--r--src/QGst/message.h34
-rw-r--r--src/QGst/query.h18
5 files changed, 57 insertions, 54 deletions
diff --git a/src/QGlib/global.h b/src/QGlib/global.h
index 18c8183..4ddb8b2 100644
--- a/src/QGlib/global.h
+++ b/src/QGlib/global.h
@@ -44,15 +44,21 @@ typedef RefPointer<Object> ObjectPtr;
} //namespace QGlib
-#define QGLIB_WRAPPER(Class) \
+
+#define QGLIB_WRAPPER_DECLARATION_MACRO(CppClass, CClass, CNamespace, FakeSuperClass) \
public: \
- typedef G##Class CType; \
+ typedef CNamespace##CClass CType; \
protected: \
- Class() {} \
- Class(const Class &); \
- Class & operator=(const Class &); \
- ~Class() {} \
- template <class T> friend class QGlib::RefPointer;
+ CppClass() {} \
+ CppClass(const CppClass &); \
+ CppClass & operator=(const CppClass &); \
+ ~CppClass() {} \
+ template <class T> friend class QGlib::RefPointer; \
+ friend QGlib::RefCountedObject* FakeSuperClass##_new(void*); \
+ private:
+
+#define QGLIB_WRAPPER(Class) \
+ QGLIB_WRAPPER_DECLARATION_MACRO(Class, Class, G, Class)
#if !defined(BOOST_NO_STATIC_ASSERT) //we have c++0x static_assert
diff --git a/src/QGst/event.h b/src/QGst/event.h
index 410c344..34c84e0 100644
--- a/src/QGst/event.h
+++ b/src/QGst/event.h
@@ -74,7 +74,7 @@ public:
*/
class FlushStartEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(FlushStartEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(FlushStart, Event)
public:
static FlushStartEventPtr create();
};
@@ -84,7 +84,7 @@ public:
*/
class FlushStopEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(FlushStopEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(FlushStop, Event)
public:
static FlushStopEventPtr create();
};
@@ -94,7 +94,7 @@ public:
*/
class EosEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(EosEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Eos, Event)
public:
static EosEventPtr create();
};
@@ -104,7 +104,7 @@ public:
*/
class NewSegmentEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(NewSegmentEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(NewSegment, Event)
public:
static NewSegmentEventPtr create(bool update, double rate, double appliedRate, Format format,
qint64 start, qint64 stop, qint64 position);
@@ -125,7 +125,7 @@ public:
*/
class BufferSizeEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(BufferSizeEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(BufferSize, Event)
public:
static BufferSizeEventPtr create(Format format, qint64 minSize, qint64 maxSize, bool isAsync);
@@ -140,7 +140,7 @@ public:
*/
class SinkMessageEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(SinkMessageEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(SinkMessage, Event)
public:
static SinkMessageEventPtr create(const MessagePtr & msg);
@@ -152,7 +152,7 @@ public:
*/
class QosEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(QosEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Qos, Event)
public:
static QosEventPtr create(double proportion, ClockTimeDiff diff, ClockTime timestamp);
@@ -166,7 +166,7 @@ public:
*/
class SeekEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(SeekEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Seek, Event)
public:
static SeekEventPtr create(double rate, Format format, SeekFlags flags, SeekType startType,
qint64 start, SeekType stopType, qint64 stop);
@@ -185,7 +185,7 @@ public:
*/
class NavigationEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(NavigationEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Navigation, Event)
public:
static NavigationEventPtr create(const Structure & structure = Structure());
};
@@ -195,7 +195,7 @@ public:
*/
class LatencyEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(LatencyEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Latency, Event)
public:
static LatencyEventPtr create(ClockTime latency);
@@ -207,7 +207,7 @@ public:
*/
class StepEvent : public Event
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(StepEvent, Event)
+ QGST_WRAPPER_FAKE_SUBCLASS(Step, Event)
public:
static StepEventPtr create(Format format, quint64 amount, double rate,
bool flush, bool intermediate);
diff --git a/src/QGst/global.h b/src/QGst/global.h
index bbf36de..b5a8865 100644
--- a/src/QGst/global.h
+++ b/src/QGst/global.h
@@ -140,18 +140,15 @@ QGST_WRAPPER_DECLARATION(XOverlay)
#undef QGST_WRAPPER_GSTCLASS_DECLARATION
+#define QGST_WRAPPER(Class) \
+ QGLIB_WRAPPER_DECLARATION_MACRO(Class, Class, Gst, Class)
+
#define QGST_WRAPPER_DIFFERENT_C_CLASS(Class, CClass) \
- public: \
- typedef Gst##CClass CType; \
- protected: \
- Class() {} \
- Class(const Class &); \
- Class & operator=(const Class &); \
- ~Class() {} \
- template <class T> friend class QGlib::RefPointer;
+ QGLIB_WRAPPER_DECLARATION_MACRO(Class, CClass, Gst, Class)
+
+#define QGST_WRAPPER_FAKE_SUBCLASS(Sub, Class) \
+ QGLIB_WRAPPER_DECLARATION_MACRO(Sub##Class, Class, Gst, Class)
-#define QGST_WRAPPER(Class) \
- QGST_WRAPPER_DIFFERENT_C_CLASS(Class, Class)
namespace QGst {
/*! A datatype to hold a time, measured in nanoseconds */
diff --git a/src/QGst/message.h b/src/QGst/message.h
index 23f9048..6308974 100644
--- a/src/QGst/message.h
+++ b/src/QGst/message.h
@@ -64,7 +64,7 @@ public:
*/
class EosMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(EosMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Eos, Message)
public:
static EosMessagePtr create(const ObjectPtr & source);
};
@@ -74,7 +74,7 @@ public:
*/
class ErrorMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(ErrorMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Error, Message)
public:
static ErrorMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
@@ -88,7 +88,7 @@ public:
*/
class WarningMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(WarningMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Warning, Message)
public:
static WarningMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
@@ -102,7 +102,7 @@ public:
*/
class InfoMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(InfoMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Info, Message)
public:
static InfoMessagePtr create(const ObjectPtr & source,
const QGlib::Error & error, const char *debug);
@@ -118,7 +118,7 @@ public:
*/
class BufferingMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(BufferingMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Buffering, Message)
public:
static BufferingMessagePtr create(const ObjectPtr & source, int percent);
@@ -136,7 +136,7 @@ public:
*/
class StateChangedMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(StateChangedMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(StateChanged, Message)
public:
static StateChangedMessagePtr create(const ObjectPtr & source,
State oldState, State newState, State pending);
@@ -153,7 +153,7 @@ public:
*/
class StepDoneMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(StepDoneMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(StepDone, Message)
public:
static StepDoneMessagePtr create(const ObjectPtr & source, Format format, quint64 amount,
double rate, bool flush, bool intermediate, quint64 duration, bool eos);
@@ -175,7 +175,7 @@ public:
*/
class StreamStatusMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(StreamStatusMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(StreamStatus, Message)
public:
static StreamStatusMessagePtr create(const ObjectPtr & source,
StreamStatusType type, const ElementPtr & owner);
@@ -191,7 +191,7 @@ public:
*/
class ApplicationMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(ApplicationMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Application, Message)
public:
static ApplicationMessagePtr create(const ObjectPtr & source,
const Structure & structure = Structure());
@@ -202,7 +202,7 @@ public:
*/
class ElementMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(ElementMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Element, Message)
public:
static ElementMessagePtr create(const ObjectPtr & source,
const Structure & structure = Structure());
@@ -215,7 +215,7 @@ public:
*/
class SegmentDoneMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(SegmentDoneMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(SegmentDone, Message)
public:
static SegmentDoneMessagePtr create(const ObjectPtr & source, Format format, qint64 position);
@@ -228,7 +228,7 @@ public:
*/
class DurationMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(DurationMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Duration, Message)
public:
static DurationMessagePtr create(const ObjectPtr & source, Format format, qint64 duration);
@@ -241,7 +241,7 @@ public:
*/
class LatencyMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(LatencyMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Latency, Message)
public:
static LatencyMessagePtr create(const ObjectPtr & source);
};
@@ -253,7 +253,7 @@ public:
*/
class AsyncDoneMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(AsyncDoneMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(AsyncDone, Message)
public:
static AsyncDoneMessagePtr create(const ObjectPtr & source);
};
@@ -263,7 +263,7 @@ public:
*/
class RequestStateMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(RequestStateMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(RequestState, Message)
public:
static RequestStateMessagePtr create(const ObjectPtr & source, State state);
@@ -275,7 +275,7 @@ public:
*/
class StepStartMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(StepStartMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(StepStart, Message)
public:
static StepStartMessagePtr create(const ObjectPtr & source, bool active, Format format,
quint64 amount, double rate, bool flush, bool intermediate);
@@ -292,7 +292,7 @@ public:
*/
class QosMessage : public Message
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(QosMessage, Message)
+ QGST_WRAPPER_FAKE_SUBCLASS(Qos, Message)
public:
static QosMessagePtr create(const ObjectPtr & source, bool live, quint64 runningTime,
quint64 streamTime, quint64 timestamp, quint64 duration);
diff --git a/src/QGst/query.h b/src/QGst/query.h
index 33fd166..1033825 100644
--- a/src/QGst/query.h
+++ b/src/QGst/query.h
@@ -66,7 +66,7 @@ public:
*/
class PositionQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(PositionQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Position, Query)
public:
static PositionQueryPtr create(Format format);
@@ -80,7 +80,7 @@ public:
*/
class DurationQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(DurationQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Duration, Query)
public:
static DurationQueryPtr create(Format format);
@@ -94,7 +94,7 @@ public:
*/
class LatencyQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(LatencyQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Latency, Query)
public:
static LatencyQueryPtr create();
@@ -110,7 +110,7 @@ public:
*/
class SeekingQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(SeekingQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Seeking, Query)
public:
static SeekingQueryPtr create(Format format);
@@ -127,7 +127,7 @@ public:
*/
class SegmentQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(SegmentQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Segment, Query)
public:
static SegmentQueryPtr create(Format format);
@@ -144,7 +144,7 @@ public:
*/
class ConvertQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(ConvertQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Convert, Query)
public:
static ConvertQueryPtr create(Format sourceFormat, qint64 value, Format destinationFormat);
@@ -162,7 +162,7 @@ public:
*/
class FormatsQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(FormatsQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Formats, Query)
public:
static FormatsQueryPtr create();
@@ -176,7 +176,7 @@ public:
*/
class BufferingQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(BufferingQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Buffering, Query)
public:
static BufferingQueryPtr create(Format format);
@@ -205,7 +205,7 @@ public:
*/
class UriQuery : public Query
{
- QGST_WRAPPER_DIFFERENT_C_CLASS(UriQuery, Query)
+ QGST_WRAPPER_FAKE_SUBCLASS(Uri, Query)
public:
static UriQueryPtr create();