pull/51/merge
Tristan Rowley 1 week ago committed by GitHub
commit 6dc36d1704
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 21
      src/uClock.cpp
  2. 11
      src/uClock.h

@ -183,13 +183,30 @@ void uClockClass::stop()
} }
} }
void uClockClass::continue_playing() {
if (state == PAUSED) {
start_timer = millis();
if (mode == INTERNAL_CLOCK) {
state = STARTED;
} else {
state = STARTING;
}
if (onClockContinueCallback) {
onClockContinueCallback();
}
}
}
void uClockClass::pause() void uClockClass::pause()
{ {
if (mode == INTERNAL_CLOCK) { if (mode == INTERNAL_CLOCK) {
if (state == PAUSED) { if (state == PAUSED) {
start(); continue_playing();
} else { } else {
stop(); state = PAUSED;
if (onClockPauseCallback) {
onClockPauseCallback();
}
} }
} }
} }

@ -116,6 +116,14 @@ class uClockClass {
onClockStopCallback = callback; onClockStopCallback = callback;
} }
void setOnClockContinue(void (*callback)()) {
onClockStartCallback = callback;
}
void setOnClockPause(void (*callback)()) {
onClockPauseCallback = callback;
}
void init(); void init();
void setPPQN(PPQNResolution resolution); void setPPQN(PPQNResolution resolution);
@ -127,6 +135,7 @@ class uClockClass {
void start(); void start();
void stop(); void stop();
void pause(); void pause();
void continue_playing();
void setTempo(float bpm); void setTempo(float bpm);
float getTempo(); float getTempo();
@ -171,6 +180,8 @@ class uClockClass {
void (*onSync24Callback)(uint32_t tick); void (*onSync24Callback)(uint32_t tick);
void (*onClockStartCallback)(); void (*onClockStartCallback)();
void (*onClockStopCallback)(); void (*onClockStopCallback)();
void (*onClockContinueCallback)();
void (*onClockPauseCallback)();
// internal clock control // internal clock control
// uint16_t ppqn; // uint16_t ppqn;

Loading…
Cancel
Save