summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-09-22 21:00:03 +0000
committerJens Arnold <amiconn@rockbox.org>2005-09-22 21:00:03 +0000
commite85fe092328de36f114875f4998fdce135338b59 (patch)
treea51005f8a3b05257515695bc8b50fa3437182d5d /apps/plugins
parentdebbe9747eb6eecfd79aab648212b55220922eb6 (diff)
downloadrockbox-e85fe092328de36f114875f4998fdce135338b59.tar.gz
rockbox-e85fe092328de36f114875f4998fdce135338b59.zip
Sudoku: (Recorders) Changed menu button to F1. (Ondio) Changed menu button to long MODE. Short MODE only toggles once; use MODE+DOWN for toggle-repeat. That won't bring up the menu if you're fast enough. Should be easy using the thumb.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7545 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/sudoku.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/apps/plugins/sudoku.c b/apps/plugins/sudoku.c
index e6fdece7ef..a44c39aa45 100644
--- a/apps/plugins/sudoku.c
+++ b/apps/plugins/sudoku.c
@@ -69,12 +69,15 @@ Example ".ss" file, and one with a saved state:
69#if CONFIG_KEYPAD == RECORDER_PAD 69#if CONFIG_KEYPAD == RECORDER_PAD
70#define SUDOKU_BUTTON_QUIT BUTTON_OFF 70#define SUDOKU_BUTTON_QUIT BUTTON_OFF
71#define SUDOKU_BUTTON_TOGGLE BUTTON_PLAY 71#define SUDOKU_BUTTON_TOGGLE BUTTON_PLAY
72#define SUDOKU_BUTTON_MENU BUTTON_F3 72#define SUDOKU_BUTTON_MENU BUTTON_F1
73 73
74#elif CONFIG_KEYPAD == ONDIO_PAD 74#elif CONFIG_KEYPAD == ONDIO_PAD
75#define SUDOKU_BUTTON_QUIT BUTTON_OFF 75#define SUDOKU_BUTTON_QUIT BUTTON_OFF
76#define SUDOKU_BUTTON_TOGGLE BUTTON_MENU 76#define SUDOKU_BUTTON_ALTTOGGLE (BUTTON_MENU | BUTTON_DOWN)
77#define SUDOKU_BUTTON_MENU (BUTTON_MENU | BUTTON_OFF) 77#define SUDOKU_BUTTON_TOGGLE_PRE BUTTON_MENU
78#define SUDOKU_BUTTON_TOGGLE (BUTTON_MENU | BUTTON_REL)
79#define SUDOKU_BUTTON_MENU_PRE BUTTON_MENU
80#define SUDOKU_BUTTON_MENU (BUTTON_MENU | BUTTON_REPEAT)
78 81
79#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 82#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
80 (CONFIG_KEYPAD == IRIVER_H300_PAD) 83 (CONFIG_KEYPAD == IRIVER_H300_PAD)
@@ -1058,6 +1061,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1058{ 1061{
1059 bool exit; 1062 bool exit;
1060 int button; 1063 int button;
1064 int lastbutton = BUTTON_NONE;
1061 long ticks; 1065 long ticks;
1062 struct sudoku_state_t state; 1066 struct sudoku_state_t state;
1063 1067
@@ -1103,6 +1107,11 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1103 case SUDOKU_BUTTON_ALTTOGGLE: 1107 case SUDOKU_BUTTON_ALTTOGGLE:
1104#endif 1108#endif
1105 case SUDOKU_BUTTON_TOGGLE: 1109 case SUDOKU_BUTTON_TOGGLE:
1110#ifdef SUDOKU_BUTTON_TOGGLE_PRE
1111 if ((button == SUDOKU_BUTTON_TOGGLE)
1112 && (lastbutton != SUDOKU_BUTTON_TOGGLE_PRE))
1113 break;
1114#endif
1106 /* Increment digit */ 1115 /* Increment digit */
1107 ticks=*rb->current_tick; 1116 ticks=*rb->current_tick;
1108 if (state.startboard[state.y][state.x]=='0') { 1117 if (state.startboard[state.y][state.x]=='0') {
@@ -1158,6 +1167,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1158 break; 1167 break;
1159 1168
1160 case SUDOKU_BUTTON_MENU: 1169 case SUDOKU_BUTTON_MENU:
1170#ifdef SUDOKU_BUTTON_MENU_PRE
1171 if (lastbutton != SUDOKU_BUTTON_MENU_PRE)
1172 break;
1173#endif
1161 /* Don't let the user leave a game in a bad state */ 1174 /* Don't let the user leave a game in a bad state */
1162 if (check_status(&state)) { 1175 if (check_status(&state)) {
1163 rb->splash(HZ*2, true, "Illegal move!"); 1176 rb->splash(HZ*2, true, "Illegal move!");
@@ -1177,6 +1190,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1177 } 1190 }
1178 break; 1191 break;
1179 } 1192 }
1193 if (button != BUTTON_NONE)
1194 lastbutton = button;
1180 1195
1181 display_board(&state); 1196 display_board(&state);
1182 } 1197 }