remove all PS3 things and begin with ControllPad

This commit is contained in:
2023-03-30 22:20:28 +02:00
parent e4cdc5f98d
commit 33fe6916ed
16 changed files with 182 additions and 150 deletions
+57
View File
@@ -0,0 +1,57 @@
/**
* @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;
}
+45
View File
@@ -0,0 +1,45 @@
/**
* @file controllPad.h
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-03-30
*
* @copyright Copyright (c) 2023
*
*/
#pragma once
#include <menuControl.h>
#include "controllPadInput.h"
class ControllPad {
public:
ControllPad();
bool loop();
void setMenuControll(MenuControl* menuControll) { this->menuControl = menuControl; }
const ControllPadInput * getControllPadDataPtr(uint16_t maxElapsedTime = 0) const;
bool isControllPadConnected() const { return this->connected; }
private:
MenuControl* menuControl = nullptr;
ControllPadInput controllInput;
bool connected = false;
bool updated = false;
bool firstButtonPress = false;
uint16_t disconnectTime = 50;
uint16_t loopDelay = 5;
uint32_t lastMessageRecive = 0;
uint32_t lastLoopMillis = 0;
};
+42
View File
@@ -0,0 +1,42 @@
/**
* @file controllPadInput.h
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-03-30
*
* @copyright Copyright (c) 2023
*
*/
#ifndef CONTROLL_PAD_INPUT_H
#define CONTROLL_PAD_INPUT_H
#include <stdint.h>
struct ControllPadInput {
uint8_t buttons;
uint8_t x;
uint8_t y;
uint8_t counter;
};
class ControllPadButton {
public:
enum PadButton {
Left,
Right,
Up,
Down,
Yes,
No,
Action
};
static bool isControllPadButtonPressed(const ControllPadInput *input, PadButton button) {
return false;
}
};
#endif // CONTROLL_PAD_INPUT_H