A DTMF sequence editor and player for HAM radio equipment command & control.

Dependencies:   mbed ExtTextLCD

Committer:
osmeest
Date:
Mon Mar 07 22:51:19 2011 +0000
Revision:
0:1324e7d9d471

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
osmeest 0:1324e7d9d471 1 #ifndef _SYSTEM_HPP
osmeest 0:1324e7d9d471 2 #define _SYSTEM_HPP
osmeest 0:1324e7d9d471 3
osmeest 0:1324e7d9d471 4 #include "key_handler.hpp"
osmeest 0:1324e7d9d471 5 #include <string>
osmeest 0:1324e7d9d471 6
osmeest 0:1324e7d9d471 7 class State;
osmeest 0:1324e7d9d471 8 class DisplayManager;
osmeest 0:1324e7d9d471 9 class KeyboardManager;
osmeest 0:1324e7d9d471 10 class DtmfGenerator;
osmeest 0:1324e7d9d471 11
osmeest 0:1324e7d9d471 12
osmeest 0:1324e7d9d471 13 class System : public KeyHandler {
osmeest 0:1324e7d9d471 14 public:
osmeest 0:1324e7d9d471 15 enum StateId {
osmeest 0:1324e7d9d471 16 Init, Edit, Command, Sending,
osmeest 0:1324e7d9d471 17 NumStates
osmeest 0:1324e7d9d471 18 };
osmeest 0:1324e7d9d471 19
osmeest 0:1324e7d9d471 20 System(DisplayManager *display, KeyboardManager *keyboard, DtmfGenerator *dtmf);
osmeest 0:1324e7d9d471 21
osmeest 0:1324e7d9d471 22 DisplayManager *display() { return this->display_; }
osmeest 0:1324e7d9d471 23 KeyboardManager *keyboard() { return this->keyboard_; }
osmeest 0:1324e7d9d471 24 DtmfGenerator *dtmf() { return this->dtmf_; }
osmeest 0:1324e7d9d471 25
osmeest 0:1324e7d9d471 26 void registerState(StateId id, State *state);
osmeest 0:1324e7d9d471 27 void unregisterState(State *state);
osmeest 0:1324e7d9d471 28
osmeest 0:1324e7d9d471 29 void setState(StateId newState);
osmeest 0:1324e7d9d471 30 State * state() const { return this->state_; }
osmeest 0:1324e7d9d471 31
osmeest 0:1324e7d9d471 32 void insertSymbol(char ch);
osmeest 0:1324e7d9d471 33 void deleteCurrentSymbol();
osmeest 0:1324e7d9d471 34 void clearText();
osmeest 0:1324e7d9d471 35 const std::string &text() const { return this->text_; }
osmeest 0:1324e7d9d471 36 std::size_t text_size() const { return this->len_; }
osmeest 0:1324e7d9d471 37
osmeest 0:1324e7d9d471 38 void moveCursorTo(int pos);
osmeest 0:1324e7d9d471 39 void moveCursorBy(int delta);
osmeest 0:1324e7d9d471 40 std::size_t cursor() const { return this->pos_; }
osmeest 0:1324e7d9d471 41
osmeest 0:1324e7d9d471 42 // KeyHandler implementation
osmeest 0:1324e7d9d471 43 virtual void handleKey(char ch);
osmeest 0:1324e7d9d471 44
osmeest 0:1324e7d9d471 45 private:
osmeest 0:1324e7d9d471 46 void setCursorPosition(int pos);
osmeest 0:1324e7d9d471 47
osmeest 0:1324e7d9d471 48 DisplayManager *display_;
osmeest 0:1324e7d9d471 49 KeyboardManager *keyboard_;
osmeest 0:1324e7d9d471 50 DtmfGenerator *dtmf_;
osmeest 0:1324e7d9d471 51
osmeest 0:1324e7d9d471 52 State *state_;
osmeest 0:1324e7d9d471 53 State *states_[NumStates];
osmeest 0:1324e7d9d471 54
osmeest 0:1324e7d9d471 55 std::string text_;
osmeest 0:1324e7d9d471 56 std::size_t len_;
osmeest 0:1324e7d9d471 57 std::size_t pos_;
osmeest 0:1324e7d9d471 58 };
osmeest 0:1324e7d9d471 59
osmeest 0:1324e7d9d471 60 #endif