15 std::function<
void(
int)> startTimerCallback,
16 std::function<
void()> stopTimerCallback) {
17 mode_manager_ = mode_manager;
20 startTimerCallback_ = std::move(startTimerCallback);
21 stopTimerCallback_ = std::move(stopTimerCallback);
24 inference->RegisterDataCallback([
this](ModelOutput result) {
25 std::cout <<
"New Gesture: " << LABELS.find(result)->second <<
'\n';
28 buzzer_->
PlayNote(PWM::NoteName::C, 7, 300);
31 auto mode = mode_manager_->GetMode();
32 bool landscape = mode_manager_->IsLandscape();
36 case ModelOutput::TILT_RIGHT:
38 if (mode == ModeManager::Mode::TIMER &&
39 !mode_manager_->IsTimerRunning()) {
40 mode_manager_->AdjustTimer(+300);
43 else if (mode == ModeManager::Mode::TIME && !landscape) {
44 mode_manager_->SetLandscape(
true);
48 else if (mode == ModeManager::Mode::TIMER && !landscape &&
49 mode_manager_->IsTimerRunning()) {
50 mode_manager_->SetLandscape(true);
55 case ModelOutput::TILT_LEFT:
57 if (mode == ModeManager::Mode::TIMER &&
58 !mode_manager_->IsTimerRunning()) {
59 mode_manager_->AdjustTimer(-300);
62 else if (mode == ModeManager::Mode::TIME && landscape) {
63 mode_manager_->SetLandscape(
false);
67 else if (mode == ModeManager::Mode::TIMER && landscape &&
68 mode_manager_->IsTimerRunning()) {
69 mode_manager_->SetLandscape(
false);
74 case ModelOutput::SHAKE_FORWARD:
76 if (mode == ModeManager::Mode::TIMER &&
77 !mode_manager_->IsTimerRunning()) {
78 startTimerCallback_(mode_manager_->GetRemainingTimerSeconds());
82 case ModelOutput::SHAKE_BACKWARD:
84 if (mode == ModeManager::Mode::TIMER) {
99 PWM* buzzer_ =
nullptr;
100 std::function<void(
int)> startTimerCallback_;
101 std::function<void()> stopTimerCallback_;