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 KEYBOARD_EVENT_SERVER_H_
osmeest 0:1324e7d9d471 2 #define KEYBOARD_EVENT_SERVER_H_
osmeest 0:1324e7d9d471 3
osmeest 0:1324e7d9d471 4 #include <cstdlib>
osmeest 0:1324e7d9d471 5
osmeest 0:1324e7d9d471 6 namespace kbd_mgr {
osmeest 0:1324e7d9d471 7
osmeest 0:1324e7d9d471 8 template <class HandlerClass>
osmeest 0:1324e7d9d471 9 class KeyboardEventServer {
osmeest 0:1324e7d9d471 10 protected:
osmeest 0:1324e7d9d471 11 KeyboardEventServer() : handler_(NULL), ownHandler_(false) { }
osmeest 0:1324e7d9d471 12
osmeest 0:1324e7d9d471 13 ~KeyboardEventServer()
osmeest 0:1324e7d9d471 14 {
osmeest 0:1324e7d9d471 15 clearHandler();
osmeest 0:1324e7d9d471 16 }
osmeest 0:1324e7d9d471 17
osmeest 0:1324e7d9d471 18 void setHandler(HandlerClass *h, bool owner = true) {
osmeest 0:1324e7d9d471 19 this->handler_ = h;
osmeest 0:1324e7d9d471 20 this->ownHandler_ = owner;
osmeest 0:1324e7d9d471 21 }
osmeest 0:1324e7d9d471 22
osmeest 0:1324e7d9d471 23 void clearHandler() {
osmeest 0:1324e7d9d471 24 if (this->ownHandler_) {
osmeest 0:1324e7d9d471 25 delete this->handler_;
osmeest 0:1324e7d9d471 26 }
osmeest 0:1324e7d9d471 27 this->handler_ = NULL;
osmeest 0:1324e7d9d471 28 this->ownHandler_ = false;
osmeest 0:1324e7d9d471 29 }
osmeest 0:1324e7d9d471 30
osmeest 0:1324e7d9d471 31 HandlerClass *handler() const { return this->handler_; }
osmeest 0:1324e7d9d471 32
osmeest 0:1324e7d9d471 33 bool hasHandler() const { return this->handler_ != NULL; }
osmeest 0:1324e7d9d471 34
osmeest 0:1324e7d9d471 35 public:
osmeest 0:1324e7d9d471 36 void attach(HandlerClass *handler) {
osmeest 0:1324e7d9d471 37 setHandler(handler, false);
osmeest 0:1324e7d9d471 38 }
osmeest 0:1324e7d9d471 39 void attach(HandlerClass &handler) {
osmeest 0:1324e7d9d471 40 setHandler(&handler, false);
osmeest 0:1324e7d9d471 41 }
osmeest 0:1324e7d9d471 42
osmeest 0:1324e7d9d471 43 void detach() {
osmeest 0:1324e7d9d471 44 clearHandler();
osmeest 0:1324e7d9d471 45 }
osmeest 0:1324e7d9d471 46
osmeest 0:1324e7d9d471 47 private:
osmeest 0:1324e7d9d471 48 HandlerClass *handler_;
osmeest 0:1324e7d9d471 49 bool ownHandler_;
osmeest 0:1324e7d9d471 50 };
osmeest 0:1324e7d9d471 51
osmeest 0:1324e7d9d471 52 } // kbd_mgr
osmeest 0:1324e7d9d471 53
osmeest 0:1324e7d9d471 54 #endif // KEYBOARD_EVENT_SERVER_H_