|
@@ -0,0 +1,59 @@
|
|
|
|
+#include "CallbackClock.h"
|
|
|
|
+
|
|
|
|
+namespace midi {
|
|
|
|
+
|
|
|
|
+CallbackClock::CallbackClock()
|
|
|
|
+ : CallbackClock(0, 0)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+CallbackClock::CallbackClock(TickCallback tickCallback)
|
|
|
|
+ : CallbackClock(tickCallback, 0)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+CallbackClock::CallbackClock(TickCallback callback, void* callbackData)
|
|
|
|
+ : tickCallback(callback), tickCallbackData(callbackData)
|
|
|
|
+{
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+CallbackClock::TickCallback CallbackClock::getTickCallback()
|
|
|
|
+{
|
|
|
|
+ tickCallback_mutex.lock();
|
|
|
|
+ TickCallback c = tickCallback;
|
|
|
|
+ tickCallback_mutex.unlock();
|
|
|
|
+ return c;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CallbackClock::setTickCallback(TickCallback c)
|
|
|
|
+{
|
|
|
|
+ tickCallback_mutex.lock();
|
|
|
|
+ tickCallback = c;
|
|
|
|
+ tickCallback_mutex.unlock();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void* CallbackClock::getTickCallbackData()
|
|
|
|
+{
|
|
|
|
+ tickCallbackData_mutex.lock();
|
|
|
|
+ void* d = tickCallbackData;
|
|
|
|
+ tickCallbackData_mutex.unlock();
|
|
|
|
+ return d;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CallbackClock::setTickCallbackData(void* d)
|
|
|
|
+{
|
|
|
|
+ tickCallbackData_mutex.lock();
|
|
|
|
+ tickCallbackData = d;
|
|
|
|
+ tickCallbackData_mutex.unlock();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CallbackClock::tick()
|
|
|
|
+{
|
|
|
|
+ TickCallback c = getTickCallback();
|
|
|
|
+ if(c) {
|
|
|
|
+ c(getTickCallbackData());
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+};
|