1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (c) 2006 Alexander Levin
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #ifndef _REVERSI_GUI_H
21 #define _REVERSI_GUI_H
25 #define GAME_FILE PLUGIN_GAMES_DIR "/reversi.rev"
27 /* variable button definitions */
28 #if CONFIG_KEYPAD == RECORDER_PAD
29 #define REVERSI_BUTTON_QUIT BUTTON_OFF
30 #define REVERSI_BUTTON_UP BUTTON_UP
31 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
32 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
33 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
34 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
35 #define REVERSI_BUTTON_MENU BUTTON_F1
37 #elif CONFIG_KEYPAD == ONDIO_PAD
38 #define REVERSI_BUTTON_QUIT BUTTON_OFF
39 #define REVERSI_BUTTON_UP BUTTON_UP
40 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
41 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
42 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
43 #define REVERSI_BUTTON_MAKE_MOVE_PRE BUTTON_MENU
44 #define REVERSI_BUTTON_MAKE_MOVE (BUTTON_MENU | BUTTON_REL)
45 #define REVERSI_BUTTON_ALT_MAKE_MOVE (BUTTON_MENU | BUTTON_DOWN)
46 #define REVERSI_BUTTON_MENU_PRE BUTTON_MENU
47 #define REVERSI_BUTTON_MENU (BUTTON_MENU | BUTTON_REPEAT)
49 #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
50 (CONFIG_KEYPAD == IRIVER_H300_PAD)
51 #define REVERSI_BUTTON_QUIT BUTTON_OFF
52 #define REVERSI_BUTTON_UP BUTTON_UP
53 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
54 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
55 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
56 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
57 #define REVERSI_BUTTON_MENU BUTTON_MODE
59 #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
60 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
61 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
62 #define REVERSI_BUTTON_UP BUTTON_MENU
63 #define REVERSI_BUTTON_DOWN BUTTON_PLAY
64 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
65 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
66 #define REVERSI_BUTTON_ALT_LEFT BUTTON_SCROLL_BACK
67 #define REVERSI_BUTTON_ALT_RIGHT BUTTON_SCROLL_FWD
68 #define REVERSI_BUTTON_MAKE_MOVE (BUTTON_SELECT | BUTTON_REL)
69 #define REVERSI_BUTTON_MENU (BUTTON_MENU | BUTTON_SELECT)
71 #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
72 #define REVERSI_BUTTON_QUIT BUTTON_POWER
73 #define REVERSI_BUTTON_UP BUTTON_UP
74 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
75 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
76 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
77 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
78 #define REVERSI_BUTTON_MENU BUTTON_PLAY
80 #elif (CONFIG_KEYPAD == GIGABEAT_PAD)
81 #define REVERSI_BUTTON_QUIT BUTTON_POWER
82 #define REVERSI_BUTTON_UP BUTTON_UP
83 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
84 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
85 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
86 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
87 #define REVERSI_BUTTON_MENU BUTTON_MENU
89 #elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
90 #define REVERSI_BUTTON_QUIT BUTTON_POWER
91 #define REVERSI_BUTTON_UP BUTTON_SCROLL_UP
92 #define REVERSI_BUTTON_DOWN BUTTON_SCROLL_DOWN
93 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
94 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
95 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_REW
96 #define REVERSI_BUTTON_MENU BUTTON_PLAY
98 #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
99 (CONFIG_KEYPAD == SANSA_C200_PAD)
100 #define REVERSI_BUTTON_QUIT BUTTON_POWER
101 #define REVERSI_BUTTON_UP BUTTON_UP
102 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
103 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
104 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
105 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
106 #define REVERSI_BUTTON_MENU (BUTTON_SELECT|BUTTON_REPEAT)
108 #elif CONFIG_KEYPAD == MROBE500_PAD
109 #define REVERSI_QUIT BUTTON_POWER
110 #define REVERSI_BUTTON_UP BUTTON_RC_PLAY
111 #define REVERSI_BUTTON_DOWN BUTTON_RC_DOWN
112 #define REVERSI_BUTTON_LEFT BUTTON_RC_REW
113 #define REVERSI_BUTTON_RIGHT BUTTON_RC_FF
114 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_RC_MODE
115 #define REVERSI_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
117 #elif (CONFIG_KEYPAD == MROBE100_PAD)
118 #define REVERSI_BUTTON_QUIT BUTTON_POWER
119 #define REVERSI_BUTTON_UP BUTTON_UP
120 #define REVERSI_BUTTON_DOWN BUTTON_DOWN
121 #define REVERSI_BUTTON_LEFT BUTTON_LEFT
122 #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
123 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
124 #define REVERSI_BUTTON_MENU BUTTON_MENU
126 #elif CONFIG_KEYPAD == IAUDIO_M3_PAD
127 #define REVERSI_BUTTON_QUIT BUTTON_RC_REC
128 #define REVERSI_BUTTON_UP BUTTON_RC_VOL_UP
129 #define REVERSI_BUTTON_DOWN BUTTON_RC_VOL_DOWN
130 #define REVERSI_BUTTON_LEFT BUTTON_RC_REW
131 #define REVERSI_BUTTON_RIGHT BUTTON_RC_FF
132 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_RC_PLAY
133 #define REVERSI_BUTTON_MENU BUTTON_RC_MENU
135 #elif CONFIG_KEYPAD == COWOND2_PAD
136 #define REVERSI_QUIT BUTTON_POWER
137 #define REVERSI_BUTTON_MENU BUTTON_MENU
140 #error No keymap defined!
145 #define REVERSI_QUIT BUTTON_TOPLEFT
147 #ifndef REVERSI_BUTTON_UP
148 #define REVERSI_BUTTON_UP BUTTON_TOPMIDDLE
150 #ifndef REVERSI_BUTTON_DOWN
151 #define REVERSI_BUTTON_DOWN BUTTON_BOTTOMMIDDLE
153 #ifndef REVERSI_BUTTON_LEFT
154 #define REVERSI_BUTTON_LEFT BUTTON_MIDLEFT
156 #ifndef REVERSI_BUTTON_RIGHT
157 #define REVERSI_BUTTON_RIGHT BUTTON_MIDRIGHT
159 #ifndef REVERSI_BUTTON_MAKE_MOVE
160 #define REVERSI_BUTTON_MAKE_MOVE BUTTON_CENTER
162 #ifndef REVERSI_BUTTON_MENU
163 #define REVERSI_BUTTON_MENU BUTTON_TOPRIGHT
167 /* Modes for the cursor behaviour at the board edges */
168 typedef enum _cursor_wrap_mode_t
{
169 WRAP_FLAT
, /* No wrapping */
170 WRAP_SPHERE
, /* (7,7) > right > (7,0); (7,7) > down > (0,7) */
171 WRAP_TORUS
, /* (7,7) > right > (0,0); (7,7) > down > (0,0) */
172 } cursor_wrap_mode_t
;