ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Tue May 26 10:17:47 2020 +0000
Revision:
30:08cc4ec58d07
Parent:
29:207111ffd6e6
Child:
31:cfdb014ff086
Sorted Settings Menu Final Touches. More Code Tidying.

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 /** Credits submenu function
lukeocarwright 21:60f01b17b0a6 42 * @Runs Credits submenu code
lukeocarwright 21:60f01b17b0a6 43 */
lukeocarwright 8:f305ea78b2b1 44 void subcredits(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 45
lukeocarwright 21:60f01b17b0a6 46 /** Settings submenu function
lukeocarwright 21:60f01b17b0a6 47 * @Runs Settings submenu code
lukeocarwright 21:60f01b17b0a6 48 */
lukeocarwright 16:14c231624f3e 49 void subsettings(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 50
lukeocarwright 30:08cc4ec58d07 51 /** Screen Mode adjust function
lukeocarwright 30:08cc4ec58d07 52 * @toggles inverse/normal mode
lukeocarwright 30:08cc4ec58d07 53 */
lukeocarwright 30:08cc4ec58d07 54 void inverse_mode(N5110 &lcd, Gamepad &pad);
lukeocarwright 30:08cc4ec58d07 55
lukeocarwright 21:60f01b17b0a6 56 /** Scrolling function
lukeocarwright 21:60f01b17b0a6 57 * @Function controlling scrolling in menus
lukeocarwright 21:60f01b17b0a6 58 * @checks doesnt exceed bounds
lukeocarwright 21:60f01b17b0a6 59 * @returns int value of menu item selected
lukeocarwright 21:60f01b17b0a6 60 */
lukeocarwright 13:27300c533dd1 61 int scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize);
lukeocarwright 21:60f01b17b0a6 62
lukeocarwright 21:60f01b17b0a6 63 /** Volume adjust function
lukeocarwright 21:60f01b17b0a6 64 * @Runs Volume adjustment code
lukeocarwright 21:60f01b17b0a6 65 */
lukeocarwright 16:14c231624f3e 66 void volumerun(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 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 30:08cc4ec58d07 73 /** Backlight adjust function
lukeocarwright 30:08cc4ec58d07 74 * @toggles Backlight
lukeocarwright 30:08cc4ec58d07 75 */
lukeocarwright 30:08cc4ec58d07 76 void backlightrun(N5110 &lcd, Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 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 29:207111ffd6e6 92
lukeocarwright 8:f305ea78b2b1 93 //Methods
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 21:60f01b17b0a6 106 /**Prints if submenu par is unavailable */
lukeocarwright 8:f305ea78b2b1 107 void subunavailiable(N5110 &lcd); //prints error for sub
lukeocarwright 21:60f01b17b0a6 108
lukeocarwright 22:028f1627c262 109 /**Function checks for joystick movement
lukeocarwright 21:60f01b17b0a6 110 * @returns intiger value of scroll direction
lukeocarwright 21:60f01b17b0a6 111 */
lukeocarwright 8:f305ea78b2b1 112 int scroll_check(Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 113 };
lukeocarwright 8:f305ea78b2b1 114
lukeocarwright 8:f305ea78b2b1 115 #endif