/** * @file * @author Marek Bel */ #ifndef MENUSTACK_H #define MENUSTACK_H #include /** 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_ */