Ryan Scott / menuSystemMbedBroken

Dependencies:   ANSITermMenuSystem

Fork of menuSystemMbed by Ryan Scott

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers HANDLER_ScreensettingsPage.cpp Source File

HANDLER_ScreensettingsPage.cpp

00001 #include "mbed.h"
00002 
00003 #include "menuIDs.h"
00004 #include "MainMenu.h"
00005 #include "console.h"
00006 
00007 extern BusInOut switches; //(p21, p22, p23, p24)
00008 extern MainMenu pageMenu[MAXPAGES ];
00009 extern volatile bool exittorecord;
00010 
00011 int ScreensettingsPageHandler()
00012 {
00013      int userSelection = 0;
00014      pageMenu[SCREENSET].printMenu();
00015 
00016      unsigned char lastState = 0x0f;  //0000 1111
00017      bool exitCurrentMenu = false;
00018 
00019      while ( exitCurrentMenu == false)
00020         {
00021         
00022         unsigned char currentState = switches.read();  //reading a port add a AND MASK & 0b00000111
00023         wait_ms(10);
00024         if( currentState == switches.read() && currentState != lastState)
00025             {
00026             lastState = currentState; 
00027             switch(currentState)
00028                 {
00029                 case 0x0e:
00030                     pageMenu[SCREENSET].erase();
00031                     userSelection = HOME;
00032                     exitCurrentMenu = true;
00033                     break;
00034                 case 0x0d:
00035                      pageMenu[SCREENSET].highlightPrevItem();
00036                     break;
00037                 case 0x0b:
00038                      pageMenu[SCREENSET].highlightNextItem();
00039                     break;
00040                 case 0x07:
00041                     pageMenu[SCREENSET].erase();
00042                     userSelection = pageMenu[SCREENSET].getHighlightedItem() - SCREENSETTINGSOFFSET;
00043                     exitCurrentMenu = true;
00044                     break;
00045                 }//eo select
00046             wait_ms(200);
00047             if (exittorecord == true)
00048             break;
00049             
00050             }//eo if kbhit
00051         }//eo while
00052         return userSelection;
00053 }