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
Diff: Menu/Menu.cpp
- Revision:
- 16:14c231624f3e
- Parent:
- 14:9cfe0041cc4e
- Child:
- 17:358987e9f30e
--- a/Menu/Menu.cpp Tue May 19 18:38:33 2020 +0000 +++ b/Menu/Menu.cpp Tue May 19 21:45:58 2020 +0000 @@ -15,12 +15,12 @@ // PUBLIC methods--------------------------------------------------------------- void Menu::mainmenu(N5110 &lcd, Gamepad &pad) //main menu { - - menusize=3; + menusize=4; g_selecty=10; submenu=1; //initialises starting point printmainmenu(lcd); //prints menu to display int menuflag=1; //sets flag + pad.reset_buttons(); while (menuflag==1) { s=scroll(lcd, pad, submenu, menusize); if (s==1) { @@ -53,6 +53,10 @@ subcredits(lcd, pad); break; } + if (submenu==4) { //credits subemnu launch + subsettings(lcd, pad); + break; + } } } @@ -61,11 +65,12 @@ menusize=3; g_selecty=10; submenu=1; //initialises starting point - menuflag=1; //resets flag + int menuflag=1; //resets flag printf("Waveforms menu \n"); lcd.clear(); //clear buffer lcd.printString("Waveforms:",3,0); printsubwaveforms(lcd); + pad.reset_buttons(); while (menuflag==1) { //looped s=scroll(lcd,pad,submenu,menusize); //printf("S= %d",s); @@ -109,6 +114,7 @@ lcd.clear(); lcd.printString("Instructions:",3,0); subunavailiable(lcd); //currently unused + pad.reset_buttons(); while (menuflag==1) { if (pad.B_pressed()) { // printf("B pressed\n"); @@ -134,6 +140,7 @@ lcd.printString("Cartwright",13,4); lcd.refresh(); //refresh buffer menuflag=1; //sets flag + pad.reset_buttons(); while (menuflag==1) { if (pad.B_pressed()) { //go back menu // printf("B pressed\n"); @@ -147,6 +154,123 @@ mainmenu(lcd,pad); } } +void Menu::subsettings(N5110 &lcd, Gamepad &pad) +{ + menusize=3; + g_selecty=10; + submenu=1; //initialises starting point + menuflag=1; //resets flag + printf("Settings menu \n"); + lcd.clear(); //clear buffer + printsubsettings(lcd); + pad.reset_buttons(); + while (menuflag==1) { //looped + s=scroll(lcd,pad,submenu,menusize); + //printf("S= %d",s); + if (s==1) { + printsubsettings(lcd); + submenu++; + wait_ms(200); + } + if (s==-1) { + printsubsettings(lcd); + submenu--; + wait_ms(200); + } + if (pad.A_pressed()) { //go back menu + // printf("A pressed\n"); + printf("Submenu: %d selected\n", submenu); //debug + wait_ms(200); //debounce + menuflag=0; //sets flag + } + if (pad.B_pressed()) { //go back menu + // printf("B pressed\n"); + printf("Main Menu selected\n"); //debug + submenu=0; + wait_ms(200); //debounce + menuflag=0; //sets flag + } + } + + if(submenu==0) { //allows main selected + mainmenu(lcd,pad); + } + if(submenu==1) { //allows volume selected + volumerun(lcd,pad); + } + if(submenu==2) { //allows MIDI selected + MIDIsettings(lcd,pad); + } + if(submenu==3) { //allows contrast selected + contrastrun(lcd,pad); + } +} + +void Menu::volumerun(N5110 &lcd, Gamepad &pad) +{ + menuflag=1; //sets flag + printf("Volume Settings \n"); + lcd.clear(); + lcd.printString("Volume:",3,0); + subunavailiable(lcd); //currently unused + pad.reset_buttons(); + while (menuflag==1) { + if (pad.B_pressed()) { + // printf("B pressed\n"); + printf("Main Menu selected\n"); + submenu=0; + wait_ms(200); //debounce + menuflag=0; //sets flag + } + } + if(submenu==0) { //allows main menu select + subsettings(lcd,pad); + } +} + +void Menu::MIDIsettings(N5110 &lcd, Gamepad &pad) +{ + menuflag=1; //sets flag + printf("MIDI Settings \n"); + lcd.clear(); + lcd.printString("MIDI:",3,0); + subunavailiable(lcd); //currently unused + pad.reset_buttons(); + while (menuflag==1) { + if (pad.B_pressed()) { + // printf("B pressed\n"); + printf("Back Menu\n"); + submenu=0; + wait_ms(200); //debounce + menuflag=0; //sets flag + } + } + if(submenu==0) { //allows main menu select + subsettings(lcd,pad); + } +} + +void Menu::contrastrun(N5110 &lcd, Gamepad &pad) +{ + menuflag=1; //sets flag + printf("Contrast Settings \n"); + lcd.clear(); + lcd.printString("Contrast:",3,0); + subunavailiable(lcd); //currently unused + pad.reset_buttons(); + while (menuflag==1) { + if (pad.B_pressed()) { + // printf("B pressed\n"); + printf("Back Menu\n"); + submenu=0; + wait_ms(200); //debounce + menuflag=0; //sets flag + } + } + if(submenu==0) { //allows main menu select + subsettings(lcd,pad); + } +} //Private Methods-------------------------------------------------------------- void Menu::printmainmenu(N5110 &lcd) //prints main menu @@ -159,6 +283,7 @@ lcd.printString("Waveforms",3,1); lcd.printString("Instructions",3,2); lcd.printString("Credits",3,3); + lcd.printString("Settings",3,4); lcd.refresh(); //updates display } void Menu::printsubwaveforms(N5110 &lcd)//prints subwaveforms menu @@ -174,6 +299,19 @@ lcd.refresh(); //updates display } +void Menu::printsubsettings(N5110 &lcd)//prints settings menu +{ + printf("Printing Settings menu\n"); + lcd.clear(); + lcd.drawRect(78,g_selecty,5,5,FILL_BLACK); //prints select box at y value + lcd.printString("Settings:",3,0); //title print + //SUBMENU TITLES + lcd.printString("Volume",3,1); + lcd.printString("MIDI",3,2); + lcd.printString("Contrast",3,3); + lcd.refresh(); //updates display +} + void Menu::subunavailiable(N5110 &lcd) //for currently undeveloped menu { printf("sub unavailiable\n");