From bd165c0254b9095bb9e5ea54def56b6404033ebe Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Thu, 30 Apr 2020 01:12:38 +0800 Subject: Add visualization renderer. Add API for getting raw pitch bend values. Fix non-compliant RPN handling. The visualization renderer is still at the "proof-of-concept" stage. It's not very usable (yet). --- visualization/renderer/qmpvisrendercore.hpp | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 visualization/renderer/qmpvisrendercore.hpp (limited to 'visualization/renderer/qmpvisrendercore.hpp') diff --git a/visualization/renderer/qmpvisrendercore.hpp b/visualization/renderer/qmpvisrendercore.hpp new file mode 100644 index 0000000..0c024f1 --- /dev/null +++ b/visualization/renderer/qmpvisrendercore.hpp @@ -0,0 +1,44 @@ +#ifndef QMPVISRENDERCORE_HPP +#define QMPVISRENDERCORE_HPP + +#include + +#include +#include "qmpcorepublic.hpp" + +class qmpPluginAPIStub; +class CMidiPlayer; +class qmpSettingsRO; + +class QProcess; + +class qmpVisRenderCore:public QObject +{ + Q_OBJECT +public: + qmpVisRenderCore(); + void loadVisualizationLibrary(); + void unloadVisualizationLibrary(); + void setMIDIFile(const char* url); + void startRender(); + + qmpSettingsRO* settings(){return msettings;} + +private: + qmpPluginIntf *vp; + qmpFuncBaseIntf *vf; + callback_t startcb; + void *mp; + qmpPluginAPIStub *api; + CMidiPlayer *player; + qmpSettingsRO *msettings; + QProcess *ffmpegproc; + typedef qmpPluginIntf*(*GetInterface_func)(qmpPluginAPI*); + typedef void(*SwitchMode_func)(void(*frameCallback)(void*,size_t),bool hidewindow); + + friend class qmpPluginAPIStub; + static void framefunc(void* px,size_t sz); + static qmpVisRenderCore *inst; +}; + +#endif // QMPVISRENDERCORE_HPP -- cgit v1.2.3