Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed FATFileSystem
Menu/Menu.h@14:08ac9aaa34c3, 2019-05-08 (annotated)
- 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?
| User | Revision | Line number | New 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 |