From b7842ae90b28618affdad6977c9c814aa573a3fe Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Mon, 2 Jan 2017 22:09:28 +0800 Subject: Can show measure indicators now. Added new options to specify custom fonts. Added a new handler API. Minor rework on handler calling. --- visualization/qmpvisualization.hpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'visualization/qmpvisualization.hpp') diff --git a/visualization/qmpvisualization.hpp b/visualization/qmpvisualization.hpp index 21339b5..fea96f4 100644 --- a/visualization/qmpvisualization.hpp +++ b/visualization/qmpvisualization.hpp @@ -1,9 +1,10 @@ #ifndef QMPVISUALIZATION_H #define QMPVISUALIZATION_H -#include #include #include +#include +#include #include #include #include @@ -19,12 +20,20 @@ class CReaderCallBack:public IMidiCallBack CReaderCallBack(qmpVisualization *_par){par=_par;} void callBack(void *callerdata,void *userdata); }; -class CHandlerCallBack:public IMidiCallBack +class CEventHandlerCallBack:public IMidiCallBack +{ + private: + qmpVisualization *par; + public: + CEventHandlerCallBack(qmpVisualization *_par){par=_par;} + void callBack(void*,void*); +}; +class CFRFinishedCallBack:public IMidiCallBack { private: qmpVisualization *par; public: - CHandlerCallBack(qmpVisualization *_par){par=_par;} + CFRFinishedCallBack(qmpVisualization *_par){par=_par;} void callBack(void*,void*); }; struct MidiVisualEvent @@ -35,13 +44,16 @@ struct MidiVisualEvent }; class qmpVisualization:public qmpPluginIntf { - friend class CHandlerCallBack; + friend class CEventHandlerCallBack; + friend class CReaderCallBack; friend class CloseHandler; + friend class CFRFinishedCallBack; private: qmpPluginAPI* api; CReaderCallBack* cb; - CHandlerCallBack* hcb; + CEventHandlerCallBack* hcb; qmpVisualizationIntf* vi; + CFRFinishedCallBack* frcb; std::thread* rendererTh; std::vectorpool; smHandler *h,*closeh; @@ -58,16 +70,17 @@ class qmpVisualization:public qmpPluginIntf uint32_t ctc,ctk,fintk,elb; double etps; bool shouldclose,playing; - int hvif,herif,hehif; + int hvif,herif,hehif,hfrf; + std::vector>tspool; int traveld[16][128];bool notestatus[16][128],lastnotestatus[16][128]; int spectra[16][128],spectrar[16][128]; void drawCube(smvec3d a,smvec3d b,DWORD col,SMTEX tex); void showThread(); + void pushNoteOn(uint32_t tc,uint32_t ch,uint32_t key,uint32_t vel); + void pushNoteOff(uint32_t tc,uint32_t ch,uint32_t key); public: qmpVisualization(qmpPluginAPI* _api); ~qmpVisualization(); - void pushNoteOn(uint32_t tc,uint32_t ch,uint32_t key,uint32_t vel); - void pushNoteOff(uint32_t tc,uint32_t ch,uint32_t key); bool update(); void start(); void stop(); -- cgit v1.2.3