diff options
Diffstat (limited to 'apps/plugins/clix.c')
-rw-r--r-- | apps/plugins/clix.c | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index bfe33b90de..e0cf88bf08 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c | |||
@@ -65,12 +65,16 @@ PLUGIN_HEADER | |||
65 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | 65 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ |
66 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | 66 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ |
67 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | 67 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) |
68 | #define CLIX_BUTTON_QUIT BUTTON_MENU | 68 | #define CLIX_BUTTON_QUIT (BUTTON_SELECT | BUTTON_MENU) |
69 | #define CLIX_BUTTON_UP BUTTON_SCROLL_BACK | 69 | #define CLIX_BUTTON_UP BUTTON_MENU |
70 | #define CLIX_BUTTON_DOWN BUTTON_SCROLL_FWD | 70 | #define CLIX_BUTTON_DOWN BUTTON_PLAY |
71 | #define CLIX_BUTTON_CLICK BUTTON_SELECT | 71 | #define CLIX_BUTTON_SCROLL_FWD BUTTON_SCROLL_FWD |
72 | #define CLIX_BUTTON_RIGHT BUTTON_RIGHT | 72 | #define CLIX_BUTTON_SCROLL_BACK BUTTON_SCROLL_BACK |
73 | #define CLIX_BUTTON_LEFT BUTTON_LEFT | 73 | #define CLIX_BUTTON_CLICK (BUTTON_SELECT | BUTTON_REL) |
74 | #define CLIX_BUTTON_CLICK_PRE BUTTON_SELECT | ||
75 | #define CLIX_BUTTON_CLICK_PRE2 (BUTTON_SELECT | BUTTON_REPEAT) | ||
76 | #define CLIX_BUTTON_RIGHT BUTTON_RIGHT | ||
77 | #define CLIX_BUTTON_LEFT BUTTON_LEFT | ||
74 | 78 | ||
75 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) | 79 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) |
76 | #define CLIX_BUTTON_QUIT BUTTON_POWER | 80 | #define CLIX_BUTTON_QUIT BUTTON_POWER |
@@ -694,6 +698,8 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
694 | int start; | 698 | int start; |
695 | int end; | 699 | int end; |
696 | int oldx, oldy; | 700 | int oldx, oldy; |
701 | |||
702 | int lastbutton = BUTTON_NONE; | ||
697 | 703 | ||
698 | while(true) | 704 | while(true) |
699 | { | 705 | { |
@@ -710,9 +716,7 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
710 | oldx = state->x; | 716 | oldx = state->x; |
711 | oldy = state->y; | 717 | oldy = state->y; |
712 | 718 | ||
713 | rb->button_get_w_tmo(end - *rb->current_tick); | 719 | button = rb->button_get_w_tmo(end - *rb->current_tick); |
714 | button = rb->button_status(); | ||
715 | rb->button_clear_queue(); | ||
716 | #ifdef HAVE_TOUCHSCREEN | 720 | #ifdef HAVE_TOUCHSCREEN |
717 | if(button & BUTTON_TOUCHSCREEN) | 721 | if(button & BUTTON_TOUCHSCREEN) |
718 | { | 722 | { |
@@ -745,6 +749,7 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
745 | #ifndef HAVE_TOUCHSCREEN | 749 | #ifndef HAVE_TOUCHSCREEN |
746 | #ifdef CLIX_BUTTON_SCROLL_BACK | 750 | #ifdef CLIX_BUTTON_SCROLL_BACK |
747 | case CLIX_BUTTON_SCROLL_BACK: | 751 | case CLIX_BUTTON_SCROLL_BACK: |
752 | case CLIX_BUTTON_SCROLL_BACK|BUTTON_REPEAT: | ||
748 | #endif | 753 | #endif |
749 | case CLIX_BUTTON_UP: | 754 | case CLIX_BUTTON_UP: |
750 | if( state->y == 0 || | 755 | if( state->y == 0 || |
@@ -767,6 +772,7 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
767 | break; | 772 | break; |
768 | #ifdef CLIX_BUTTON_SCROLL_FWD | 773 | #ifdef CLIX_BUTTON_SCROLL_FWD |
769 | case CLIX_BUTTON_SCROLL_FWD: | 774 | case CLIX_BUTTON_SCROLL_FWD: |
775 | case CLIX_BUTTON_SCROLL_FWD|BUTTON_REPEAT: | ||
770 | #endif | 776 | #endif |
771 | case CLIX_BUTTON_DOWN: | 777 | case CLIX_BUTTON_DOWN: |
772 | if( state->y == (BOARD_HEIGHT - 1)) | 778 | if( state->y == (BOARD_HEIGHT - 1)) |
@@ -788,6 +794,15 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
788 | #endif | 794 | #endif |
789 | case CLIX_BUTTON_CLICK: | 795 | case CLIX_BUTTON_CLICK: |
790 | { | 796 | { |
797 | #ifdef CLIX_BUTTON_CLICK_PRE | ||
798 | #ifdef CLIX_BUTTON_CLICK_PRE2 | ||
799 | if (lastbutton != CLIX_BUTTON_CLICK_PRE | ||
800 | && lastbutton != CLIX_BUTTON_CLICK_PRE2) | ||
801 | #else | ||
802 | if (lastbutton != CLIX_BUTTON_CLICK_PRE) | ||
803 | #endif | ||
804 | break; | ||
805 | #endif | ||
791 | if (state->selected_count > 1) { | 806 | if (state->selected_count > 1) { |
792 | switch( clix_clear_selected( state)) | 807 | switch( clix_clear_selected( state)) |
793 | { | 808 | { |
@@ -842,6 +857,9 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
842 | 857 | ||
843 | break; | 858 | break; |
844 | } | 859 | } |
860 | |||
861 | if(button != BUTTON_NONE) | ||
862 | lastbutton = button; | ||
845 | 863 | ||
846 | if( (oldx != state->x || oldy != state->y) && | 864 | if( (oldx != state->x || oldy != state->y) && |
847 | state->board_selected[ XYPOS( oldx, oldy)] != | 865 | state->board_selected[ XYPOS( oldx, oldy)] != |