Ryan Scott / menuSystemMbedBroken

Dependencies:   ANSITermMenuSystem

Fork of menuSystemMbed by Ryan Scott

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers HANDLER_OutputPage.cpp Source File

HANDLER_OutputPage.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 
00012 int OutputPageHandler()
00013 {
00014      int userSelection = 0;
00015      pageMenu[OUTPUT].printMenu();
00016 
00017     unsigned char lastState = 0x0f;  //0000 1111
00018      bool exitCurrentMenu = false;
00019 
00020      while ( exitCurrentMenu == false)
00021         {
00022         
00023         unsigned char currentState = switches.read();  //reading a port add a AND MASK & 0b00000111
00024         wait_ms(10);
00025         if( currentState == switches.read() && currentState != lastState)
00026             {
00027             lastState = currentState; 
00028             switch(currentState)
00029                 {
00030                 case 0x0e:
00031                     pageMenu[OUTPUT].erase();
00032                     printXY("                       ", 5, 10);
00033                     userSelection = RECORDSET;
00034                     exitCurrentMenu = true;
00035                     break;
00036                 case 0x0d:
00037                      pageMenu[OUTPUT].highlightPrevItem();
00038                     break;
00039                 case 0x0b:
00040                      pageMenu[OUTPUT].highlightNextItem();
00041                     break;
00042                 case 0x07:
00043                     userSelection = pageMenu[OUTPUT].getHighlightedItem() ;
00044                     pageMenu[OUTPUT].removeselection();
00045                     pageMenu[OUTPUT].selection();                  
00046                     break;
00047                 }//eo select
00048 
00049  /*               
00050                 if (userSelection != 0 && userSelection != RECORDSET)
00051                     {
00052                     // place code here to handle actions processed directly from this page
00053                     switch(userSelection)
00054                         {
00055                         case LINE:
00056                             printXY("Line selected          ", 5, 10);
00057                             //call function to perform task
00058                             break;
00059                         case HEADPHONES:
00060                             printXY("Headphones selected    ",5,10);
00061                             //call function to perform task
00062                             break;
00063                         case SPEAKERS:
00064                             printXY("Speakers selected      ", 5, 10);
00065                             //call function to perform task
00066                             break;
00067                         }
00068                     // eo place code here ......
00069                     userSelection = 0;
00070                     }
00071 */                    
00072                 wait_ms(200);
00073                 if (exittorecord == true)
00074                  break;
00075                 
00076             }//eo if kbhit
00077         }//eo while
00078         return userSelection;
00079 }