From 5e6e4615264214cf86cd74d63938c503fd36b74d Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 25 Dec 2020 01:09:18 +0800 Subject: Proper event-based playback interruption. Also fixed random pauses after seeking. This should address everything left over by 64fd118e. --- core/qmpmidiplay.hpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'core/qmpmidiplay.hpp') diff --git a/core/qmpmidiplay.hpp b/core/qmpmidiplay.hpp index b6a40d9..a4245ae 100644 --- a/core/qmpmidiplay.hpp +++ b/core/qmpmidiplay.hpp @@ -3,7 +3,9 @@ #define QMPMIDIPLAY_H #include #include +#include #include +#include #include #include #include @@ -70,6 +72,8 @@ private: //raw tempo, timesig num., timesig den., division, keysig //thread control uint32_t tceptr, tcpaused, ct; + std::mutex intmtx; + std::condition_variable intcv; bool tcstop; uint32_t finished, resumed; uint32_t pbr[16], pbv[16]; @@ -121,6 +125,7 @@ public: void setTCeptr(uint32_t ep, uint32_t st); uint32_t getTCpaused(); void setTCpaused(uint32_t ps); + void interrupt(); uint32_t isFinished(); bool stopFlag(); void setResumed(); -- cgit v1.2.3