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 KEYPRESS_EVENT_SERVER_H_
osmeest 0:1324e7d9d471 2 #define KEYPRESS_EVENT_SERVER_H_
osmeest 0:1324e7d9d471 3
osmeest 0:1324e7d9d471 4 #include "kbd_mgr/KeyboardEventServer.h"
osmeest 0:1324e7d9d471 5 #include "kbd_mgr/KeyPressEventHandler.h"
osmeest 0:1324e7d9d471 6
osmeest 0:1324e7d9d471 7 namespace kbd_mgr {
osmeest 0:1324e7d9d471 8
osmeest 0:1324e7d9d471 9 /**
osmeest 0:1324e7d9d471 10 * @brief A base class for monitors that report keypresses.
osmeest 0:1324e7d9d471 11 */
osmeest 0:1324e7d9d471 12 class KeyPressEventServer : public KeyboardEventServer<KeyPressEventHandler> {
osmeest 0:1324e7d9d471 13 public:
osmeest 0:1324e7d9d471 14 /**
osmeest 0:1324e7d9d471 15 * @brief Attaches the monitor to a function.
osmeest 0:1324e7d9d471 16 * @param fn Event handler called to report keyboard state change.
osmeest 0:1324e7d9d471 17 */
osmeest 0:1324e7d9d471 18 void attach(FunctionKeyPressEventHandler::HandlerFunction fn) {
osmeest 0:1324e7d9d471 19 setHandler(new FunctionKeyPressEventHandler(fn));
osmeest 0:1324e7d9d471 20 }
osmeest 0:1324e7d9d471 21
osmeest 0:1324e7d9d471 22 /**
osmeest 0:1324e7d9d471 23 * @brief Attaches the monitor to a method of an object.
osmeest 0:1324e7d9d471 24 * @param obj Event handler object
osmeest 0:1324e7d9d471 25 * @param fn Event handler method called to report keyboard state after each complete scan.
osmeest 0:1324e7d9d471 26 */
osmeest 0:1324e7d9d471 27 template <class T>
osmeest 0:1324e7d9d471 28 void attach(T *obj, typename MemberKeyPressEventHandler<T>::MemberFunction fn) {
osmeest 0:1324e7d9d471 29 setHandler(new MemberKeyPressEventHandler<T>(obj, fn));
osmeest 0:1324e7d9d471 30 }
osmeest 0:1324e7d9d471 31
osmeest 0:1324e7d9d471 32 using KeyboardEventServer<KeyPressEventHandler>::attach;
osmeest 0:1324e7d9d471 33
osmeest 0:1324e7d9d471 34 void invokeHandler(const KeyEvent &keypress) {
osmeest 0:1324e7d9d471 35 if (this->hasHandler()) {
osmeest 0:1324e7d9d471 36 this->handler()->handleKeyPress(keypress);
osmeest 0:1324e7d9d471 37 }
osmeest 0:1324e7d9d471 38 }
osmeest 0:1324e7d9d471 39 };
osmeest 0:1324e7d9d471 40
osmeest 0:1324e7d9d471 41 } // kbd_mgr
osmeest 0:1324e7d9d471 42
osmeest 0:1324e7d9d471 43 #endif // KEYPRESS_EVENT_SERVER_H_