ELEC2645 (2019/20) / Mbed 2 deprecated el18loc_final

Dependencies:   mbed

Committer:
lukeocarwright
Date:
Sat May 23 14:40:40 2020 +0000
Revision:
21:60f01b17b0a6
Parent:
17:358987e9f30e
Child:
22:028f1627c262
Publish to check Documentation;

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 //variables
lukeocarwright 8:f305ea78b2b1 19 //methods
lukeocarwright 21:60f01b17b0a6 20 /**constructor */
lukeocarwright 8:f305ea78b2b1 21 Menu();
lukeocarwright 8:f305ea78b2b1 22
lukeocarwright 21:60f01b17b0a6 23 /**destructor */
lukeocarwright 8:f305ea78b2b1 24 ~Menu();
lukeocarwright 8:f305ea78b2b1 25
lukeocarwright 21:60f01b17b0a6 26 /**runs main menu code
lukeocarwright 21:60f01b17b0a6 27 * @manages all main menu code and runs continually once called
lukeocarwright 21:60f01b17b0a6 28 */
lukeocarwright 8:f305ea78b2b1 29 void mainmenu(N5110 &lcd, Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 30
lukeocarwright 8:f305ea78b2b1 31 //sub menus
lukeocarwright 21:60f01b17b0a6 32 /** Waveform submenu function
lukeocarwright 21:60f01b17b0a6 33 * @Runs Waveform submenu code
lukeocarwright 21:60f01b17b0a6 34 */
lukeocarwright 13:27300c533dd1 35 void subwaveforms(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 36
lukeocarwright 21:60f01b17b0a6 37 /** Instructions submenu function
lukeocarwright 21:60f01b17b0a6 38 * @Runs Instruction submenu code
lukeocarwright 21:60f01b17b0a6 39 */
lukeocarwright 8:f305ea78b2b1 40 void subinstructions(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 41
lukeocarwright 21:60f01b17b0a6 42 /** Credits submenu function
lukeocarwright 21:60f01b17b0a6 43 * @Runs Credits submenu code
lukeocarwright 21:60f01b17b0a6 44 */
lukeocarwright 8:f305ea78b2b1 45 void subcredits(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 46
lukeocarwright 21:60f01b17b0a6 47 /** Settings submenu function
lukeocarwright 21:60f01b17b0a6 48 * @Runs Settings submenu code
lukeocarwright 21:60f01b17b0a6 49 */
lukeocarwright 16:14c231624f3e 50 void subsettings(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 51
lukeocarwright 21:60f01b17b0a6 52 /** Scrolling function
lukeocarwright 21:60f01b17b0a6 53 * @Function controlling scrolling in menus
lukeocarwright 21:60f01b17b0a6 54 * @checks doesnt exceed bounds
lukeocarwright 21:60f01b17b0a6 55 * @returns int value of menu item selected
lukeocarwright 21:60f01b17b0a6 56 */
lukeocarwright 13:27300c533dd1 57 int scroll(N5110 &lcd, Gamepad &pad, int submenu, int menusize);
lukeocarwright 21:60f01b17b0a6 58
lukeocarwright 21:60f01b17b0a6 59 /** Volume adjust function
lukeocarwright 21:60f01b17b0a6 60 * @Runs Volume adjustment code
lukeocarwright 21:60f01b17b0a6 61 */
lukeocarwright 16:14c231624f3e 62 void volumerun(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 63
lukeocarwright 21:60f01b17b0a6 64 /** MIDI settings submenu function
lukeocarwright 21:60f01b17b0a6 65 * @Runs MIDI Settings submenu code
lukeocarwright 21:60f01b17b0a6 66 */
lukeocarwright 16:14c231624f3e 67 void MIDIsettings(N5110 &lcd, Gamepad &pad);
lukeocarwright 21:60f01b17b0a6 68
lukeocarwright 21:60f01b17b0a6 69 /** Contrast adjust function
lukeocarwright 21:60f01b17b0a6 70 * @Runs Contrast adjustment code
lukeocarwright 21:60f01b17b0a6 71 */
lukeocarwright 16:14c231624f3e 72 void contrastrun(N5110 &lcd, Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 73
lukeocarwright 8:f305ea78b2b1 74 private: //---------------------------------------------------------------------
lukeocarwright 21:60f01b17b0a6 75
lukeocarwright 8:f305ea78b2b1 76 //variables
lukeocarwright 21:60f01b17b0a6 77 int menuflag; //flag to keep in menu loop
lukeocarwright 21:60f01b17b0a6 78 int g_selecty; //variable to manage select box y coordinate
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 8:f305ea78b2b1 86 //Methods
lukeocarwright 21:60f01b17b0a6 87 /** Prints Main Menu to LCD */
lukeocarwright 21:60f01b17b0a6 88 void printmainmenu(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 89
lukeocarwright 21:60f01b17b0a6 90 /** Prints Waveforms Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 91 void printsubwaveforms(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 92
lukeocarwright 21:60f01b17b0a6 93 /** Prints Settings Submenu to LCD */
lukeocarwright 21:60f01b17b0a6 94 void printsubsettings(N5110 &lcd);
lukeocarwright 21:60f01b17b0a6 95
lukeocarwright 21:60f01b17b0a6 96 /** Prints Contrast adjust screen to LCD */
lukeocarwright 21:60f01b17b0a6 97 void printcontrast(N5110 &lcd, float contrast);
lukeocarwright 21:60f01b17b0a6 98
lukeocarwright 21:60f01b17b0a6 99 /**Prints if submenu par is unavailable */
lukeocarwright 8:f305ea78b2b1 100 void subunavailiable(N5110 &lcd); //prints error for sub
lukeocarwright 21:60f01b17b0a6 101
lukeocarwright 21:60f01b17b0a6 102 /*Function checks for joystick movement
lukeocarwright 21:60f01b17b0a6 103 * @returns intiger value of scroll direction
lukeocarwright 21:60f01b17b0a6 104 */
lukeocarwright 8:f305ea78b2b1 105 int scroll_check(Gamepad &pad);
lukeocarwright 8:f305ea78b2b1 106 };
lukeocarwright 8:f305ea78b2b1 107
lukeocarwright 8:f305ea78b2b1 108 #endif