diff options
Diffstat (limited to 'src/object.h')
-rw-r--r-- | src/object.h | 37 |
1 files changed, 9 insertions, 28 deletions
diff --git a/src/object.h b/src/object.h index 60b8e0e..059d55e 100644 --- a/src/object.h +++ b/src/object.h @@ -3,8 +3,10 @@ #include <QObject> -typedef struct _GParamSpec GParamSpec; -typedef struct _GstObject GstObject; +typedef unsigned long GType; +typedef struct _GParamSpec GParamSpec; +typedef struct _GstElementFactory GstElementFactory; +typedef struct _GstObject GstObject; namespace QQuickStreamer { @@ -13,15 +15,14 @@ class Object : public QObject public: Q_OBJECT_CHECK - template<class Wrapper, class Target> - friend Wrapper *wrap(Target *); + explicit Object(GstObject *target, QObject *parent = Q_NULLPTR); + Object(const Object &other); -protected: - explicit Object(GstObject *target); - -public: ~Object(); + static int registerElementFactory(GstElementFactory *factory); + static int registerObjectClass(GType type); + const QMetaObject *metaObject() const Q_DECL_OVERRIDE; void *qt_metacast(const char *classname) Q_DECL_OVERRIDE; int qt_metacall(QMetaObject::Call call, int id, void **args) Q_DECL_OVERRIDE; @@ -35,26 +36,6 @@ private: GstObject *const m_target; }; -namespace Private { - -void *findWrapper(void *object); - -} - -template<class Wrapper, class Target> -inline Wrapper *wrap(Target *target) -{ - if (target == Q_NULLPTR) - return Q_NULLPTR; - - Wrapper *wrapper = static_cast<Wrapper *>(Private::findWrapper(target)); - - if (wrapper == Q_NULLPTR) - wrapper = new Wrapper(target); - - return wrapper; -} - } // namespace QQuickStreamer #endif // QQUICKSTREAMEROBJECT_H |