-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMenu.cpp
More file actions
129 lines (114 loc) · 2.45 KB
/
Menu.cpp
File metadata and controls
129 lines (114 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "Menu.h"
#include "XInput.h"
#include <EEPROM.h>
#include "stages.h"
const int nbMenuItems = 3;
const char* menuItems[] = {"Jouer", "Reset","Statistiques"};
void displayMenu(int choice){
lcd.clear();
lcd.print("Menu Principal ");
lcd.setCursor(1,1);
lcd.print(menuItems[0]);
lcd.setCursor(1,2);
lcd.print(menuItems[1]);
lcd.setCursor(1,3);
lcd.print(menuItems[2]);
lcd.setCursor(0,choice);
lcd.write(ARROW_RIGHT);
}
void doMainMenu(int choice){
Serial.println("domainmenu");
Serial.println(choice);
switch(choice){
case 1:
doPlay();
break;
case 2:
doReset();
break;
case 3:
doToggleAudio();
break;
case 4:
doStats();
break;
}
}
void mainMenu(){
int choice = 1;
XButtonId button;
bool keephere = true;
while(keephere){
displayMenu(choice);
// Wait relache boutons
Serial.println("Wait a button");
button = input.buttonPushed();
Serial.println("Un button a ete pushed");
//gestions des differents cas
switch(button){
case BT_UP:
choice++;
break;
case BT_DOWN:
choice--;
break;
case BT_LEFT:
keephere = false;
break;
case BT_RIGHT:
case BT_VALID:
doMainMenu(choice);
break;
}
if(choice > nbMenuItems){
choice = 1;
}
if(choice < 1){
choice = nbMenuItems;
}
}
}
void doPlay(){
Serial.println("doPlay");
while(1){
tmpStageValue = EEPROM.read(stageAdress);
if(stageValue < tmpStageValue ){
stageValue = tmpStageValue;
}else if (stageValue != tmpStageValue){
EEPROM.write(stageAdress,stageValue);
}
Serial.print("Stage value : ");
Serial.println(stageValue);
/* on renvoie sur la fonction gerant l'etape courante */
if(doStage(stageValue)){
stageValue++;
mel.playMelody(sucessStageMel,sucessStageDuration);
}else{
return;
}
lcd.clear();
lcd.setCursor(7,0);
lcd.print("Bravo !");
lcd.setCursor(0,2);
lcd.print("Enigme suivante ");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
}
}
void doStats(){
}
void doReset(){
lcd.clear();
lcd.print("Reseted !!");
stageValue = START;
EEPROM.write(stageAdress,stageValue);
Serial.println("Stages Reseted");
delay(1000);
}
void doToggleAudio(){
}