CallbackClock.h 666 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include "Clock.h"
  3. namespace midi {
  4. class CallbackClock : public Clock
  5. {
  6. public:
  7. typedef void (*TickCallback)( void *userData );
  8. private:
  9. TickCallback tickCallback;
  10. std::mutex tickCallback_mutex;
  11. void* tickCallbackData;
  12. std::mutex tickCallbackData_mutex;
  13. public:
  14. CallbackClock();
  15. CallbackClock(TickCallback tickCallback);
  16. CallbackClock(TickCallback tickCallback, void* tickCallbackData);
  17. TickCallback getTickCallback();
  18. void setTickCallback(TickCallback tickCallback);
  19. void* getTickCallbackData();
  20. void setTickCallbackData(void* tickCallbackData);
  21. public:
  22. virtual void tick();
  23. };
  24. } // namespace