ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Tue May 26 14:21:36 2020 +0000
Revision:
31:cfdb014ff086
Parent:
30:08cc4ec58d07
Final Pad edit (-API check)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lukeocarwright 8:f305ea78b2b1 1 #ifndef MENU_H
lukeocarwright 8:f305ea78b2b1 2 #define MENU_H
lukeocarwright 8:f305ea78b2b1 3
lukeocarwright 8:f305ea78b2b1 4 #include "mbed.h"
lukeocarwright 8:f305ea78b2b1 5 #include "N5110.h"
lukeocarwright 8:f305ea78b2b1 6 #include "Gamepad.h"
lukeocarwright 8:f305ea78b2b1 7 #include "Front.h"
lukeocarwright 8:f305ea78b2b1 8
lukeocarwright 8:f305ea78b2b1 9 /** Menu class
lukeocarwright 8:f305ea78b2b1 10 * @author Luke Cartwright, University of Leeds
lukeocarwright 8:f305ea78b2b1 11 * @brief manages all menu selection and movement
lukeocarwright 8:f305ea78b2b1 12 * @date May 2020
lukeocarwright 8:f305ea78b2b1 13 */
lukeocarwright 8:f305ea78b2b1 14
lukeocarwright 8:f305ea78b2b1 15 class Menu
lukeocarwright 8:f305ea78b2b1 16 {
lukeocarwright 8:f305ea78b2b1 17 public://-----------------------------------------------------------------------
lukeocarwright 8:f305ea78b2b1 18 //methods
lukeocarwright 21:60f01b17b0a6 19 /**constructor */
lukeocarwright 8:f305ea78b2b1 20 Menu();
lukeocarwright 8:f305ea78b2b1 21
lukeocarwright 21:60f01b17b0a6 22 /**destructor */
lukeocarwright 8:f305ea78b2b1 23 ~Menu();
lukeocarwright 8:f305ea78b2b1 24
lukeocarwright 21:60f01b17b0a6 25 /**runs main menu code
lukeocarwright 21:60f01b17b0a6 26 * @manages all main menu code and runs continually once called
lukeocarwright 21:60f01b17b0a6 27 */
lukeocarwright 8:f305ea78b2b1 28 void mainmenu(N5110 &lcd, Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 29
lukeocarwright 8:f305ea78b2b1 30 //sub menus
lukeocarwright 21:60f01b17b0a6 31 /** Waveform submenu function
lukeocarwright 21:60f01b17b0a6 32 * @Runs Waveform submenu code
lukeocarwright 21:60f01b17b0a6 33 */
lukeocarwright 13:27300c533dd1 34 void subwaveforms(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 35
lukeocarwright 21:60f01b17b0a6 36 /** Instructions submenu function
lukeocarwright 21:60f01b17b0a6 37 * @Runs Instruction submenu code
lukeocarwright 21:60f01b17b0a6 38 */
lukeocarwright 8:f305ea78b2b1 39 void subinstructions(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 40
lukeocarwright 21:60f01b17b0a6 41 /** Settings submenu function
lukeocarwright 21:60f01b17b0a6 42 * @Runs Settings submenu code
lukeocarwright 21:60f01b17b0a6 43 */
lukeocarwright 16:14c231624f3e 44 void subsettings(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 45
lukeocarwright 31:cfdb014ff086 46 /** Credits submenu function
lukeocarwright 31:cfdb014ff086 47 * @Runs Credits submenu code
lukeocarwright 30:08cc4ec58d07 48 */
lukeocarwright 31:cfdb014ff086 49 void subcredits(N5110 &lcd, Gamepad &pad);
lukeocarwright 30:08cc4ec58d07 50
lukeocarwright 21:60f01b17b0a6 51 /** Scrolling function
lukeocarwright 21:60f01b17b0a6 52 * @Function controlling scrolling in menus
lukeocarwright 21:60f01b17b0a6 53 * @checks doesnt exceed bounds
lukeocarwright 21:60f01b17b0a6 54 * @returns int value of menu item selected
lukeocarwright 21:60f01b17b0a6 55 */
lukeocarwright 13:27300c533dd1 56 int scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize);
lukeocarwright 21:60f01b17b0a6 57
lukeocarwright 21:60f01b17b0a6 58 /** Volume adjust function
lukeocarwright 21:60f01b17b0a6 59 * @Runs Volume adjustment code
lukeocarwright 21:60f01b17b0a6 60 */
lukeocarwright 16:14c231624f3e 61 void volumerun(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 62
lukeocarwright 31:cfdb014ff086 63 /** Backlight adjust function
lukeocarwright 31:cfdb014ff086 64 * @toggles Backlight
lukeocarwright 31:cfdb014ff086 65 */
lukeocarwright 31:cfdb014ff086 66 void backlightrun(N5110 &lcd, Gamepad &pad);
lukeocarwright 31:cfdb014ff086 67
lukeocarwright 21:60f01b17b0a6 68 /** Contrast adjust function
lukeocarwright 21:60f01b17b0a6 69 * @Runs Contrast adjustment code
lukeocarwright 21:60f01b17b0a6 70 */
lukeocarwright 16:14c231624f3e 71 void contrastrun(N5110 &lcd, Gamepad &pad);
lukeocarwright 30:08cc4ec58d07 72
lukeocarwright 31:cfdb014ff086 73 /** Screen Mode adjust function
lukeocarwright 31:cfdb014ff086 74 * @toggles inverse/normal mode
lukeocarwright 30:08cc4ec58d07 75 */
lukeocarwright 31:cfdb014ff086 76 void inverse_mode(N5110 &lcd, Gamepad &pad);
lukeocarwright 31:cfdb014ff086 77
lukeocarwright 8:f305ea78b2b1 78 private: //---------------------------------------------------------------------
lukeocarwright 29:207111ffd6e6 79 //Global Variables
lukeocarwright 29:207111ffd6e6 80 int g_selecty; //variable to manage select box y coordinate
lukeocarwright 21:60f01b17b0a6 81
lukeocarwright 8:f305ea78b2b1 82 //variables
lukeocarwright 21:60f01b17b0a6 83 int menuflag; //flag to keep in menu loop
lukeocarwright 21:60f01b17b0a6 84 int submenu; //submenu selected var
lukeocarwright 21:60f01b17b0a6 85 int menusize; //size of each menu
lukeocarwright 21:60f01b17b0a6 86 float contrast; //contrast float
lukeocarwright 21:60f01b17b0a6 87 enum d; //direction
lukeocarwright 21:60f01b17b0a6 88 int s; //current direction as int
lukeocarwright 21:60f01b17b0a6 89 int s_1; //previous direction as int
lukeocarwright 30:08cc4ec58d07 90 bool toggle; //Variable used for Backlight toggle
lukeocarwright 8:f305ea78b2b1 91
lukeocarwright 8:f305ea78b2b1 92 //Methods
lukeocarwright 31:cfdb014ff086 93
lukeocarwright 21:60f01b17b0a6 94 /** Prints Main Menu to LCD */
lukeocarwright 21:60f01b17b0a6 95 void printmainmenu(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 96
lukeocarwright 21:60f01b17b0a6 97 /** Prints Waveforms Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 98 void printsubwaveforms(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 99
lukeocarwright 21:60f01b17b0a6 100 /** Prints Settings Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 101 void printsubsettings(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 102
lukeocarwright 21:60f01b17b0a6 103 /** Prints Contrast adjust screen to LCD */
lukeocarwright 21:60f01b17b0a6 104 void printcontrast(N5110 &lcd, float contrast);
lukeocarwright 21:60f01b17b0a6 105
lukeocarwright 22:028f1627c262 106 /**Function checks for joystick movement
lukeocarwright 21:60f01b17b0a6 107 * @returns intiger value of scroll direction
lukeocarwright 21:60f01b17b0a6 108 */
lukeocarwright 8:f305ea78b2b1 109 int scroll_check(Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 110 };
lukeocarwright 8:f305ea78b2b1 111
lukeocarwright 8:f305ea78b2b1 112 #endif