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