Split into header/cpp
This commit is contained in:
parent
8489a7dfed
commit
1f685ec626
130
menu.cpp
Normal file
130
menu.cpp
Normal file
@ -0,0 +1,130 @@
|
||||
#include "menu.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
// Variables de configuration du menu
|
||||
bool local = true;
|
||||
bool solo = true;
|
||||
int difficulty = 1;
|
||||
|
||||
uint8_t btnPrevA;
|
||||
uint8_t btnPrevB;
|
||||
uint8_t btnA;
|
||||
uint8_t btnB;
|
||||
|
||||
bool isMod = false;
|
||||
bool isModJeu = false;
|
||||
bool isDifficulty = false;
|
||||
bool isPlay = false;
|
||||
bool isWebSet = false;
|
||||
|
||||
Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);
|
||||
|
||||
unsigned long lastDebounceTimeA = 0;
|
||||
unsigned long lastDebounceTimeB = 0;
|
||||
const unsigned long debounceDelay = 200;
|
||||
|
||||
// Assure-toi que epd_bitmap_logo soit déclaré ailleurs ou inclus ici
|
||||
//extern const unsigned char epd_bitmap_logo[];
|
||||
|
||||
void setupMenu() {
|
||||
pinMode(BUTTON_A, INPUT_PULLUP);
|
||||
pinMode(BUTTON_B, INPUT_PULLUP);
|
||||
|
||||
btnPrevA = digitalRead(BUTTON_A);
|
||||
btnPrevB = digitalRead(BUTTON_B);
|
||||
|
||||
display.begin(0x3C, true);
|
||||
display.clearDisplay();
|
||||
// display.drawBitmap(0, 0, epd_bitmap_logo, 128, 64, SH110X_WHITE);
|
||||
display.display();
|
||||
delay(1000);
|
||||
display.clearDisplay();
|
||||
display.display();
|
||||
|
||||
display.setRotation(1);
|
||||
display.setTextColor(SH110X_WHITE);
|
||||
display.setCursor(0, 0);
|
||||
display.display();
|
||||
}
|
||||
|
||||
void choixMode() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez le mode :\n");
|
||||
display.print("[A] Local\n");
|
||||
display.print("[B] Web\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
void choixModeJeu() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez le type :\n");
|
||||
display.print("[A] Solo\n");
|
||||
display.print("[B] Duo\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
void choixDifficulty() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez la \ndifficulte :\n");
|
||||
display.print("[A] Debutant\n");
|
||||
display.print("[B] Expert\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
void menu() {
|
||||
if (!isMod) {
|
||||
choixMode();
|
||||
} else if (local && !isModJeu) {
|
||||
choixModeJeu();
|
||||
} else if (local && solo && !isDifficulty) {
|
||||
choixDifficulty();
|
||||
} else {
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
void handleButtonA() {
|
||||
if (!isMod) {
|
||||
local = true;
|
||||
isMod = true;
|
||||
} else if (!isModJeu) {
|
||||
solo = true;
|
||||
isModJeu = true;
|
||||
} else if (solo && !isDifficulty) {
|
||||
difficulty = 1;
|
||||
isDifficulty = true;
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
void handleButtonB() {
|
||||
if (!isMod) {
|
||||
local = false;
|
||||
isMod = true;
|
||||
} else if (!isModJeu) {
|
||||
solo = false;
|
||||
isModJeu = true;
|
||||
} else if (solo && !isDifficulty) {
|
||||
difficulty = 2;
|
||||
isDifficulty = true;
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
void readButton() {
|
||||
btnA = digitalRead(BUTTON_A);
|
||||
if (btnA == LOW && btnPrevA == HIGH && (millis() - lastDebounceTimeA > debounceDelay)) {
|
||||
lastDebounceTimeA = millis();
|
||||
handleButtonA();
|
||||
}
|
||||
btnPrevA = btnA;
|
||||
btnB = digitalRead(BUTTON_B);
|
||||
if (btnB == LOW && btnPrevB == HIGH && (millis() - lastDebounceTimeB > debounceDelay)) {
|
||||
lastDebounceTimeB = millis();
|
||||
handleButtonB();
|
||||
}
|
||||
btnPrevB = btnB;
|
||||
}
|
||||
166
menu.h
166
menu.h
@ -1,150 +1,42 @@
|
||||
#ifndef MENU_H
|
||||
#define MENU_H
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
// Variables de configuration du menu
|
||||
extern bool local;
|
||||
extern bool solo;
|
||||
extern int difficulty;
|
||||
|
||||
bool local = true;
|
||||
bool solo = true;
|
||||
int difficulty = 1;
|
||||
extern uint8_t btnPrevA;
|
||||
extern uint8_t btnPrevB;
|
||||
extern uint8_t btnA;
|
||||
extern uint8_t btnB;
|
||||
|
||||
uint8_t btnPrevA;
|
||||
uint8_t btnPrevB;
|
||||
uint8_t btnA;
|
||||
uint8_t btnB;
|
||||
|
||||
bool isMod = false;
|
||||
bool isModJeu = false;
|
||||
bool isDifficulty = false;
|
||||
bool isPlay = false;
|
||||
bool isWebSet = false;
|
||||
extern bool isMod;
|
||||
extern bool isModJeu;
|
||||
extern bool isDifficulty;
|
||||
extern bool isPlay;
|
||||
extern bool isWebSet;
|
||||
|
||||
#define BUTTON_A 15
|
||||
#define BUTTON_B 32
|
||||
Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);
|
||||
|
||||
unsigned long lastDebounceTimeA = 0;
|
||||
unsigned long lastDebounceTimeB = 0;
|
||||
const unsigned long debounceDelay = 200;
|
||||
extern Adafruit_SH1107 display;
|
||||
|
||||
void setupMenu() {
|
||||
pinMode(BUTTON_A, INPUT_PULLUP);
|
||||
pinMode(BUTTON_B, INPUT_PULLUP);
|
||||
extern unsigned long lastDebounceTimeA;
|
||||
extern unsigned long lastDebounceTimeB;
|
||||
extern const unsigned long debounceDelay;
|
||||
|
||||
btnPrevA = digitalRead(BUTTON_A);
|
||||
btnPrevB = digitalRead(BUTTON_B);
|
||||
void setupMenu();
|
||||
void choixMode();
|
||||
void choixModeJeu();
|
||||
void choixDifficulty();
|
||||
void menu();
|
||||
|
||||
display.begin(0x3C, true);
|
||||
display.clearDisplay();
|
||||
display.drawBitmap(0, 0, epd_bitmap_logo, 128, 64, SH110X_WHITE);
|
||||
display.display();
|
||||
delay(1000);
|
||||
display.clearDisplay();
|
||||
display.display();
|
||||
void handleButtonA();
|
||||
void handleButtonB();
|
||||
void readButton();
|
||||
|
||||
display.setRotation(1);
|
||||
display.setTextColor(SH110X_WHITE);
|
||||
display.setCursor(0, 0);
|
||||
display.display();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void choixMode() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez le mode :\n");
|
||||
display.print("[A] Local\n");
|
||||
display.print("[B] Web\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
void choixModeJeu() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez le type :\n");
|
||||
display.print("[A] Solo\n");
|
||||
display.print("[B] Duo\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
void choixDifficulty() {
|
||||
display.clearDisplay();
|
||||
display.setCursor(0, 0);
|
||||
display.print("Choisissez la \ndifficulte :\n");
|
||||
display.print("[A] Debutant\n");
|
||||
display.print("[B] Expert\n");
|
||||
display.display();
|
||||
}
|
||||
|
||||
|
||||
void menu() {
|
||||
if (!isMod) {
|
||||
choixMode();
|
||||
} else if (local && !isModJeu) {
|
||||
choixModeJeu();
|
||||
} else if (local && solo && !isDifficulty) {
|
||||
choixDifficulty();
|
||||
} else {
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void handleButtonA() {
|
||||
if (!isMod) {
|
||||
local = true;
|
||||
isMod = true;
|
||||
} else if (!isModJeu) {
|
||||
solo = true;
|
||||
isModJeu = true;
|
||||
} else if (solo && !isDifficulty) {
|
||||
difficulty = 1;
|
||||
isDifficulty = true;
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
void handleButtonB() {
|
||||
if (!isMod) {
|
||||
local = false;
|
||||
isMod = true;
|
||||
} else if (!isModJeu) {
|
||||
solo = false;
|
||||
isModJeu = true;
|
||||
} else if (solo && !isDifficulty) {
|
||||
difficulty = 2;
|
||||
isDifficulty = true;
|
||||
isPlay = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void readButton(){
|
||||
btnA = digitalRead(BUTTON_A);
|
||||
if (btnA == LOW && btnPrevA == HIGH && (millis() - lastDebounceTimeA > debounceDelay)) {
|
||||
lastDebounceTimeA = millis();
|
||||
handleButtonA();
|
||||
}
|
||||
btnPrevA = btnA;
|
||||
btnB = digitalRead(BUTTON_B);
|
||||
if (btnB == LOW && btnPrevB == HIGH && (millis() - lastDebounceTimeB > debounceDelay)) {
|
||||
lastDebounceTimeB = millis();
|
||||
handleButtonB();
|
||||
}
|
||||
btnPrevB = btnB;
|
||||
}
|
||||
#endif // MENU_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user