menu system menus complete

Fork of menuSystemMbed by Brad Smith

Committer:
Rybowonder
Date:
Fri Mar 08 17:37:11 2013 +0000
Revision:
3:bdf42b6c15f4
menus complete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rybowonder 3:bdf42b6c15f4 1 #include "mbed.h"
Rybowonder 3:bdf42b6c15f4 2
Rybowonder 3:bdf42b6c15f4 3 #include "menuIDs.h"
Rybowonder 3:bdf42b6c15f4 4 #include "MainMenu.h"
Rybowonder 3:bdf42b6c15f4 5 #include "console.h"
Rybowonder 3:bdf42b6c15f4 6
Rybowonder 3:bdf42b6c15f4 7 extern BusInOut switches; //(p21, p22, p23, p24)
Rybowonder 3:bdf42b6c15f4 8 extern MainMenu pageMenu[MAXPAGES];
Rybowonder 3:bdf42b6c15f4 9
Rybowonder 3:bdf42b6c15f4 10
Rybowonder 3:bdf42b6c15f4 11 int PlayscreenPageHandler()
Rybowonder 3:bdf42b6c15f4 12 {
Rybowonder 3:bdf42b6c15f4 13 int userSelection = 0;
Rybowonder 3:bdf42b6c15f4 14 pageMenu[PLAYSCR].printMenu();
Rybowonder 3:bdf42b6c15f4 15
Rybowonder 3:bdf42b6c15f4 16 unsigned char lastState = 0x0f; //0000 1111
Rybowonder 3:bdf42b6c15f4 17 bool exitCurrentMenu = false;
Rybowonder 3:bdf42b6c15f4 18
Rybowonder 3:bdf42b6c15f4 19 while ( exitCurrentMenu == false)
Rybowonder 3:bdf42b6c15f4 20 {
Rybowonder 3:bdf42b6c15f4 21
Rybowonder 3:bdf42b6c15f4 22 unsigned char currentState = switches.read(); //reading a port add a AND MASK & 0b00000111
Rybowonder 3:bdf42b6c15f4 23 wait_ms(10);
Rybowonder 3:bdf42b6c15f4 24 if( currentState == switches.read() && currentState != lastState)
Rybowonder 3:bdf42b6c15f4 25 {
Rybowonder 3:bdf42b6c15f4 26 lastState = currentState;
Rybowonder 3:bdf42b6c15f4 27 switch(currentState)
Rybowonder 3:bdf42b6c15f4 28 {
Rybowonder 3:bdf42b6c15f4 29 case 0x0e:
Rybowonder 3:bdf42b6c15f4 30 pageMenu[PLAYSCR].erase();
Rybowonder 3:bdf42b6c15f4 31 printXY(" ", 5, 10); //erases the ACTION prompt
Rybowonder 3:bdf42b6c15f4 32 userSelection = PLAY;
Rybowonder 3:bdf42b6c15f4 33 exitCurrentMenu = true;
Rybowonder 3:bdf42b6c15f4 34 break;
Rybowonder 3:bdf42b6c15f4 35 case 0x0d:
Rybowonder 3:bdf42b6c15f4 36 pageMenu[PLAYSCR].highlightPrevItem();
Rybowonder 3:bdf42b6c15f4 37 break;
Rybowonder 3:bdf42b6c15f4 38 case 0x0b:
Rybowonder 3:bdf42b6c15f4 39 pageMenu[PLAYSCR].highlightNextItem();
Rybowonder 3:bdf42b6c15f4 40 break;
Rybowonder 3:bdf42b6c15f4 41 case 0x07:
Rybowonder 3:bdf42b6c15f4 42 userSelection = pageMenu[PLAYSCR].getHighlightedItem() ;
Rybowonder 3:bdf42b6c15f4 43 break;
Rybowonder 3:bdf42b6c15f4 44 }//eo select
Rybowonder 3:bdf42b6c15f4 45
Rybowonder 3:bdf42b6c15f4 46 // is the user selection an ACTION assigned to this page
Rybowonder 3:bdf42b6c15f4 47 if (userSelection != 0 && userSelection > PLAYSCROFFSET) //page selections are 0 through 12
Rybowonder 3:bdf42b6c15f4 48 {
Rybowonder 3:bdf42b6c15f4 49 // place code here to handle actions processed directly from this page
Rybowonder 3:bdf42b6c15f4 50
Rybowonder 3:bdf42b6c15f4 51 // TODO ask Brad about this section ******************---------------------*************
Rybowonder 3:bdf42b6c15f4 52 switch(userSelection)
Rybowonder 3:bdf42b6c15f4 53 {
Rybowonder 3:bdf42b6c15f4 54
Rybowonder 3:bdf42b6c15f4 55 case EX_PLAYTRACK :
Rybowonder 3:bdf42b6c15f4 56 printXY("Example Track selected ", 5, 10); //***********---------------***************------------********** Discuss with Brad
Rybowonder 3:bdf42b6c15f4 57 //call function to perform task
Rybowonder 3:bdf42b6c15f4 58 break;
Rybowonder 3:bdf42b6c15f4 59
Rybowonder 3:bdf42b6c15f4 60 }
Rybowonder 3:bdf42b6c15f4 61
Rybowonder 3:bdf42b6c15f4 62 // eo place code here ......
Rybowonder 3:bdf42b6c15f4 63 userSelection = 0;
Rybowonder 3:bdf42b6c15f4 64 }
Rybowonder 3:bdf42b6c15f4 65 wait_ms(200);
Rybowonder 3:bdf42b6c15f4 66 }//eo if kbhit
Rybowonder 3:bdf42b6c15f4 67 }//eo while
Rybowonder 3:bdf42b6c15f4 68 return userSelection;
Rybowonder 3:bdf42b6c15f4 69 }