remove all PS3 things and begin with ControllPad
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
};
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user