summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:22:44 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:22:44 +0000
commit3c67c0a5121454277f52a60368d713bfc7547cf7 (patch)
tree1dd287200e23e25c48d5777d25c1733d31620bf4 /firmware/drivers
parent8abcf1bd20d8568c3b39f97fb7ee9560b132f2a3 (diff)
downloadrockbox-3c67c0a5121454277f52a60368d713bfc7547cf7.tar.gz
rockbox-3c67c0a5121454277f52a60368d713bfc7547cf7.zip
Added button_get_w_tmo()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1576 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/button.c18
-rw-r--r--firmware/drivers/button.h1
2 files changed, 19 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;
diff --git a/firmware/drivers/button.h b/firmware/drivers/button.h
index 22d648caf6..035fedd739 100644
--- a/firmware/drivers/button.h
+++ b/firmware/drivers/button.h
@@ -26,6 +26,7 @@ extern struct event_queue button_queue;
26 26
27void button_init (void); 27void button_init (void);
28int button_get (bool block); 28int button_get (bool block);
29int button_get_w_tmo(int ticks);
29int button_set_repeat(int newmask); 30int button_set_repeat(int newmask);
30int button_set_release(int newmask); 31int button_set_release(int newmask);
31 32