summaryrefslogtreecommitdiff
path: root/src/object.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/object.h')
-rw-r--r--src/object.h37
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