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@17:358987e9f30e, 2020-05-21 (annotated)
- Committer:
- lukeocarwright
- Date:
- Thu May 21 12:50:43 2020 +0000
- Revision:
- 17:358987e9f30e
- Parent:
- 16:14c231624f3e
- Child:
- 29:207111ffd6e6
Contrast Setting working.
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 | 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 | 17:358987e9f30e | 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 | 17:358987e9f30e | 259 | contrast=0.5; |
lukeocarwright | 16:14c231624f3e | 260 | pad.reset_buttons(); |
lukeocarwright | 17:358987e9f30e | 261 | printcontrast(lcd,contrast); |
lukeocarwright | 17:358987e9f30e | 262 | while (menuflag==1) { //looped |
lukeocarwright | 17:358987e9f30e | 263 | s=scroll(lcd,pad,10,20); |
lukeocarwright | 17:358987e9f30e | 264 | if (s!=s_1) { |
lukeocarwright | 17:358987e9f30e | 265 | printf("S= %d",s); |
lukeocarwright | 17:358987e9f30e | 266 | if (s==1) { |
lukeocarwright | 17:358987e9f30e | 267 | printcontrast(lcd,contrast); |
lukeocarwright | 17:358987e9f30e | 268 | contrast=contrast+0.05f; |
lukeocarwright | 17:358987e9f30e | 269 | lcd.setContrast(contrast); |
lukeocarwright | 17:358987e9f30e | 270 | printf("CONTRAST UP\n"); |
lukeocarwright | 17:358987e9f30e | 271 | wait_ms(200); |
lukeocarwright | 17:358987e9f30e | 272 | } |
lukeocarwright | 17:358987e9f30e | 273 | if (s==-1) { |
lukeocarwright | 17:358987e9f30e | 274 | printcontrast(lcd,contrast); |
lukeocarwright | 17:358987e9f30e | 275 | contrast=contrast-0.05f; |
lukeocarwright | 17:358987e9f30e | 276 | lcd.setContrast(contrast); |
lukeocarwright | 17:358987e9f30e | 277 | printf("CONTRAST DOWN\n"); |
lukeocarwright | 17:358987e9f30e | 278 | wait_ms(200); |
lukeocarwright | 17:358987e9f30e | 279 | } |
lukeocarwright | 17:358987e9f30e | 280 | if (pad.B_pressed()) { //go back menu |
lukeocarwright | 17:358987e9f30e | 281 | // printf("B pressed\n"); |
lukeocarwright | 17:358987e9f30e | 282 | printf("Main Menu selected\n"); //debug |
lukeocarwright | 17:358987e9f30e | 283 | submenu=0; |
lukeocarwright | 17:358987e9f30e | 284 | lcd.clear(); |
lukeocarwright | 17:358987e9f30e | 285 | lcd.printString("Contrast Set",12,3); |
lukeocarwright | 17:358987e9f30e | 286 | lcd.refresh(); |
lukeocarwright | 17:358987e9f30e | 287 | wait_ms(500); //debounce + display |
lukeocarwright | 17:358987e9f30e | 288 | menuflag=0; //sets flag |
lukeocarwright | 17:358987e9f30e | 289 | } |
lukeocarwright | 16:14c231624f3e | 290 | } |
lukeocarwright | 17:358987e9f30e | 291 | s=s_1; |
lukeocarwright | 16:14c231624f3e | 292 | } |
lukeocarwright | 17:358987e9f30e | 293 | |
lukeocarwright | 16:14c231624f3e | 294 | if(submenu==0) { //allows main menu select |
lukeocarwright | 16:14c231624f3e | 295 | subsettings(lcd,pad); |
lukeocarwright | 16:14c231624f3e | 296 | } |
lukeocarwright | 16:14c231624f3e | 297 | } |
lukeocarwright | 8:f305ea78b2b1 | 298 | |
lukeocarwright | 17:358987e9f30e | 299 | |
lukeocarwright | 8:f305ea78b2b1 | 300 | //Private Methods-------------------------------------------------------------- |
lukeocarwright | 17:358987e9f30e | 301 | void Menu::printmainmenu(N5110 &lcd) //prints main menu |
lukeocarwright | 8:f305ea78b2b1 | 302 | { |
lukeocarwright | 8:f305ea78b2b1 | 303 | printf("Printing Main Menu \n"); |
lukeocarwright | 8:f305ea78b2b1 | 304 | lcd.clear(); //clears current buffer |
lukeocarwright | 8:f305ea78b2b1 | 305 | lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value |
lukeocarwright | 8:f305ea78b2b1 | 306 | lcd.printString("MAIN MENU",3,0); //title print |
lukeocarwright | 8:f305ea78b2b1 | 307 | //SUBMENU TITLES |
lukeocarwright | 8:f305ea78b2b1 | 308 | lcd.printString("Waveforms",3,1); |
lukeocarwright | 8:f305ea78b2b1 | 309 | lcd.printString("Instructions",3,2); |
lukeocarwright | 8:f305ea78b2b1 | 310 | lcd.printString("Credits",3,3); |
lukeocarwright | 16:14c231624f3e | 311 | lcd.printString("Settings",3,4); |
lukeocarwright | 8:f305ea78b2b1 | 312 | lcd.refresh(); //updates display |
lukeocarwright | 8:f305ea78b2b1 | 313 | } |
lukeocarwright | 17:358987e9f30e | 314 | void Menu::printsubwaveforms(N5110 &lcd) //prints subwaveforms menu |
lukeocarwright | 8:f305ea78b2b1 | 315 | { |
lukeocarwright | 8:f305ea78b2b1 | 316 | printf("Printing Waveforms menu\n"); |
lukeocarwright | 8:f305ea78b2b1 | 317 | lcd.clear(); //clears current buffer |
lukeocarwright | 8:f305ea78b2b1 | 318 | lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value |
lukeocarwright | 8:f305ea78b2b1 | 319 | lcd.printString("WAVEFORMS:",3,0); //title print |
lukeocarwright | 8:f305ea78b2b1 | 320 | //SUBMENU TITLES |
lukeocarwright | 8:f305ea78b2b1 | 321 | lcd.printString("Sine",3,1); |
lukeocarwright | 8:f305ea78b2b1 | 322 | lcd.printString("Triangle",3,2); |
lukeocarwright | 8:f305ea78b2b1 | 323 | lcd.printString("Square",3,3); |
lukeocarwright | 8:f305ea78b2b1 | 324 | lcd.refresh(); //updates display |
lukeocarwright | 8:f305ea78b2b1 | 325 | } |
lukeocarwright | 8:f305ea78b2b1 | 326 | |
lukeocarwright | 17:358987e9f30e | 327 | void Menu::printsubsettings(N5110 &lcd) //prints settings menu |
lukeocarwright | 16:14c231624f3e | 328 | { |
lukeocarwright | 16:14c231624f3e | 329 | printf("Printing Settings menu\n"); |
lukeocarwright | 16:14c231624f3e | 330 | lcd.clear(); |
lukeocarwright | 16:14c231624f3e | 331 | lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value |
lukeocarwright | 16:14c231624f3e | 332 | lcd.printString("Settings:",3,0); //title print |
lukeocarwright | 16:14c231624f3e | 333 | //SUBMENU TITLES |
lukeocarwright | 16:14c231624f3e | 334 | lcd.printString("Volume",3,1); |
lukeocarwright | 16:14c231624f3e | 335 | lcd.printString("MIDI",3,2); |
lukeocarwright | 16:14c231624f3e | 336 | lcd.printString("Contrast",3,3); |
lukeocarwright | 16:14c231624f3e | 337 | lcd.refresh(); //updates display |
lukeocarwright | 16:14c231624f3e | 338 | } |
lukeocarwright | 16:14c231624f3e | 339 | |
lukeocarwright | 17:358987e9f30e | 340 | void Menu::printcontrast(N5110 &lcd, float contrast) //prints contrast edit screen |
lukeocarwright | 17:358987e9f30e | 341 | { |
lukeocarwright | 17:358987e9f30e | 342 | lcd.clear(); |
lukeocarwright | 17:358987e9f30e | 343 | lcd.printString("Contrast:",3,0);//title print |
lukeocarwright | 17:358987e9f30e | 344 | lcd.printString("VISIBILITY",12,3); |
lukeocarwright | 17:358987e9f30e | 345 | lcd.refresh(); |
lukeocarwright | 17:358987e9f30e | 346 | } |
lukeocarwright | 17:358987e9f30e | 347 | void Menu::subunavailiable(N5110 &lcd) //for currently undeveloped menu |
lukeocarwright | 8:f305ea78b2b1 | 348 | { |
lukeocarwright | 8:f305ea78b2b1 | 349 | printf("sub unavailiable\n"); |
lukeocarwright | 8:f305ea78b2b1 | 350 | lcd.printString("Unavailiable",3,1); |
lukeocarwright | 8:f305ea78b2b1 | 351 | lcd.refresh(); |
lukeocarwright | 8:f305ea78b2b1 | 352 | } |
lukeocarwright | 8:f305ea78b2b1 | 353 | |
lukeocarwright | 17:358987e9f30e | 354 | int Menu::scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize) //checks srolling |
lukeocarwright | 8:f305ea78b2b1 | 355 | { |
lukeocarwright | 8:f305ea78b2b1 | 356 | int d=scroll_check(pad); |
lukeocarwright | 8:f305ea78b2b1 | 357 | if(d != 0) { |
lukeocarwright | 13:27300c533dd1 | 358 | if (d==1) { //N scrolls up |
lukeocarwright | 13:27300c533dd1 | 359 | printf("N \n"); //debug |
lukeocarwright | 13:27300c533dd1 | 360 | submenu--; |
lukeocarwright | 13:27300c533dd1 | 361 | g_selecty=g_selecty-8; //line size=8 |
lukeocarwright | 13:27300c533dd1 | 362 | if (submenu<=0) { //3 items in menu stops overflow |
lukeocarwright | 13:27300c533dd1 | 363 | submenu++; |
lukeocarwright | 13:27300c533dd1 | 364 | g_selecty = g_selecty+8; |
lukeocarwright | 13:27300c533dd1 | 365 | return(0); |
lukeocarwright | 8:f305ea78b2b1 | 366 | } |
lukeocarwright | 8:f305ea78b2b1 | 367 | //printmainmenu(lcd); //reprints main |
lukeocarwright | 13:27300c533dd1 | 368 | printf("SubMenu= %d\n", submenu); //debug |
lukeocarwright | 12:7a399a476cfd | 369 | return(-1); |
lukeocarwright | 8:f305ea78b2b1 | 370 | } |
lukeocarwright | 13:27300c533dd1 | 371 | if (d==5) { //S scrolls down |
lukeocarwright | 13:27300c533dd1 | 372 | printf("S \n"); |
lukeocarwright | 13:27300c533dd1 | 373 | submenu++; |
lukeocarwright | 13:27300c533dd1 | 374 | g_selecty=g_selecty+8; |
lukeocarwright | 13:27300c533dd1 | 375 | if (submenu >menusize) { //stops overflow |
lukeocarwright | 13:27300c533dd1 | 376 | submenu--; |
lukeocarwright | 13:27300c533dd1 | 377 | g_selecty = g_selecty-8; |
lukeocarwright | 13:27300c533dd1 | 378 | return(0); |
lukeocarwright | 8:f305ea78b2b1 | 379 | } |
lukeocarwright | 8:f305ea78b2b1 | 380 | //printmainmenu(lcd); //reprints menu |
lukeocarwright | 13:27300c533dd1 | 381 | printf("SubMenu= %d\n", submenu); //debug |
lukeocarwright | 12:7a399a476cfd | 382 | return(1); |
lukeocarwright | 8:f305ea78b2b1 | 383 | } |
lukeocarwright | 8:f305ea78b2b1 | 384 | wait_ms(200); //debounce |
lukeocarwright | 12:7a399a476cfd | 385 | |
lukeocarwright | 14:9cfe0041cc4e | 386 | } |
lukeocarwright | 13:27300c533dd1 | 387 | return(0); |
lukeocarwright | 8:f305ea78b2b1 | 388 | } |
lukeocarwright | 13:27300c533dd1 | 389 | |
lukeocarwright | 8:f305ea78b2b1 | 390 | int Menu::scroll_check (Gamepad &pad) |
lukeocarwright | 8:f305ea78b2b1 | 391 | { |
lukeocarwright | 8:f305ea78b2b1 | 392 | return(pad.get_direction()); //checks for stick |
lukeocarwright | 8:f305ea78b2b1 | 393 | } |