Menu system broken

Dependencies:   ANSITermMenuSystem

Fork of menuSystemMbed by Ryan Scott

Revision:
0:a5ece7312edc
Child:
3:bdf42b6c15f4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HANDLER_InputPage.cpp	Thu Feb 28 00:38:31 2013 +0000
@@ -0,0 +1,68 @@
+#include "mbed.h"
+
+#include "menuIDs.h"
+#include "MainMenu.h"
+#include "console.h"
+
+extern BusInOut switches; //(p21, p22, p23, p24)
+extern MainMenu pageMenu[12];
+
+
+int InputPageHandler()
+{
+     int userSelection = 0;
+     pageMenu[INPUT].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[INPUT].erase();
+                    printXY("                       ", 5, 10);    //erases the ACTION prompt
+                    userSelection = RECORDSET;
+                    exitCurrentMenu = true;
+                    break;
+                case 0x0d:
+                     pageMenu[INPUT].highlightPrevItem();
+                    break;
+                case 0x0b:
+                     pageMenu[INPUT].highlightNextItem();
+                    break;
+                case 0x07:
+                    userSelection = pageMenu[INPUT].getHighlightedItem() ;
+                    break;
+                }//eo select
+
+                // is the user selection an ACTION  assigned to this page
+                if (userSelection != 0 && userSelection > INPUTOFFSET)  //page selections are 0 through 12
+                    {
+                    // place code here to handle actions processed directly from this page
+                    switch(userSelection)
+                        {
+                        case INMIC:
+                            printXY("Mic selected          ", 5, 10);
+                            //call function to perform task
+                            break;
+                        case INLINE:
+                            printXY("Line selected    ",5,10);
+                            //call function to perform task
+                            break;
+                        }
+                    // eo place code here ......
+                    userSelection = 0;
+                    }
+                wait_ms(200);
+            }//eo if kbhit
+        }//eo while
+        return userSelection;
+}