Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Settings/Settings.h@73:d1aea9b8da92, 2020-05-23 (annotated)
- Committer:
- evanso
- Date:
- Sat May 23 21:50:33 2020 +0000
- Revision:
- 73:d1aea9b8da92
- Parent:
- 70:8c4572d17441
- Child:
- 74:6827b43c689d
Turning sound effects off now actually turns the sound fx off.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
evanso | 43:d43759dbddb9 | 1 | #ifndef SETTINGS_H |
evanso | 43:d43759dbddb9 | 2 | #define SETTINGS_H |
evanso | 43:d43759dbddb9 | 3 | |
evanso | 43:d43759dbddb9 | 4 | // Included libraries ---------------------------------------------------------- |
evanso | 43:d43759dbddb9 | 5 | #include "mbed.h" |
evanso | 43:d43759dbddb9 | 6 | #include "N5110.h" |
evanso | 43:d43759dbddb9 | 7 | #include "Gamepad.h" |
evanso | 69:753ba27325ce | 8 | #include "Sprites.h" |
evanso | 69:753ba27325ce | 9 | |
evanso | 69:753ba27325ce | 10 | /** Enum for diffent menu parts*/ |
evanso | 69:753ba27325ce | 11 | enum SettingsParts {contrast, controls, sound_fx }; |
evanso | 69:753ba27325ce | 12 | |
evanso | 70:8c4572d17441 | 13 | /** Enum for diffent control settings parts, joystick and accelerometer*/ |
evanso | 69:753ba27325ce | 14 | enum ControlsParts {joy, acc}; |
evanso | 69:753ba27325ce | 15 | |
evanso | 69:753ba27325ce | 16 | /** Enum for diffent sound setting parts*/ |
evanso | 69:753ba27325ce | 17 | enum SoundParts {on, off}; |
evanso | 69:753ba27325ce | 18 | |
evanso | 69:753ba27325ce | 19 | /** scroll_orderStruct |
evanso | 69:753ba27325ce | 20 | * @brief Struct hold differnt settings orders |
evanso | 69:753ba27325ce | 21 | */ |
evanso | 69:753ba27325ce | 22 | struct scroll_order_setting { |
evanso | 69:753ba27325ce | 23 | SettingsParts part_next; /**< Next settings part */ |
evanso | 69:753ba27325ce | 24 | SettingsParts part_displayed; /**< Displayed settings part */ |
evanso | 69:753ba27325ce | 25 | }; |
evanso | 69:753ba27325ce | 26 | |
evanso | 69:753ba27325ce | 27 | /** On/off Struct |
evanso | 69:753ba27325ce | 28 | * @brief Struct hold differnt settings orders |
evanso | 69:753ba27325ce | 29 | */ |
evanso | 69:753ba27325ce | 30 | struct on_off_order { |
evanso | 69:753ba27325ce | 31 | SoundParts part_next; /**< Next onoff part */ |
evanso | 69:753ba27325ce | 32 | SoundParts part_displayed; /**< Displayed onoff part */ |
evanso | 69:753ba27325ce | 33 | }; |
evanso | 69:753ba27325ce | 34 | |
evanso | 69:753ba27325ce | 35 | /** Controll_orderStruct |
evanso | 69:753ba27325ce | 36 | * @brief Struct hold differnt controls orders |
evanso | 69:753ba27325ce | 37 | */ |
evanso | 69:753ba27325ce | 38 | struct control_order { |
evanso | 69:753ba27325ce | 39 | ControlsParts part_next; /**< Next controls part */ |
evanso | 69:753ba27325ce | 40 | ControlsParts part_displayed; /**< Displayed controls part */ |
evanso | 69:753ba27325ce | 41 | }; |
evanso | 43:d43759dbddb9 | 42 | |
evanso | 43:d43759dbddb9 | 43 | /** Settings class |
evanso | 43:d43759dbddb9 | 44 | * @brief Change change contrast, control method |
evanso | 43:d43759dbddb9 | 45 | * @author Benjamin Evans, University of Leeds |
evanso | 43:d43759dbddb9 | 46 | * @date May 2020 |
evanso | 43:d43759dbddb9 | 47 | */ |
evanso | 43:d43759dbddb9 | 48 | class Settings{ |
evanso | 43:d43759dbddb9 | 49 | public: |
evanso | 43:d43759dbddb9 | 50 | /** Constructor */ |
evanso | 43:d43759dbddb9 | 51 | Settings(); |
evanso | 43:d43759dbddb9 | 52 | |
evanso | 43:d43759dbddb9 | 53 | /** Destructor */ |
evanso | 43:d43759dbddb9 | 54 | ~Settings(); |
evanso | 43:d43759dbddb9 | 55 | |
evanso | 43:d43759dbddb9 | 56 | /** Initalises Settings*/ |
evanso | 43:d43759dbddb9 | 57 | void init(); |
evanso | 43:d43759dbddb9 | 58 | |
evanso | 69:753ba27325ce | 59 | /** Draws the settings screen |
evanso | 69:753ba27325ce | 60 | * @param lcd @details N5110 object |
evanso | 69:753ba27325ce | 61 | * @param pad @details Gamepad object |
evanso | 69:753ba27325ce | 62 | */ |
evanso | 69:753ba27325ce | 63 | void display_settings_screen(N5110 &lcd, float pot_read); |
evanso | 69:753ba27325ce | 64 | |
evanso | 69:753ba27325ce | 65 | /** Changes the current displayed setting part |
evanso | 69:753ba27325ce | 66 | * @param pressed @details Buttom A pressed |
evanso | 69:753ba27325ce | 67 | */ |
evanso | 69:753ba27325ce | 68 | void change_setting(bool pressed); |
evanso | 69:753ba27325ce | 69 | |
evanso | 69:753ba27325ce | 70 | /** Scrolls through the diffent settings parts |
evanso | 69:753ba27325ce | 71 | * @param d_ @details Direction of joystick |
evanso | 69:753ba27325ce | 72 | */ |
evanso | 69:753ba27325ce | 73 | void settings_scroll(Direction d_); |
evanso | 44:2d957de3bce3 | 74 | |
evanso | 43:d43759dbddb9 | 75 | // Accessors and mutators -------------------------------------------------- |
evanso | 44:2d957de3bce3 | 76 | |
evanso | 69:753ba27325ce | 77 | /** Return the control method that set in setting menu |
evanso | 69:753ba27325ce | 78 | * @return control_method_ |
evanso | 44:2d957de3bce3 | 79 | */ |
evanso | 69:753ba27325ce | 80 | ControlsParts get_control_method(); |
evanso | 69:753ba27325ce | 81 | |
evanso | 69:753ba27325ce | 82 | /** Return the sound method that set in setting menu |
evanso | 69:753ba27325ce | 83 | * @return sound_method_ |
evanso | 69:753ba27325ce | 84 | */ |
evanso | 73:d1aea9b8da92 | 85 | SoundParts get_sound_method(); |
evanso | 44:2d957de3bce3 | 86 | |
evanso | 70:8c4572d17441 | 87 | /** Return the setting part that is displayed |
evanso | 70:8c4572d17441 | 88 | * @return get_displayed_settings_part_ |
evanso | 70:8c4572d17441 | 89 | */ |
evanso | 70:8c4572d17441 | 90 | SettingsParts get_displayed_settings_part(); |
evanso | 70:8c4572d17441 | 91 | |
evanso | 43:d43759dbddb9 | 92 | private: |
evanso | 43:d43759dbddb9 | 93 | |
evanso | 43:d43759dbddb9 | 94 | // Varibles ---------------------------------------------------------------- |
evanso | 44:2d957de3bce3 | 95 | |
evanso | 44:2d957de3bce3 | 96 | /** LCD contrast */ |
evanso | 44:2d957de3bce3 | 97 | int lcd_contrast; |
evanso | 44:2d957de3bce3 | 98 | |
evanso | 69:753ba27325ce | 99 | /** Control method of the spaceship */ |
evanso | 69:753ba27325ce | 100 | ControlsParts control_method_; |
evanso | 69:753ba27325ce | 101 | |
evanso | 69:753ba27325ce | 102 | /** Controls whether sound fx are on or not */ |
evanso | 69:753ba27325ce | 103 | SoundParts sound_method_; |
evanso | 69:753ba27325ce | 104 | |
evanso | 69:753ba27325ce | 105 | /** The part of setting that is displayed */ |
evanso | 69:753ba27325ce | 106 | SettingsParts displayed_settings_part_; |
evanso | 69:753ba27325ce | 107 | |
evanso | 43:d43759dbddb9 | 108 | }; |
evanso | 43:d43759dbddb9 | 109 | #endif |