Menu system broken

Dependencies:   ANSITermMenuSystem

Fork of menuSystemMbed by Ryan Scott

HANDLER_OutputPage.cpp

Committer:
Rybowonder
Date:
2013-04-26
Revision:
7:df9f5b6dd4ed
Parent:
4:1178a1905490

File content as of revision 7:df9f5b6dd4ed:

#include "mbed.h"

#include "menuIDs.h"
#include "MainMenu.h"
#include "console.h"

extern BusInOut switches; //(p21, p22, p23, p24)
extern MainMenu pageMenu[MAXPAGES];
extern volatile bool exittorecord;


int OutputPageHandler()
{
     int userSelection = 0;
     pageMenu[OUTPUT].printMenu();

    unsigned char lastState = 0x0f;  //0000 1111
     bool exitCurrentMenu = false;

     while ( exitCurrentMenu == false)
        {
        
        unsigned char currentState = switches.read();  //reading a port add a AND MASK & 0b00000111
        wait_ms(10);
        if( currentState == switches.read() && currentState != lastState)
            {
            lastState = currentState; 
            switch(currentState)
                {
                case 0x0e:
                    pageMenu[OUTPUT].erase();
                    printXY("                       ", 5, 10);
                    userSelection = RECORDSET;
                    exitCurrentMenu = true;
                    break;
                case 0x0d:
                     pageMenu[OUTPUT].highlightPrevItem();
                    break;
                case 0x0b:
                     pageMenu[OUTPUT].highlightNextItem();
                    break;
                case 0x07:
                    userSelection = pageMenu[OUTPUT].getHighlightedItem() ;
                    pageMenu[OUTPUT].removeselection();
                    pageMenu[OUTPUT].selection();                  
                    break;
                }//eo select

 /*               
                if (userSelection != 0 && userSelection != RECORDSET)
                    {
                    // place code here to handle actions processed directly from this page
                    switch(userSelection)
                        {
                        case LINE:
                            printXY("Line selected          ", 5, 10);
                            //call function to perform task
                            break;
                        case HEADPHONES:
                            printXY("Headphones selected    ",5,10);
                            //call function to perform task
                            break;
                        case SPEAKERS:
                            printXY("Speakers selected      ", 5, 10);
                            //call function to perform task
                            break;
                        }
                    // eo place code here ......
                    userSelection = 0;
                    }
*/                    
                wait_ms(200);
                if (exittorecord == true)
                 break;
                
            }//eo if kbhit
        }//eo while
        return userSelection;
}