/** * @file controlPad.cpp * @author Alexander Klein (alex@kleiax.de) * @brief * @version 0.1 * @date 2023-03-30 * * @copyright Copyright (c) 2023 * */ #include "controlPad.h" ControlPad::ControlPad() { } bool ControlPad::loop() { if (millis() - this->lastLoopMillis < this->loopDelay) return false; this->lastLoopMillis = millis(); if(!this->connected) return false; if (millis() - this->lastMessageReceive > this->disconnectTime) { this->connected = false; return false; } if (this->menuControl && this->controlInput.buttons > 0 && this->updated) if (!this->firstButtonPress) this->menuControl->printMenu(); if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Left)) this->menuControl->left(); else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Right)) this->menuControl->right(); else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Up)) this->menuControl->up(); else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Down)) this->menuControl->down(); else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Yes)) this->menuControl->yes(); else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::No)) this->menuControl->no(); this->menuControl->update(); return true; } const ControlPadInput * ControlPad::getControlPadDataPtr(uint16_t maxElapsedTime) const { if (maxElapsedTime && millis() - this->lastMessageReceive > maxElapsedTime) return nullptr; return &this->controlInput; }