Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Menu/Menu.cpp@31:cfdb014ff086, 2020-05-26 (annotated)
- 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?
User | Revision | Line number | New 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 | } |