ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Tue May 26 14:21:36 2020 +0000
Revision:
31:cfdb014ff086
Parent:
30:08cc4ec58d07
Final Pad edit (-API check)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lukeocarwright 8:f305ea78b2b1 1 #include "mbed.h"
lukeocarwright 8:f305ea78b2b1 2 #include "Menu.h"
lukeocarwright 8:f305ea78b2b1 3
lukeocarwright 8:f305ea78b2b1 4 //objects
lukeocarwright 8:f305ea78b2b1 5 Front front;
lukeocarwright 8:f305ea78b2b1 6
lukeocarwright 8:f305ea78b2b1 7 //constructor/destructor
lukeocarwright 8:f305ea78b2b1 8 Menu::Menu()
lukeocarwright 8:f305ea78b2b1 9 {
lukeocarwright 8:f305ea78b2b1 10 }
lukeocarwright 8:f305ea78b2b1 11 Menu::~Menu()
lukeocarwright 8:f305ea78b2b1 12 {
lukeocarwright 8:f305ea78b2b1 13 }
lukeocarwright 8:f305ea78b2b1 14
lukeocarwright 8:f305ea78b2b1 15 // PUBLIC methods---------------------------------------------------------------
lukeocarwright 8:f305ea78b2b1 16 void Menu::mainmenu(N5110 &lcd, Gamepad &pad) //main menu
lukeocarwright 8:f305ea78b2b1 17 {
lukeocarwright 31:cfdb014ff086 18 g_selecty=10; //POSITION OF SELECT BOX
lukeocarwright 29:207111ffd6e6 19 submenu=menuflag=1; //Variables Init
lukeocarwright 29:207111ffd6e6 20 menusize=4;
lukeocarwright 8:f305ea78b2b1 21 printmainmenu(lcd); //prints menu to display
lukeocarwright 29:207111ffd6e6 22 pad.reset_buttons();//elimnates Prev Button Press
lukeocarwright 8:f305ea78b2b1 23 while (menuflag==1) {
lukeocarwright 31:cfdb014ff086 24 s=scroll(lcd, pad, submenu, menusize); //Performs Scroll
lukeocarwright 8:f305ea78b2b1 25 if (s==1) {
lukeocarwright 8:f305ea78b2b1 26 printmainmenu(lcd);
lukeocarwright 31:cfdb014ff086 27 submenu++; //Increase Menu Selected
lukeocarwright 13:27300c533dd1 28 wait_ms(200);
lukeocarwright 31:cfdb014ff086 29 } else if (s==-1) {
lukeocarwright 13:27300c533dd1 30 printmainmenu(lcd);
lukeocarwright 31:cfdb014ff086 31 submenu--; //Decrease menu Selected
lukeocarwright 13:27300c533dd1 32 wait_ms(200);
lukeocarwright 8:f305ea78b2b1 33 }
lukeocarwright 8:f305ea78b2b1 34 if ( pad.A_pressed()) { //selects
lukeocarwright 29:207111ffd6e6 35 //printf("SubMenu %d selected\n", submenu);
lukeocarwright 8:f305ea78b2b1 36 wait_ms(200); //debounce
lukeocarwright 31:cfdb014ff086 37 menuflag=0;//exits
lukeocarwright 8:f305ea78b2b1 38 }
lukeocarwright 8:f305ea78b2b1 39 }
lukeocarwright 29:207111ffd6e6 40 switch (submenu) {
lukeocarwright 29:207111ffd6e6 41 case 1:
lukeocarwright 29:207111ffd6e6 42 subwaveforms(lcd,pad);
lukeocarwright 29:207111ffd6e6 43 case 2:
lukeocarwright 8:f305ea78b2b1 44 subinstructions(lcd,pad);
lukeocarwright 29:207111ffd6e6 45 case 3:
lukeocarwright 29:207111ffd6e6 46 subsettings(lcd,pad);
lukeocarwright 29:207111ffd6e6 47 case 4:
lukeocarwright 29:207111ffd6e6 48 subcredits(lcd,pad);
lukeocarwright 8:f305ea78b2b1 49 }
lukeocarwright 8:f305ea78b2b1 50 }
lukeocarwright 8:f305ea78b2b1 51
lukeocarwright 13:27300c533dd1 52 void Menu::subwaveforms(N5110 &lcd, Gamepad &pad) //waveforms sub
lukeocarwright 8:f305ea78b2b1 53 {
lukeocarwright 29:207111ffd6e6 54 while (1) {
lukeocarwright 29:207111ffd6e6 55 g_selecty=10; //initialises Global var
lukeocarwright 29:207111ffd6e6 56 submenu=menuflag=1; //initialises Variables
lukeocarwright 29:207111ffd6e6 57 menusize=3;
lukeocarwright 29:207111ffd6e6 58 //printf("Waveforms menu \n"); //Debug
lukeocarwright 31:cfdb014ff086 59 printsubwaveforms(lcd); //Prints Screen
lukeocarwright 29:207111ffd6e6 60 pad.reset_buttons();
lukeocarwright 29:207111ffd6e6 61 while (menuflag==1) { //looped
lukeocarwright 29:207111ffd6e6 62 s=scroll(lcd,pad,submenu,menusize);
lukeocarwright 29:207111ffd6e6 63 if (s==1) {
lukeocarwright 31:cfdb014ff086 64 printsubwaveforms(lcd); //Prints Waveform sub
lukeocarwright 31:cfdb014ff086 65 submenu++; //increases selected sub
lukeocarwright 31:cfdb014ff086 66 wait_ms(200); //debounce
lukeocarwright 31:cfdb014ff086 67 } else if (s==-1) {
lukeocarwright 29:207111ffd6e6 68 printsubwaveforms(lcd);
lukeocarwright 29:207111ffd6e6 69 submenu--;
lukeocarwright 29:207111ffd6e6 70 wait_ms(200);
lukeocarwright 29:207111ffd6e6 71 }
lukeocarwright 29:207111ffd6e6 72 if (pad.A_pressed()) { //Select
lukeocarwright 29:207111ffd6e6 73 //printf("Submenu: %d selected\n", submenu); //debug
lukeocarwright 29:207111ffd6e6 74 wait_ms(200); //debounce
lukeocarwright 29:207111ffd6e6 75 menuflag=0; //sets flag
lukeocarwright 29:207111ffd6e6 76 }
lukeocarwright 29:207111ffd6e6 77 if (pad.B_pressed()) { //go back menu
lukeocarwright 29:207111ffd6e6 78 //printf("Main Menu selected\n"); //debug
lukeocarwright 29:207111ffd6e6 79 submenu=0;
lukeocarwright 29:207111ffd6e6 80 wait_ms(200); //debounce
lukeocarwright 29:207111ffd6e6 81 menuflag=0; //sets flag
lukeocarwright 29:207111ffd6e6 82 }
lukeocarwright 8:f305ea78b2b1 83 }
lukeocarwright 29:207111ffd6e6 84 if(submenu==0) { //allows main selected
lukeocarwright 29:207111ffd6e6 85 mainmenu(lcd,pad);
lukeocarwright 29:207111ffd6e6 86 break;
lukeocarwright 8:f305ea78b2b1 87 }
lukeocarwright 29:207111ffd6e6 88 if(submenu>=1) { //allows waveform selected
lukeocarwright 29:207111ffd6e6 89 front.frontrun(lcd,pad,submenu);
lukeocarwright 8:f305ea78b2b1 90 }
lukeocarwright 8:f305ea78b2b1 91 mainmenu(lcd,pad);
lukeocarwright 29:207111ffd6e6 92 break;
lukeocarwright 8:f305ea78b2b1 93 }
lukeocarwright 8:f305ea78b2b1 94 }
lukeocarwright 8:f305ea78b2b1 95
lukeocarwright 8:f305ea78b2b1 96 void Menu::subinstructions(N5110 &lcd, Gamepad &pad) //instruction sub
lukeocarwright 8:f305ea78b2b1 97 {
lukeocarwright 8:f305ea78b2b1 98 menuflag=1; //sets flag
lukeocarwright 29:207111ffd6e6 99 //printf("Instructions menu \n");
lukeocarwright 31:cfdb014ff086 100 lcd.clear(); //LCD setup
lukeocarwright 29:207111ffd6e6 101 lcd.printString("Instructions:",2,0);
lukeocarwright 29:207111ffd6e6 102 lcd.printString("See attached",3,1);
lukeocarwright 29:207111ffd6e6 103 lcd.printString("User Manual",3,2);
lukeocarwright 16:14c231624f3e 104 pad.reset_buttons();
lukeocarwright 29:207111ffd6e6 105 lcd.refresh();
lukeocarwright 8:f305ea78b2b1 106 while (menuflag==1) {
lukeocarwright 31:cfdb014ff086 107 if (pad.B_pressed()) { //returns to main menu
lukeocarwright 8:f305ea78b2b1 108 // printf("B pressed\n");
lukeocarwright 31:cfdb014ff086 109 //printf("Main Menu selected\n");
lukeocarwright 8:f305ea78b2b1 110 submenu=0;
lukeocarwright 8:f305ea78b2b1 111 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 112 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 113 }
lukeocarwright 8:f305ea78b2b1 114 }
lukeocarwright 8:f305ea78b2b1 115 if(submenu==0) { //allows main menu select
lukeocarwright 8:f305ea78b2b1 116 mainmenu(lcd,pad);
lukeocarwright 8:f305ea78b2b1 117 }
lukeocarwright 8:f305ea78b2b1 118 }
lukeocarwright 8:f305ea78b2b1 119
lukeocarwright 31:cfdb014ff086 120 void Menu::subsettings(N5110 &lcd, Gamepad &pad)
lukeocarwright 31:cfdb014ff086 121 {
lukeocarwright 31:cfdb014ff086 122 g_selecty=10; //Global Var initial value
lukeocarwright 31:cfdb014ff086 123 submenu=menuflag=1; //initialises Variables
lukeocarwright 31:cfdb014ff086 124 menusize=4;
lukeocarwright 31:cfdb014ff086 125 //printf("Settings menu \n");
lukeocarwright 31:cfdb014ff086 126 printsubsettings(lcd); //prints to LCD
lukeocarwright 31:cfdb014ff086 127 pad.reset_buttons(); //Stops Buttons from prev menu
lukeocarwright 31:cfdb014ff086 128 while (menuflag==1) { //looped
lukeocarwright 31:cfdb014ff086 129 s=scroll(lcd,pad,submenu,menusize);
lukeocarwright 31:cfdb014ff086 130 if (s==1) {
lukeocarwright 31:cfdb014ff086 131 printsubsettings(lcd);
lukeocarwright 31:cfdb014ff086 132 submenu++;
lukeocarwright 31:cfdb014ff086 133 wait_ms(200);
lukeocarwright 31:cfdb014ff086 134 } else if (s==-1) {
lukeocarwright 31:cfdb014ff086 135 printsubsettings(lcd);
lukeocarwright 31:cfdb014ff086 136 submenu--;
lukeocarwright 31:cfdb014ff086 137 wait_ms(200);
lukeocarwright 31:cfdb014ff086 138 }
lukeocarwright 31:cfdb014ff086 139 if (pad.A_pressed()) { //select menu
lukeocarwright 31:cfdb014ff086 140 //printf("Submenu: %d selected\n", submenu); //debug
lukeocarwright 31:cfdb014ff086 141 wait_ms(200); //debounce
lukeocarwright 31:cfdb014ff086 142 menuflag=0; //sets flag
lukeocarwright 31:cfdb014ff086 143 }
lukeocarwright 31:cfdb014ff086 144 if (pad.B_pressed()) { //go back menu
lukeocarwright 31:cfdb014ff086 145 //printf("Main Menu selected\n"); //debug
lukeocarwright 31:cfdb014ff086 146 submenu=0;
lukeocarwright 31:cfdb014ff086 147 wait_ms(200); //debounce
lukeocarwright 31:cfdb014ff086 148 menuflag=0; //sets flag
lukeocarwright 31:cfdb014ff086 149 }
lukeocarwright 31:cfdb014ff086 150 }
lukeocarwright 31:cfdb014ff086 151 switch (submenu) { //submenu select
lukeocarwright 31:cfdb014ff086 152 case 0: mainmenu(lcd,pad); //returns to main
lukeocarwright 31:cfdb014ff086 153 case 1: volumerun(lcd,pad);
lukeocarwright 31:cfdb014ff086 154 case 2: backlightrun(lcd,pad);
lukeocarwright 31:cfdb014ff086 155 case 3: contrastrun(lcd,pad);
lukeocarwright 31:cfdb014ff086 156 case 4: inverse_mode(lcd,pad);
lukeocarwright 31:cfdb014ff086 157 }
lukeocarwright 31:cfdb014ff086 158 }
lukeocarwright 31:cfdb014ff086 159
lukeocarwright 8:f305ea78b2b1 160 void Menu::subcredits(N5110 &lcd, Gamepad &pad) //credits sub menu
lukeocarwright 8:f305ea78b2b1 161 {
lukeocarwright 29:207111ffd6e6 162 //printf("Credits \n");
lukeocarwright 8:f305ea78b2b1 163 lcd.clear();
lukeocarwright 8:f305ea78b2b1 164 lcd.printString("Credits",22,0); //prints credits to screen
lukeocarwright 8:f305ea78b2b1 165 lcd.printString("Coded,Produced",0,1);
lukeocarwright 8:f305ea78b2b1 166 lcd.printString("+ Built by",10,2);
lukeocarwright 8:f305ea78b2b1 167 lcd.printString("Luke",30,3);
lukeocarwright 8:f305ea78b2b1 168 lcd.printString("Cartwright",13,4);
lukeocarwright 8:f305ea78b2b1 169 lcd.refresh(); //refresh buffer
lukeocarwright 8:f305ea78b2b1 170 menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 171 pad.reset_buttons();
lukeocarwright 8:f305ea78b2b1 172 while (menuflag==1) {
lukeocarwright 8:f305ea78b2b1 173 if (pad.B_pressed()) { //go back menu
lukeocarwright 29:207111ffd6e6 174 //printf("Main Menu selected\n");
lukeocarwright 8:f305ea78b2b1 175 submenu=0;
lukeocarwright 8:f305ea78b2b1 176 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 177 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 178 }
lukeocarwright 8:f305ea78b2b1 179 }
lukeocarwright 8:f305ea78b2b1 180 if(submenu==0) { //back to main
lukeocarwright 8:f305ea78b2b1 181 mainmenu(lcd,pad);
lukeocarwright 8:f305ea78b2b1 182 }
lukeocarwright 8:f305ea78b2b1 183 }
lukeocarwright 29:207111ffd6e6 184
lukeocarwright 31:cfdb014ff086 185 int Menu::scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize) //checks srolling
lukeocarwright 16:14c231624f3e 186 {
lukeocarwright 31:cfdb014ff086 187 int d=scroll_check(pad);
lukeocarwright 31:cfdb014ff086 188 if(d != 0) {
lukeocarwright 31:cfdb014ff086 189 if (d==1) { //N scrolls up
lukeocarwright 31:cfdb014ff086 190 //printf("N \n"); //debug
lukeocarwright 16:14c231624f3e 191 submenu--;
lukeocarwright 31:cfdb014ff086 192 g_selecty=g_selecty-8; //line size=8
lukeocarwright 31:cfdb014ff086 193 if (submenu<=0) { //stops overflow
lukeocarwright 31:cfdb014ff086 194 submenu++;
lukeocarwright 31:cfdb014ff086 195 g_selecty = g_selecty+8; //moves select box
lukeocarwright 31:cfdb014ff086 196 return(0);
lukeocarwright 31:cfdb014ff086 197 }
lukeocarwright 31:cfdb014ff086 198 //printf("SubMenu= %d\n", submenu); //debug
lukeocarwright 31:cfdb014ff086 199 return(-1);
lukeocarwright 16:14c231624f3e 200 }
lukeocarwright 31:cfdb014ff086 201 if (d==5) { //S scrolls down
lukeocarwright 31:cfdb014ff086 202 //printf("S \n");
lukeocarwright 31:cfdb014ff086 203 submenu++;
lukeocarwright 31:cfdb014ff086 204 g_selecty=g_selecty+8; //movews select box
lukeocarwright 31:cfdb014ff086 205 if (submenu >menusize) { //stops overflow
lukeocarwright 31:cfdb014ff086 206 submenu--;
lukeocarwright 31:cfdb014ff086 207 g_selecty = g_selecty-8;
lukeocarwright 31:cfdb014ff086 208 return(0);
lukeocarwright 31:cfdb014ff086 209 }
lukeocarwright 31:cfdb014ff086 210 //printf("SubMenu= %d\n", submenu); //debug
lukeocarwright 31:cfdb014ff086 211 return(1);
lukeocarwright 16:14c231624f3e 212 }
lukeocarwright 31:cfdb014ff086 213 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 214 }
lukeocarwright 31:cfdb014ff086 215 return(0);
lukeocarwright 16:14c231624f3e 216 }
lukeocarwright 16:14c231624f3e 217
lukeocarwright 16:14c231624f3e 218 void Menu::volumerun(N5110 &lcd, Gamepad &pad)
lukeocarwright 17:358987e9f30e 219 {
lukeocarwright 29:207111ffd6e6 220 //printf("Volume Settings \n");
lukeocarwright 16:14c231624f3e 221 menuflag=1; //sets flag
lukeocarwright 31:cfdb014ff086 222 lcd.clear(); //Sets Up LCD
lukeocarwright 16:14c231624f3e 223 lcd.printString("Volume:",3,0);
lukeocarwright 29:207111ffd6e6 224 lcd.printString("Use screw",3,1);
lukeocarwright 29:207111ffd6e6 225 lcd.printString("potentiometer",3,2);
lukeocarwright 29:207111ffd6e6 226 lcd.printString("on rear",3,3);
lukeocarwright 29:207111ffd6e6 227 lcd.refresh();
lukeocarwright 16:14c231624f3e 228 pad.reset_buttons();
lukeocarwright 16:14c231624f3e 229 while (menuflag==1) {
lukeocarwright 16:14c231624f3e 230 if (pad.B_pressed()) {
lukeocarwright 16:14c231624f3e 231 // printf("B pressed\n");
lukeocarwright 16:14c231624f3e 232 printf("Main Menu selected\n");
lukeocarwright 16:14c231624f3e 233 submenu=0;
lukeocarwright 16:14c231624f3e 234 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 235 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 236 }
lukeocarwright 16:14c231624f3e 237 }
lukeocarwright 16:14c231624f3e 238 if(submenu==0) { //allows main menu select
lukeocarwright 16:14c231624f3e 239 subsettings(lcd,pad);
lukeocarwright 16:14c231624f3e 240 }
lukeocarwright 16:14c231624f3e 241 }
lukeocarwright 16:14c231624f3e 242
lukeocarwright 30:08cc4ec58d07 243 void Menu::backlightrun(N5110 &lcd, Gamepad &pad)
lukeocarwright 30:08cc4ec58d07 244 {
lukeocarwright 31:cfdb014ff086 245 lcd.clear(); //sets up LCD
lukeocarwright 30:08cc4ec58d07 246 lcd.printString("Backlight:",3,0);
lukeocarwright 30:08cc4ec58d07 247 lcd.printString("Press A to",3,1);
lukeocarwright 30:08cc4ec58d07 248 lcd.printString("toggle",3,2);
lukeocarwright 30:08cc4ec58d07 249 lcd.refresh();
lukeocarwright 30:08cc4ec58d07 250 menuflag=1;
lukeocarwright 30:08cc4ec58d07 251 toggle=true;
lukeocarwright 30:08cc4ec58d07 252 while (menuflag==1) {
lukeocarwright 30:08cc4ec58d07 253 if (pad.A_pressed()) {
lukeocarwright 30:08cc4ec58d07 254 if (toggle==true) {
lukeocarwright 30:08cc4ec58d07 255 lcd.backLightOn();
lukeocarwright 30:08cc4ec58d07 256 toggle=false;
lukeocarwright 30:08cc4ec58d07 257 } else if (toggle==false) {
lukeocarwright 30:08cc4ec58d07 258 lcd.backLightOff();
lukeocarwright 30:08cc4ec58d07 259 toggle=true;
lukeocarwright 30:08cc4ec58d07 260 }
lukeocarwright 30:08cc4ec58d07 261 wait_ms(500);//debounce
lukeocarwright 30:08cc4ec58d07 262 }
lukeocarwright 30:08cc4ec58d07 263 if (pad.B_pressed()) {
lukeocarwright 31:cfdb014ff086 264 menuflag=0; //alows loop exit
lukeocarwright 30:08cc4ec58d07 265 }
lukeocarwright 30:08cc4ec58d07 266 }
lukeocarwright 30:08cc4ec58d07 267 wait_ms(500);//debounce
lukeocarwright 30:08cc4ec58d07 268 pad.reset_buttons();
lukeocarwright 31:cfdb014ff086 269 subsettings(lcd,pad); //launches setting menu
lukeocarwright 31:cfdb014ff086 270 }
lukeocarwright 31:cfdb014ff086 271
lukeocarwright 31:cfdb014ff086 272 void Menu::contrastrun(N5110 &lcd, Gamepad &pad)
lukeocarwright 31:cfdb014ff086 273 {
lukeocarwright 31:cfdb014ff086 274 menuflag=1; //sets flag
lukeocarwright 31:cfdb014ff086 275 //printf("Contrast Settings \n");
lukeocarwright 31:cfdb014ff086 276 contrast=0.5; //initialises
lukeocarwright 31:cfdb014ff086 277 pad.reset_buttons();
lukeocarwright 31:cfdb014ff086 278 printcontrast(lcd,contrast);
lukeocarwright 31:cfdb014ff086 279 while (menuflag==1) { //looped
lukeocarwright 31:cfdb014ff086 280 s=scroll(lcd,pad,10,20);
lukeocarwright 31:cfdb014ff086 281 if (s!=s_1) {
lukeocarwright 31:cfdb014ff086 282 //printf("S= %d",s);
lukeocarwright 31:cfdb014ff086 283 if (s==1) {
lukeocarwright 31:cfdb014ff086 284 contrast=contrast+0.05f;
lukeocarwright 31:cfdb014ff086 285 lcd.setContrast(contrast);
lukeocarwright 31:cfdb014ff086 286 //printf("CONTRAST UP\n");
lukeocarwright 31:cfdb014ff086 287 } else if (s==-1) {
lukeocarwright 31:cfdb014ff086 288 contrast=contrast-0.05f;
lukeocarwright 31:cfdb014ff086 289 lcd.setContrast(contrast);
lukeocarwright 31:cfdb014ff086 290 //printf("CONTRAST DOWN\n");
lukeocarwright 31:cfdb014ff086 291 }
lukeocarwright 31:cfdb014ff086 292 printcontrast(lcd,contrast);
lukeocarwright 31:cfdb014ff086 293 wait_ms(200);
lukeocarwright 31:cfdb014ff086 294 }
lukeocarwright 31:cfdb014ff086 295 if (pad.B_pressed()) { //go back menu
lukeocarwright 31:cfdb014ff086 296 //printf("Settings Menu selected\n"); //debug
lukeocarwright 31:cfdb014ff086 297 lcd.clear();
lukeocarwright 31:cfdb014ff086 298 lcd.printString("Contrast Set",3,3);
lukeocarwright 31:cfdb014ff086 299 lcd.refresh();
lukeocarwright 31:cfdb014ff086 300 wait_ms(900); //debounce + display
lukeocarwright 31:cfdb014ff086 301 menuflag=0; //sets flag
lukeocarwright 31:cfdb014ff086 302 }
lukeocarwright 31:cfdb014ff086 303 s=s_1;
lukeocarwright 31:cfdb014ff086 304 }
lukeocarwright 30:08cc4ec58d07 305 subsettings(lcd,pad);
lukeocarwright 30:08cc4ec58d07 306 }
lukeocarwright 17:358987e9f30e 307
lukeocarwright 31:cfdb014ff086 308 void Menu::inverse_mode(N5110 &lcd, Gamepad &pad)
lukeocarwright 31:cfdb014ff086 309 {
lukeocarwright 31:cfdb014ff086 310 lcd.clear(); //Sets up LCD
lukeocarwright 31:cfdb014ff086 311 lcd.printString("Inverse Mode:",3,0);
lukeocarwright 31:cfdb014ff086 312 lcd.printString("Press A to",3,1);
lukeocarwright 31:cfdb014ff086 313 lcd.printString("toggle",3,2);
lukeocarwright 31:cfdb014ff086 314 lcd.refresh();
lukeocarwright 31:cfdb014ff086 315 menuflag=1;// initial value
lukeocarwright 31:cfdb014ff086 316 toggle=true;
lukeocarwright 31:cfdb014ff086 317 while (menuflag==1) {
lukeocarwright 31:cfdb014ff086 318 if (pad.A_pressed()) {
lukeocarwright 31:cfdb014ff086 319 if (toggle==true) {
lukeocarwright 31:cfdb014ff086 320 lcd.normalMode();
lukeocarwright 31:cfdb014ff086 321 toggle=false;
lukeocarwright 31:cfdb014ff086 322 } else if (toggle==false) {
lukeocarwright 31:cfdb014ff086 323 lcd.inverseMode();
lukeocarwright 31:cfdb014ff086 324 toggle=true;
lukeocarwright 31:cfdb014ff086 325 }
lukeocarwright 31:cfdb014ff086 326 wait_ms(500);//debounce
lukeocarwright 31:cfdb014ff086 327 }
lukeocarwright 31:cfdb014ff086 328 if (pad.B_pressed()) {
lukeocarwright 31:cfdb014ff086 329 menuflag=0;//allows loop exit
lukeocarwright 31:cfdb014ff086 330 }
lukeocarwright 31:cfdb014ff086 331 }
lukeocarwright 31:cfdb014ff086 332 wait_ms(500);//debounce
lukeocarwright 31:cfdb014ff086 333 pad.reset_buttons();
lukeocarwright 31:cfdb014ff086 334 subsettings(lcd,pad);//launches setting submenu
lukeocarwright 31:cfdb014ff086 335 }
lukeocarwright 31:cfdb014ff086 336
lukeocarwright 8:f305ea78b2b1 337 //Private Methods--------------------------------------------------------------
lukeocarwright 17:358987e9f30e 338 void Menu::printmainmenu(N5110 &lcd) //prints main menu
lukeocarwright 8:f305ea78b2b1 339 {
lukeocarwright 30:08cc4ec58d07 340 //printf("Printing Main Menu \n");
lukeocarwright 8:f305ea78b2b1 341 lcd.clear(); //clears current buffer
lukeocarwright 8:f305ea78b2b1 342 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 8:f305ea78b2b1 343 lcd.printString("MAIN MENU",3,0); //title print
lukeocarwright 8:f305ea78b2b1 344 //SUBMENU TITLES
lukeocarwright 8:f305ea78b2b1 345 lcd.printString("Waveforms",3,1);
lukeocarwright 8:f305ea78b2b1 346 lcd.printString("Instructions",3,2);
lukeocarwright 29:207111ffd6e6 347 lcd.printString("Settings",3,3);
lukeocarwright 29:207111ffd6e6 348 lcd.printString("Credits",3,4);
lukeocarwright 8:f305ea78b2b1 349 lcd.refresh(); //updates display
lukeocarwright 8:f305ea78b2b1 350 }
lukeocarwright 29:207111ffd6e6 351
lukeocarwright 17:358987e9f30e 352 void Menu::printsubwaveforms(N5110 &lcd) //prints subwaveforms menu
lukeocarwright 8:f305ea78b2b1 353 {
lukeocarwright 31:cfdb014ff086 354 //printf("Printing Waveforms menu\n");
lukeocarwright 8:f305ea78b2b1 355 lcd.clear(); //clears current buffer
lukeocarwright 8:f305ea78b2b1 356 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 8:f305ea78b2b1 357 lcd.printString("WAVEFORMS:",3,0); //title print
lukeocarwright 8:f305ea78b2b1 358 //SUBMENU TITLES
lukeocarwright 8:f305ea78b2b1 359 lcd.printString("Sine",3,1);
lukeocarwright 8:f305ea78b2b1 360 lcd.printString("Triangle",3,2);
lukeocarwright 8:f305ea78b2b1 361 lcd.printString("Square",3,3);
lukeocarwright 8:f305ea78b2b1 362 lcd.refresh(); //updates display
lukeocarwright 8:f305ea78b2b1 363 }
lukeocarwright 8:f305ea78b2b1 364
lukeocarwright 17:358987e9f30e 365 void Menu::printsubsettings(N5110 &lcd) //prints settings menu
lukeocarwright 16:14c231624f3e 366 {
lukeocarwright 29:207111ffd6e6 367 //printf("Printing Settings menu\n");
lukeocarwright 16:14c231624f3e 368 lcd.clear();
lukeocarwright 16:14c231624f3e 369 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 16:14c231624f3e 370 lcd.printString("Settings:",3,0); //title print
lukeocarwright 16:14c231624f3e 371 //SUBMENU TITLES
lukeocarwright 16:14c231624f3e 372 lcd.printString("Volume",3,1);
lukeocarwright 30:08cc4ec58d07 373 lcd.printString("Backlight",3,2);
lukeocarwright 16:14c231624f3e 374 lcd.printString("Contrast",3,3);
lukeocarwright 30:08cc4ec58d07 375 lcd.printString("Inverse Mode",3,4);
lukeocarwright 16:14c231624f3e 376 lcd.refresh(); //updates display
lukeocarwright 16:14c231624f3e 377 }
lukeocarwright 16:14c231624f3e 378
lukeocarwright 17:358987e9f30e 379 void Menu::printcontrast(N5110 &lcd, float contrast) //prints contrast edit screen
lukeocarwright 17:358987e9f30e 380 {
lukeocarwright 17:358987e9f30e 381 lcd.clear();
lukeocarwright 17:358987e9f30e 382 lcd.printString("Contrast:",3,0);//title print
lukeocarwright 17:358987e9f30e 383 lcd.printString("VISIBILITY",12,3);
lukeocarwright 17:358987e9f30e 384 lcd.refresh();
lukeocarwright 17:358987e9f30e 385 }
lukeocarwright 29:207111ffd6e6 386
lukeocarwright 8:f305ea78b2b1 387 int Menu::scroll_check (Gamepad &pad)
lukeocarwright 8:f305ea78b2b1 388 {
lukeocarwright 8:f305ea78b2b1 389 return(pad.get_direction()); //checks for stick
lukeocarwright 8:f305ea78b2b1 390 }