diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/list.c | 4 | ||||
-rw-r--r-- | apps/gui/list.h | 22 | ||||
-rw-r--r-- | apps/menu.c | 17 | ||||
-rw-r--r-- | apps/playlist_viewer.c | 9 | ||||
-rw-r--r-- | apps/tree.c | 10 |
5 files changed, 46 insertions, 16 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c index 67c0f3055d..ebb915e0bc 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c | |||
@@ -651,7 +651,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button) | |||
651 | 651 | ||
652 | #ifdef LIST_PGRIGHT | 652 | #ifdef LIST_PGRIGHT |
653 | case LIST_PGRIGHT: | 653 | case LIST_PGRIGHT: |
654 | #if !(LIST_PGRIGHT & BUTTON_REPEAT) | ||
654 | case LIST_PGRIGHT | BUTTON_REPEAT: | 655 | case LIST_PGRIGHT | BUTTON_REPEAT: |
656 | #endif | ||
655 | #ifdef LIST_RC_PGRIGHT | 657 | #ifdef LIST_RC_PGRIGHT |
656 | case LIST_RC_PGRIGHT: | 658 | case LIST_RC_PGRIGHT: |
657 | case LIST_RC_PGRIGHT | BUTTON_REPEAT: | 659 | case LIST_RC_PGRIGHT | BUTTON_REPEAT: |
@@ -663,7 +665,9 @@ unsigned gui_synclist_do_button(struct gui_synclist * lists, unsigned button) | |||
663 | 665 | ||
664 | #ifdef LIST_PGLEFT | 666 | #ifdef LIST_PGLEFT |
665 | case LIST_PGLEFT: | 667 | case LIST_PGLEFT: |
668 | #if !(LIST_PGLEFT & BUTTON_REPEAT) | ||
666 | case LIST_PGLEFT | BUTTON_REPEAT: | 669 | case LIST_PGLEFT | BUTTON_REPEAT: |
670 | #endif | ||
667 | #ifdef LIST_RC_PGLEFT | 671 | #ifdef LIST_RC_PGLEFT |
668 | case LIST_RC_PGLEFT: | 672 | case LIST_RC_PGLEFT: |
669 | case LIST_RC_PGLEFT | BUTTON_REPEAT: | 673 | case LIST_RC_PGLEFT | BUTTON_REPEAT: |
diff --git a/apps/gui/list.h b/apps/gui/list.h index b898e14f37..f0a6d3f32c 100644 --- a/apps/gui/list.h +++ b/apps/gui/list.h | |||
@@ -33,8 +33,8 @@ | |||
33 | #define LIST_PREV BUTTON_UP | 33 | #define LIST_PREV BUTTON_UP |
34 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) | 34 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) |
35 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) | 35 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) |
36 | #define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) | 36 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) |
37 | #define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) | 37 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) |
38 | 38 | ||
39 | #ifdef CONFIG_REMOTE_KEYPAD | 39 | #ifdef CONFIG_REMOTE_KEYPAD |
40 | #define LIST_RC_NEXT BUTTON_RC_FF | 40 | #define LIST_RC_NEXT BUTTON_RC_FF |
@@ -50,8 +50,8 @@ | |||
50 | #define LIST_PREV BUTTON_UP | 50 | #define LIST_PREV BUTTON_UP |
51 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) | 51 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) |
52 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) | 52 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) |
53 | #define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) | 53 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) |
54 | #define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) | 54 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) |
55 | 55 | ||
56 | #define LIST_RC_NEXT BUTTON_RC_RIGHT | 56 | #define LIST_RC_NEXT BUTTON_RC_RIGHT |
57 | #define LIST_RC_PREV BUTTON_RC_LEFT | 57 | #define LIST_RC_PREV BUTTON_RC_LEFT |
@@ -72,30 +72,40 @@ | |||
72 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | 72 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) |
73 | #define LIST_NEXT BUTTON_SCROLL_FWD | 73 | #define LIST_NEXT BUTTON_SCROLL_FWD |
74 | #define LIST_PREV BUTTON_SCROLL_BACK | 74 | #define LIST_PREV BUTTON_SCROLL_BACK |
75 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) | ||
76 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) | ||
75 | 77 | ||
76 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 78 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
77 | #define LIST_NEXT BUTTON_DOWN | 79 | #define LIST_NEXT BUTTON_DOWN |
78 | #define LIST_PREV BUTTON_UP | 80 | #define LIST_PREV BUTTON_UP |
81 | //#define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_) | ||
82 | //#define LIST_PGLEFT (BUTTON_LEFT | BUTTON_) Todo: define those | ||
79 | 83 | ||
80 | #elif CONFIG_KEYPAD == GMINI100_PAD | 84 | #elif CONFIG_KEYPAD == GMINI100_PAD |
81 | #define LIST_NEXT BUTTON_DOWN | 85 | #define LIST_NEXT BUTTON_DOWN |
82 | #define LIST_PREV BUTTON_UP | 86 | #define LIST_PREV BUTTON_UP |
83 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) | 87 | #define LIST_PGUP (BUTTON_ON | BUTTON_UP) |
84 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) | 88 | #define LIST_PGDN (BUTTON_ON | BUTTON_DOWN) |
85 | #define LIST_PGRIGHT (BUTTON_ON | BUTTON_RIGHT) | 89 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) |
86 | #define LIST_PGLEFT (BUTTON_ON | BUTTON_LEFT) | 90 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) |
87 | 91 | ||
88 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | 92 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD |
89 | #define LIST_NEXT BUTTON_DOWN | 93 | #define LIST_NEXT BUTTON_DOWN |
90 | #define LIST_PREV BUTTON_UP | 94 | #define LIST_PREV BUTTON_UP |
95 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) | ||
96 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) | ||
91 | 97 | ||
92 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | 98 | #elif CONFIG_KEYPAD == GIGABEAT_PAD |
93 | #define LIST_NEXT BUTTON_DOWN | 99 | #define LIST_NEXT BUTTON_DOWN |
94 | #define LIST_PREV BUTTON_UP | 100 | #define LIST_PREV BUTTON_UP |
101 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) | ||
102 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) | ||
95 | 103 | ||
96 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | 104 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD |
97 | #define LIST_NEXT BUTTON_SCROLL_DOWN | 105 | #define LIST_NEXT BUTTON_SCROLL_DOWN |
98 | #define LIST_PREV BUTTON_SCROLL_UP | 106 | #define LIST_PREV BUTTON_SCROLL_UP |
107 | #define LIST_PGRIGHT (BUTTON_RIGHT | BUTTON_REPEAT) | ||
108 | #define LIST_PGLEFT (BUTTON_LEFT | BUTTON_REPEAT) | ||
99 | 109 | ||
100 | #endif | 110 | #endif |
101 | 111 | ||
diff --git a/apps/menu.c b/apps/menu.c index f67c0633c6..a1c70824ce 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -124,6 +124,7 @@ int menu_show(int m) | |||
124 | #endif | 124 | #endif |
125 | bool exit = false; | 125 | bool exit = false; |
126 | int key; | 126 | int key; |
127 | unsigned lastbutton = 0; | ||
127 | 128 | ||
128 | gui_synclist_draw(&(menus[m].synclist)); | 129 | gui_synclist_draw(&(menus[m].synclist)); |
129 | gui_syncstatusbar_draw(&statusbars, true); | 130 | gui_syncstatusbar_draw(&statusbars, true); |
@@ -143,7 +144,9 @@ int menu_show(int m) | |||
143 | if(gui_synclist_do_button(&(menus[m].synclist), key)) | 144 | if(gui_synclist_do_button(&(menus[m].synclist), key)) |
144 | menu_talk_selected(m); | 145 | menu_talk_selected(m); |
145 | switch( key ) { | 146 | switch( key ) { |
146 | case MENU_ENTER: | 147 | case MENU_ENTER | BUTTON_REL: |
148 | if (lastbutton != MENU_ENTER) | ||
149 | break; | ||
147 | #ifdef MENU_ENTER2 | 150 | #ifdef MENU_ENTER2 |
148 | case MENU_ENTER2: | 151 | case MENU_ENTER2: |
149 | #endif | 152 | #endif |
@@ -156,12 +159,18 @@ int menu_show(int m) | |||
156 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); | 159 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); |
157 | 160 | ||
158 | 161 | ||
159 | case MENU_EXIT: | 162 | case MENU_EXIT | BUTTON_REL: |
163 | if (lastbutton != MENU_EXIT) | ||
164 | break; | ||
160 | #ifdef MENU_EXIT2 | 165 | #ifdef MENU_EXIT2 |
161 | case MENU_EXIT2: | 166 | case MENU_EXIT2: |
162 | #endif | 167 | #endif |
163 | #ifdef MENU_EXIT_MENU | 168 | #ifdef MENU_EXIT_MENU |
164 | case MENU_EXIT_MENU: | 169 | case MENU_EXIT_MENU | BUTTON_REL: |
170 | /* This is important for the Ondio's */ | ||
171 | if ((key == (MENU_EXIT_MENU | BUTTON_REL)) && | ||
172 | (lastbutton != MENU_EXIT_MENU)) | ||
173 | break; | ||
165 | #endif | 174 | #endif |
166 | #ifdef MENU_RC_EXIT | 175 | #ifdef MENU_RC_EXIT |
167 | case MENU_RC_EXIT: | 176 | case MENU_RC_EXIT: |
@@ -178,6 +187,8 @@ int menu_show(int m) | |||
178 | break; | 187 | break; |
179 | } | 188 | } |
180 | gui_syncstatusbar_draw(&statusbars, false); | 189 | gui_syncstatusbar_draw(&statusbars, false); |
190 | if ( key ) | ||
191 | lastbutton = key; | ||
181 | } | 192 | } |
182 | return MENU_SELECTED_EXIT; | 193 | return MENU_SELECTED_EXIT; |
183 | } | 194 | } |
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index 6c21cc4a99..46482cb7fa 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c | |||
@@ -677,7 +677,9 @@ bool playlist_viewer_ex(char* filename) | |||
677 | } | 677 | } |
678 | switch (button) | 678 | switch (button) |
679 | { | 679 | { |
680 | case TREE_EXIT: | 680 | case TREE_EXIT | BUTTON_REL: |
681 | if (lastbutton != TREE_EXIT) | ||
682 | break; | ||
681 | #ifdef TREE_RC_EXIT | 683 | #ifdef TREE_RC_EXIT |
682 | case TREE_RC_EXIT: | 684 | case TREE_RC_EXIT: |
683 | #endif | 685 | #endif |
@@ -688,8 +690,9 @@ bool playlist_viewer_ex(char* filename) | |||
688 | break; | 690 | break; |
689 | 691 | ||
690 | #ifdef TREE_ENTER | 692 | #ifdef TREE_ENTER |
691 | case TREE_ENTER: | 693 | case TREE_ENTER | BUTTON_REL: |
692 | case TREE_ENTER | BUTTON_REPEAT: | 694 | if (lastbutton != TREE_ENTER) |
695 | break; | ||
693 | #endif | 696 | #endif |
694 | #ifdef TREE_RC_RUN | 697 | #ifdef TREE_RC_RUN |
695 | case TREE_RC_RUN: | 698 | case TREE_RC_RUN: |
diff --git a/apps/tree.c b/apps/tree.c index 0dd03779a5..ac0e44c7f1 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -587,8 +587,9 @@ static bool dirbrowse(void) | |||
587 | 587 | ||
588 | switch ( button ) { | 588 | switch ( button ) { |
589 | #ifdef TREE_ENTER | 589 | #ifdef TREE_ENTER |
590 | case TREE_ENTER: | 590 | case TREE_ENTER | BUTTON_REL: |
591 | case TREE_ENTER | BUTTON_REPEAT: | 591 | if (lastbutton != TREE_ENTER) |
592 | break; | ||
592 | #endif | 593 | #endif |
593 | #ifdef TREE_RC_RUN | 594 | #ifdef TREE_RC_RUN |
594 | case TREE_RC_RUN: | 595 | case TREE_RC_RUN: |
@@ -617,8 +618,9 @@ static bool dirbrowse(void) | |||
617 | restore = true; | 618 | restore = true; |
618 | break; | 619 | break; |
619 | 620 | ||
620 | case TREE_EXIT: | 621 | case TREE_EXIT | BUTTON_REL: |
621 | case TREE_EXIT | BUTTON_REPEAT: | 622 | if (lastbutton != TREE_EXIT) |
623 | break; | ||
622 | #ifdef TREE_RC_EXIT | 624 | #ifdef TREE_RC_EXIT |
623 | case TREE_RC_EXIT: | 625 | case TREE_RC_EXIT: |
624 | #endif | 626 | #endif |