ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Tue May 19 21:45:58 2020 +0000
Revision:
16:14c231624f3e
Parent:
14:9cfe0041cc4e
Child:
17:358987e9f30e
Added settings Menu. Fixed skipping menus bug.

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 16:14c231624f3e 18 menusize=4;
lukeocarwright 8:f305ea78b2b1 19 g_selecty=10;
lukeocarwright 8:f305ea78b2b1 20 submenu=1; //initialises starting point
lukeocarwright 8:f305ea78b2b1 21 printmainmenu(lcd); //prints menu to display
lukeocarwright 8:f305ea78b2b1 22 int menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 23 pad.reset_buttons();
lukeocarwright 8:f305ea78b2b1 24 while (menuflag==1) {
lukeocarwright 13:27300c533dd1 25 s=scroll(lcd, pad, submenu, menusize);
lukeocarwright 8:f305ea78b2b1 26 if (s==1) {
lukeocarwright 8:f305ea78b2b1 27 printmainmenu(lcd);
lukeocarwright 13:27300c533dd1 28 submenu++;
lukeocarwright 13:27300c533dd1 29 wait_ms(200);
lukeocarwright 13:27300c533dd1 30 }
lukeocarwright 13:27300c533dd1 31 if (s==-1) {
lukeocarwright 13:27300c533dd1 32 printmainmenu(lcd);
lukeocarwright 13:27300c533dd1 33 submenu--;
lukeocarwright 13:27300c533dd1 34 wait_ms(200);
lukeocarwright 8:f305ea78b2b1 35 }
lukeocarwright 8:f305ea78b2b1 36 if ( pad.A_pressed()) { //selects
lukeocarwright 8:f305ea78b2b1 37 // printf("A pressed\n");
lukeocarwright 8:f305ea78b2b1 38 printf("SubMenu %d selected\n", submenu);
lukeocarwright 8:f305ea78b2b1 39 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 40 menuflag=0;
lukeocarwright 8:f305ea78b2b1 41 }
lukeocarwright 8:f305ea78b2b1 42 }
lukeocarwright 8:f305ea78b2b1 43 while (1) {
lukeocarwright 8:f305ea78b2b1 44 if (submenu==1) { //waveform submenu launch
lukeocarwright 13:27300c533dd1 45 subwaveforms(lcd, pad);
lukeocarwright 8:f305ea78b2b1 46 break;
lukeocarwright 8:f305ea78b2b1 47 }
lukeocarwright 8:f305ea78b2b1 48 if (submenu==2) { //instructions submenu launch
lukeocarwright 8:f305ea78b2b1 49 subinstructions(lcd,pad);
lukeocarwright 8:f305ea78b2b1 50 break;
lukeocarwright 8:f305ea78b2b1 51 }
lukeocarwright 8:f305ea78b2b1 52 if (submenu==3) { //credits subemnu launch
lukeocarwright 8:f305ea78b2b1 53 subcredits(lcd, pad);
lukeocarwright 8:f305ea78b2b1 54 break;
lukeocarwright 8:f305ea78b2b1 55 }
lukeocarwright 16:14c231624f3e 56 if (submenu==4) { //credits subemnu launch
lukeocarwright 16:14c231624f3e 57 subsettings(lcd, pad);
lukeocarwright 16:14c231624f3e 58 break;
lukeocarwright 16:14c231624f3e 59 }
lukeocarwright 8:f305ea78b2b1 60 }
lukeocarwright 8:f305ea78b2b1 61 }
lukeocarwright 8:f305ea78b2b1 62
lukeocarwright 13:27300c533dd1 63 void Menu::subwaveforms(N5110 &lcd, Gamepad &pad) //waveforms sub
lukeocarwright 8:f305ea78b2b1 64 {
lukeocarwright 8:f305ea78b2b1 65 menusize=3;
lukeocarwright 8:f305ea78b2b1 66 g_selecty=10;
lukeocarwright 8:f305ea78b2b1 67 submenu=1; //initialises starting point
lukeocarwright 16:14c231624f3e 68 int menuflag=1; //resets flag
lukeocarwright 8:f305ea78b2b1 69 printf("Waveforms menu \n");
lukeocarwright 8:f305ea78b2b1 70 lcd.clear(); //clear buffer
lukeocarwright 8:f305ea78b2b1 71 lcd.printString("Waveforms:",3,0);
lukeocarwright 8:f305ea78b2b1 72 printsubwaveforms(lcd);
lukeocarwright 16:14c231624f3e 73 pad.reset_buttons();
lukeocarwright 8:f305ea78b2b1 74 while (menuflag==1) { //looped
lukeocarwright 13:27300c533dd1 75 s=scroll(lcd,pad,submenu,menusize);
lukeocarwright 13:27300c533dd1 76 //printf("S= %d",s);
lukeocarwright 8:f305ea78b2b1 77 if (s==1) {
lukeocarwright 8:f305ea78b2b1 78 printsubwaveforms(lcd);
lukeocarwright 12:7a399a476cfd 79 submenu++;
lukeocarwright 13:27300c533dd1 80 wait_ms(200);
lukeocarwright 8:f305ea78b2b1 81 }
lukeocarwright 12:7a399a476cfd 82 if (s==-1) {
lukeocarwright 12:7a399a476cfd 83 printsubwaveforms(lcd);
lukeocarwright 12:7a399a476cfd 84 submenu--;
lukeocarwright 13:27300c533dd1 85 wait_ms(200);
lukeocarwright 13:27300c533dd1 86 }
lukeocarwright 8:f305ea78b2b1 87 if (pad.A_pressed()) { //go back menu
lukeocarwright 8:f305ea78b2b1 88 // printf("A pressed\n");
lukeocarwright 8:f305ea78b2b1 89 printf("Submenu: %d selected\n", submenu); //debug
lukeocarwright 8:f305ea78b2b1 90 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 91 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 92 }
lukeocarwright 8:f305ea78b2b1 93 if (pad.B_pressed()) { //go back menu
lukeocarwright 8:f305ea78b2b1 94 // printf("B pressed\n");
lukeocarwright 8:f305ea78b2b1 95 printf("Main Menu selected\n"); //debug
lukeocarwright 8:f305ea78b2b1 96 submenu=0;
lukeocarwright 8:f305ea78b2b1 97 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 98 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 99 }
lukeocarwright 8:f305ea78b2b1 100 }
lukeocarwright 8:f305ea78b2b1 101
lukeocarwright 8:f305ea78b2b1 102 if(submenu==0) { //allows main selected
lukeocarwright 8:f305ea78b2b1 103 mainmenu(lcd,pad);
lukeocarwright 8:f305ea78b2b1 104 }
lukeocarwright 8:f305ea78b2b1 105 if(submenu>=1) { //allows waveform selected
lukeocarwright 8:f305ea78b2b1 106 front.frontrun(lcd,pad,submenu);
lukeocarwright 8:f305ea78b2b1 107 }
lukeocarwright 8:f305ea78b2b1 108 }
lukeocarwright 8:f305ea78b2b1 109
lukeocarwright 8:f305ea78b2b1 110 void Menu::subinstructions(N5110 &lcd, Gamepad &pad) //instruction sub
lukeocarwright 8:f305ea78b2b1 111 {
lukeocarwright 8:f305ea78b2b1 112 menuflag=1; //sets flag
lukeocarwright 8:f305ea78b2b1 113 printf("Instructions menu \n");
lukeocarwright 8:f305ea78b2b1 114 lcd.clear();
lukeocarwright 8:f305ea78b2b1 115 lcd.printString("Instructions:",3,0);
lukeocarwright 8:f305ea78b2b1 116 subunavailiable(lcd); //currently unused
lukeocarwright 16:14c231624f3e 117 pad.reset_buttons();
lukeocarwright 8:f305ea78b2b1 118 while (menuflag==1) {
lukeocarwright 8:f305ea78b2b1 119 if (pad.B_pressed()) {
lukeocarwright 8:f305ea78b2b1 120 // printf("B pressed\n");
lukeocarwright 8:f305ea78b2b1 121 printf("Main Menu selected\n");
lukeocarwright 8:f305ea78b2b1 122 submenu=0;
lukeocarwright 8:f305ea78b2b1 123 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 124 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 125 }
lukeocarwright 8:f305ea78b2b1 126 }
lukeocarwright 8:f305ea78b2b1 127 if(submenu==0) { //allows main menu select
lukeocarwright 8:f305ea78b2b1 128 mainmenu(lcd,pad);
lukeocarwright 8:f305ea78b2b1 129 }
lukeocarwright 8:f305ea78b2b1 130 }
lukeocarwright 8:f305ea78b2b1 131
lukeocarwright 8:f305ea78b2b1 132 void Menu::subcredits(N5110 &lcd, Gamepad &pad) //credits sub menu
lukeocarwright 8:f305ea78b2b1 133 {
lukeocarwright 8:f305ea78b2b1 134 printf("Credits \n");
lukeocarwright 8:f305ea78b2b1 135 lcd.clear();
lukeocarwright 8:f305ea78b2b1 136 lcd.printString("Credits",22,0); //prints credits to screen
lukeocarwright 8:f305ea78b2b1 137 lcd.printString("Coded,Produced",0,1);
lukeocarwright 8:f305ea78b2b1 138 lcd.printString("+ Built by",10,2);
lukeocarwright 8:f305ea78b2b1 139 lcd.printString("Luke",30,3);
lukeocarwright 8:f305ea78b2b1 140 lcd.printString("Cartwright",13,4);
lukeocarwright 8:f305ea78b2b1 141 lcd.refresh(); //refresh buffer
lukeocarwright 8:f305ea78b2b1 142 menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 143 pad.reset_buttons();
lukeocarwright 8:f305ea78b2b1 144 while (menuflag==1) {
lukeocarwright 8:f305ea78b2b1 145 if (pad.B_pressed()) { //go back menu
lukeocarwright 8:f305ea78b2b1 146 // printf("B pressed\n");
lukeocarwright 8:f305ea78b2b1 147 printf("Main Menu selected\n");
lukeocarwright 8:f305ea78b2b1 148 submenu=0;
lukeocarwright 8:f305ea78b2b1 149 wait_ms(200); //debounce
lukeocarwright 8:f305ea78b2b1 150 menuflag=0; //sets flag
lukeocarwright 8:f305ea78b2b1 151 }
lukeocarwright 8:f305ea78b2b1 152 }
lukeocarwright 8:f305ea78b2b1 153 if(submenu==0) { //back to main
lukeocarwright 8:f305ea78b2b1 154 mainmenu(lcd,pad);
lukeocarwright 8:f305ea78b2b1 155 }
lukeocarwright 8:f305ea78b2b1 156 }
lukeocarwright 16:14c231624f3e 157 void Menu::subsettings(N5110 &lcd, Gamepad &pad)
lukeocarwright 16:14c231624f3e 158 {
lukeocarwright 16:14c231624f3e 159 menusize=3;
lukeocarwright 16:14c231624f3e 160 g_selecty=10;
lukeocarwright 16:14c231624f3e 161 submenu=1; //initialises starting point
lukeocarwright 16:14c231624f3e 162 menuflag=1; //resets flag
lukeocarwright 16:14c231624f3e 163 printf("Settings menu \n");
lukeocarwright 16:14c231624f3e 164 lcd.clear(); //clear buffer
lukeocarwright 16:14c231624f3e 165 printsubsettings(lcd);
lukeocarwright 16:14c231624f3e 166 pad.reset_buttons();
lukeocarwright 16:14c231624f3e 167 while (menuflag==1) { //looped
lukeocarwright 16:14c231624f3e 168 s=scroll(lcd,pad,submenu,menusize);
lukeocarwright 16:14c231624f3e 169 //printf("S= %d",s);
lukeocarwright 16:14c231624f3e 170 if (s==1) {
lukeocarwright 16:14c231624f3e 171 printsubsettings(lcd);
lukeocarwright 16:14c231624f3e 172 submenu++;
lukeocarwright 16:14c231624f3e 173 wait_ms(200);
lukeocarwright 16:14c231624f3e 174 }
lukeocarwright 16:14c231624f3e 175 if (s==-1) {
lukeocarwright 16:14c231624f3e 176 printsubsettings(lcd);
lukeocarwright 16:14c231624f3e 177 submenu--;
lukeocarwright 16:14c231624f3e 178 wait_ms(200);
lukeocarwright 16:14c231624f3e 179 }
lukeocarwright 16:14c231624f3e 180 if (pad.A_pressed()) { //go back menu
lukeocarwright 16:14c231624f3e 181 // printf("A pressed\n");
lukeocarwright 16:14c231624f3e 182 printf("Submenu: %d selected\n", submenu); //debug
lukeocarwright 16:14c231624f3e 183 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 184 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 185 }
lukeocarwright 16:14c231624f3e 186 if (pad.B_pressed()) { //go back menu
lukeocarwright 16:14c231624f3e 187 // printf("B pressed\n");
lukeocarwright 16:14c231624f3e 188 printf("Main Menu selected\n"); //debug
lukeocarwright 16:14c231624f3e 189 submenu=0;
lukeocarwright 16:14c231624f3e 190 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 191 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 192 }
lukeocarwright 16:14c231624f3e 193 }
lukeocarwright 16:14c231624f3e 194
lukeocarwright 16:14c231624f3e 195 if(submenu==0) { //allows main selected
lukeocarwright 16:14c231624f3e 196 mainmenu(lcd,pad);
lukeocarwright 16:14c231624f3e 197 }
lukeocarwright 16:14c231624f3e 198 if(submenu==1) { //allows volume selected
lukeocarwright 16:14c231624f3e 199 volumerun(lcd,pad);
lukeocarwright 16:14c231624f3e 200 }
lukeocarwright 16:14c231624f3e 201 if(submenu==2) { //allows MIDI selected
lukeocarwright 16:14c231624f3e 202 MIDIsettings(lcd,pad);
lukeocarwright 16:14c231624f3e 203 }
lukeocarwright 16:14c231624f3e 204 if(submenu==3) { //allows contrast selected
lukeocarwright 16:14c231624f3e 205 contrastrun(lcd,pad);
lukeocarwright 16:14c231624f3e 206 }
lukeocarwright 16:14c231624f3e 207 }
lukeocarwright 16:14c231624f3e 208
lukeocarwright 16:14c231624f3e 209 void Menu::volumerun(N5110 &lcd, Gamepad &pad)
lukeocarwright 16:14c231624f3e 210 {
lukeocarwright 16:14c231624f3e 211 menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 212 printf("Volume Settings \n");
lukeocarwright 16:14c231624f3e 213 lcd.clear();
lukeocarwright 16:14c231624f3e 214 lcd.printString("Volume:",3,0);
lukeocarwright 16:14c231624f3e 215 subunavailiable(lcd); //currently unused
lukeocarwright 16:14c231624f3e 216 pad.reset_buttons();
lukeocarwright 16:14c231624f3e 217 while (menuflag==1) {
lukeocarwright 16:14c231624f3e 218 if (pad.B_pressed()) {
lukeocarwright 16:14c231624f3e 219 // printf("B pressed\n");
lukeocarwright 16:14c231624f3e 220 printf("Main Menu selected\n");
lukeocarwright 16:14c231624f3e 221 submenu=0;
lukeocarwright 16:14c231624f3e 222 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 223 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 224 }
lukeocarwright 16:14c231624f3e 225 }
lukeocarwright 16:14c231624f3e 226 if(submenu==0) { //allows main menu select
lukeocarwright 16:14c231624f3e 227 subsettings(lcd,pad);
lukeocarwright 16:14c231624f3e 228 }
lukeocarwright 16:14c231624f3e 229 }
lukeocarwright 16:14c231624f3e 230
lukeocarwright 16:14c231624f3e 231 void Menu::MIDIsettings(N5110 &lcd, Gamepad &pad)
lukeocarwright 16:14c231624f3e 232 {
lukeocarwright 16:14c231624f3e 233 menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 234 printf("MIDI Settings \n");
lukeocarwright 16:14c231624f3e 235 lcd.clear();
lukeocarwright 16:14c231624f3e 236 lcd.printString("MIDI:",3,0);
lukeocarwright 16:14c231624f3e 237 subunavailiable(lcd); //currently unused
lukeocarwright 16:14c231624f3e 238 pad.reset_buttons();
lukeocarwright 16:14c231624f3e 239 while (menuflag==1) {
lukeocarwright 16:14c231624f3e 240 if (pad.B_pressed()) {
lukeocarwright 16:14c231624f3e 241 // printf("B pressed\n");
lukeocarwright 16:14c231624f3e 242 printf("Back Menu\n");
lukeocarwright 16:14c231624f3e 243 submenu=0;
lukeocarwright 16:14c231624f3e 244 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 245 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 246 }
lukeocarwright 16:14c231624f3e 247 }
lukeocarwright 16:14c231624f3e 248 if(submenu==0) { //allows main menu select
lukeocarwright 16:14c231624f3e 249 subsettings(lcd,pad);
lukeocarwright 16:14c231624f3e 250 }
lukeocarwright 16:14c231624f3e 251 }
lukeocarwright 16:14c231624f3e 252
lukeocarwright 16:14c231624f3e 253 void Menu::contrastrun(N5110 &lcd, Gamepad &pad)
lukeocarwright 16:14c231624f3e 254 {
lukeocarwright 16:14c231624f3e 255 menuflag=1; //sets flag
lukeocarwright 16:14c231624f3e 256 printf("Contrast Settings \n");
lukeocarwright 16:14c231624f3e 257 lcd.clear();
lukeocarwright 16:14c231624f3e 258 lcd.printString("Contrast:",3,0);
lukeocarwright 16:14c231624f3e 259 subunavailiable(lcd); //currently unused
lukeocarwright 16:14c231624f3e 260 pad.reset_buttons();
lukeocarwright 16:14c231624f3e 261 while (menuflag==1) {
lukeocarwright 16:14c231624f3e 262 if (pad.B_pressed()) {
lukeocarwright 16:14c231624f3e 263 // printf("B pressed\n");
lukeocarwright 16:14c231624f3e 264 printf("Back Menu\n");
lukeocarwright 16:14c231624f3e 265 submenu=0;
lukeocarwright 16:14c231624f3e 266 wait_ms(200); //debounce
lukeocarwright 16:14c231624f3e 267 menuflag=0; //sets flag
lukeocarwright 16:14c231624f3e 268 }
lukeocarwright 16:14c231624f3e 269 }
lukeocarwright 16:14c231624f3e 270 if(submenu==0) { //allows main menu select
lukeocarwright 16:14c231624f3e 271 subsettings(lcd,pad);
lukeocarwright 16:14c231624f3e 272 }
lukeocarwright 16:14c231624f3e 273 }
lukeocarwright 8:f305ea78b2b1 274
lukeocarwright 8:f305ea78b2b1 275 //Private Methods--------------------------------------------------------------
lukeocarwright 8:f305ea78b2b1 276 void Menu::printmainmenu(N5110 &lcd) //prints main menu
lukeocarwright 8:f305ea78b2b1 277 {
lukeocarwright 8:f305ea78b2b1 278 printf("Printing Main Menu \n");
lukeocarwright 8:f305ea78b2b1 279 lcd.clear(); //clears current buffer
lukeocarwright 8:f305ea78b2b1 280 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 8:f305ea78b2b1 281 lcd.printString("MAIN MENU",3,0); //title print
lukeocarwright 8:f305ea78b2b1 282 //SUBMENU TITLES
lukeocarwright 8:f305ea78b2b1 283 lcd.printString("Waveforms",3,1);
lukeocarwright 8:f305ea78b2b1 284 lcd.printString("Instructions",3,2);
lukeocarwright 8:f305ea78b2b1 285 lcd.printString("Credits",3,3);
lukeocarwright 16:14c231624f3e 286 lcd.printString("Settings",3,4);
lukeocarwright 8:f305ea78b2b1 287 lcd.refresh(); //updates display
lukeocarwright 8:f305ea78b2b1 288 }
lukeocarwright 8:f305ea78b2b1 289 void Menu::printsubwaveforms(N5110 &lcd)//prints subwaveforms menu
lukeocarwright 8:f305ea78b2b1 290 {
lukeocarwright 8:f305ea78b2b1 291 printf("Printing Waveforms menu\n");
lukeocarwright 8:f305ea78b2b1 292 lcd.clear(); //clears current buffer
lukeocarwright 8:f305ea78b2b1 293 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 8:f305ea78b2b1 294 lcd.printString("WAVEFORMS:",3,0); //title print
lukeocarwright 8:f305ea78b2b1 295 //SUBMENU TITLES
lukeocarwright 8:f305ea78b2b1 296 lcd.printString("Sine",3,1);
lukeocarwright 8:f305ea78b2b1 297 lcd.printString("Triangle",3,2);
lukeocarwright 8:f305ea78b2b1 298 lcd.printString("Square",3,3);
lukeocarwright 8:f305ea78b2b1 299 lcd.refresh(); //updates display
lukeocarwright 8:f305ea78b2b1 300 }
lukeocarwright 8:f305ea78b2b1 301
lukeocarwright 16:14c231624f3e 302 void Menu::printsubsettings(N5110 &lcd)//prints settings menu
lukeocarwright 16:14c231624f3e 303 {
lukeocarwright 16:14c231624f3e 304 printf("Printing Settings menu\n");
lukeocarwright 16:14c231624f3e 305 lcd.clear();
lukeocarwright 16:14c231624f3e 306 lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value
lukeocarwright 16:14c231624f3e 307 lcd.printString("Settings:",3,0); //title print
lukeocarwright 16:14c231624f3e 308 //SUBMENU TITLES
lukeocarwright 16:14c231624f3e 309 lcd.printString("Volume",3,1);
lukeocarwright 16:14c231624f3e 310 lcd.printString("MIDI",3,2);
lukeocarwright 16:14c231624f3e 311 lcd.printString("Contrast",3,3);
lukeocarwright 16:14c231624f3e 312 lcd.refresh(); //updates display
lukeocarwright 16:14c231624f3e 313 }
lukeocarwright 16:14c231624f3e 314
lukeocarwright 8:f305ea78b2b1 315 void Menu::subunavailiable(N5110 &lcd) //for currently undeveloped menu
lukeocarwright 8:f305ea78b2b1 316 {
lukeocarwright 8:f305ea78b2b1 317 printf("sub unavailiable\n");
lukeocarwright 8:f305ea78b2b1 318 lcd.printString("Unavailiable",3,1);
lukeocarwright 8:f305ea78b2b1 319 lcd.refresh();
lukeocarwright 8:f305ea78b2b1 320 }
lukeocarwright 8:f305ea78b2b1 321
lukeocarwright 13:27300c533dd1 322 int Menu::scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize) //checks srolling
lukeocarwright 8:f305ea78b2b1 323 {
lukeocarwright 8:f305ea78b2b1 324 int d=scroll_check(pad);
lukeocarwright 8:f305ea78b2b1 325 if(d != 0) {
lukeocarwright 13:27300c533dd1 326 if (d==1) { //N scrolls up
lukeocarwright 13:27300c533dd1 327 printf("N \n"); //debug
lukeocarwright 13:27300c533dd1 328 submenu--;
lukeocarwright 13:27300c533dd1 329 g_selecty=g_selecty-8; //line size=8
lukeocarwright 13:27300c533dd1 330 if (submenu<=0) { //3 items in menu stops overflow
lukeocarwright 13:27300c533dd1 331 submenu++;
lukeocarwright 13:27300c533dd1 332 g_selecty = g_selecty+8;
lukeocarwright 13:27300c533dd1 333 return(0);
lukeocarwright 8:f305ea78b2b1 334 }
lukeocarwright 8:f305ea78b2b1 335 //printmainmenu(lcd); //reprints main
lukeocarwright 13:27300c533dd1 336 printf("SubMenu= %d\n", submenu); //debug
lukeocarwright 12:7a399a476cfd 337 return(-1);
lukeocarwright 8:f305ea78b2b1 338 }
lukeocarwright 13:27300c533dd1 339 if (d==5) { //S scrolls down
lukeocarwright 13:27300c533dd1 340 printf("S \n");
lukeocarwright 13:27300c533dd1 341 submenu++;
lukeocarwright 13:27300c533dd1 342 g_selecty=g_selecty+8;
lukeocarwright 13:27300c533dd1 343 if (submenu >menusize) { //stops overflow
lukeocarwright 13:27300c533dd1 344 submenu--;
lukeocarwright 13:27300c533dd1 345 g_selecty = g_selecty-8;
lukeocarwright 13:27300c533dd1 346 return(0);
lukeocarwright 8:f305ea78b2b1 347 }
lukeocarwright 8:f305ea78b2b1 348 //printmainmenu(lcd); //reprints menu
lukeocarwright 13:27300c533dd1 349 printf("SubMenu= %d\n", submenu); //debug
lukeocarwright 12:7a399a476cfd 350 return(1);
lukeocarwright 8:f305ea78b2b1 351 }
lukeocarwright 8:f305ea78b2b1 352 wait_ms(200); //debounce
lukeocarwright 12:7a399a476cfd 353
lukeocarwright 14:9cfe0041cc4e 354 }
lukeocarwright 13:27300c533dd1 355 return(0);
lukeocarwright 8:f305ea78b2b1 356 }
lukeocarwright 13:27300c533dd1 357
lukeocarwright 8:f305ea78b2b1 358 int Menu::scroll_check (Gamepad &pad)
lukeocarwright 8:f305ea78b2b1 359 {
lukeocarwright 8:f305ea78b2b1 360 return(pad.get_direction()); //checks for stick
lukeocarwright 8:f305ea78b2b1 361 }