Project Submission (late)

Dependencies:   mbed

Committer:
el17tc
Date:
Fri May 10 08:07:10 2019 +0000
Revision:
0:72f372170a73
Child:
3:83e79d31930c
Save at functioning version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17tc 0:72f372170a73 1 #ifndef OPTIONSMENU_H
el17tc 0:72f372170a73 2 #define OPTIONSMENU_H
el17tc 0:72f372170a73 3
el17tc 0:72f372170a73 4 #include "Menus.h"
el17tc 0:72f372170a73 5
el17tc 0:72f372170a73 6 // Button class that can modify brightness
el17tc 0:72f372170a73 7
el17tc 0:72f372170a73 8 class BrightnessButton : public Button {
el17tc 0:72f372170a73 9 public:
el17tc 0:72f372170a73 10 N5110* lcd;
el17tc 0:72f372170a73 11 BrightnessButton(N5110* screenPtr) : lcd(screenPtr) {
el17tc 0:72f372170a73 12 x = 25;
el17tc 0:72f372170a73 13 y = 16;
el17tc 0:72f372170a73 14 }
el17tc 0:72f372170a73 15 void virtual run() {
el17tc 0:72f372170a73 16 if (brightnessVal < 0.97)
el17tc 0:72f372170a73 17 brightnessVal += 0.05;
el17tc 0:72f372170a73 18 lcd->setBrightness(brightnessVal);
el17tc 0:72f372170a73 19 printf("Brightness increasing\n");
el17tc 0:72f372170a73 20 }
el17tc 0:72f372170a73 21 void virtual runBack() {
el17tc 0:72f372170a73 22 if (brightnessVal > 0.03)
el17tc 0:72f372170a73 23 brightnessVal -= 0.05;
el17tc 0:72f372170a73 24 lcd->setBrightness(brightnessVal);
el17tc 0:72f372170a73 25 printf("Brightness decreasing\n");
el17tc 0:72f372170a73 26 }
el17tc 0:72f372170a73 27 };
el17tc 0:72f372170a73 28
el17tc 0:72f372170a73 29 // Button class that can modify contrast
el17tc 0:72f372170a73 30
el17tc 0:72f372170a73 31 class ContrastButton : public Button {
el17tc 0:72f372170a73 32 public:
el17tc 0:72f372170a73 33 N5110* lcd;
el17tc 0:72f372170a73 34 ContrastButton(N5110* screenPtr) : lcd(screenPtr) {
el17tc 0:72f372170a73 35 x = 25;
el17tc 0:72f372170a73 36 y = 32;
el17tc 0:72f372170a73 37 }
el17tc 0:72f372170a73 38 void virtual run() {
el17tc 0:72f372170a73 39 if (contrastVal < 0.97)
el17tc 0:72f372170a73 40 contrastVal += 0.05;
el17tc 0:72f372170a73 41 lcd->setContrast(contrastVal);
el17tc 0:72f372170a73 42 printf("Contrast increasing\n");
el17tc 0:72f372170a73 43 }
el17tc 0:72f372170a73 44 void virtual runBack() {
el17tc 0:72f372170a73 45 if (contrastVal > 0.03)
el17tc 0:72f372170a73 46 contrastVal -= 0.05;
el17tc 0:72f372170a73 47 lcd->setContrast(contrastVal);
el17tc 0:72f372170a73 48 printf("Contrast decreasing\n");
el17tc 0:72f372170a73 49 }
el17tc 0:72f372170a73 50 };
el17tc 0:72f372170a73 51
el17tc 0:72f372170a73 52 // OptionsMenu lets the player modify the brightness and contrast
el17tc 0:72f372170a73 53 // of the lcd screen. can only increment in 5% steps.
el17tc 0:72f372170a73 54
el17tc 0:72f372170a73 55 class OptionsMenu : public Menu {
el17tc 0:72f372170a73 56 public:
el17tc 0:72f372170a73 57 OptionsMenu(N5110* screenPtr) : Menu(screenPtr) {
el17tc 0:72f372170a73 58 buttons[0] = new BrightnessButton(lcd);
el17tc 0:72f372170a73 59 buttons[1] = new ContrastButton(lcd);
el17tc 0:72f372170a73 60 currentButton = buttons[0];
el17tc 0:72f372170a73 61 numOfButtons = 2;
el17tc 0:72f372170a73 62 buttonIndex = 0;
el17tc 0:72f372170a73 63 }
el17tc 0:72f372170a73 64 void virtual draw() {
el17tc 0:72f372170a73 65 std::stringstream ssb;
el17tc 0:72f372170a73 66 std::stringstream ssc;
el17tc 0:72f372170a73 67 ssc << (contrastVal*100) << "%";
el17tc 0:72f372170a73 68 ssb << (brightnessVal*100) << "%";
el17tc 0:72f372170a73 69 lcd->printString("Options:",10,0);
el17tc 0:72f372170a73 70 lcd->printString("Brightness:",10,1);
el17tc 0:72f372170a73 71 lcd->printString(ssb.str().c_str(),30,2);
el17tc 0:72f372170a73 72 lcd->printString("Contrast:",10,3);
el17tc 0:72f372170a73 73 lcd->printString(ssc.str().c_str(),30,4);
el17tc 0:72f372170a73 74 }
el17tc 0:72f372170a73 75 ~OptionsMenu() {
el17tc 0:72f372170a73 76 delete buttons[0];
el17tc 0:72f372170a73 77 delete buttons[1];
el17tc 0:72f372170a73 78 }
el17tc 0:72f372170a73 79 };
el17tc 0:72f372170a73 80
el17tc 0:72f372170a73 81 #endif // OPTIONSMENU_H