aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/Metronome.h
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2021-07-14 09:59:56 +0300
committerRiku Isokoski <riksu9000@gmail.com>2021-07-14 09:59:56 +0300
commit95b8a56dd42da067b56e37111577427518d825fb (patch)
tree2a5d20d061f27e510bd7bd4e1af1621ad8a6d4b0 /src/displayapp/screens/Metronome.h
parent239b5547eae64d05f5d7544f0e11bfb877a75a02 (diff)
parenta07b6382aef3c30d8ea8f28fcc3cc880d7afd747 (diff)
Merge branch 'develop' into fix_touchevent_tap
Diffstat (limited to 'src/displayapp/screens/Metronome.h')
-rw-r--r--src/displayapp/screens/Metronome.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/displayapp/screens/Metronome.h b/src/displayapp/screens/Metronome.h
new file mode 100644
index 00000000..3a1f1084
--- /dev/null
+++ b/src/displayapp/screens/Metronome.h
@@ -0,0 +1,34 @@
+#pragma once
+
+#include "systemtask/SystemTask.h"
+#include "components/motor/MotorController.h"
+
+#include <array>
+
+namespace Pinetime::Applications::Screens {
+
+ class Metronome : public Screen {
+ public:
+ Metronome(DisplayApp* app, Controllers::MotorController& motorController, System::SystemTask& systemTask);
+ ~Metronome() override;
+ bool Refresh() override;
+ bool OnTouchEvent(TouchEvents event) override;
+ void OnEvent(lv_obj_t* obj, lv_event_t event);
+ enum class States { Running, Stopped };
+
+ private:
+ bool running;
+ States currentState;
+ TickType_t startTime;
+ TickType_t tappedTime = 0;
+ Controllers::MotorController& motorController;
+ System::SystemTask& systemTask;
+ uint16_t bpm = 120;
+ uint8_t bpb = 4;
+ uint8_t counter = 1;
+
+ lv_obj_t *bpmArc, *bpmTap, *bpmValue, *bpmLegend;
+ lv_obj_t *bpbDropdown, *bpbLegend;
+ lv_obj_t *playPause, *playPauseLabel;
+ };
+}