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@82:3211b31e9421, 2020-05-25 (annotated)
- Committer:
- evanso
- Date:
- Mon May 25 18:39:51 2020 +0000
- Revision:
- 82:3211b31e9421
- Parent:
- 74:6827b43c689d
- Child:
- 85:87bc28b151d8
Made commenting and formatting of code more consistent.
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 | 82:3211b31e9421 | 4 | // Included Headers ------------------------------------------------------------ |
| 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 | 74:6827b43c689d | 11 | enum SettingsParts {contrast, controls, sound_fx, music }; |
| 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 | 74:6827b43c689d | 19 | /** Enum for diffent music setting parts*/ |
| evanso | 74:6827b43c689d | 20 | enum MusicParts {music_on, music_off}; |
| evanso | 74:6827b43c689d | 21 | |
| evanso | 69:753ba27325ce | 22 | /** scroll_orderStruct |
| evanso | 69:753ba27325ce | 23 | * @brief Struct hold differnt settings orders |
| evanso | 69:753ba27325ce | 24 | */ |
| evanso | 69:753ba27325ce | 25 | struct scroll_order_setting { |
| evanso | 82:3211b31e9421 | 26 | SettingsParts part_previous; /**< Previous settings part */ |
| evanso | 74:6827b43c689d | 27 | SettingsParts part_displayed; /**< Displayed settings part */ |
| evanso | 69:753ba27325ce | 28 | SettingsParts part_next; /**< Next settings part */ |
| evanso | 69:753ba27325ce | 29 | }; |
| evanso | 69:753ba27325ce | 30 | |
| evanso | 74:6827b43c689d | 31 | /** On/off sound fx Struct |
| evanso | 74:6827b43c689d | 32 | * @brief Struct hold differnt sound fx orders |
| evanso | 69:753ba27325ce | 33 | */ |
| evanso | 69:753ba27325ce | 34 | struct on_off_order { |
| evanso | 69:753ba27325ce | 35 | SoundParts part_next; /**< Next onoff part */ |
| evanso | 69:753ba27325ce | 36 | SoundParts part_displayed; /**< Displayed onoff part */ |
| evanso | 69:753ba27325ce | 37 | }; |
| evanso | 69:753ba27325ce | 38 | |
| evanso | 74:6827b43c689d | 39 | /** On/off music Struct |
| evanso | 74:6827b43c689d | 40 | * @brief Struct hold differnt music orders |
| evanso | 74:6827b43c689d | 41 | */ |
| evanso | 74:6827b43c689d | 42 | struct music_on_off_order { |
| evanso | 74:6827b43c689d | 43 | MusicParts part_next; /**< Next onoff part */ |
| evanso | 74:6827b43c689d | 44 | MusicParts part_displayed; /**< Displayed onoff part */ |
| evanso | 74:6827b43c689d | 45 | }; |
| evanso | 74:6827b43c689d | 46 | |
| evanso | 69:753ba27325ce | 47 | /** Controll_orderStruct |
| evanso | 69:753ba27325ce | 48 | * @brief Struct hold differnt controls orders |
| evanso | 69:753ba27325ce | 49 | */ |
| evanso | 69:753ba27325ce | 50 | struct control_order { |
| evanso | 69:753ba27325ce | 51 | ControlsParts part_next; /**< Next controls part */ |
| evanso | 69:753ba27325ce | 52 | ControlsParts part_displayed; /**< Displayed controls part */ |
| evanso | 69:753ba27325ce | 53 | }; |
| evanso | 43:d43759dbddb9 | 54 | |
| evanso | 43:d43759dbddb9 | 55 | /** Settings class |
| evanso | 43:d43759dbddb9 | 56 | * @brief Change change contrast, control method |
| evanso | 43:d43759dbddb9 | 57 | * @author Benjamin Evans, University of Leeds |
| evanso | 43:d43759dbddb9 | 58 | * @date May 2020 |
| evanso | 43:d43759dbddb9 | 59 | */ |
| evanso | 43:d43759dbddb9 | 60 | class Settings{ |
| evanso | 43:d43759dbddb9 | 61 | public: |
| evanso | 43:d43759dbddb9 | 62 | /** Constructor */ |
| evanso | 43:d43759dbddb9 | 63 | Settings(); |
| evanso | 43:d43759dbddb9 | 64 | |
| evanso | 43:d43759dbddb9 | 65 | /** Destructor */ |
| evanso | 43:d43759dbddb9 | 66 | ~Settings(); |
| evanso | 43:d43759dbddb9 | 67 | |
| evanso | 43:d43759dbddb9 | 68 | /** Initalises Settings*/ |
| evanso | 43:d43759dbddb9 | 69 | void init(); |
| evanso | 43:d43759dbddb9 | 70 | |
| evanso | 69:753ba27325ce | 71 | /** Draws the settings screen |
| evanso | 69:753ba27325ce | 72 | * @param lcd @details N5110 object |
| evanso | 82:3211b31e9421 | 73 | * @param pot_read @details Potentiometer read value |
| evanso | 69:753ba27325ce | 74 | */ |
| evanso | 69:753ba27325ce | 75 | void display_settings_screen(N5110 &lcd, float pot_read); |
| evanso | 69:753ba27325ce | 76 | |
| evanso | 69:753ba27325ce | 77 | /** Changes the current displayed setting part |
| evanso | 69:753ba27325ce | 78 | * @param pressed @details Buttom A pressed |
| evanso | 69:753ba27325ce | 79 | */ |
| evanso | 69:753ba27325ce | 80 | void change_setting(bool pressed); |
| evanso | 69:753ba27325ce | 81 | |
| evanso | 69:753ba27325ce | 82 | /** Scrolls through the diffent settings parts |
| evanso | 69:753ba27325ce | 83 | * @param d_ @details Direction of joystick |
| evanso | 69:753ba27325ce | 84 | */ |
| evanso | 69:753ba27325ce | 85 | void settings_scroll(Direction d_); |
| evanso | 44:2d957de3bce3 | 86 | |
| evanso | 43:d43759dbddb9 | 87 | // Accessors and mutators -------------------------------------------------- |
| evanso | 44:2d957de3bce3 | 88 | |
| evanso | 69:753ba27325ce | 89 | /** Return the control method that set in setting menu |
| evanso | 69:753ba27325ce | 90 | * @return control_method_ |
| evanso | 44:2d957de3bce3 | 91 | */ |
| evanso | 69:753ba27325ce | 92 | ControlsParts get_control_method(); |
| evanso | 69:753ba27325ce | 93 | |
| evanso | 69:753ba27325ce | 94 | /** Return the sound method that set in setting menu |
| evanso | 69:753ba27325ce | 95 | * @return sound_method_ |
| evanso | 69:753ba27325ce | 96 | */ |
| evanso | 73:d1aea9b8da92 | 97 | SoundParts get_sound_method(); |
| evanso | 44:2d957de3bce3 | 98 | |
| evanso | 74:6827b43c689d | 99 | /** Return the music method that set in setting menu |
| evanso | 74:6827b43c689d | 100 | * @return music_method_ |
| evanso | 74:6827b43c689d | 101 | */ |
| evanso | 74:6827b43c689d | 102 | MusicParts get_music_method(); |
| evanso | 74:6827b43c689d | 103 | |
| evanso | 70:8c4572d17441 | 104 | /** Return the setting part that is displayed |
| evanso | 70:8c4572d17441 | 105 | * @return get_displayed_settings_part_ |
| evanso | 70:8c4572d17441 | 106 | */ |
| evanso | 70:8c4572d17441 | 107 | SettingsParts get_displayed_settings_part(); |
| evanso | 70:8c4572d17441 | 108 | |
| evanso | 43:d43759dbddb9 | 109 | private: |
| evanso | 43:d43759dbddb9 | 110 | |
| evanso | 43:d43759dbddb9 | 111 | // Varibles ---------------------------------------------------------------- |
| evanso | 44:2d957de3bce3 | 112 | |
| evanso | 44:2d957de3bce3 | 113 | /** LCD contrast */ |
| evanso | 44:2d957de3bce3 | 114 | int lcd_contrast; |
| evanso | 44:2d957de3bce3 | 115 | |
| evanso | 69:753ba27325ce | 116 | /** Control method of the spaceship */ |
| evanso | 69:753ba27325ce | 117 | ControlsParts control_method_; |
| evanso | 69:753ba27325ce | 118 | |
| evanso | 69:753ba27325ce | 119 | /** Controls whether sound fx are on or not */ |
| evanso | 69:753ba27325ce | 120 | SoundParts sound_method_; |
| evanso | 69:753ba27325ce | 121 | |
| evanso | 74:6827b43c689d | 122 | /** Controls whether music are on or not */ |
| evanso | 74:6827b43c689d | 123 | MusicParts music_method_; |
| evanso | 74:6827b43c689d | 124 | |
| evanso | 69:753ba27325ce | 125 | /** The part of setting that is displayed */ |
| evanso | 69:753ba27325ce | 126 | SettingsParts displayed_settings_part_; |
| evanso | 69:753ba27325ce | 127 | |
| evanso | 43:d43759dbddb9 | 128 | }; |
| evanso | 43:d43759dbddb9 | 129 | #endif |