Button handling hook for usermods.
This commit is contained in:
parent
61eff6e7e8
commit
4e2bbc04fa
@ -214,6 +214,8 @@ void handleButton()
|
|||||||
if (btnPin[b]<0 || buttonType[b] == BTN_TYPE_NONE) continue;
|
if (btnPin[b]<0 || buttonType[b] == BTN_TYPE_NONE) continue;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (usermods.handleButton(b)) continue; // did usermod handle buttons
|
||||||
|
|
||||||
if ((buttonType[b] == BTN_TYPE_ANALOG || buttonType[b] == BTN_TYPE_ANALOG_INVERTED) && millis() - lastRead > 250) { // button is not a button but a potentiometer
|
if ((buttonType[b] == BTN_TYPE_ANALOG || buttonType[b] == BTN_TYPE_ANALOG_INVERTED) && millis() - lastRead > 250) { // button is not a button but a potentiometer
|
||||||
if (b+1 == WLED_MAX_BUTTONS) lastRead = millis();
|
if (b+1 == WLED_MAX_BUTTONS) lastRead = millis();
|
||||||
handleAnalog(b); continue;
|
handleAnalog(b); continue;
|
||||||
|
@ -218,6 +218,7 @@ class Usermod {
|
|||||||
public:
|
public:
|
||||||
virtual void loop() {}
|
virtual void loop() {}
|
||||||
virtual void handleOverlayDraw() {}
|
virtual void handleOverlayDraw() {}
|
||||||
|
virtual bool handleButton(uint8_t b) { return false; }
|
||||||
virtual void setup() {}
|
virtual void setup() {}
|
||||||
virtual void connected() {}
|
virtual void connected() {}
|
||||||
virtual void addToJsonState(JsonObject& obj) {}
|
virtual void addToJsonState(JsonObject& obj) {}
|
||||||
@ -238,7 +239,7 @@ class UsermodManager {
|
|||||||
public:
|
public:
|
||||||
void loop();
|
void loop();
|
||||||
void handleOverlayDraw();
|
void handleOverlayDraw();
|
||||||
|
bool handleButton(uint8_t b);
|
||||||
void setup();
|
void setup();
|
||||||
void connected();
|
void connected();
|
||||||
void addToJsonState(JsonObject& obj);
|
void addToJsonState(JsonObject& obj);
|
||||||
|
@ -6,6 +6,13 @@
|
|||||||
//Usermod Manager internals
|
//Usermod Manager internals
|
||||||
void UsermodManager::loop() { for (byte i = 0; i < numMods; i++) ums[i]->loop(); }
|
void UsermodManager::loop() { for (byte i = 0; i < numMods; i++) ums[i]->loop(); }
|
||||||
void UsermodManager::handleOverlayDraw() { for (byte i = 0; i < numMods; i++) ums[i]->handleOverlayDraw(); }
|
void UsermodManager::handleOverlayDraw() { for (byte i = 0; i < numMods; i++) ums[i]->handleOverlayDraw(); }
|
||||||
|
bool UsermodManager::handleButton(uint8_t b) {
|
||||||
|
bool overrideIO = false;
|
||||||
|
for (byte i = 0; i < numMods; i++) {
|
||||||
|
if (ums[i]->handleButton(b)) overrideIO = true;
|
||||||
|
}
|
||||||
|
return overrideIO;
|
||||||
|
}
|
||||||
|
|
||||||
void UsermodManager::setup() { for (byte i = 0; i < numMods; i++) ums[i]->setup(); }
|
void UsermodManager::setup() { for (byte i = 0; i < numMods; i++) ums[i]->setup(); }
|
||||||
void UsermodManager::connected() { for (byte i = 0; i < numMods; i++) ums[i]->connected(); }
|
void UsermodManager::connected() { for (byte i = 0; i < numMods; i++) ums[i]->connected(); }
|
||||||
|
Loading…
Reference in New Issue
Block a user