summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/button.c4
-rw-r--r--firmware/drivers/button.h7
2 files changed, 8 insertions, 3 deletions
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index ffbb67c..d3fe8e0 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -76,11 +76,11 @@ static void button_tick(void)
}
}
-int button_get(void)
+int button_get(bool block)
{
struct event ev;
- if ( !queue_empty(&button_queue) ) {
+ if ( block || !queue_empty(&button_queue) ) {
queue_wait(&button_queue, &ev);
return ev.id;
}
diff --git a/firmware/drivers/button.h b/firmware/drivers/button.h
index a8cc71b..ef89844 100644
--- a/firmware/drivers/button.h
+++ b/firmware/drivers/button.h
@@ -16,11 +16,14 @@
* KIND, either express or implied.
*
****************************************************************************/
+#ifndef _BUTTON_H_
+#define _BUTTON_H_
+#include <stdbool.h>
#include "config.h"
void button_init (void);
-int button_get (void);
+int button_get (bool block);
/* Shared button codes */
#define BUTTON_NONE 0x0000
@@ -52,3 +55,5 @@ int button_get (void);
#define BUTTON_STOP BUTTON_DOWN
#endif
+
+#endif