summaryrefslogtreecommitdiff
path: root/apps/plugins/lua/rocklib_events.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lua/rocklib_events.c')
-rw-r--r--apps/plugins/lua/rocklib_events.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/apps/plugins/lua/rocklib_events.c b/apps/plugins/lua/rocklib_events.c
index 91e217169e..dc15c363a4 100644
--- a/apps/plugins/lua/rocklib_events.c
+++ b/apps/plugins/lua/rocklib_events.c
@@ -272,7 +272,8 @@ static void rev_timer_isr(void)
272 { 272 {
273 evt = ev_data.cb[i]; 273 evt = ev_data.cb[i];
274 274
275 if ((i == ACTEVENT || i == BTNEVENT) && rb->button_queue_count()) 275 if ((i == ACTEVENT || i == BTNEVENT) &&
276 (rb->button_queue_count() || rb->button_status() || evt->id))
276 ev_flag |= event_flag(i); /* any buttons ready? */ 277 ev_flag |= event_flag(i); /* any buttons ready? */
277 else if(evt->ticks > 0 && TIME_AFTER(curr_tick, evt->next_tick)) 278 else if(evt->ticks > 0 && TIME_AFTER(curr_tick, evt->next_tick))
278 ev_flag |= event_flag(i); 279 ev_flag |= event_flag(i);
@@ -315,23 +316,15 @@ static void event_thread(void)
315 { 316 {
316 /* only send ACTION_NONE once */ 317 /* only send ACTION_NONE once */
317 if (evt->id == ACTION_NONE || rb->button_status() != 0) 318 if (evt->id == ACTION_NONE || rb->button_status() != 0)
318 {
319 evt->ticks = 0;
320 continue; /* check next event */ 319 continue; /* check next event */
321 }
322 } 320 }
323 evt->ticks = EV_TICKS; /* poll release event */
324 evt->id = action; 321 evt->id = action;
325 break; 322 break;
326 case BTNEVENT: 323 case BTNEVENT:
327 evt->id = rb->button_get(false); 324 evt->id = rb->button_get(false);
328 /* only send BUTTON_NONE once */ 325 /* only send BUTTON_NONE once */
329 if (evt->id == BUTTON_NONE) 326 if (evt->id == BUTTON_NONE)
330 {
331 evt->ticks = 0;
332 continue; /* check next event */ 327 continue; /* check next event */
333 }
334 evt->ticks = EV_TICKS; /* poll release event */
335 break; 328 break;
336 case CUSTOMEVENT: 329 case CUSTOMEVENT:
337 case PLAYBKEVENT: 330 case PLAYBKEVENT:
@@ -592,7 +585,7 @@ static int rockev_register(lua_State *L)
592 case ACTEVENT: 585 case ACTEVENT:
593 /* fall through */ 586 /* fall through */
594 case BTNEVENT: 587 case BTNEVENT:
595 event_ticks = 0; /* button events not triggered by timeout but release is*/ 588 event_ticks = 0; /* button events not triggered by timeout */
596 break; 589 break;
597 case CUSTOMEVENT: 590 case CUSTOMEVENT:
598 event_ticks = luaL_optinteger(L, 3, EV_TICKS); 591 event_ticks = luaL_optinteger(L, 3, EV_TICKS);