Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Wed May 08 15:22:53 2019 +0000
Revision:
41:4b20f909bbcb
Parent:
40:f53c70793975
Child:
43:11c5d098ce9d
final amendments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 36:6f452777b9ce 1 #ifndef MENU_H
adambakerwa 36:6f452777b9ce 2 #define MENU_H
adambakerwa 36:6f452777b9ce 3
adambakerwa 36:6f452777b9ce 4 #include "mbed.h"
adambakerwa 36:6f452777b9ce 5 #include "Gamepad.h"
adambakerwa 36:6f452777b9ce 6 #include "N5110.h"
adambakerwa 38:51ed5820ffe5 7
adambakerwa 41:4b20f909bbcb 8 /** Menu Class
adambakerwa 41:4b20f909bbcb 9 * @brief Library for interfacing with ELEC2645 Gamepad PCB, University of Leeds
adambakerwa 41:4b20f909bbcb 10 * @author Adam P. Baker
adambakerwa 41:4b20f909bbcb 11 */
adambakerwa 36:6f452777b9ce 12
adambakerwa 36:6f452777b9ce 13 class Menu
adambakerwa 36:6f452777b9ce 14 {
adambakerwa 36:6f452777b9ce 15 public:
adambakerwa 41:4b20f909bbcb 16 /**
adambakerwa 41:4b20f909bbcb 17 *@brief Constructor
adambakerwa 41:4b20f909bbcb 18 */
adambakerwa 36:6f452777b9ce 19 Menu();
adambakerwa 41:4b20f909bbcb 20
adambakerwa 41:4b20f909bbcb 21 /**
adambakerwa 41:4b20f909bbcb 22 *@brief Deconstructor
adambakerwa 41:4b20f909bbcb 23 */
adambakerwa 36:6f452777b9ce 24 ~Menu();
adambakerwa 41:4b20f909bbcb 25
adambakerwa 41:4b20f909bbcb 26 /**
adambakerwa 41:4b20f909bbcb 27 *@brief intialises
adambakerwa 41:4b20f909bbcb 28 */
adambakerwa 41:4b20f909bbcb 29 void init();
adambakerwa 41:4b20f909bbcb 30
adambakerwa 41:4b20f909bbcb 31 /**
adambakerwa 41:4b20f909bbcb 32 *@brief runs the title sequence
adambakerwa 41:4b20f909bbcb 33 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 34 *@param pad @breif class for working with the gamepad
adambakerwa 41:4b20f909bbcb 35 */
adambakerwa 37:23b6312c8315 36 void title_intro(N5110 &lcd, Gamepad &pad);
adambakerwa 41:4b20f909bbcb 37
adambakerwa 41:4b20f909bbcb 38 /**
adambakerwa 41:4b20f909bbcb 39 *@brief holds title screen and flashes 'press start'
adambakerwa 41:4b20f909bbcb 40 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 41 *@param pad @breif class for working with the gamepad
adambakerwa 41:4b20f909bbcb 42 *@returns _start (1 when pressed, else 0)
adambakerwa 41:4b20f909bbcb 43 */
adambakerwa 37:23b6312c8315 44 int press_start(N5110 &lcd, Gamepad &pad);
adambakerwa 40:f53c70793975 45
adambakerwa 41:4b20f909bbcb 46 /**
adambakerwa 41:4b20f909bbcb 47 *@brief displays main menu screen and takes in input to select next state
adambakerwa 41:4b20f909bbcb 48 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 49 *@param pad @breif class for working with the gamepad
adambakerwa 41:4b20f909bbcb 50 *@returns _input (1 when pressed, else 0)
adambakerwa 41:4b20f909bbcb 51 */
adambakerwa 40:f53c70793975 52 int select_input_main(Gamepad &pad, N5110 &lcd);
adambakerwa 41:4b20f909bbcb 53
adambakerwa 41:4b20f909bbcb 54 /**
adambakerwa 41:4b20f909bbcb 55 *@brief displays continue menu screen and takes in input to select next state
adambakerwa 41:4b20f909bbcb 56 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 57 *@param pad @breif class for working with the gamepad
adambakerwa 41:4b20f909bbcb 58 *@returns _input (1 when pressed, else 0)
adambakerwa 41:4b20f909bbcb 59 */
adambakerwa 40:f53c70793975 60 int select_input_continue(Gamepad &pad, N5110 &lcd);
adambakerwa 41:4b20f909bbcb 61
adambakerwa 41:4b20f909bbcb 62 /**
adambakerwa 41:4b20f909bbcb 63 *@brief displays highscore screen
adambakerwa 41:4b20f909bbcb 64 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 65 *@param highscore @breif highest level reached by user
adambakerwa 41:4b20f909bbcb 66 */
adambakerwa 40:f53c70793975 67 void print_highscore(N5110 &lcd, int highscore);
adambakerwa 41:4b20f909bbcb 68
adambakerwa 41:4b20f909bbcb 69 /**
adambakerwa 41:4b20f909bbcb 70 *@brief displays continue menu screen and takes in input to select next state
adambakerwa 41:4b20f909bbcb 71 *@param lcd @brief class which controlls lcd screen
adambakerwa 41:4b20f909bbcb 72 *@param pad @breif class for working with the gamepad
adambakerwa 41:4b20f909bbcb 73 *@returns contrast level
adambakerwa 41:4b20f909bbcb 74 */
adambakerwa 40:f53c70793975 75 float print_settings(Gamepad &pad, N5110 &lcd);
adambakerwa 36:6f452777b9ce 76 private:
adambakerwa 36:6f452777b9ce 77
adambakerwa 41:4b20f909bbcb 78 void print_main_menu(N5110 &lcd); //prints menu class visuals
adambakerwa 41:4b20f909bbcb 79 void print_continue_menu(N5110 &lcd); //prints continue class visuals
adambakerwa 40:f53c70793975 80
adambakerwa 41:4b20f909bbcb 81 void menu_decoration(N5110 &lcd); //prints menu border decoration
adambakerwa 40:f53c70793975 82
adambakerwa 41:4b20f909bbcb 83 void intro_b(N5110 &lcd, Gamepad &pad); //display b with note
adambakerwa 41:4b20f909bbcb 84 void intro_bl(N5110 &lcd, Gamepad &pad); //display bl with note
adambakerwa 41:4b20f909bbcb 85 void intro_blo(N5110 &lcd, Gamepad &pad); //display blo with note
adambakerwa 41:4b20f909bbcb 86 void intro_bloc(N5110 &lcd, Gamepad &pad); //display bloc with note
adambakerwa 41:4b20f909bbcb 87 void intro_block(N5110 &lcd, Gamepad &pad); //display block with note
adambakerwa 41:4b20f909bbcb 88 void intro_block_h(N5110 &lcd, Gamepad &pad); //display block h with note
adambakerwa 41:4b20f909bbcb 89 void intro_block_he(N5110 &lcd, Gamepad &pad); //display block he with note
adambakerwa 41:4b20f909bbcb 90 void intro_block_hea(N5110 &lcd, Gamepad &pad); //display block hea with note
adambakerwa 41:4b20f909bbcb 91 void intro_block_head(N5110 &lcd, Gamepad &pad); //display block head with note
adambakerwa 36:6f452777b9ce 92
adambakerwa 41:4b20f909bbcb 93 void B(int x, int y, N5110 &lcd); //prints B HEAD sprite
adambakerwa 41:4b20f909bbcb 94 void BL(int x, int y, N5110 &lcd); //prints BL sprite
adambakerwa 41:4b20f909bbcb 95 void BLO(int x, int y, N5110 &lcd); //prints BLO sprite
adambakerwa 41:4b20f909bbcb 96 void BLOC(int x, int y, N5110 &lcd); //prints BLOC sprite
adambakerwa 41:4b20f909bbcb 97 void BLOCK(int x, int y, N5110 &lcd); //prints BLOCK sprite
adambakerwa 41:4b20f909bbcb 98 void BLOCK_H(int x, int y, N5110 &lcd); //prints BLOCK H sprite
adambakerwa 41:4b20f909bbcb 99 void BLOCK_HE(int x, int y, N5110 &lcd); //prints BLOCK HE sprite
adambakerwa 41:4b20f909bbcb 100 void BLOCK_HEA(int x, int y, N5110 &lcd); //prints BLOCK HEA sprite
adambakerwa 41:4b20f909bbcb 101 void BLOCK_HEAD(int x, int y, N5110 &lcd); //prints BLOCK HEAD sprite
adambakerwa 40:f53c70793975 102
adambakerwa 37:23b6312c8315 103 int _start;
adambakerwa 37:23b6312c8315 104 int _count;
adambakerwa 40:f53c70793975 105
adambakerwa 36:6f452777b9ce 106 int _select;
adambakerwa 36:6f452777b9ce 107 int _input;
adambakerwa 36:6f452777b9ce 108 int _stop;
adambakerwa 37:23b6312c8315 109 bool _flash;
adambakerwa 40:f53c70793975 110
adambakerwa 36:6f452777b9ce 111 };
adambakerwa 36:6f452777b9ce 112
adambakerwa 36:6f452777b9ce 113 #endif