ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Mon May 25 20:00:31 2020 +0000
Revision:
29:207111ffd6e6
Parent:
22:028f1627c262
Child:
30:08cc4ec58d07
Added Back from Front Panel. Fixed minor Bugs. Tidied some code up.

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 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 21:60f01b17b0a6 63 /** MIDI settings submenu function
lukeocarwright 21:60f01b17b0a6 64 * @Runs MIDI Settings submenu code
lukeocarwright 21:60f01b17b0a6 65 */
lukeocarwright 16:14c231624f3e 66 void MIDIsettings(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 8:f305ea78b2b1 72
lukeocarwright 8:f305ea78b2b1 73 private: //---------------------------------------------------------------------
lukeocarwright 29:207111ffd6e6 74 //Global Variables
lukeocarwright 29:207111ffd6e6 75 int g_selecty; //variable to manage select box y coordinate
lukeocarwright 21:60f01b17b0a6 76
lukeocarwright 8:f305ea78b2b1 77 //variables
lukeocarwright 21:60f01b17b0a6 78 int menuflag; //flag to keep in menu loop
lukeocarwright 21:60f01b17b0a6 79 int submenu; //submenu selected var
lukeocarwright 21:60f01b17b0a6 80 int menusize; //size of each menu
lukeocarwright 21:60f01b17b0a6 81 float contrast; //contrast float
lukeocarwright 21:60f01b17b0a6 82 enum d; //direction
lukeocarwright 21:60f01b17b0a6 83 int s; //current direction as int
lukeocarwright 21:60f01b17b0a6 84 int s_1; //previous direction as int
lukeocarwright 8:f305ea78b2b1 85
lukeocarwright 29:207111ffd6e6 86
lukeocarwright 8:f305ea78b2b1 87 //Methods
lukeocarwright 21:60f01b17b0a6 88 /** Prints Main Menu to LCD */
lukeocarwright 21:60f01b17b0a6 89 void printmainmenu(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 90
lukeocarwright 21:60f01b17b0a6 91 /** Prints Waveforms Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 92 void printsubwaveforms(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 93
lukeocarwright 21:60f01b17b0a6 94 /** Prints Settings Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 95 void printsubsettings(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 96
lukeocarwright 21:60f01b17b0a6 97 /** Prints Contrast adjust screen to LCD */
lukeocarwright 21:60f01b17b0a6 98 void printcontrast(N5110 &lcd, float contrast);
lukeocarwright 21:60f01b17b0a6 99
lukeocarwright 21:60f01b17b0a6 100 /**Prints if submenu par is unavailable */
lukeocarwright 8:f305ea78b2b1 101 void subunavailiable(N5110 &lcd); //prints error for sub
lukeocarwright 21:60f01b17b0a6 102
lukeocarwright 22:028f1627c262 103 /**Function checks for joystick movement
lukeocarwright 21:60f01b17b0a6 104 * @returns intiger value of scroll direction
lukeocarwright 21:60f01b17b0a6 105 */
lukeocarwright 8:f305ea78b2b1 106 int scroll_check(Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 107 };
lukeocarwright 8:f305ea78b2b1 108
lukeocarwright 8:f305ea78b2b1 109 #endif