ELEC2645 (2018/19) / Mbed 2 deprecated el17ebs

Dependencies:   mbed FATFileSystem

Committer:
ellisbhastroud
Date:
Wed May 08 14:54:19 2019 +0000
Revision:
14:08ac9aaa34c3
Parent:
13:681192091568
Child:
16:c8d68cbd1ae2
Doxygen comments added;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ellisbhastroud 1:6179c2d67d19 1 #ifndef MENU_H
ellisbhastroud 1:6179c2d67d19 2 #define MENU_H
ellisbhastroud 1:6179c2d67d19 3
ellisbhastroud 1:6179c2d67d19 4 #include "mbed.h"
ellisbhastroud 1:6179c2d67d19 5 #include "N5110.h"
ellisbhastroud 1:6179c2d67d19 6 #include "Gamepad.h"
ellisbhastroud 13:681192091568 7 #include "SDFileSystem.h"
ellisbhastroud 13:681192091568 8 #include <algorithm>
ellisbhastroud 1:6179c2d67d19 9
ellisbhastroud 14:08ac9aaa34c3 10 /** Enum for wall types */
ellisbhastroud 14:08ac9aaa34c3 11 enum MenuChoice {
ellisbhastroud 14:08ac9aaa34c3 12
ellisbhastroud 14:08ac9aaa34c3 13 START, /**< start screen */
ellisbhastroud 14:08ac9aaa34c3 14 HIGHSCORES, /**< highscores screen */
ellisbhastroud 14:08ac9aaa34c3 15 SETTINGS, /**< settings screen */
ellisbhastroud 14:08ac9aaa34c3 16 };
ellisbhastroud 14:08ac9aaa34c3 17
ellisbhastroud 1:6179c2d67d19 18 /** Menu Class
ellisbhastroud 3:a8960004d261 19 * @brief Library for navigating menu options
ellisbhastroud 1:6179c2d67d19 20 * @author Ellis Blackford Stroud
ellisbhastroud 1:6179c2d67d19 21 * @date May, 2018
ellisbhastroud 1:6179c2d67d19 22 */
ellisbhastroud 1:6179c2d67d19 23
ellisbhastroud 1:6179c2d67d19 24 class Menu {
ellisbhastroud 1:6179c2d67d19 25
ellisbhastroud 1:6179c2d67d19 26 public:
ellisbhastroud 1:6179c2d67d19 27
ellisbhastroud 1:6179c2d67d19 28 /** Constructor */
ellisbhastroud 1:6179c2d67d19 29 Menu();
ellisbhastroud 1:6179c2d67d19 30
ellisbhastroud 1:6179c2d67d19 31 /** Destructor */
ellisbhastroud 1:6179c2d67d19 32 ~Menu();
ellisbhastroud 12:7f7fadb5c106 33
ellisbhastroud 12:7f7fadb5c106 34 /** Sets class variables initial values */
ellisbhastroud 3:a8960004d261 35 void init();
ellisbhastroud 12:7f7fadb5c106 36
ellisbhastroud 14:08ac9aaa34c3 37 /**Enters welcome screen loop */
ellisbhastroud 14:08ac9aaa34c3 38 void welcome_loop(Gamepad &pad, N5110 &lcd);
ellisbhastroud 14:08ac9aaa34c3 39
ellisbhastroud 14:08ac9aaa34c3 40 /** Enters menu screen loop */
ellisbhastroud 14:08ac9aaa34c3 41 void menu_loop(Gamepad &pad, N5110 &lcd);
ellisbhastroud 14:08ac9aaa34c3 42
ellisbhastroud 14:08ac9aaa34c3 43 /** Enters start screen loop */
ellisbhastroud 14:08ac9aaa34c3 44 void start_loop(Gamepad &pad, N5110 &lcd);
ellisbhastroud 1:6179c2d67d19 45
ellisbhastroud 14:08ac9aaa34c3 46 /** Enters highscores screen loop */
ellisbhastroud 13:681192091568 47 void highscores_loop(Gamepad &pad, N5110 &lcd, SDFileSystem &sd);
ellisbhastroud 14:08ac9aaa34c3 48
ellisbhastroud 14:08ac9aaa34c3 49 /** Enters settings screen loop */
ellisbhastroud 14:08ac9aaa34c3 50 void settings_loop(Gamepad &pad, N5110 &lcd);
ellisbhastroud 14:08ac9aaa34c3 51
ellisbhastroud 12:7f7fadb5c106 52 /** Returns frame rate
ellisbhastroud 14:08ac9aaa34c3 53 * @returns the current frame rate
ellisbhastroud 12:7f7fadb5c106 54 */
ellisbhastroud 4:035448357749 55 int get_frame_rate();
ellisbhastroud 4:035448357749 56
ellisbhastroud 14:08ac9aaa34c3 57 /** Returns brightness
ellisbhastroud 14:08ac9aaa34c3 58 * @returns the current brightness
ellisbhastroud 14:08ac9aaa34c3 59 */
ellisbhastroud 14:08ac9aaa34c3 60 float get_brightness();
ellisbhastroud 14:08ac9aaa34c3 61
ellisbhastroud 14:08ac9aaa34c3 62 /** Returns start game flag state
ellisbhastroud 14:08ac9aaa34c3 63 * @returns the start game flag state
ellisbhastroud 14:08ac9aaa34c3 64 */
ellisbhastroud 14:08ac9aaa34c3 65 bool get_start_game_flag();
ellisbhastroud 14:08ac9aaa34c3 66
ellisbhastroud 14:08ac9aaa34c3 67 /** Resets start game flag */
ellisbhastroud 14:08ac9aaa34c3 68 void reset_start_game_flag();
ellisbhastroud 14:08ac9aaa34c3 69
ellisbhastroud 14:08ac9aaa34c3 70 /** Returns the current menu screen
ellisbhastroud 14:08ac9aaa34c3 71 * @returns the current menu screen
ellisbhastroud 14:08ac9aaa34c3 72 */
ellisbhastroud 14:08ac9aaa34c3 73 MenuChoice get_screen();
ellisbhastroud 14:08ac9aaa34c3 74
ellisbhastroud 12:7f7fadb5c106 75 private:
ellisbhastroud 2:81cfa8310f55 76
ellisbhastroud 13:681192091568 77 void read_input(Gamepad &pad);
ellisbhastroud 13:681192091568 78 void sd_read(SDFileSystem &sd);
ellisbhastroud 14:08ac9aaa34c3 79 void change_screen();
ellisbhastroud 13:681192091568 80 void drawSettings(N5110 &lcd);
ellisbhastroud 12:7f7fadb5c106 81 void drawSettingsBars(N5110 &lcd);
ellisbhastroud 4:035448357749 82 void move_cursor(N5110 &lcd);
ellisbhastroud 14:08ac9aaa34c3 83 void cursor_pos_0();
ellisbhastroud 14:08ac9aaa34c3 84 void cursor_pos_1();
ellisbhastroud 14:08ac9aaa34c3 85 void cursor_pos_2();
ellisbhastroud 12:7f7fadb5c106 86 void drawCursor(N5110 &lcd);
ellisbhastroud 12:7f7fadb5c106 87
ellisbhastroud 14:08ac9aaa34c3 88 MenuChoice _screen;
ellisbhastroud 14:08ac9aaa34c3 89 bool _start_game_flag;
ellisbhastroud 4:035448357749 90 int _cursor_pos;
ellisbhastroud 4:035448357749 91 float _pot;
ellisbhastroud 4:035448357749 92 float _contrast;
ellisbhastroud 4:035448357749 93 float _brightness;
ellisbhastroud 4:035448357749 94 int _frame_rate;
ellisbhastroud 13:681192091568 95 int *_highscores_array;
ellisbhastroud 14:08ac9aaa34c3 96 int _n;
ellisbhastroud 4:035448357749 97 Direction _joy_direction;
ellisbhastroud 1:6179c2d67d19 98 };
ellisbhastroud 1:6179c2d67d19 99
ellisbhastroud 1:6179c2d67d19 100 #endif