From 453527c5410d55e54041b965c6f6ccb434fdb9a3 Mon Sep 17 00:00:00 2001 From: Adam Wonak Date: Tue, 27 May 2025 21:29:31 -0700 Subject: [PATCH] add select source behavior for new clock resolutions. --- clock.h | 4 +++- examples/clock_mod/clock_mod.ino | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/clock.h b/clock.h index 62930cd..6578b1f 100644 --- a/clock.h +++ b/clock.h @@ -49,6 +49,7 @@ class Clock { // Set the source of the clock mode. void SetSource(Source source) { + uClock.stop(); switch (source) { case SOURCE_INTERNAL: uClock.setClockMode(uClock.INTERNAL_CLOCK); @@ -56,12 +57,13 @@ class Clock { case SOURCE_EXTERNAL_PPQN_24: uClock.setClockMode(uClock.EXTERNAL_CLOCK); uClock.setInputPPQN(uClock.PPQN_24); + break; case SOURCE_EXTERNAL_PPQN_4: uClock.setClockMode(uClock.EXTERNAL_CLOCK); uClock.setInputPPQN(uClock.PPQN_4); - default: break; } + uClock.start(); } bool ExternalSource() { diff --git a/examples/clock_mod/clock_mod.ino b/examples/clock_mod/clock_mod.ino index 28987c8..fa6979a 100644 --- a/examples/clock_mod/clock_mod.ino +++ b/examples/clock_mod/clock_mod.ino @@ -157,7 +157,12 @@ void HandleRotate(Direction dir, int val) { break; case 1: - app.selected_source = static_cast((app.selected_source + 1) % SOURCE_LAST); + if (static_cast(app.selected_source) == 0 && val < 0) { + app.selected_source = static_cast(SOURCE_LAST - 1); + } else { + app.selected_source = static_cast((app.selected_source + val) % SOURCE_LAST); + } + gravity.clock.SetSource(app.selected_source); app.refresh_screen = true; break;