diff --git a/src/uClock.cpp b/src/uClock.cpp index 0fc802d..ee8f114 100755 --- a/src/uClock.cpp +++ b/src/uClock.cpp @@ -191,6 +191,9 @@ void uClockClass::continue_playing() { } else { state = STARTING; } + if (onClockContinueCallback) { + onClockContinueCallback(); + } } } @@ -201,6 +204,9 @@ void uClockClass::pause() continue_playing(); } else { state = PAUSED; + if (onClockPauseCallback) { + onClockPauseCallback(); + } } } } diff --git a/src/uClock.h b/src/uClock.h index e7bfd49..5323035 100755 --- a/src/uClock.h +++ b/src/uClock.h @@ -116,6 +116,14 @@ class uClockClass { onClockStopCallback = callback; } + void setOnClockContinue(void (*callback)()) { + onClockStartCallback = callback; + } + + void setOnClockPause(void (*callback)()) { + onClockPauseCallback = callback; + } + void init(); void setPPQN(PPQNResolution resolution); @@ -172,6 +180,8 @@ class uClockClass { void (*onSync24Callback)(uint32_t tick); void (*onClockStartCallback)(); void (*onClockStopCallback)(); + void (*onClockContinueCallback)(); + void (*onClockPauseCallback)(); // internal clock control // uint16_t ppqn;