diff options
Diffstat (limited to 'src/tangara/input/input_touch_dpad.cpp')
| -rw-r--r-- | src/tangara/input/input_touch_dpad.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/tangara/input/input_touch_dpad.cpp b/src/tangara/input/input_touch_dpad.cpp index 7dc9f04f..8ed2bdd7 100644 --- a/src/tangara/input/input_touch_dpad.cpp +++ b/src/tangara/input/input_touch_dpad.cpp @@ -25,9 +25,14 @@ TouchDPad::TouchDPad(drivers::TouchWheel& wheel) up_("up", actions::scrollUp(), {}, {}, actions::scrollUp()), right_("right", actions::select(), {}, {}, {}), down_("down", actions::scrollDown(), {}, {}, actions::scrollDown()), - left_("left", actions::goBack(), {}, {}, {}) {} + left_("left", actions::goBack(), {}, {}, {}), + locked_(false) {} auto TouchDPad::read(lv_indev_data_t* data) -> void { + if (locked_) { + return; + } + wheel_.Update(); auto wheel_data = wheel_.GetTouchWheelData(); @@ -60,4 +65,15 @@ auto TouchDPad::triggers() return {centre_, up_, right_, down_, left_}; } +auto TouchDPad::onLock() -> void { + wheel_.LowPowerMode(true); + locked_ = true; +} + +auto TouchDPad::onUnlock() -> void { + wheel_.LowPowerMode(false); + wheel_.Recalibrate(); + locked_ = false; +} + } // namespace input |
