qmlglsink: Expose itemInitialized as property
authorJochen Henneberg <jh@henneberg-systemdesign.com>
Wed, 6 Sep 2017 07:59:56 +0000 (07:59 +0000)
committerMatthew Waters <matthew@centricular.com>
Thu, 14 Sep 2017 05:12:12 +0000 (15:12 +1000)
Instead of just signalling when ready exposing the state
as a property allows us to bind at any time if player is
loaded async.

ext/qt/qtitem.cc
ext/qt/qtitem.h

index b20a6fb..65b883e 100644 (file)
@@ -178,6 +178,12 @@ QtGLVideoItem::getForceAspectRatio()
   return this->priv->force_aspect_ratio;
 }
 
+bool
+QtGLVideoItem::itemInitialized()
+{
+  return m_openGlContextInitialized;
+}
+
 QSGNode *
 QtGLVideoItem::updatePaintNode(QSGNode * oldNode,
     UpdatePaintNodeData * updatePaintNodeData)
@@ -290,7 +296,7 @@ QtGLVideoItem::onSceneGraphInitialized ()
   GST_DEBUG ("%p created wrapped GL context %" GST_PTR_FORMAT, this,
       this->priv->other_context);
 
-  emit itemInitialized();
+  emit itemInitializedChanged();
 }
 
 void
index 8cffc24..065d043 100644 (file)
@@ -64,6 +64,11 @@ class InitializeSceneGraph;
 class QtGLVideoItem : public QQuickItem, protected QOpenGLFunctions
 {
     Q_OBJECT
+
+    Q_PROPERTY(bool itemInitialized
+               READ itemInitialized
+               NOTIFY itemInitializedChanged)
+
 public:
     QtGLVideoItem();
     ~QtGLVideoItem();
@@ -72,13 +77,14 @@ public:
     void getDAR(gint *, gint *);
     void setForceAspectRatio(bool);
     bool getForceAspectRatio();
+    bool itemInitialized();
 
     QSharedPointer<QtGLVideoItemInterface> getInterface() { return proxy; };
     /* private for C interface ... */
     QtGLVideoItemPrivate *priv;
 
 Q_SIGNALS:
-    void itemInitialized();
+    void itemInitializedChanged();
 
 private Q_SLOTS:
     void handleWindowChanged(QQuickWindow * win);