haptics: buzz on boot, and when changing focus of items.

custom
Robin Howard 1 year ago
parent 135185f12b
commit 7318f53fd8
  1. 10
      src/ui/lvgl_task.cpp
  2. 6
      src/ui/ui_fsm.cpp

@ -49,6 +49,8 @@ namespace ui {
[[maybe_unused]] static const char* kTag = "ui_task";
static auto group_focus_cb(lv_group_t *group) -> void;
UiTask::UiTask() {}
UiTask::~UiTask() {
@ -75,6 +77,7 @@ auto UiTask::Main() -> void {
if (input_ && current_screen_->group() != current_group) {
current_group = current_screen_->group();
lv_indev_set_group(input_->registration(), current_group);
lv_group_set_focus_cb(current_group, &group_focus_cb);
}
if (current_screen_) {
@ -98,4 +101,11 @@ auto UiTask::Start() -> UiTask* {
return ret;
}
static auto group_focus_cb(lv_group_t *group) -> void {
// TODO(robin): we probably want to vary this, configure this, etc
events::System().Dispatch(system_fsm::HapticTrigger{
.effect = drivers::Haptics::Effect::kMediumClick1_100Pct,
});
}
} // namespace ui

@ -12,6 +12,7 @@
#include "battery.hpp"
#include "core/lv_obj.h"
#include "database.hpp"
#include "haptics.hpp"
#include "misc/lv_gc.h"
#include "audio_events.hpp"
@ -135,6 +136,11 @@ void Splash::exit() {
sDisplay->SetDisplayOn(
sServices->gpios().Get(drivers::IGpios::Pin::kKeyLock));
}
// buzz a bit to tell the user we're done booting
events::System().Dispatch(system_fsm::HapticTrigger{
.effect = drivers::Haptics::Effect::kLongDoubleSharpTick1_100Pct,
});
}
void Splash::react(const system_fsm::BootComplete& ev) {

Loading…
Cancel
Save