summaryrefslogtreecommitdiff
path: root/firmware/drivers/button.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/button.c')
-rw-r--r--firmware/drivers/button.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index 878f041c78..d709b012de 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -149,6 +149,24 @@ int button_get(bool block)
149 return BUTTON_NONE; 149 return BUTTON_NONE;
150} 150}
151 151
152int button_get_w_tmo(int ticks)
153{
154 struct event ev;
155 unsigned int timeout = current_tick + ticks;
156
157 while (TIME_BEFORE( current_tick, timeout ))
158 {
159 if(!queue_empty(&button_queue))
160 {
161 queue_wait(&button_queue, &ev);
162 return ev.id;
163 }
164 yield();
165 }
166
167 return BUTTON_NONE;
168}
169
152int button_set_repeat(int newmask) 170int button_set_repeat(int newmask)
153{ 171{
154 int oldmask = repeat_mask; 172 int oldmask = repeat_mask;