summaryrefslogtreecommitdiff
path: root/uisimulator/sdl/button.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-10-26 23:11:18 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-10-26 23:11:18 +0000
commitd6af28739747099f98f541d1b76ba501882e113c (patch)
treeb6ad8d89d0ef96dd4cea37dd89aad8d3fa345179 /uisimulator/sdl/button.c
parentf026c0fc826149a3c88d462cca02b69ef5690c30 (diff)
downloadrockbox-d6af28739747099f98f541d1b76ba501882e113c.tar.gz
rockbox-d6af28739747099f98f541d1b76ba501882e113c.zip
Implement as genuine a set_irq_level function for the sim as possible. The yield added earlier is still nescessary since other threads won't run anyway while viewing the database screen on either sim or target.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15321 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/sdl/button.c')
-rw-r--r--uisimulator/sdl/button.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 62c2c33150..04475122b5 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -30,11 +30,6 @@
30 30
31static intptr_t button_data; /* data value from last message dequeued */ 31static intptr_t button_data; /* data value from last message dequeued */
32 32
33/* Special thread-synced queue_post for button driver or any other preemptive sim thread */
34extern void queue_syncpost(struct event_queue *q, long id, intptr_t data);
35/* Special thread-synced queue_broadcast for button driver or any other preemptive sim thread */
36extern int queue_syncbroadcast(long id, intptr_t data);
37
38/* how long until repeat kicks in */ 33/* how long until repeat kicks in */
39#define REPEAT_START 6 34#define REPEAT_START 6
40 35
@@ -115,9 +110,9 @@ void button_event(int key, bool pressed)
115 { 110 {
116 usb_connected = !usb_connected; 111 usb_connected = !usb_connected;
117 if (usb_connected) 112 if (usb_connected)
118 queue_syncpost(&button_queue, SYS_USB_CONNECTED, 0); 113 queue_post(&button_queue, SYS_USB_CONNECTED, 0);
119 else 114 else
120 queue_syncpost(&button_queue, SYS_USB_DISCONNECTED, 0); 115 queue_post(&button_queue, SYS_USB_DISCONNECTED, 0);
121 } 116 }
122 return; 117 return;
123 118
@@ -634,7 +629,7 @@ void button_event(int key, bool pressed)
634 case SDLK_F5: 629 case SDLK_F5:
635 if(pressed) 630 if(pressed)
636 { 631 {
637 queue_syncbroadcast(SYS_SCREENDUMP, 0); 632 queue_broadcast(SYS_SCREENDUMP, 0);
638 return; 633 return;
639 } 634 }
640 break; 635 break;
@@ -655,17 +650,17 @@ void button_event(int key, bool pressed)
655#ifdef HAVE_REMOTE_LCD 650#ifdef HAVE_REMOTE_LCD
656 if(diff & BUTTON_REMOTE) 651 if(diff & BUTTON_REMOTE)
657 if(!skip_remote_release) 652 if(!skip_remote_release)
658 queue_syncpost(&button_queue, BUTTON_REL | diff, 0); 653 queue_post(&button_queue, BUTTON_REL | diff, 0);
659 else 654 else
660 skip_remote_release = false; 655 skip_remote_release = false;
661 else 656 else
662#endif 657#endif
663 if(!skip_release) 658 if(!skip_release)
664 queue_syncpost(&button_queue, BUTTON_REL | diff, 0); 659 queue_post(&button_queue, BUTTON_REL | diff, 0);
665 else 660 else
666 skip_release = false; 661 skip_release = false;
667#else 662#else
668 queue_syncpost(&button_queue, BUTTON_REL | diff, 0); 663 queue_post(&button_queue, BUTTON_REL | diff, 0);
669#endif 664#endif
670 } 665 }
671 666
@@ -717,7 +712,7 @@ void button_event(int key, bool pressed)
717 { 712 {
718 if (queue_empty(&button_queue)) 713 if (queue_empty(&button_queue))
719 { 714 {
720 queue_syncpost(&button_queue, BUTTON_REPEAT | btn, 0); 715 queue_post(&button_queue, BUTTON_REPEAT | btn, 0);
721#ifdef HAVE_BACKLIGHT 716#ifdef HAVE_BACKLIGHT
722#ifdef HAVE_REMOTE_LCD 717#ifdef HAVE_REMOTE_LCD
723 if(btn & BUTTON_REMOTE) 718 if(btn & BUTTON_REMOTE)
@@ -739,18 +734,18 @@ void button_event(int key, bool pressed)
739#ifdef HAVE_REMOTE_LCD 734#ifdef HAVE_REMOTE_LCD
740 if (btn & BUTTON_REMOTE) { 735 if (btn & BUTTON_REMOTE) {
741 if (!remote_filter_first_keypress || is_remote_backlight_on()) 736 if (!remote_filter_first_keypress || is_remote_backlight_on())
742 queue_syncpost(&button_queue, btn, 0); 737 queue_post(&button_queue, btn, 0);
743 else 738 else
744 skip_remote_release = true; 739 skip_remote_release = true;
745 } 740 }
746 else 741 else
747#endif 742#endif
748 if (!filter_first_keypress || is_backlight_on()) 743 if (!filter_first_keypress || is_backlight_on())
749 queue_syncpost(&button_queue, btn, 0); 744 queue_post(&button_queue, btn, 0);
750 else 745 else
751 skip_release = true; 746 skip_release = true;
752#else /* no backlight, nothing to skip */ 747#else /* no backlight, nothing to skip */
753 queue_syncpost(&button_queue, btn, 0); 748 queue_post(&button_queue, btn, 0);
754#endif 749#endif
755 post = false; 750 post = false;
756 } 751 }