00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef QGST_GLOBAL_H
00018 #define QGST_GLOBAL_H
00019
00020 #include "../QGlib/type.h"
00021 #include <QtCore/QtGlobal>
00022 #include <QtCore/QDate>
00023 #include <QtCore/QSharedPointer>
00024
00025
00026 #if defined(QtGStreamer_EXPORTS)
00027 # define QTGSTREAMER_EXPORT Q_DECL_EXPORT
00028 #else
00029 # define QTGSTREAMER_EXPORT Q_DECL_IMPORT
00030 #endif
00031
00032 #if !defined(Q_OS_WIN) && !defined(Q_CC_NOKIAX86) && \
00033 !defined(Q_CC_RVCT) && defined(QT_VISIBILITY_AVAILABLE)
00034 # define QTGSTREAMER_NO_EXPORT __attribute__((visibility("hidden")))
00035 #else
00036 # define QTGSTREAMER_NO_EXPORT
00037 #endif
00038
00039 #define QGST_REGISTER_TYPE(T) \
00040 QGLIB_REGISTER_TYPE_WITH_EXPORT_MACRO(T, QTGSTREAMER_EXPORT)
00041
00042
00043 #include "enums.h"
00044
00045
00046 QGST_REGISTER_TYPE(QDate)
00047 QGST_REGISTER_TYPE(QDateTime)
00048
00049
00050 #define QGST_WRAPPER_GSTCLASS_DECLARATION(Class) \
00051 typedef struct _Gst##Class Gst##Class;
00052
00053 #define QGST_WRAPPER_DIFFERENT_GSTCLASS_DECLARATION(Class, CClass) \
00054 typedef struct _Gst##CClass Gst##Class;
00055
00056 #define QGST_WRAPPER_REFPOINTER_DECLARATION(Class) \
00057 namespace QGst { \
00058 class Class; \
00059 typedef QGlib::RefPointer<Class> Class##Ptr; \
00060 }
00061
00062 #define QGST_WRAPPER_DECLARATION(Class) \
00063 QGST_WRAPPER_GSTCLASS_DECLARATION(Class) \
00064 QGST_WRAPPER_REFPOINTER_DECLARATION(Class)
00065
00066 QGST_WRAPPER_DECLARATION(Bin)
00067 QGST_WRAPPER_DECLARATION(Bus)
00068 QGST_WRAPPER_DECLARATION(Caps)
00069 QGST_WRAPPER_DECLARATION(ChildProxy)
00070 QGST_WRAPPER_DECLARATION(Clock)
00071 QGST_WRAPPER_DECLARATION(ColorBalanceChannel)
00072 QGST_WRAPPER_DECLARATION(ColorBalance)
00073 QGST_WRAPPER_DECLARATION(Element)
00074 QGST_WRAPPER_DECLARATION(ElementFactory)
00075 QGST_WRAPPER_DECLARATION(GhostPad)
00076 QGST_WRAPPER_DECLARATION(Message)
00077 QGST_WRAPPER_REFPOINTER_DECLARATION(EosMessage)
00078 QGST_WRAPPER_REFPOINTER_DECLARATION(ErrorMessage)
00079 QGST_WRAPPER_REFPOINTER_DECLARATION(WarningMessage)
00080 QGST_WRAPPER_REFPOINTER_DECLARATION(InfoMessage)
00081 QGST_WRAPPER_REFPOINTER_DECLARATION(TagMessage)
00082 QGST_WRAPPER_REFPOINTER_DECLARATION(BufferingMessage)
00083 QGST_WRAPPER_REFPOINTER_DECLARATION(StateChangedMessage)
00084 QGST_WRAPPER_REFPOINTER_DECLARATION(StepDoneMessage)
00085 QGST_WRAPPER_REFPOINTER_DECLARATION(StreamStatusMessage)
00086 QGST_WRAPPER_REFPOINTER_DECLARATION(ApplicationMessage)
00087 QGST_WRAPPER_REFPOINTER_DECLARATION(ElementMessage)
00088 QGST_WRAPPER_REFPOINTER_DECLARATION(SegmentDoneMessage)
00089 QGST_WRAPPER_REFPOINTER_DECLARATION(DurationMessage)
00090 QGST_WRAPPER_REFPOINTER_DECLARATION(LatencyMessage)
00091 QGST_WRAPPER_REFPOINTER_DECLARATION(AsyncDoneMessage)
00092 QGST_WRAPPER_REFPOINTER_DECLARATION(RequestStateMessage)
00093 QGST_WRAPPER_REFPOINTER_DECLARATION(StepStartMessage)
00094 QGST_WRAPPER_REFPOINTER_DECLARATION(QosMessage)
00095 QGST_WRAPPER_DECLARATION(MiniObject)
00096 QGST_WRAPPER_DECLARATION(Object)
00097 QGST_WRAPPER_DECLARATION(Pad)
00098 QGST_WRAPPER_DECLARATION(Pipeline)
00099 QGST_WRAPPER_DECLARATION(PluginFeature)
00100 QGST_WRAPPER_DECLARATION(PropertyProbe)
00101 QGST_WRAPPER_DECLARATION(Query)
00102 QGST_WRAPPER_REFPOINTER_DECLARATION(PositionQuery)
00103 QGST_WRAPPER_REFPOINTER_DECLARATION(DurationQuery)
00104 QGST_WRAPPER_REFPOINTER_DECLARATION(LatencyQuery)
00105 QGST_WRAPPER_REFPOINTER_DECLARATION(SeekingQuery)
00106 QGST_WRAPPER_REFPOINTER_DECLARATION(SegmentQuery)
00107 QGST_WRAPPER_REFPOINTER_DECLARATION(ConvertQuery)
00108 QGST_WRAPPER_REFPOINTER_DECLARATION(FormatsQuery)
00109 QGST_WRAPPER_REFPOINTER_DECLARATION(BufferingQuery)
00110 QGST_WRAPPER_REFPOINTER_DECLARATION(UriQuery)
00111 QGST_WRAPPER_DECLARATION(Buffer)
00112 QGST_WRAPPER_DECLARATION(BufferList)
00113 QGST_WRAPPER_GSTCLASS_DECLARATION(BufferListIterator)
00114 QGST_WRAPPER_DECLARATION(Event)
00115 QGST_WRAPPER_REFPOINTER_DECLARATION(FlushStartEvent)
00116 QGST_WRAPPER_REFPOINTER_DECLARATION(FlushStopEvent)
00117 QGST_WRAPPER_REFPOINTER_DECLARATION(EosEvent)
00118 QGST_WRAPPER_REFPOINTER_DECLARATION(NewSegmentEvent)
00119 QGST_WRAPPER_REFPOINTER_DECLARATION(TagEvent)
00120 QGST_WRAPPER_REFPOINTER_DECLARATION(BufferSizeEvent)
00121 QGST_WRAPPER_REFPOINTER_DECLARATION(SinkMessageEvent)
00122 QGST_WRAPPER_REFPOINTER_DECLARATION(QosEvent)
00123 QGST_WRAPPER_REFPOINTER_DECLARATION(SeekEvent)
00124 QGST_WRAPPER_REFPOINTER_DECLARATION(NavigationEvent)
00125 QGST_WRAPPER_REFPOINTER_DECLARATION(LatencyEvent)
00126 QGST_WRAPPER_REFPOINTER_DECLARATION(StepEvent)
00127 QGST_WRAPPER_DECLARATION(StreamVolume)
00128 QGST_WRAPPER_GSTCLASS_DECLARATION(Structure)
00129 QGST_WRAPPER_DIFFERENT_GSTCLASS_DECLARATION(TagList,Structure)
00130
00131 namespace QGst {
00132 class Structure;
00133 class SharedStructure;
00134 typedef QSharedPointer<SharedStructure> StructurePtr;
00135 }
00136 QGST_WRAPPER_GSTCLASS_DECLARATION(URIHandler)
00137 QGST_WRAPPER_REFPOINTER_DECLARATION(UriHandler)
00138 QGST_WRAPPER_DECLARATION(VideoOrientation)
00139 QGST_WRAPPER_DECLARATION(XOverlay)
00140
00141 #undef QGST_WRAPPER_DECLARATION
00142 #undef QGST_WRAPPER_REFPOINTER_DECLARATION
00143 #undef QGST_WRAPPER_GSTCLASS_DECLARATION
00144
00145
00146 #define QGST_WRAPPER(Class) \
00147 QGLIB_WRAPPER_DECLARATION_MACRO(Class, Class, Gst, Class)
00148
00149 #define QGST_WRAPPER_DIFFERENT_C_CLASS(Class, CClass) \
00150 QGLIB_WRAPPER_DECLARATION_MACRO(Class, CClass, Gst, Class)
00151
00152 #define QGST_WRAPPER_FAKE_SUBCLASS(Sub, Class) \
00153 QGLIB_WRAPPER_DECLARATION_MACRO(Sub##Class, Class, Gst, Class)
00154
00155 #define QGST_REGISTER_SUBCLASS(BASECLASS, TYPE) \
00156 namespace QGlib { \
00157 template <> \
00158 struct GetTypeImpl<QGst::TYPE##BASECLASS> { \
00159 inline operator Type() { return GetType<QGst::BASECLASS>(); }; \
00160 }; \
00161 }
00162
00163 #endif