Ryan Scott / menuSystemMbed

Fork of menuSystemMbed by Brad Smith

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers HANDLER_PlayscreenPage.cpp Source File

HANDLER_PlayscreenPage.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 
00010 
00011 int PlayscreenPageHandler()
00012 {
00013      int userSelection = 0;
00014      pageMenu[PLAYSCR].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[PLAYSCR].erase();
00031                     printXY("                       ", 5, 10);    //erases the ACTION prompt
00032                     userSelection = PLAY;
00033                     exitCurrentMenu = true;
00034                     break;
00035                 case 0x0d:
00036                      pageMenu[PLAYSCR].highlightPrevItem();
00037                     break;
00038                 case 0x0b:
00039                      pageMenu[PLAYSCR].highlightNextItem();
00040                     break;
00041                 case 0x07:
00042                     userSelection = pageMenu[PLAYSCR].getHighlightedItem() ;
00043                     break;
00044                 }//eo select
00045 
00046                 // is the user selection an ACTION  assigned to this page
00047                 if (userSelection != 0 && userSelection > PLAYSCROFFSET)  //page selections are 0 through 12
00048                     {
00049                     // place code here to handle actions processed directly from this page
00050                     
00051                     // TODO ask Brad about this section ******************---------------------*************
00052                     switch(userSelection)
00053                         {
00054                     
00055                         case EX_PLAYTRACK :
00056                             printXY("Example Track selected          ", 5, 10); //***********---------------***************------------********** Discuss with Brad
00057                             //call function to perform task
00058                             break;
00059                   
00060                         }
00061                     
00062                     // eo place code here ......
00063                     userSelection = 0;
00064                     }
00065                 wait_ms(200);
00066             }//eo if kbhit
00067         }//eo while
00068         return userSelection;
00069 }