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.cpp@73:d1aea9b8da92, 2020-05-23 (annotated)
- Committer:
- evanso
- Date:
- Sat May 23 21:50:33 2020 +0000
- Revision:
- 73:d1aea9b8da92
- Parent:
- 71:bcbac2cfe005
- 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 | #include "Settings.h" |
| evanso | 44:2d957de3bce3 | 2 | |
| evanso | 69:753ba27325ce | 3 | const char settings_part_names[3][9] = { |
| evanso | 69:753ba27325ce | 4 | {"Contrast"}, |
| evanso | 69:753ba27325ce | 5 | {"Controls"}, |
| evanso | 69:753ba27325ce | 6 | {"Sound FX"}, |
| evanso | 69:753ba27325ce | 7 | }; |
| evanso | 69:753ba27325ce | 8 | |
| evanso | 69:753ba27325ce | 9 | const char controls_part_names[2][4] = { |
| evanso | 69:753ba27325ce | 10 | {"Joy"}, |
| evanso | 69:753ba27325ce | 11 | {"Acc"}, |
| evanso | 69:753ba27325ce | 12 | }; |
| evanso | 69:753ba27325ce | 13 | |
| evanso | 69:753ba27325ce | 14 | const char sound_part_names[2][4] = { |
| evanso | 69:753ba27325ce | 15 | {"On"}, |
| evanso | 69:753ba27325ce | 16 | {"Off"}, |
| evanso | 69:753ba27325ce | 17 | }; |
| evanso | 69:753ba27325ce | 18 | |
| evanso | 69:753ba27325ce | 19 | // Defining scroll_order_settings states for scroll_order_settings FSM |
| evanso | 69:753ba27325ce | 20 | scroll_order_setting settings_fsm[3] = { |
| evanso | 69:753ba27325ce | 21 | {controls, sound_fx}, |
| evanso | 69:753ba27325ce | 22 | {sound_fx, contrast}, |
| evanso | 69:753ba27325ce | 23 | {contrast, controls}, |
| evanso | 69:753ba27325ce | 24 | }; |
| evanso | 69:753ba27325ce | 25 | |
| evanso | 69:753ba27325ce | 26 | // Defining on_off_order states for settings_on_off FSM |
| evanso | 69:753ba27325ce | 27 | on_off_order settings_on_off_fsm[2] = { |
| evanso | 69:753ba27325ce | 28 | {off, on}, |
| evanso | 69:753ba27325ce | 29 | {on, off}, |
| evanso | 69:753ba27325ce | 30 | }; |
| evanso | 69:753ba27325ce | 31 | |
| evanso | 69:753ba27325ce | 32 | // Defining control_order states for settings_joy_acc FSM |
| evanso | 69:753ba27325ce | 33 | control_order settings_joy_acc_fsm[2] = { |
| evanso | 69:753ba27325ce | 34 | {acc, joy}, |
| evanso | 69:753ba27325ce | 35 | {joy, acc}, |
| evanso | 69:753ba27325ce | 36 | }; |
| evanso | 69:753ba27325ce | 37 | |
| evanso | 44:2d957de3bce3 | 38 | Settings::Settings() { |
| evanso | 44:2d957de3bce3 | 39 | |
| evanso | 44:2d957de3bce3 | 40 | } |
| evanso | 44:2d957de3bce3 | 41 | |
| evanso | 44:2d957de3bce3 | 42 | Settings::~Settings() { |
| evanso | 44:2d957de3bce3 | 43 | |
| evanso | 44:2d957de3bce3 | 44 | } |
| evanso | 44:2d957de3bce3 | 45 | |
| evanso | 44:2d957de3bce3 | 46 | void Settings::init(){ |
| evanso | 69:753ba27325ce | 47 | control_method_ = joy; |
| evanso | 69:753ba27325ce | 48 | sound_method_ = on; |
| evanso | 70:8c4572d17441 | 49 | displayed_settings_part_ = controls; |
| evanso | 69:753ba27325ce | 50 | } |
| evanso | 69:753ba27325ce | 51 | |
| evanso | 69:753ba27325ce | 52 | ControlsParts Settings::get_control_method(){ |
| evanso | 69:753ba27325ce | 53 | return control_method_; |
| evanso | 69:753ba27325ce | 54 | } |
| evanso | 69:753ba27325ce | 55 | |
| evanso | 70:8c4572d17441 | 56 | |
| evanso | 73:d1aea9b8da92 | 57 | SoundParts Settings::get_sound_method(){ |
| evanso | 73:d1aea9b8da92 | 58 | return sound_method_; |
| evanso | 73:d1aea9b8da92 | 59 | } |
| evanso | 73:d1aea9b8da92 | 60 | |
| evanso | 70:8c4572d17441 | 61 | SettingsParts Settings::get_displayed_settings_part(){ |
| evanso | 70:8c4572d17441 | 62 | return displayed_settings_part_; |
| evanso | 70:8c4572d17441 | 63 | } |
| evanso | 70:8c4572d17441 | 64 | |
| evanso | 69:753ba27325ce | 65 | void Settings::display_settings_screen(N5110 &lcd, float pot_read){ |
| evanso | 69:753ba27325ce | 66 | //Pirnts differnt settings parts |
| evanso | 69:753ba27325ce | 67 | if(displayed_settings_part_ == controls){ |
| evanso | 69:753ba27325ce | 68 | lcd.printString(settings_part_names[displayed_settings_part_],6 ,3); |
| evanso | 69:753ba27325ce | 69 | lcd.printString(controls_part_names[control_method_],60 ,3); |
| evanso | 69:753ba27325ce | 70 | }else if(displayed_settings_part_ == sound_fx){ |
| evanso | 69:753ba27325ce | 71 | lcd.printString(settings_part_names[displayed_settings_part_],6 ,3); |
| evanso | 69:753ba27325ce | 72 | lcd.printString(sound_part_names[sound_method_],60 ,3); |
| evanso | 69:753ba27325ce | 73 | }else if(displayed_settings_part_ == contrast){ |
| evanso | 69:753ba27325ce | 74 | lcd.printString(settings_part_names[displayed_settings_part_],6 ,3); |
| evanso | 69:753ba27325ce | 75 | char buffer[2]; |
| evanso | 69:753ba27325ce | 76 | sprintf(buffer,"%.2f",pot_read); |
| evanso | 69:753ba27325ce | 77 | lcd.printString(buffer,58,3); |
| evanso | 69:753ba27325ce | 78 | } |
| evanso | 69:753ba27325ce | 79 | |
| evanso | 69:753ba27325ce | 80 | //prints setting title and button instructions and arrows |
| evanso | 69:753ba27325ce | 81 | lcd.printString("Settings",18,0); |
| evanso | 69:753ba27325ce | 82 | lcd.drawSprite(39, 18, 3, 5, (int *)arrow_up); |
| evanso | 69:753ba27325ce | 83 | lcd.drawSprite(39, 34, 3, 5, (int *)arrow_down); |
| evanso | 69:753ba27325ce | 84 | lcd.printString("Back(B)Alt(A)",3,5); |
| evanso | 69:753ba27325ce | 85 | } |
| evanso | 69:753ba27325ce | 86 | |
| evanso | 69:753ba27325ce | 87 | void Settings::change_setting(bool pressed) { |
| evanso | 69:753ba27325ce | 88 | // When a is pressed changes the settings for the displayed setting part |
| evanso | 69:753ba27325ce | 89 | if (pressed) { |
| evanso | 69:753ba27325ce | 90 | if (displayed_settings_part_ == sound_fx){ |
| evanso | 69:753ba27325ce | 91 | sound_method_ = settings_on_off_fsm[sound_method_].part_next; |
| evanso | 69:753ba27325ce | 92 | }else if(displayed_settings_part_ == controls){ |
| evanso | 69:753ba27325ce | 93 | control_method_ = settings_joy_acc_fsm[control_method_].part_next; |
| evanso | 69:753ba27325ce | 94 | } |
| evanso | 71:bcbac2cfe005 | 95 | wait(0.3); |
| evanso | 69:753ba27325ce | 96 | } |
| evanso | 69:753ba27325ce | 97 | |
| evanso | 69:753ba27325ce | 98 | } |
| evanso | 69:753ba27325ce | 99 | |
| evanso | 69:753ba27325ce | 100 | void Settings::settings_scroll(Direction d_) { |
| evanso | 69:753ba27325ce | 101 | // Changes displayed settings part depending on joystick input |
| evanso | 70:8c4572d17441 | 102 | if (d_ == N || d_ == NE || d_ == NW ) { |
| evanso | 70:8c4572d17441 | 103 | //printf(" displayed_settings_part_ %d\n",displayed_settings_part_); |
| evanso | 69:753ba27325ce | 104 | displayed_settings_part_ = |
| evanso | 69:753ba27325ce | 105 | settings_fsm[displayed_settings_part_].part_next; |
| evanso | 69:753ba27325ce | 106 | } else if (d_ == S || d_ == SW || d_ == SE) { |
| evanso | 69:753ba27325ce | 107 | displayed_settings_part_= |
| evanso | 69:753ba27325ce | 108 | settings_fsm[displayed_settings_part_].part_next; |
| evanso | 69:753ba27325ce | 109 | displayed_settings_part_ = |
| evanso | 69:753ba27325ce | 110 | settings_fsm[displayed_settings_part_].part_next; |
| evanso | 69:753ba27325ce | 111 | } |
| evanso | 69:753ba27325ce | 112 | wait(0.15); |
| evanso | 44:2d957de3bce3 | 113 | } |