A debouncing InterruptIn wrapper

Revision:
0:2e999fcd4c7b
Child:
1:e806603f0088
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ButtonIn.h	Mon Feb 06 19:53:40 2012 +0000
@@ -0,0 +1,37 @@
+#include "mbed.h"
+
+#ifndef _ButtonIn_
+#define _ButtonIn_
+
+
+class ButtonInCallbackInstance;
+
+
+class ButtonIn {
+
+private:
+    InterruptIn _button;
+    Timeout     _buttonDownTimeout;
+    
+    bool _buttonCanPress;
+    void (*_callback)(void);
+    ButtonInCallbackInstance *_callbackInstance;
+    void (ButtonInCallbackInstance::*_callbackMethod)(void);
+
+    void click();
+    void call();
+    void reset();
+
+
+
+public:
+    ButtonIn(PinName buttonPin);
+
+
+    void attach(void (*method)(void) = 0);
+
+    template<class T>
+    void attach(T* instance, void (T::*method)(void));
+};
+
+#endif
\ No newline at end of file