12345678910111213141516171819202122232425262728293031323334 |
- /**
- * @file
- * @author Marek Bel
- */
- #ifndef MENUSTACK_H
- #define MENUSTACK_H
- #include <stdint.h>
- /** Pointer to function implementing menu.*/
- typedef void (*menuFunc_t)();
- /**
- * @brief Stack implementation for navigating menu structure
- */
- class MenuStack
- {
- public:
- struct Record
- {
- menuFunc_t menu;
- int8_t position;
- };
- MenuStack():m_stack(),m_index(0) {}
- void push(menuFunc_t menu, int8_t position);
- Record pop();
- void reset(){m_index = 0;}
- private:
- static const int max_depth = 4;
- Record m_stack[max_depth];
- uint8_t m_index;
- };
- #endif /* FIRMWARE_MENUSTACK_H_ */
|