58 lines
1.9 KiB
C++
58 lines
1.9 KiB
C++
/**
|
|
* @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;
|
|
}
|