diff options
author | wm4 <wm4@nowhere> | 2016-03-10 21:45:48 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-03-10 21:45:48 +0100 |
commit | 4d7638ab0f2f841de4992ca519d6556e5b650a44 (patch) | |
tree | 89c4e112b4cef52c8279b1bf3b8b93e39bc7d31a /libmpv/qml_direct/main.h | |
download | mpv-examples-4d7638ab0f2f841de4992ca519d6556e5b650a44.tar.bz2 mpv-examples-4d7638ab0f2f841de4992ca519d6556e5b650a44.tar.xz |
Reimport client API examples from mpv main repository
From commit d8b27ee4de4e26d594855960a4421b99db9e76ea.
Diffstat (limited to 'libmpv/qml_direct/main.h')
-rw-r--r-- | libmpv/qml_direct/main.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libmpv/qml_direct/main.h b/libmpv/qml_direct/main.h new file mode 100644 index 0000000..b0310ff --- /dev/null +++ b/libmpv/qml_direct/main.h @@ -0,0 +1,51 @@ +#ifndef MPVRENDERER_H_ +#define MPVRENDERER_H_ + +#include <QtQuick/QQuickItem> + +#include <mpv/client.h> +#include <mpv/opengl_cb.h> +#include <mpv/qthelper.hpp> + +class MpvRenderer : public QObject +{ + Q_OBJECT + mpv::qt::Handle mpv; + mpv_opengl_cb_context *mpv_gl; + QQuickWindow *window; + QSize size; + + friend class MpvObject; +public: + MpvRenderer(mpv::qt::Handle a_mpv, mpv_opengl_cb_context *a_mpv_gl); + virtual ~MpvRenderer(); +public slots: + void paint(); +}; + +class MpvObject : public QQuickItem +{ + Q_OBJECT + + mpv::qt::Handle mpv; + mpv_opengl_cb_context *mpv_gl; + MpvRenderer *renderer; + +public: + MpvObject(QQuickItem * parent = 0); + virtual ~MpvObject(); +public slots: + void command(const QVariant& params); + void sync(); + void swapped(); + void cleanup(); +signals: + void onUpdate(); +private slots: + void doUpdate(); + void handleWindowChanged(QQuickWindow *win); +private: + static void on_update(void *ctx); +}; + +#endif |