Richard Parker / EALCD
Committer:
richardparker
Date:
Mon Apr 26 21:37:54 2010 +0000
Revision:
4:f8f7f4f9c58d
Parent:
3:24fbf4dbd7e5

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richardparker 3:24fbf4dbd7e5 1 // Copyright 2010 Richard Parker
richardparker 3:24fbf4dbd7e5 2
richardparker 3:24fbf4dbd7e5 3 #ifndef MBED_EASETTINGS_H
richardparker 3:24fbf4dbd7e5 4 #define MBED_EASETTINGS_H
richardparker 3:24fbf4dbd7e5 5
richardparker 3:24fbf4dbd7e5 6 #include "mbed.h"
richardparker 3:24fbf4dbd7e5 7
richardparker 3:24fbf4dbd7e5 8 #include "../manager/EAHitHandler.h"
richardparker 3:24fbf4dbd7e5 9
richardparker 3:24fbf4dbd7e5 10 class EALCD;
richardparker 3:24fbf4dbd7e5 11 class EATouchManager;
richardparker 3:24fbf4dbd7e5 12 class EAButton;
richardparker 3:24fbf4dbd7e5 13 class EATouch;
richardparker 4:f8f7f4f9c58d 14 class EACompass;
richardparker 4:f8f7f4f9c58d 15 class HMC6352;
richardparker 3:24fbf4dbd7e5 16
richardparker 3:24fbf4dbd7e5 17 /**
richardparker 3:24fbf4dbd7e5 18 * Class to handle setting up the peripherals on the EA star gazer board.
richardparker 3:24fbf4dbd7e5 19 * @author Richard Parker
richardparker 3:24fbf4dbd7e5 20 */
richardparker 3:24fbf4dbd7e5 21 class EASettings: public EAHitHandler
richardparker 3:24fbf4dbd7e5 22 {
richardparker 3:24fbf4dbd7e5 23 public:
richardparker 3:24fbf4dbd7e5 24 enum State {
richardparker 3:24fbf4dbd7e5 25 STATE_IDLE,
richardparker 3:24fbf4dbd7e5 26 STATE_ENDED,
richardparker 3:24fbf4dbd7e5 27 STATE_PORTAL,
richardparker 3:24fbf4dbd7e5 28 STATE_DATE_DAY,
richardparker 3:24fbf4dbd7e5 29 STATE_DATE_MONTH,
richardparker 3:24fbf4dbd7e5 30 STATE_DATE_YEAR,
richardparker 3:24fbf4dbd7e5 31 STATE_DATE_HOUR,
richardparker 3:24fbf4dbd7e5 32 STATE_DATE_MINUTE,
richardparker 4:f8f7f4f9c58d 33 STATE_DATE_SECOND,
richardparker 4:f8f7f4f9c58d 34 STATE_COMPASS
richardparker 3:24fbf4dbd7e5 35 };
richardparker 3:24fbf4dbd7e5 36
richardparker 4:f8f7f4f9c58d 37 EASettings(EALCD& lcd, EATouch& touch, EATouchManager& manager, HMC6352& compass);
richardparker 3:24fbf4dbd7e5 38 ~EASettings();
richardparker 3:24fbf4dbd7e5 39
richardparker 3:24fbf4dbd7e5 40 void start();
richardparker 3:24fbf4dbd7e5 41
richardparker 3:24fbf4dbd7e5 42 inline unsigned short size() { return 40; }
richardparker 3:24fbf4dbd7e5 43
richardparker 3:24fbf4dbd7e5 44 virtual void actionHandler(EAHitBox* box, short x, short y);
richardparker 3:24fbf4dbd7e5 45
richardparker 3:24fbf4dbd7e5 46 inline EASettings::State state() { return _state; }
richardparker 3:24fbf4dbd7e5 47
richardparker 4:f8f7f4f9c58d 48 void redrawCompass();
richardparker 4:f8f7f4f9c58d 49
richardparker 4:f8f7f4f9c58d 50 void tick();
richardparker 4:f8f7f4f9c58d 51
richardparker 3:24fbf4dbd7e5 52 private:
richardparker 3:24fbf4dbd7e5 53 EALCD& _lcd;
richardparker 3:24fbf4dbd7e5 54 EATouch& _touch;
richardparker 3:24fbf4dbd7e5 55 EATouchManager& _manager;
richardparker 4:f8f7f4f9c58d 56 HMC6352& _compass;
richardparker 4:f8f7f4f9c58d 57
richardparker 3:24fbf4dbd7e5 58 struct tm* _time;
richardparker 4:f8f7f4f9c58d 59 EACompass* _compassCircle;
richardparker 3:24fbf4dbd7e5 60
richardparker 3:24fbf4dbd7e5 61 EAButton* _launchBox;
richardparker 3:24fbf4dbd7e5 62 EAButton* _returnBox;
richardparker 3:24fbf4dbd7e5 63 EAButton* _touchBox;
richardparker 3:24fbf4dbd7e5 64 EAButton* _dateBox;
richardparker 3:24fbf4dbd7e5 65 EAButton* _compassBox;
richardparker 3:24fbf4dbd7e5 66 EAButton* _nextBox;
richardparker 3:24fbf4dbd7e5 67 EAButton* _prevBox;
richardparker 3:24fbf4dbd7e5 68 EAButton* _incBox;
richardparker 3:24fbf4dbd7e5 69 EAButton* _decBox;
richardparker 4:f8f7f4f9c58d 70
richardparker 3:24fbf4dbd7e5 71 EASettings::State _state;
richardparker 3:24fbf4dbd7e5 72
richardparker 3:24fbf4dbd7e5 73 void _disableHitBoxs();
richardparker 3:24fbf4dbd7e5 74
richardparker 3:24fbf4dbd7e5 75 void _drawLaunchButton();
richardparker 3:24fbf4dbd7e5 76 void _drawPortal();
richardparker 4:f8f7f4f9c58d 77
richardparker 4:f8f7f4f9c58d 78 void _updateCompass();
richardparker 4:f8f7f4f9c58d 79 void _drawCompass();
richardparker 4:f8f7f4f9c58d 80
richardparker 3:24fbf4dbd7e5 81 void _drawDate();
richardparker 3:24fbf4dbd7e5 82
richardparker 3:24fbf4dbd7e5 83 EASettings::State _incDate();
richardparker 3:24fbf4dbd7e5 84 EASettings::State _decDate();
richardparker 3:24fbf4dbd7e5 85 EASettings::State _nextDate();
richardparker 3:24fbf4dbd7e5 86 EASettings::State _prevDate();
richardparker 3:24fbf4dbd7e5 87 void _enableDateButtons();
richardparker 3:24fbf4dbd7e5 88
richardparker 3:24fbf4dbd7e5 89 };
richardparker 3:24fbf4dbd7e5 90
richardparker 3:24fbf4dbd7e5 91 #endif