mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-03 04:15:53 +00:00

Some checks are pending
CI / setup (check) (push) Waiting to run
CI / setup (esp32) (push) Waiting to run
CI / setup (esp32c3) (push) Waiting to run
CI / setup (esp32c6) (push) Waiting to run
CI / setup (esp32s3) (push) Waiting to run
CI / setup (nrf52840) (push) Waiting to run
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
64 lines
2.6 KiB
C++
64 lines
2.6 KiB
C++
#include "TrackballInterruptImpl1.h"
|
|
#include "InputBroker.h"
|
|
#include "configuration.h"
|
|
|
|
TrackballInterruptImpl1 *trackballInterruptImpl1;
|
|
|
|
TrackballInterruptImpl1::TrackballInterruptImpl1() : TrackballInterruptBase("trackball1") {}
|
|
|
|
void TrackballInterruptImpl1::init(uint8_t pinDown, uint8_t pinUp, uint8_t pinLeft, uint8_t pinRight, uint8_t pinPress)
|
|
{
|
|
input_broker_event eventDown = INPUT_BROKER_DOWN;
|
|
input_broker_event eventUp = INPUT_BROKER_UP;
|
|
input_broker_event eventLeft = INPUT_BROKER_LEFT;
|
|
input_broker_event eventRight = INPUT_BROKER_RIGHT;
|
|
input_broker_event eventPressed = INPUT_BROKER_SELECT;
|
|
|
|
TrackballInterruptBase::init(pinDown, pinUp, pinLeft, pinRight, pinPress, eventDown, eventUp, eventLeft, eventRight,
|
|
eventPressed, TrackballInterruptImpl1::handleIntDown, TrackballInterruptImpl1::handleIntUp,
|
|
TrackballInterruptImpl1::handleIntLeft, TrackballInterruptImpl1::handleIntRight,
|
|
TrackballInterruptImpl1::handleIntPressed);
|
|
inputBroker->registerSource(this);
|
|
}
|
|
|
|
void TrackballInterruptImpl1::handleIntDown()
|
|
{
|
|
if (TB_DIRECTION == RISING || millis() > trackballInterruptImpl1->lastTime + 10) {
|
|
trackballInterruptImpl1->lastTime = millis();
|
|
trackballInterruptImpl1->intDownHandler();
|
|
trackballInterruptImpl1->setIntervalFromNow(20);
|
|
}
|
|
}
|
|
void TrackballInterruptImpl1::handleIntUp()
|
|
{
|
|
if (TB_DIRECTION == RISING || millis() > trackballInterruptImpl1->lastTime + 10) {
|
|
trackballInterruptImpl1->lastTime = millis();
|
|
trackballInterruptImpl1->intUpHandler();
|
|
trackballInterruptImpl1->setIntervalFromNow(20);
|
|
}
|
|
}
|
|
void TrackballInterruptImpl1::handleIntLeft()
|
|
{
|
|
if (TB_DIRECTION == RISING || millis() > trackballInterruptImpl1->lastTime + 10) {
|
|
trackballInterruptImpl1->lastTime = millis();
|
|
trackballInterruptImpl1->intLeftHandler();
|
|
trackballInterruptImpl1->setIntervalFromNow(20);
|
|
}
|
|
}
|
|
void TrackballInterruptImpl1::handleIntRight()
|
|
{
|
|
if (TB_DIRECTION == RISING || millis() > trackballInterruptImpl1->lastTime + 10) {
|
|
trackballInterruptImpl1->lastTime = millis();
|
|
trackballInterruptImpl1->intRightHandler();
|
|
trackballInterruptImpl1->setIntervalFromNow(20);
|
|
}
|
|
}
|
|
void TrackballInterruptImpl1::handleIntPressed()
|
|
{
|
|
if (TB_DIRECTION == RISING || millis() > trackballInterruptImpl1->lastTime + 10) {
|
|
trackballInterruptImpl1->lastTime = millis();
|
|
trackballInterruptImpl1->intPressHandler();
|
|
trackballInterruptImpl1->setIntervalFromNow(20);
|
|
}
|
|
}
|