This commit is contained in:
2023-04-02 17:03:24 +02:00
parent 33fe6916ed
commit f20f4938e4
14 changed files with 95 additions and 95 deletions
+57
View File
@@ -0,0 +1,57 @@
/**
* @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;
}
@@ -1,5 +1,5 @@
/**
* @file controllPad.h
* @file controlPad.h
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
@@ -13,23 +13,23 @@
#include <menuControl.h>
#include "controllPadInput.h"
#include "controlPadInput.h"
class ControllPad {
class ControlPad {
public:
ControllPad();
ControlPad();
bool loop();
void setMenuControll(MenuControl* menuControll) { this->menuControl = menuControl; }
void setMenuControl(MenuControl* menuControl) { this->menuControl = menuControl; }
const ControllPadInput * getControllPadDataPtr(uint16_t maxElapsedTime = 0) const;
const ControlPadInput * getControlPadDataPtr(uint16_t maxElapsedTime = 0) const;
bool isControllPadConnected() const { return this->connected; }
bool isControlPadConnected() const { return this->connected; }
private:
MenuControl* menuControl = nullptr;
ControllPadInput controllInput;
ControlPadInput controlInput;
bool connected = false;
bool updated = false;
@@ -38,7 +38,7 @@ class ControllPad {
uint16_t disconnectTime = 50;
uint16_t loopDelay = 5;
uint32_t lastMessageRecive = 0;
uint32_t lastMessageReceive = 0;
uint32_t lastLoopMillis = 0;
@@ -1,5 +1,5 @@
/**
* @file controllPadInput.h
* @file controlPadInput.h
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
@@ -9,12 +9,12 @@
*
*/
#ifndef CONTROLL_PAD_INPUT_H
#define CONTROLL_PAD_INPUT_H
#ifndef CONTROL_PAD_INPUT_H
#define CONTROL_PAD_INPUT_H
#include <stdint.h>
struct ControllPadInput {
struct ControlPadInput {
uint8_t buttons;
uint8_t x;
uint8_t y;
@@ -22,7 +22,7 @@ struct ControllPadInput {
};
class ControllPadButton {
class ControlPadButton {
public:
enum PadButton {
Left,
@@ -34,9 +34,9 @@ class ControllPadButton {
Action
};
static bool isControllPadButtonPressed(const ControllPadInput *input, PadButton button) {
static bool isControlPadButtonPressed(const ControlPadInput *input, PadButton button) {
return false;
}
};
#endif // CONTROLL_PAD_INPUT_H
#endif // CONTROL_PAD_INPUT_H
-57
View File
@@ -1,57 +0,0 @@
/**
* @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;
}