summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoen Hirschberg <marcoen@gmail.com>2006-02-24 15:42:52 +0000
committerMarcoen Hirschberg <marcoen@gmail.com>2006-02-24 15:42:52 +0000
commit338e2bbb0c6673452c64378ef9e609d5c19c7558 (patch)
tree7314096e43a7eedfd7091c39fed97c0c33400827
parentb902428180c11def61f2d3caa2612b9f80d7d41a (diff)
downloadrockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.tar.gz
rockbox-338e2bbb0c6673452c64378ef9e609d5c19c7558.zip
first gigabeat commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8831 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/bitmaps/native/SOURCES8
-rw-r--r--apps/bitmaps/native/rockboxlogo.240x74x16.bmpbin0 -> 53334 bytes
-rw-r--r--apps/bookmark.h5
-rw-r--r--apps/eq_menu.c9
-rw-r--r--apps/gui/gwps.h23
-rw-r--r--apps/gui/list.h4
-rw-r--r--apps/gui/select.h8
-rw-r--r--apps/gui/yesno.h3
-rw-r--r--apps/menu.h10
-rw-r--r--apps/plugins/battery_test.c2
-rw-r--r--apps/plugins/bitmaps/native/SOURCES2
-rw-r--r--apps/plugins/bounce.c6
-rw-r--r--apps/plugins/brickmania.c12
-rw-r--r--apps/plugins/calculator.c10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c8
-rw-r--r--apps/plugins/cube.c13
-rw-r--r--apps/plugins/databox/databox.c3
-rw-r--r--apps/plugins/demystify.c6
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/flipit.c11
-rw-r--r--apps/plugins/jewels.c12
-rw-r--r--apps/plugins/jpeg.c12
-rw-r--r--apps/plugins/logo.c6
-rw-r--r--apps/plugins/mandelbrot.c13
-rw-r--r--apps/plugins/minesweeper.c9
-rw-r--r--apps/plugins/mosaique.c5
-rw-r--r--apps/plugins/mp3_encoder.c6
-rw-r--r--apps/plugins/plasma.c6
-rw-r--r--apps/plugins/pong.c7
-rw-r--r--apps/plugins/rockblox.c6
-rw-r--r--apps/plugins/sliding_puzzle.c7
-rw-r--r--apps/plugins/snake.c6
-rw-r--r--apps/plugins/snake2.c12
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/sokoban.c9
-rw-r--r--apps/plugins/solitaire.c24
-rw-r--r--apps/plugins/star.c12
-rw-r--r--apps/plugins/starfield.c6
-rw-r--r--apps/plugins/stats.c2
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/sudoku.c8
-rw-r--r--apps/plugins/viewer.c11
-rw-r--r--apps/recorder/keyboard.c14
-rw-r--r--apps/settings.h9
-rw-r--r--apps/tree.h17
-rw-r--r--firmware/app.lds4
-rw-r--r--firmware/boot.lds6
-rw-r--r--firmware/drivers/ata.c40
-rw-r--r--firmware/drivers/power.c8
-rw-r--r--firmware/export/button.h14
-rw-r--r--firmware/export/config-gigabeat.h94
-rw-r--r--firmware/export/config.h11
-rw-r--r--firmware/export/cpu.h3
-rwxr-xr-xtools/configure26
-rw-r--r--uisimulator/sdl/UI-gigabeatf.bmpbin0 -> 1050742 bytes
-rw-r--r--uisimulator/sdl/button.c8
-rw-r--r--uisimulator/sdl/uisdl.h10
58 files changed, 599 insertions, 8 deletions
diff --git a/apps/bitmaps/native/SOURCES b/apps/bitmaps/native/SOURCES
index c83bad5ebd..5ee09c5303 100644
--- a/apps/bitmaps/native/SOURCES
+++ b/apps/bitmaps/native/SOURCES
@@ -11,10 +11,12 @@ rockboxlogo.160x53x2.bmp
11rockboxlogo.160x50x16.bmp 11rockboxlogo.160x50x16.bmp
12#elif (LCD_WIDTH == 176) && (LCD_DEPTH == 16) 12#elif (LCD_WIDTH == 176) && (LCD_DEPTH == 16)
13rockboxlogo.176x54x16.bmp 13rockboxlogo.176x54x16.bmp
14#elif (LCD_WIDTH == 320) && (LCD_DEPTH == 16) 14#elif (LCD_WIDTH == 220) && (LCD_DEPTH == 16)
15rockboxlogo.320x98x16.bmp
16#elif (LCD_WIDTH >= 220) && (LCD_DEPTH == 16)
17rockboxlogo.220x68x16.bmp 15rockboxlogo.220x68x16.bmp
16#elif (LCD_WIDTH == 240) && (LCD_DEPTH == 16)
17rockboxlogo.240x74x16.bmp
18#elif (LCD_WIDTH >= 320) && (LCD_DEPTH == 16)
19rockboxlogo.320x98x16.bmp
18#endif 20#endif
19 21
20#endif /* HAVE_LCD_BITMAP */ 22#endif /* HAVE_LCD_BITMAP */
diff --git a/apps/bitmaps/native/rockboxlogo.240x74x16.bmp b/apps/bitmaps/native/rockboxlogo.240x74x16.bmp
new file mode 100644
index 0000000000..fd335b2fb8
--- /dev/null
+++ b/apps/bitmaps/native/rockboxlogo.240x74x16.bmp
Binary files differ
diff --git a/apps/bookmark.h b/apps/bookmark.h
index 2d1dc3e27f..8e8f6b684a 100644
--- a/apps/bookmark.h
+++ b/apps/bookmark.h
@@ -48,6 +48,11 @@
48#define BOOKMARK_DELETE BUTTON_REC | BUTTON_REPEAT 48#define BOOKMARK_DELETE BUTTON_REC | BUTTON_REPEAT
49#define BOOKMARK_DOWN BUTTON_DOWN 49#define BOOKMARK_DOWN BUTTON_DOWN
50 50
51#elif CONFIG_KEYPAD == GIGABEAT_PAD
52#define BOOKMARK_SELECT BUTTON_MENU
53#define BOOKMARK_DELETE BUTTON_POWER
54#define BOOKMARK_DOWN BUTTON_A
55
51#else /* player, recorder, gmini */ 56#else /* player, recorder, gmini */
52#define BOOKMARK_SELECT BUTTON_PLAY 57#define BOOKMARK_SELECT BUTTON_PLAY
53#define BOOKMARK_DELETE (BUTTON_ON | BUTTON_PLAY) 58#define BOOKMARK_DELETE (BUTTON_ON | BUTTON_PLAY)
diff --git a/apps/eq_menu.c b/apps/eq_menu.c
index 0e754dd979..f6c8dba0df 100644
--- a/apps/eq_menu.c
+++ b/apps/eq_menu.c
@@ -85,6 +85,15 @@
85#define EQ_BTN_CHANGE_MODE BUTTON_SELECT 85#define EQ_BTN_CHANGE_MODE BUTTON_SELECT
86#define EQ_BTN_EXIT BUTTON_PLAY 86#define EQ_BTN_EXIT BUTTON_PLAY
87 87
88#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
89
90#define EQ_BTN_DECREMENT BUTTON_LEFT
91#define EQ_BTN_INCREMENT BUTTON_RIGHT
92#define EQ_BTN_NEXT_BAND BUTTON_DOWN
93#define EQ_BTN_PREV_BAND BUTTON_UP
94#define EQ_BTN_CHANGE_MODE BUTTON_SELECT
95#define EQ_BTN_EXIT BUTTON_A
96
88#endif 97#endif
89 98
90 99
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h
index dc6841b881..3277037bfa 100644
--- a/apps/gui/gwps.h
+++ b/apps/gui/gwps.h
@@ -233,6 +233,29 @@
233#define WPS_EXIT (BUTTON_PLAY | BUTTON_REPEAT) 233#define WPS_EXIT (BUTTON_PLAY | BUTTON_REPEAT)
234#define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) 234#define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
235 235
236#elif CONFIG_KEYPAD == GIGABEAT_PAD
237
238#define WPS_NEXT (BUTTON_RIGHT | BUTTON_REL)
239#define WPS_NEXT_PRE BUTTON_RIGHT
240#define WPS_PREV (BUTTON_LEFT | BUTTON_REL)
241#define WPS_PREV_PRE BUTTON_LEFT
242#define WPS_FFWD (BUTTON_RIGHT | BUTTON_REPEAT)
243#define WPS_REW (BUTTON_LEFT | BUTTON_REPEAT)
244#define WPS_INCVOL BUTTON_UP
245#define WPS_DECVOL BUTTON_DOWN
246#define WPS_PAUSE (BUTTON_POWER | BUTTON_REL)
247#define WPS_PAUSE_PRE BUTTON_POWER
248#define WPS_MENU (BUTTON_MENU | BUTTON_REL)
249#define WPS_MENU_PRE BUTTON_MENU
250#define WPS_BROWSE (BUTTON_SELECT | BUTTON_REL)
251#define WPS_BROWSE_PRE BUTTON_SELECT
252#define WPS_EXIT BUTTON_A
253#define WPS_ID3 (BUTTON_MENU | BUTTON_POWER)
254#define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
255#define WPS_QUICK (BUTTON_MENU | BUTTON_REPEAT)
256#define WPS_NEXT_DIR (BUTTON_RIGHT | BUTTON_POWER)
257#define WPS_PREV_DIR (BUTTON_LEFT | BUTTON_POWER)
258
236#endif 259#endif
237 260
238/* constants used in line_type and as refresh_mode for wps_refresh */ 261/* constants used in line_type and as refresh_mode for wps_refresh */
diff --git a/apps/gui/list.h b/apps/gui/list.h
index 23a0fc37b8..e72e00c5d1 100644
--- a/apps/gui/list.h
+++ b/apps/gui/list.h
@@ -93,6 +93,10 @@
93#define LIST_NEXT BUTTON_DOWN 93#define LIST_NEXT BUTTON_DOWN
94#define LIST_PREV BUTTON_UP 94#define LIST_PREV BUTTON_UP
95 95
96#elif CONFIG_KEYPAD == GIGABEAT_PAD
97#define LIST_NEXT BUTTON_DOWN
98#define LIST_PREV BUTTON_UP
99
96#endif 100#endif
97 101
98/* 102/*
diff --git a/apps/gui/select.h b/apps/gui/select.h
index ff552950d7..5acf0f8c96 100644
--- a/apps/gui/select.h
+++ b/apps/gui/select.h
@@ -93,6 +93,14 @@
93#define SELECT_CANCEL BUTTON_PLAY 93#define SELECT_CANCEL BUTTON_PLAY
94#define SELECT_CANCEL2 BUTTON_POWER 94#define SELECT_CANCEL2 BUTTON_POWER
95 95
96#elif CONFIG_KEYPAD == GIGABEAT_PAD
97#define SELECT_INC BUTTON_UP
98#define SELECT_DEC BUTTON_DOWN
99#define SELECT_OK BUTTON_MENU
100#define SELECT_OK2 BUTTON_LEFT
101#define SELECT_CANCEL BUTTON_A
102#define SELECT_CANCEL2 BUTTON_POWER
103
96#endif 104#endif
97 105
98struct gui_select 106struct gui_select
diff --git a/apps/gui/yesno.h b/apps/gui/yesno.h
index c6519bc00e..5fcd1a62e3 100644
--- a/apps/gui/yesno.h
+++ b/apps/gui/yesno.h
@@ -32,6 +32,9 @@
32#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 32#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
33#define YESNO_OK BUTTON_RIGHT 33#define YESNO_OK BUTTON_RIGHT
34 34
35#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
36#define YESNO_OK BUTTON_RIGHT
37
35#endif 38#endif
36enum yesno_res 39enum yesno_res
37{ 40{
diff --git a/apps/menu.h b/apps/menu.h
index 31e8730831..77cb603b96 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -95,6 +95,16 @@
95#define MENU_EXIT_MENU BUTTON_REC 95#define MENU_EXIT_MENU BUTTON_REC
96#define MENU_ENTER BUTTON_RIGHT 96#define MENU_ENTER BUTTON_RIGHT
97 97
98#elif CONFIG_KEYPAD == GIGABEAT_PAD
99
100#define MENU_EXIT BUTTON_LEFT
101#define MENU_EXIT2 BUTTON_A
102#define MENU_EXIT_MENU BUTTON_MENU
103#define MENU_ENTER BUTTON_RIGHT
104#define MENU_ENTER2 BUTTON_SELECT
105#define MENU_NEXT BUTTON_DOWN
106#define MENU_PREV BUTTON_UP
107
98#endif 108#endif
99 109
100struct menu_item { 110struct menu_item {
diff --git a/apps/plugins/battery_test.c b/apps/plugins/battery_test.c
index 31a2ac582c..6c9988eb53 100644
--- a/apps/plugins/battery_test.c
+++ b/apps/plugins/battery_test.c
@@ -47,6 +47,8 @@ PLUGIN_HEADER
47#define BATTERY_TEST_QUIT BUTTON_MENU 47#define BATTERY_TEST_QUIT BUTTON_MENU
48#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 48#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
49#define BATTERY_TEST_QUIT BUTTON_POWER 49#define BATTERY_TEST_QUIT BUTTON_POWER
50#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
51#define BATTERY_TEST_QUIT BUTTON_A
50#endif 52#endif
51 53
52static struct plugin_api* rb; 54static struct plugin_api* rb;
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 11f6bd3d11..71b2ebb5f2 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -15,6 +15,8 @@ bejeweled_jewels.160x128x16.bmp
15bejeweled_jewels.160x128x16.bmp 15bejeweled_jewels.160x128x16.bmp
16#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176) 16#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176)
17bejeweled_jewels.220x176x16.bmp 17bejeweled_jewels.220x176x16.bmp
18#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 320)
19bejeweled_jewels.220x176x16.bmp
18#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) 20#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240)
19bejeweled_jewels.320x240x16.bmp 21bejeweled_jewels.320x240x16.bmp
20#endif 22#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index cad0379b50..6c48e802d4 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -64,6 +64,12 @@ PLUGIN_HEADER
64#define BOUNCE_QUIT BUTTON_POWER 64#define BOUNCE_QUIT BUTTON_POWER
65#define BOUNCE_MODE BUTTON_PLAY 65#define BOUNCE_MODE BUTTON_PLAY
66 66
67#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
68#define BOUNCE_UP BUTTON_UP
69#define BOUNCE_DOWN BUTTON_DOWN
70#define BOUNCE_QUIT BUTTON_A
71#define BOUNCE_MODE BUTTON_POWER
72
67#endif 73#endif
68 74
69static struct plugin_api* rb; 75static struct plugin_api* rb;
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 10f230ea66..899f022717 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -75,6 +75,18 @@ PLUGIN_HEADER
75#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_FWD) 75#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_FWD)
76#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_BACK) 76#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_BACK)
77 77
78#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
79
80#define QUIT BUTTON_A
81#define LEFT BUTTON_LEFT
82#define RIGHT BUTTON_RIGHT
83#define SELECT BUTTON_SELECT
84#define UP BUTTON_UP
85#define DOWN BUTTON_DOWN
86
87#define SCROLL_FWD(x) (0)
88#define SCROLL_BACK(x) (0)
89
78#elif CONFIG_KEYPAD == IAUDIO_X5_PAD /* grayscale at the moment */ 90#elif CONFIG_KEYPAD == IAUDIO_X5_PAD /* grayscale at the moment */
79 91
80#define QUIT BUTTON_POWER 92#define QUIT BUTTON_POWER
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index fb31d3d516..6bde1b0a09 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -153,6 +153,16 @@ PLUGIN_HEADER
153#define CALCULATOR_CALC BUTTON_PLAY 153#define CALCULATOR_CALC BUTTON_PLAY
154#define CALCULATOR_CLEAR BUTTON_REC 154#define CALCULATOR_CLEAR BUTTON_REC
155 155
156#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
157
158#define CALCULATOR_UP BUTTON_UP
159#define CALCULATOR_DOWN BUTTON_DOWN
160#define CALCULATOR_QUIT BUTTON_A
161#define CALCULATOR_INPUT_CALC_PRE BUTTON_MENU
162#define CALCULATOR_INPUT (BUTTON_MENU | BUTTON_REL)
163#define CALCULATOR_CALC BUTTON_SELECT
164#define CALCULATOR_CLEAR BUTTON_POWER
165
156#endif 166#endif
157 167
158static struct plugin_api* rb; 168static struct plugin_api* rb;
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 84979ab401..edfd421255 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -96,6 +96,16 @@ PLUGIN_HEADER
96#define CHC_SETTINGS_OK BUTTON_SELECT 96#define CHC_SETTINGS_OK BUTTON_SELECT
97#define CHC_SETTINGS_CANCEL BUTTON_REC 97#define CHC_SETTINGS_CANCEL BUTTON_REC
98 98
99#elif CONFIG_KEYPAD == GIGABEAT_PAD
100#define CHC_QUIT BUTTON_A
101#define CHC_STARTSTOP BUTTON_SELECT
102#define CHC_RESET BUTTON_POWER
103#define CHC_MENU BUTTON_MENU
104#define CHC_SETTINGS_INC BUTTON_RIGHT
105#define CHC_SETTINGS_DEC BUTTON_LEFT
106#define CHC_SETTINGS_OK BUTTON_MENU
107#define CHC_SETTINGS_CANCEL BUTTON_A
108
99#endif 109#endif
100 110
101 111
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 1be48823ed..29816bfa13 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -992,6 +992,14 @@ STATIC void chip8 (void)
992#define CHIP8_KEY6 BUTTON_RIGHT 992#define CHIP8_KEY6 BUTTON_RIGHT
993#define CHIP8_KEY8 BUTTON_DOWN 993#define CHIP8_KEY8 BUTTON_DOWN
994 994
995#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
996#define CHIP8_OFF BUTTON_A
997#define CHIP8_KEY2 BUTTON_UP
998#define CHIP8_KEY4 BUTTON_LEFT
999#define CHIP8_KEY5 BUTTON_MENU
1000#define CHIP8_KEY6 BUTTON_RIGHT
1001#define CHIP8_KEY8 BUTTON_DOWN
1002
995#endif 1003#endif
996 1004
997static byte chip8_virtual_keys[16]; 1005static byte chip8_virtual_keys[16];
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 63dcce4c33..71da39885e 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -120,6 +120,19 @@ PLUGIN_HEADER
120#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL) 120#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL)
121#define CUBE_HIGHSPEED (BUTTON_REC | BUTTON_REL) 121#define CUBE_HIGHSPEED (BUTTON_REC | BUTTON_REL)
122 122
123#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
124#define CUBE_QUIT BUTTON_A
125#define CUBE_X_INC BUTTON_LEFT
126#define CUBE_X_DEC BUTTON_RIGHT
127#define CUBE_Y_INC BUTTON_UP
128#define CUBE_Y_DEC BUTTON_DOWN
129#define CUBE_Z_INC (BUTTON_POWER | BUTTON_UP)
130#define CUBE_Z_DEC (BUTTON_POWER | BUTTON_DOWN)
131#define CUBE_MODE BUTTON_MENU
132#define CUBE_PAUSE_PRE BUTTON_SELECT
133#define CUBE_PAUSE (BUTTON_SELECT | BUTTON_REL)
134#define CUBE_HIGHSPEED (BUTTON_POWER | BUTTON_REL)
135
123#endif 136#endif
124 137
125#ifdef HAVE_LCD_BITMAP 138#ifdef HAVE_LCD_BITMAP
diff --git a/apps/plugins/databox/databox.c b/apps/plugins/databox/databox.c
index d7e6f28ccb..0ec14d5d2f 100644
--- a/apps/plugins/databox/databox.c
+++ b/apps/plugins/databox/databox.c
@@ -43,6 +43,9 @@ PLUGIN_HEADER
43#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 43#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
44#define DBX_SELECT BUTTON_SELECT 44#define DBX_SELECT BUTTON_SELECT
45#define DBX_STOP BUTTON_PLAY 45#define DBX_STOP BUTTON_PLAY
46#elif CONFIG_KEYPAD == GIGABEAT_PAD
47#define DBX_SELECT BUTTON_SELECT
48#define DBX_STOP BUTTON_A
46#endif 49#endif
47 50
48#define MAX_TOKENS 70 51#define MAX_TOKENS 70
diff --git a/apps/plugins/demystify.c b/apps/plugins/demystify.c
index da7cd6eb96..36f7b924d3 100644
--- a/apps/plugins/demystify.c
+++ b/apps/plugins/demystify.c
@@ -38,6 +38,12 @@ PLUGIN_HEADER
38#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT 38#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
39#define DEMYSTIFY_INCREASE_SPEED BUTTON_UP 39#define DEMYSTIFY_INCREASE_SPEED BUTTON_UP
40#define DEMYSTIFY_DECREASE_SPEED BUTTON_DOWN 40#define DEMYSTIFY_DECREASE_SPEED BUTTON_DOWN
41#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
42#define DEMYSTIFY_QUIT BUTTON_A
43#define DEMYSTIFY_ADD_POLYGON BUTTON_RIGHT
44#define DEMYSTIFY_REMOVE_POLYGON BUTTON_LEFT
45#define DEMYSTIFY_INCREASE_SPEED BUTTON_UP
46#define DEMYSTIFY_DECREASE_SPEED BUTTON_DOWN
41#else 47#else
42#define DEMYSTIFY_QUIT BUTTON_OFF 48#define DEMYSTIFY_QUIT BUTTON_OFF
43#define DEMYSTIFY_ADD_POLYGON BUTTON_UP 49#define DEMYSTIFY_ADD_POLYGON BUTTON_UP
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index cb68f4cce2..62bb9a73a4 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -110,6 +110,8 @@ long reverse (long N) {
110#define LP_QUIT BUTTON_PLAY 110#define LP_QUIT BUTTON_PLAY
111#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 111#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
112#define LP_QUIT BUTTON_POWER 112#define LP_QUIT BUTTON_POWER
113#elif CONFIG_KEYPAD == GIGABEAT_PAD
114#define LP_QUIT BUTTON_A
113#else 115#else
114#define LP_QUIT BUTTON_OFF 116#define LP_QUIT BUTTON_OFF
115#endif 117#endif
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 4b7ef42376..a4c9cea9db 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -74,6 +74,17 @@ PLUGIN_HEADER
74#define FLIPIT_TOGGLE_PRE BUTTON_SELECT 74#define FLIPIT_TOGGLE_PRE BUTTON_SELECT
75#define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL) 75#define FLIPIT_TOGGLE (BUTTON_SELECT | BUTTON_REL)
76 76
77#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
78
79#define FLIPIT_UP BUTTON_UP
80#define FLIPIT_DOWN BUTTON_DOWN
81#define FLIPIT_QUIT BUTTON_A
82#define FLIPIT_SHUFFLE (BUTTON_POWER | BUTTON_LEFT)
83#define FLIPIT_SOLVE (BUTTON_POWER | BUTTON_RIGHT)
84#define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_UP)
85#define FLIPIT_TOGGLE_PRE BUTTON_MENU
86#define FLIPIT_TOGGLE (BUTTON_MENU | BUTTON_REL)
87
77#endif 88#endif
78 89
79static struct plugin_api* rb; 90static struct plugin_api* rb;
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 9e4ab66cbf..666827668f 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -76,6 +76,16 @@ PLUGIN_HEADER
76#define BEJEWELED_SELECT BUTTON_SELECT 76#define BEJEWELED_SELECT BUTTON_SELECT
77#define BEJEWELED_CANCEL BUTTON_PLAY 77#define BEJEWELED_CANCEL BUTTON_PLAY
78 78
79#elif CONFIG_KEYPAD == GIGABEAT_PAD
80#define BEJEWELED_UP BUTTON_UP
81#define BEJEWELED_DOWN BUTTON_DOWN
82#define BEJEWELED_LEFT BUTTON_LEFT
83#define BEJEWELED_RIGHT BUTTON_RIGHT
84#define BEJEWELED_QUIT BUTTON_A
85#define BEJEWELED_START BUTTON_POWER
86#define BEJEWELED_SELECT BUTTON_SELECT
87#define BEJEWELED_RESUME BUTTON_MENU
88
79#else 89#else
80 #error BEJEWELED: Unsupported keypad 90 #error BEJEWELED: Unsupported keypad
81#endif 91#endif
@@ -88,7 +98,7 @@ PLUGIN_HEADER
88#define NUM_SCORES 10 98#define NUM_SCORES 10
89 99
90/* use 22x22 tiles (H300, iPod Color) */ 100/* use 22x22 tiles (H300, iPod Color) */
91#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220) 101#elif ((LCD_HEIGHT == 176) && (LCD_WIDTH == 220)) || ((LCD_HEIGHT == 320) && (LCD_WIDTH == 240))
92#define TILE_WIDTH 22 102#define TILE_WIDTH 22
93#define TILE_HEIGHT 22 103#define TILE_HEIGHT 22
94#define YOFS 0 104#define YOFS 0
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index ecd42b6234..ce27d7da3f 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -97,6 +97,18 @@ PLUGIN_HEADER
97#define JPEG_NEXT BUTTON_PLAY 97#define JPEG_NEXT BUTTON_PLAY
98#define JPEG_PREVIOUS BUTTON_REC 98#define JPEG_PREVIOUS BUTTON_REC
99 99
100#elif CONFIG_KEYPAD == GIGABEAT_PAD
101#define JPEG_ZOOM_IN_PRE BUTTON_MENU
102#define JPEG_ZOOM_IN (BUTTON_MENU | BUTTON_REL)
103#define JPEG_ZOOM_OUT (BUTTON_MENU | BUTTON_REPEAT)
104#define JPEG_UP BUTTON_UP
105#define JPEG_DOWN BUTTON_DOWN
106#define JPEG_LEFT BUTTON_LEFT
107#define JPEG_RIGHT BUTTON_RIGHT
108#define JPEG_QUIT BUTTON_A
109#define JPEG_NEXT (BUTTON_POWER | BUTTON_RIGHT)
110#define JPEG_PREVIOUS (BUTTON_POWER | BUTTON_LEFT)
111
100#endif 112#endif
101 113
102/* different graphics libraries */ 114/* different graphics libraries */
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 1a16e5d2a3..982460ea8f 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -201,6 +201,12 @@ const unsigned char rockbox16x7[] = {
201#define LP_INC_X BUTTON_RIGHT 201#define LP_INC_X BUTTON_RIGHT
202#define LP_DEC_Y BUTTON_DOWN 202#define LP_DEC_Y BUTTON_DOWN
203#define LP_INC_Y BUTTON_UP 203#define LP_INC_Y BUTTON_UP
204#elif CONFIG_KEYPAD == GIGABEAT_PAD
205#define LP_QUIT BUTTON_A
206#define LP_DEC_X BUTTON_LEFT
207#define LP_INC_X BUTTON_RIGHT
208#define LP_DEC_Y BUTTON_DOWN
209#define LP_INC_Y BUTTON_UP
204#else 210#else
205#define LP_QUIT BUTTON_OFF 211#define LP_QUIT BUTTON_OFF
206#define LP_DEC_X BUTTON_LEFT 212#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index 4054ef35d9..3017bb4dac 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -90,6 +90,19 @@ PLUGIN_HEADER
90#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_RIGHT) 90#define MANDELBROT_MAXITER_INC (BUTTON_PLAY | BUTTON_RIGHT)
91#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT) 91#define MANDELBROT_MAXITER_DEC (BUTTON_PLAY | BUTTON_LEFT)
92#define MANDELBROT_RESET BUTTON_REC 92#define MANDELBROT_RESET BUTTON_REC
93
94#elif CONFIG_KEYPAD == GIGABEAT_PAD
95#define MANDELBROT_QUIT BUTTON_A
96#define MANDELBROT_UP BUTTON_UP
97#define MANDELBROT_DOWN BUTTON_DOWN
98#define MANDELBROT_LEFT BUTTON_LEFT
99#define MANDELBROT_RIGHT BUTTON_RIGHT
100#define MANDELBROT_ZOOM_IN_PRE BUTTON_MENU
101#define MANDELBROT_ZOOM_IN (BUTTON_MENU | BUTTON_REL)
102#define MANDELBROT_ZOOM_OUT (BUTTON_MENU | BUTTON_REPEAT)
103#define MANDELBROT_MAXITER_INC (BUTTON_POWER | BUTTON_RIGHT)
104#define MANDELBROT_MAXITER_DEC (BUTTON_POWER | BUTTON_LEFT)
105#define MANDELBROT_RESET BUTTON_SELECT
93#endif 106#endif
94 107
95#if LCD_DEPTH < 8 108#if LCD_DEPTH < 8
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index 149bf92ed6..fd4507f4e3 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -89,6 +89,15 @@ PLUGIN_HEADER
89#define MINESWP_DISCOVER BUTTON_SELECT 89#define MINESWP_DISCOVER BUTTON_SELECT
90#define MINESWP_INFO (BUTTON_REC | BUTTON_PLAY) 90#define MINESWP_INFO (BUTTON_REC | BUTTON_PLAY)
91 91
92#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
93#define MINESWP_UP BUTTON_UP
94#define MINESWP_DOWN BUTTON_DOWN
95#define MINESWP_QUIT BUTTON_A
96#define MINESWP_START BUTTON_SELECT
97#define MINESWP_TOGGLE BUTTON_SELECT
98#define MINESWP_DISCOVER BUTTON_POWER
99#define MINESWP_INFO BUTTON_MENU
100
92#endif 101#endif
93 102
94/* here is a global api struct pointer. while not strictly necessary, 103/* here is a global api struct pointer. while not strictly necessary,
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 12f35e40c8..b68667cc24 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -68,6 +68,11 @@ PLUGIN_HEADER
68#define MOSAIQUE_SPEED BUTTON_SELECT 68#define MOSAIQUE_SPEED BUTTON_SELECT
69#define MOSAIQUE_RESTART BUTTON_PLAY 69#define MOSAIQUE_RESTART BUTTON_PLAY
70 70
71#elif CONFIG_KEYPAD == GIGABEAT_PAD
72#define MOSAIQUE_QUIT BUTTON_A
73#define MOSAIQUE_SPEED BUTTON_MENU
74#define MOSAIQUE_RESTART BUTTON_SELECT
75
71#endif 76#endif
72 77
73enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 78enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index d1a967b1a3..cd9a314de3 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -1890,6 +1890,12 @@ char *get_mp3_filename(char *wav_name)
1890#define MP3ENC_NEXT BUTTON_DOWN 1890#define MP3ENC_NEXT BUTTON_DOWN
1891#define MP3ENC_DONE BUTTON_POWER 1891#define MP3ENC_DONE BUTTON_POWER
1892#define MP3ENC_SELECT BUTTON_SELECT 1892#define MP3ENC_SELECT BUTTON_SELECT
1893#define MP3ENC_SELECT BUTTON_MENU
1894#elif CONFIG_KEYPAD == GIGABEAT_PAD
1895#define MP3ENC_PREV BUTTON_UP
1896#define MP3ENC_NEXT BUTTON_DOWN
1897#define MP3ENC_DONE BUTTON_A
1898#define MP3ENC_SELECT BUTTON_SELECT
1893#endif 1899#endif
1894 1900
1895enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 1901enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index 83aef91890..ca589d77b6 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -55,6 +55,10 @@ static int plasma_frequency;
55#define PLASMA_QUIT BUTTON_MENU 55#define PLASMA_QUIT BUTTON_MENU
56#define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_FWD 56#define PLASMA_INCREASE_FREQUENCY BUTTON_SCROLL_FWD
57#define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_BACK 57#define PLASMA_DECREASE_FREQUENCY BUTTON_SCROLL_BACK
58#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
59#define PLASMA_QUIT BUTTON_A
60#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
61#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
58#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 62#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
59#define PLASMA_QUIT BUTTON_REC 63#define PLASMA_QUIT BUTTON_REC
60#define PLASMA_INCREASE_FREQUENCY BUTTON_UP 64#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
@@ -72,6 +76,8 @@ static int plasma_frequency;
72#define PLASMA_REGEN_COLORS BUTTON_SELECT 76#define PLASMA_REGEN_COLORS BUTTON_SELECT
73#elif CONFIG_KEYPAD == IRIVER_H300_PAD 77#elif CONFIG_KEYPAD == IRIVER_H300_PAD
74#define PLASMA_REGEN_COLORS BUTTON_SELECT 78#define PLASMA_REGEN_COLORS BUTTON_SELECT
79#elif CONFIG_KEYPAD == GIGABEAT_PAD
80#define PLASMA_REGEN_COLORS BUTTON_SELECT
75#endif 81#endif
76#endif 82#endif
77 83
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index b725c9305a..a348ae7545 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -72,6 +72,13 @@ PLUGIN_HEADER
72#define PONG_RIGHT_UP BUTTON_REC 72#define PONG_RIGHT_UP BUTTON_REC
73#define PONG_RIGHT_DOWN BUTTON_PLAY 73#define PONG_RIGHT_DOWN BUTTON_PLAY
74 74
75#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
76#define PONG_QUIT BUTTON_A
77#define PONG_LEFT_UP BUTTON_UP
78#define PONG_LEFT_DOWN BUTTON_DOWN
79#define PONG_RIGHT_UP BUTTON_POWER
80#define PONG_RIGHT_DOWN BUTTON_MENU
81
75#endif 82#endif
76 83
77static struct plugin_api* rb; 84static struct plugin_api* rb;
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 0c976369cf..6b26b3bd6a 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -36,6 +36,12 @@ PLUGIN_HEADER
36#define ROCKBLOX_DOWN BUTTON_DOWN 36#define ROCKBLOX_DOWN BUTTON_DOWN
37#define ROCKBLOX_LEFT BUTTON_LEFT 37#define ROCKBLOX_LEFT BUTTON_LEFT
38#define ROCKBLOX_RIGHT BUTTON_RIGHT 38#define ROCKBLOX_RIGHT BUTTON_RIGHT
39#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
40#define ROCKBLOX_OFF BUTTON_A
41#define ROCKBLOX_UP BUTTON_UP
42#define ROCKBLOX_DOWN BUTTON_DOWN
43#define ROCKBLOX_LEFT BUTTON_LEFT
44#define ROCKBLOX_RIGHT BUTTON_RIGHT
39#else 45#else
40#define ROCKBLOX_OFF BUTTON_OFF 46#define ROCKBLOX_OFF BUTTON_OFF
41#define ROCKBLOX_UP BUTTON_UP 47#define ROCKBLOX_UP BUTTON_UP
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 2e4a221930..c1c2bef362 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -59,6 +59,13 @@ PLUGIN_HEADER
59#define PUZZLE_SHUFFLE BUTTON_REC 59#define PUZZLE_SHUFFLE BUTTON_REC
60#define PUZZLE_PICTURE BUTTON_PLAY 60#define PUZZLE_PICTURE BUTTON_PLAY
61 61
62#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
63#define PUZZLE_QUIT BUTTON_A
64#define PUZZLE_UP BUTTON_UP
65#define PUZZLE_DOWN BUTTON_DOWN
66#define PUZZLE_SHUFFLE BUTTON_SELECT
67#define PUZZLE_PICTURE BUTTON_POWER
68
62#endif 69#endif
63 70
64static struct plugin_api* rb; 71static struct plugin_api* rb;
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 04a4f3e0e2..272e0017c0 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -67,6 +67,12 @@ PLUGIN_HEADER
67#define SNAKE_DOWN BUTTON_DOWN 67#define SNAKE_DOWN BUTTON_DOWN
68#define SNAKE_PLAYPAUSE BUTTON_PLAY 68#define SNAKE_PLAYPAUSE BUTTON_PLAY
69 69
70#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
71#define SNAKE_QUIT BUTTON_A
72#define SNAKE_UP BUTTON_UP
73#define SNAKE_DOWN BUTTON_DOWN
74#define SNAKE_PLAYPAUSE BUTTON_SELECT
75
70#else 76#else
71#error "lacks keymapping" 77#error "lacks keymapping"
72#endif 78#endif
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 23b60734df..8407654110 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -113,6 +113,18 @@ PLUGIN_HEADER
113#define SNAKE2_SELECT_TYPE BUTTON_RIGHT 113#define SNAKE2_SELECT_TYPE BUTTON_RIGHT
114#define SNAKE2_PLAYPAUSE BUTTON_SELECT 114#define SNAKE2_PLAYPAUSE BUTTON_SELECT
115 115
116#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
117#define SNAKE2_UP BUTTON_UP
118#define SNAKE2_DOWN BUTTON_DOWN
119#define SNAKE2_QUIT BUTTON_A
120#define SNAKE2_LEVEL_UP BUTTON_UP
121#define SNAKE2_LEVEL_UP2 BUTTON_RIGHT
122#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
123#define SNAKE2_LEVEL_DOWN2 BUTTON_LEFT
124#define SNAKE2_SELECT_MAZE BUTTON_POWER
125#define SNAKE2_SELECT_TYPE BUTTON_MENU
126#define SNAKE2_PLAYPAUSE BUTTON_SELECT
127
116#else 128#else
117#error "lacks keymapping" 129#error "lacks keymapping"
118#endif 130#endif
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index c1487a8009..9001eabeef 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -42,6 +42,8 @@ PLUGIN_HEADER
42#define SNOW_QUIT BUTTON_PLAY 42#define SNOW_QUIT BUTTON_PLAY
43#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 43#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
44#define SNOW_QUIT BUTTON_POWER 44#define SNOW_QUIT BUTTON_POWER
45#elif CONFIG_KEYPAD == GIGABEAT_PAD
46#define SNOW_QUIT BUTTON_A
45#else 47#else
46#define SNOW_QUIT BUTTON_OFF 48#define SNOW_QUIT BUTTON_OFF
47#endif 49#endif
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 73b014f457..501253b130 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -86,6 +86,15 @@ PLUGIN_HEADER
86#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN) 86#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN)
87#define SOKOBAN_LEVEL_REPEAT BUTTON_REC 87#define SOKOBAN_LEVEL_REPEAT BUTTON_REC
88 88
89#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
90#define SOKOBAN_UP BUTTON_UP
91#define SOKOBAN_DOWN BUTTON_DOWN
92#define SOKOBAN_QUIT BUTTON_A
93#define SOKOBAN_UNDO BUTTON_MENU
94#define SOKOBAN_LEVEL_UP (BUTTON_POWER | BUTTON_UP)
95#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER | BUTTON_DOWN)
96#define SOKOBAN_LEVEL_REPEAT BUTTON_SELECT
97
89#endif 98#endif
90 99
91#ifdef HAVE_LCD_COLOR 100#ifdef HAVE_LCD_COLOR
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index cf6c6cb965..26629665d9 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -136,7 +136,22 @@ static struct plugin_api* rb;
136#define SOL_REM2STACK (BUTTON_REC | BUTTON_DOWN) 136#define SOL_REM2STACK (BUTTON_REC | BUTTON_DOWN)
137#define SOL_MENU_RUN BUTTON_SELECT 137#define SOL_MENU_RUN BUTTON_SELECT
138#define SOL_MENU_INFO BUTTON_PLAY 138#define SOL_MENU_INFO BUTTON_PLAY
139 139
140#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
141#define SOL_QUIT BUTTON_A
142#define SOL_UP BUTTON_UP
143#define SOL_DOWN BUTTON_DOWN
144#define SOL_LEFT BUTTON_LEFT
145#define SOL_RIGHT BUTTON_RIGHT
146#define SOL_MOVE_PRE BUTTON_SELECT
147#define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
148#define SOL_DRAW BUTTON_MENU
149#define SOL_REM2CUR (BUTTON_LEFT | BUTTON_POWER)
150#define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
151#define SOL_REM2STACK (BUTTON_RIGHT | BUTTON_POWER)
152#define SOL_MENU_RUN BUTTON_SELECT
153#define SOL_MENU_RUN2 BUTTON_RIGHT
154#define SOL_MENU_INFO BUTTON_MENU
140#endif 155#endif
141 156
142/* common help definitions */ 157/* common help definitions */
@@ -181,6 +196,13 @@ static struct plugin_api* rb;
181#define HELP_SOL_REM2CUR "REC+LEFT: Put the card on top of the remains' stack on top of the cursor." 196#define HELP_SOL_REM2CUR "REC+LEFT: Put the card on top of the remains' stack on top of the cursor."
182#define HELP_SOL_CUR2STACK "REC+UP..: Put the card under the cursor on one of the 4 final stacks." 197#define HELP_SOL_CUR2STACK "REC+UP..: Put the card under the cursor on one of the 4 final stacks."
183#define HELP_SOL_REM2STACK "REC+DOWN: Put the card on top of the remains' stack on one of the 4 final stacks." 198#define HELP_SOL_REM2STACK "REC+DOWN: Put the card on top of the remains' stack on one of the 4 final stacks."
199
200#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
201#define HELP_SOL_MOVE "SELECT: Select cards, Move cards, reveal hidden cards ..."
202#define HELP_SOL_DRAW "MENU: Un-select a card if it was selected. Else, draw 3 new cards out of the remains' stack."
203#define HELP_SOL_REM2CUR "POWER+LEFT: Put the card on top of the remains' stack on top of the cursor."
204#define HELP_SOL_CUR2STACK "SELECT..: Put the card under the cursor on one of the 4 final stacks."
205#define HELP_SOL_REM2STACK "POWER+RIGHT: Put the card on top of the remains' stack on one of the 4 final stacks."
184 206
185#endif 207#endif
186 208
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index a6d30eefec..097f62cf9e 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -122,6 +122,18 @@ PLUGIN_HEADER
122#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT) 122#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_RIGHT)
123#define STAR_MENU_RUN BUTTON_REC 123#define STAR_MENU_RUN BUTTON_REC
124 124
125#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
126
127#define STAR_QUIT BUTTON_A
128#define STAR_UP BUTTON_UP
129#define STAR_DOWN BUTTON_DOWN
130#define STAR_TOGGLE_CONTROL_PRE BUTTON_MENU
131#define STAR_TOGGLE_CONTROL (BUTTON_MENU | BUTTON_REL)
132#define STAR_LEVEL_UP (BUTTON_POWER | BUTTON_UP)
133#define STAR_LEVEL_DOWN (BUTTON_POWER | BUTTON_DOWN)
134#define STAR_LEVEL_REPEAT (BUTTON_POWER | BUTTON_RIGHT)
135#define STAR_MENU_RUN BUTTON_RIGHT
136
125#endif 137#endif
126 138
127/* function returns because of USB? */ 139/* function returns because of USB? */
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index f72c1ce5a9..7535caf032 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -38,6 +38,12 @@ static struct plugin_api* rb; /* global api struct pointer */
38#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN 38#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
39#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT 39#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
40#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 40#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
41#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
42#define STARFIELD_QUIT BUTTON_A
43#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
44#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
45#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
46#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
41#else 47#else
42#define STARFIELD_QUIT BUTTON_OFF 48#define STARFIELD_QUIT BUTTON_OFF
43#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 49#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 718b3ec928..12c11a9190 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -36,6 +36,8 @@ static int fontwidth, fontheight;
36#define STATS_STOP BUTTON_PLAY 36#define STATS_STOP BUTTON_PLAY
37#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 37#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
38#define STATS_STOP BUTTON_POWER 38#define STATS_STOP BUTTON_POWER
39#elif CONFIG_KEYPAD == GIGABEAT_PAD
40#define STATS_STOP BUTTON_A
39#else 41#else
40#define STATS_STOP BUTTON_OFF 42#define STATS_STOP BUTTON_OFF
41#endif 43#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index c5b22404ed..905b9d9e50 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -84,6 +84,13 @@ PLUGIN_HEADER
84#define STOPWATCH_LAP_TIMER BUTTON_SELECT 84#define STOPWATCH_LAP_TIMER BUTTON_SELECT
85#define STOPWATCH_SCROLL_UP BUTTON_UP 85#define STOPWATCH_SCROLL_UP BUTTON_UP
86#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 86#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
87#elif CONFIG_KEYPAD == GIGABEAT_PAD
88#define STOPWATCH_QUIT BUTTON_A
89#define STOPWATCH_START_STOP BUTTON_SELECT
90#define STOPWATCH_RESET_TIMER BUTTON_POWER
91#define STOPWATCH_LAP_TIMER BUTTON_MENU
92#define STOPWATCH_SCROLL_UP BUTTON_UP
93#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
87#endif 94#endif
88 95
89static struct plugin_api* rb; 96static struct plugin_api* rb;
diff --git a/apps/plugins/sudoku.c b/apps/plugins/sudoku.c
index 7894877e23..5cdf686778 100644
--- a/apps/plugins/sudoku.c
+++ b/apps/plugins/sudoku.c
@@ -111,6 +111,14 @@ PLUGIN_HEADER
111#define SUDOKU_BUTTON_MENU BUTTON_PLAY 111#define SUDOKU_BUTTON_MENU BUTTON_PLAY
112#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC 112#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC
113 113
114#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
115#define SUDOKU_BUTTON_QUIT BUTTON_A
116#define SUDOKU_BUTTON_UP BUTTON_UP
117#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
118#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
119#define SUDOKU_BUTTON_MENU BUTTON_MENU
120#define SUDOKU_BUTTON_POSSIBLE BUTTON_POWER
121
114#elif 122#elif
115 #error SUDOKU: Unsupported keypad 123 #error SUDOKU: Unsupported keypad
116#endif 124#endif
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 8e72229c5a..238c4e0fb2 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -152,6 +152,17 @@ PLUGIN_HEADER
152#define VIEWER_MODE_LINE (BUTTON_PLAY | BUTTON_REPEAT) 152#define VIEWER_MODE_LINE (BUTTON_PLAY | BUTTON_REPEAT)
153#define VIEWER_MODE_WIDTH BUTTON_SELECT 153#define VIEWER_MODE_WIDTH BUTTON_SELECT
154 154
155/* iAudio X5 keys */
156#elif CONFIG_KEYPAD == GIGABEAT_PAD
157#define VIEWER_QUIT BUTTON_A
158#define VIEWER_PAGE_UP BUTTON_UP
159#define VIEWER_PAGE_DOWN BUTTON_DOWN
160#define VIEWER_SCREEN_LEFT BUTTON_LEFT
161#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
162#define VIEWER_MODE_WRAP (BUTTON_POWER | BUTTON_REL)
163#define VIEWER_MODE_LINE (BUTTON_POWER | BUTTON_REPEAT)
164#define VIEWER_MODE_WIDTH BUTTON_MENU
165
155#endif 166#endif
156 167
157enum { 168enum {
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c
index d45717c6dd..d1756ace2c 100644
--- a/apps/recorder/keyboard.c
+++ b/apps/recorder/keyboard.c
@@ -156,6 +156,20 @@
156#define KBD_UP BUTTON_UP 156#define KBD_UP BUTTON_UP
157#define KBD_DOWN BUTTON_DOWN 157#define KBD_DOWN BUTTON_DOWN
158 158
159#elif CONFIG_KEYPAD == GIGABEAT_PAD
160
161/* TODO: Check keyboard mappings */
162
163#define KBD_MODES /* Gigabeat uses 2 modes, picker and line edit */
164#define KBD_SELECT (BUTTON_MENU | BUTTON_REL) /* backspace in line edit */
165#define KBD_SELECT_PRE BUTTON_MENU
166#define KBD_DONE BUTTON_POWER
167#define KBD_ABORT BUTTON_A
168#define KBD_LEFT BUTTON_LEFT
169#define KBD_RIGHT BUTTON_RIGHT
170#define KBD_UP BUTTON_UP
171#define KBD_DOWN BUTTON_DOWN
172
159#endif 173#endif
160 174
161#if KEYBOARD_PAGES == 1 175#if KEYBOARD_PAGES == 1
diff --git a/apps/settings.h b/apps/settings.h
index c7f70c3a19..753f067234 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -119,6 +119,15 @@
119#define SETTINGS_NEXT BUTTON_RIGHT 119#define SETTINGS_NEXT BUTTON_RIGHT
120#define SETTINGS_ACCEPT BUTTON_PLAY 120#define SETTINGS_ACCEPT BUTTON_PLAY
121 121
122#elif CONFIG_KEYPAD == GIGABEAT_PAD
123#define SETTINGS_INC BUTTON_UP
124#define SETTINGS_DEC BUTTON_DOWN
125#define SETTINGS_OK BUTTON_MENU
126#define SETTINGS_CANCEL BUTTON_A
127#define SETTINGS_PREV BUTTON_LEFT
128#define SETTINGS_NEXT BUTTON_RIGHT
129#define SETTINGS_ACCEPT BUTTON_SELECT
130
122#endif 131#endif
123 132
124/* data structures */ 133/* data structures */
diff --git a/apps/tree.h b/apps/tree.h
index 92a2fcf770..9b4888c46a 100644
--- a/apps/tree.h
+++ b/apps/tree.h
@@ -155,6 +155,23 @@
155#define TREE_WPS_PRE BUTTON_REC 155#define TREE_WPS_PRE BUTTON_REC
156#define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT) 156#define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
157#define TREE_POWER_BTN (BUTTON_PLAY | BUTTON_REPEAT) 157#define TREE_POWER_BTN (BUTTON_PLAY | BUTTON_REPEAT)
158
159#elif CONFIG_KEYPAD == GIGABEAT_PAD
160
161#define TREE_NEXT BUTTON_DOWN
162#define TREE_PREV BUTTON_UP
163#define TREE_EXIT BUTTON_LEFT
164#define TREE_ABORT BUTTON_A
165#define TREE_ENTER BUTTON_RIGHT
166#define TREE_RUN (BUTTON_SELECT | BUTTON_REL)
167#define TREE_RUN_PRE BUTTON_SELECT
168#define TREE_MENU (BUTTON_MENU | BUTTON_REL)
169#define TREE_MENU_PRE BUTTON_MENU
170#define TREE_WPS (BUTTON_POWER | BUTTON_REL)
171#define TREE_WPS_PRE BUTTON_POWER
172#define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
173#define TREE_POWER_BTN BUTTON_POWER
174
158#endif 175#endif
159 176
160struct entry { 177struct entry {
diff --git a/firmware/app.lds b/firmware/app.lds
index 74cca5a96a..5309311ee1 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -130,6 +130,10 @@ _pluginbuf = 0;
130#define DRAMORIG 0xc00000 + STUBOFFSET 130#define DRAMORIG 0xc00000 + STUBOFFSET
131#define IRAMORIG 0x400000 131#define IRAMORIG 0x400000
132#define IRAMSIZE 0x8000 132#define IRAMSIZE 0x8000
133#elif CONFIG_CPU==S3C2440
134#define DRAMORIG 0x30000000 + STUBOFFSET
135#define IRAMORIG 0x40000000
136#define IRAMSIZE 4K
133#else 137#else
134#define DRAMORIG 0x09000000 + STUBOFFSET 138#define DRAMORIG 0x09000000 + STUBOFFSET
135#define IRAMORIG 0x0f000000 139#define IRAMORIG 0x0f000000
diff --git a/firmware/boot.lds b/firmware/boot.lds
index 779b7b3b85..0b49917edd 100644
--- a/firmware/boot.lds
+++ b/firmware/boot.lds
@@ -38,6 +38,12 @@ INPUT(crt0.o)
38#define IRAMSIZE 0x18000 38#define IRAMSIZE 0x18000
39#define FLASHORIG 0x001f0000 39#define FLASHORIG 0x001f0000
40#define FLASHSIZE 2M 40#define FLASHSIZE 2M
41#elif CONFIG_CPU == S3C2440
42#define DRAMORIG 0x30000000
43#define IRAMORIG 0x40000000
44#define IRAMSIZE 4K
45#define FLASHORIG 0x0000000
46#define FLASHSIZE 1M
41#elif CONFIG_CPU == PP5002 47#elif CONFIG_CPU == PP5002
42#define DRAMORIG 0x28000000 48#define DRAMORIG 0x28000000
43#define IRAMORIG 0x40000000 49#define IRAMORIG 0x40000000
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index e4600e171a..8b3e54da44 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -246,6 +246,43 @@ int ide_read_register(int reg) {
246 return ide_reg_temp; 246 return ide_reg_temp;
247} 247}
248 248
249#elif defined(TOSHIBA_GIGABEAT_F)
250
251/* don't use sh7034 assembler routines */
252#define PREFER_C_READING
253#define PREFER_C_WRITING
254
255#define ATA_IOBASE 0x20000000
256#define ATA_DATA (*((volatile unsigned short*)(ATA_IOBASE)))
257#define ATA_ERROR (*((volatile unsigned char*)(ATA_IOBASE + 0x02)))
258#define ATA_NSECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x04)))
259#define ATA_SECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x06)))
260#define ATA_LCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x08)))
261#define ATA_HCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x10)))
262#define ATA_SELECT (*((volatile unsigned char*)(ATA_IOBASE + 0x12)))
263#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x14)))
264#define ATA_CONTROL (*((volatile unsigned char*)(0x21000000 + 0x1c)))
265
266#define STATUS_BSY 0x80
267#define STATUS_RDY 0x40
268#define STATUS_DF 0x20
269#define STATUS_DRQ 0x08
270#define STATUS_ERR 0x01
271#define ERROR_ABRT 0x04
272
273#define WRITE_PATTERN1 0xa5
274#define WRITE_PATTERN2 0x5a
275#define WRITE_PATTERN3 0xaa
276#define WRITE_PATTERN4 0x55
277
278#define READ_PATTERN1 0xa5
279#define READ_PATTERN2 0x5a
280#define READ_PATTERN3 0xaa
281#define READ_PATTERN4 0x55
282
283#define SET_REG(reg,val) reg = (val)
284#define SET_16BITREG(reg,val) reg = (val)
285
249#endif 286#endif
250 287
251#define ATA_FEATURE ATA_ERROR 288#define ATA_FEATURE ATA_ERROR
@@ -1429,6 +1466,9 @@ int ata_init(void)
1429#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) 1466#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020)
1430 bool coldstart = false; 1467 bool coldstart = false;
1431 /* TODO: Implement coldstart variable */ 1468 /* TODO: Implement coldstart variable */
1469#elif defined(TOSHIBA_GIGABEAT_F)
1470 /* TODO */
1471 bool coldstart = true;
1432#else 1472#else
1433 bool coldstart = (PACR2 & 0x4000) != 0; 1473 bool coldstart = (PACR2 & 0x4000) != 0;
1434#endif 1474#endif
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c
index d7750a33b2..b62121298d 100644
--- a/firmware/drivers/power.c
+++ b/firmware/drivers/power.c
@@ -122,6 +122,8 @@ bool charger_inserted(void)
122 /* FM or V2, can also charge from the USB port */ 122 /* FM or V2, can also charge from the USB port */
123 return (adc_read(ADC_CHARGE_REGULATOR) < 0x1FF) || 123 return (adc_read(ADC_CHARGE_REGULATOR) < 0x1FF) ||
124 (adc_read(ADC_USB_POWER) < 0x1FF); 124 (adc_read(ADC_USB_POWER) < 0x1FF);
125#elif defined(TOSHIBA_GIGABEAT_F)
126 return false;
125#else 127#else
126 /* Player */ 128 /* Player */
127 return (PADR & 1) == 0; 129 return (PADR & 1) == 0;
@@ -189,6 +191,8 @@ void ide_power_enable(bool on)
189 P1 &= ~0x08; 191 P1 &= ~0x08;
190#elif CONFIG_CPU == PNX0101 192#elif CONFIG_CPU == PNX0101
191 /* no ide controller */ 193 /* no ide controller */
194#elif defined(TOSHIBA_GIGABEAT_F)
195 /* Gigabeat TODO */
192#else /* SH1 based archos */ 196#else /* SH1 based archos */
193 bool touched = false; 197 bool touched = false;
194#ifdef NEEDS_ATA_POWER_ON 198#ifdef NEEDS_ATA_POWER_ON
@@ -241,6 +245,8 @@ bool ide_powered(void)
241 return true; 245 return true;
242#elif defined(GMINI_ARCH) 246#elif defined(GMINI_ARCH)
243 return (P1 & 0x08?true:false); 247 return (P1 & 0x08?true:false);
248#elif defined(TOSHIBA_GIGABEAT_F)
249 return false;
244#else /* SH1 based archos */ 250#else /* SH1 based archos */
245#if defined(NEEDS_ATA_POWER_ON) || defined(HAVE_ATA_POWER_OFF) 251#if defined(NEEDS_ATA_POWER_ON) || defined(HAVE_ATA_POWER_OFF)
246#ifdef ATA_POWER_PLAYERSTYLE 252#ifdef ATA_POWER_PLAYERSTYLE
@@ -283,6 +289,8 @@ void power_off(void)
283#elif defined(GMINI_ARCH) 289#elif defined(GMINI_ARCH)
284 P1 &= ~1; 290 P1 &= ~1;
285 P1CON &= ~1; 291 P1CON &= ~1;
292#elif defined(TOSHIBA_GIGABEAT_F)
293 /* FIXME: Can we turn the device off, or only enter sleep mode? */
286#else 294#else
287#ifdef HAVE_POWEROFF_ON_PBDR 295#ifdef HAVE_POWEROFF_ON_PBDR
288 and_b(~0x10, &PBDRL); 296 and_b(~0x10, &PBDRL);
diff --git a/firmware/export/button.h b/firmware/export/button.h
index 484698e492..3ae1d37d52 100644
--- a/firmware/export/button.h
+++ b/firmware/export/button.h
@@ -197,6 +197,20 @@ bool button_hold(void);
197 197
198#define BUTTON_RC_REC (BUTTON_REMOTE | 0x00400000) 198#define BUTTON_RC_REC (BUTTON_REMOTE | 0x00400000)
199 199
200#elif CONFIG_KEYPAD == GIGABEAT_PAD
201
202/* TODO: These codes should relate to the hardware */
203
204#define BUTTON_POWER 0x0001
205#define BUTTON_MENU 0x0002
206#define BUTTON_VOL_UP 0x0008
207#define BUTTON_VOL_DOWN 0x0010
208#define BUTTON_A 0x0020
209#define BUTTON_UP 0x0100
210#define BUTTON_DOWN 0x0200
211#define BUTTON_SELECT 0x0400
212
213
200#endif /* RECORDER/PLAYER/ONDIO/GMINI KEYPAD */ 214#endif /* RECORDER/PLAYER/ONDIO/GMINI KEYPAD */
201 215
202#endif /* _BUTTON_H_ */ 216#endif /* _BUTTON_H_ */
diff --git a/firmware/export/config-gigabeat.h b/firmware/export/config-gigabeat.h
new file mode 100644
index 0000000000..db99bf5d57
--- /dev/null
+++ b/firmware/export/config-gigabeat.h
@@ -0,0 +1,94 @@
1/*
2 * This config file is for toshiba Gigabeat F
3 */
4#define TOSHIBA_GIGABEAT_F 1
5
6/* For Rolo and boot loader */
7#define MODEL_NUMBER 1
8
9/* define this if you have a bitmap LCD display */
10#define HAVE_LCD_BITMAP 1
11
12/* define this if you have a colour LCD */
13#define HAVE_LCD_COLOR 1
14
15/* LCD dimensions */
16#define LCD_WIDTH 240
17#define LCD_HEIGHT 320
18#define LCD_DEPTH 16 /* 65k colours */
19#define LCD_PIXELFORMAT RGB565 /* rgb565 */
20
21
22#define CONFIG_KEYPAD GIGABEAT_PAD
23
24/* Define this if you do software codec */
25#define CONFIG_CODEC SWCODEC
26
27/* define this if you have a real-time clock */
28//#define CONFIG_RTC RTC_PCF50606
29
30/* Define this for LCD backlight available */
31#define CONFIG_BACKLIGHT BL_GIGABEAT /* port controlled PWM */
32
33/* Define this if you have a software controlled poweroff */
34#define HAVE_SW_POWEROFF
35
36/* The number of bytes reserved for loadable codecs */
37#define CODEC_SIZE 0x80000
38
39/* The number of bytes reserved for loadable plugins */
40#define PLUGIN_BUFFER_SIZE 0x80000
41
42/* Define this if you have the WM8975 audio codec */
43#define HAVE_WM8751
44
45#ifndef SIMULATOR
46
47/* Define this if you have a Motorola SCF5249 */
48#define CONFIG_CPU S3C2440
49
50/* Define this if you want to use coldfire's i2c interface */
51#define CONFIG_I2C I2C_S3C2440
52
53/* Type of mobile power */
54#define CONFIG_BATTERY BATT_LIPOL1300
55
56#define BATTERY_SCALE_FACTOR 23437 /* FIX: this value is picked at random */
57
58/* Define this if the platform can charge batteries */
59#define HAVE_CHARGING 1
60
61/* define this if the hardware can be powered off while charging */
62#define HAVE_POWEROFF_WHILE_CHARGING
63
64/* The size of the flash ROM */
65#define FLASH_SIZE 0x400000
66
67/* Define this to the CPU frequency */
68#define CPU_FREQ 16934400
69
70/* Define this if you have ATA power-off control */
71#define HAVE_ATA_POWER_OFF
72
73/* Virtual LED (icon) */
74#define CONFIG_LED LED_VIRTUAL
75
76#define CONFIG_LCD LCD_GIGABEAT
77
78/* Offset ( in the firmware file's header ) to the file CRC */
79#define FIRMWARE_OFFSET_FILE_CRC 0
80
81/* Offset ( in the firmware file's header ) to the real data */
82#define FIRMWARE_OFFSET_FILE_DATA 8
83
84#define USB_IRIVERSTYLE
85
86/* Define this if you have adjustable CPU frequency */
87#define HAVE_ADJUSTABLE_CPU_FREQ
88
89#define BOOTFILE_EXT "gigabeat"
90#define BOOTFILE "rockbox." BOOTFILE_EXT
91
92#define HAVE_BACKLIGHT_BRIGHTNESS
93
94#endif
diff --git a/firmware/export/config.h b/firmware/export/config.h
index 0e673cb988..1557accde5 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -42,6 +42,7 @@
42#define PP5002 5002 42#define PP5002 5002
43#define PP5020 5020 43#define PP5020 5020
44#define PNX0101 101 44#define PNX0101 101
45#define S3C2440 2440
45 46
46/* CONFIG_KEYPAD */ 47/* CONFIG_KEYPAD */
47#define PLAYER_PAD 0 48#define PLAYER_PAD 0
@@ -54,6 +55,7 @@
54#define IPOD_4G_PAD 7 55#define IPOD_4G_PAD 7
55#define IPOD_3G_PAD 8 56#define IPOD_3G_PAD 8
56#define IRIVER_IFP7XX_PAD 9 57#define IRIVER_IFP7XX_PAD 9
58#define GIGABEAT_PAD 10
57 59
58/* CONFIG_REMOTE_KEYPAD */ 60/* CONFIG_REMOTE_KEYPAD */
59#define H100_REMOTE 1 61#define H100_REMOTE 1
@@ -80,6 +82,7 @@
80#define LCD_IPODVIDEO 8 /* as used by iPod Video */ 82#define LCD_IPODVIDEO 8 /* as used by iPod Video */
81#define LCD_IPOD2BPP 9 /* as used by all greyscale iPods */ 83#define LCD_IPOD2BPP 9 /* as used by all greyscale iPods */
82#define LCD_IFP7XX 10 /* as used by iRiver iFP 7xx/8xx */ 84#define LCD_IFP7XX 10 /* as used by iRiver iFP 7xx/8xx */
85#define LCD_GIGABEAT 11
83 86
84/* LCD_PIXELFORMAT */ 87/* LCD_PIXELFORMAT */
85#define HORIZONTAL_PACKING 1 88#define HORIZONTAL_PACKING 1
@@ -99,6 +102,7 @@
99#define BL_IRIVER_H300 8 /* IRiver PWM */ 102#define BL_IRIVER_H300 8 /* IRiver PWM */
100#define BL_IRIVER_IFP7XX 9 /* IRiver GPIO */ 103#define BL_IRIVER_IFP7XX 9 /* IRiver GPIO */
101#define BL_IPODMINI 10 /* Apple iPod Mini */ 104#define BL_IPODMINI 10 /* Apple iPod Mini */
105#define BL_GIGABEAT 11 /* Toshiba Gigabeat */
102 106
103/* CONFIG_I2C */ 107/* CONFIG_I2C */
104#define I2C_PLAYREC 0 /* Archos Player/Recorder style */ 108#define I2C_PLAYREC 0 /* Archos Player/Recorder style */
@@ -108,6 +112,7 @@
108#define I2C_PP5002 4 /* PP5002 style */ 112#define I2C_PP5002 4 /* PP5002 style */
109#define I2C_PP5020 5 /* PP5020 style */ 113#define I2C_PP5020 5 /* PP5020 style */
110#define I2C_PNX0101 6 /* PNX0101 style */ 114#define I2C_PNX0101 6 /* PNX0101 style */
115#define I2C_S3C2440 7
111 116
112/* CONFIG_LED */ 117/* CONFIG_LED */
113#define LED_REAL 1 /* SW controlled LED (Archos recorders, player, Gmini) */ 118#define LED_REAL 1 /* SW controlled LED (Archos recorders, player, Gmini) */
@@ -120,6 +125,7 @@
120#define RTC_M41ST84W 1 /* Archos Recorder */ 125#define RTC_M41ST84W 1 /* Archos Recorder */
121#define RTC_PCF50605 2 /* iPod 3G and 4G*/ 126#define RTC_PCF50605 2 /* iPod 3G and 4G*/
122#define RTC_PCF50606 3 /* iriver H300 */ 127#define RTC_PCF50606 3 /* iriver H300 */
128#define RTC_S3C2440 4
123 129
124/* else HW controlled LED (iRiver H1x0) */ 130/* else HW controlled LED (iRiver H1x0) */
125 131
@@ -160,6 +166,8 @@
160#include "config-ipod4g.h" 166#include "config-ipod4g.h"
161#elif defined(IRIVER_IFP7XX) 167#elif defined(IRIVER_IFP7XX)
162#include "config-ifp7xx.h" 168#include "config-ifp7xx.h"
169#elif defined(GIGABEAT_F)
170#include "config-gigabeat.h"
163#elif defined(IPOD_MINI) 171#elif defined(IPOD_MINI)
164#include "config-ipodmini.h" 172#include "config-ipodmini.h"
165#else 173#else
@@ -185,7 +193,8 @@
185#endif 193#endif
186 194
187/* define for all cpus from ARM family */ 195/* define for all cpus from ARM family */
188#if (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) || (CONFIG_CPU == PNX0101) 196#if (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020) || (CONFIG_CPU == PNX0101) || (CONFIG_CPU == S3C2440)
197
189#define CPU_ARM 198#define CPU_ARM
190#endif 199#endif
191 200
diff --git a/firmware/export/cpu.h b/firmware/export/cpu.h
index d0b953ef6f..4c33ac96f4 100644
--- a/firmware/export/cpu.h
+++ b/firmware/export/cpu.h
@@ -39,3 +39,6 @@
39#if CONFIG_CPU == PNX0101 39#if CONFIG_CPU == PNX0101
40#include "pnx0101.h" 40#include "pnx0101.h"
41#endif 41#endif
42#if CONFIG_CPU == S3C2440
43#include "s3c2440.h"
44#endif
diff --git a/tools/configure b/tools/configure
index 8a345f8c7c..f131ea8b7b 100755
--- a/tools/configure
+++ b/tools/configure
@@ -212,6 +212,13 @@ arm7tdmicc () {
212 endian="little" 212 endian="little"
213} 213}
214 214
215arm9tdmicc () {
216 prefixtools arm-elf-
217 GCCOPTS="$CCOPTS -mcpu=arm9tdmi -ffunction-sections -mlong-calls"
218 GCCOPTIMIZE="-fomit-frame-pointer"
219 endian="little"
220}
221
215whichaddr () { 222whichaddr () {
216 case $archos in 223 case $archos in
217 gmini120|gminisp) 224 gmini120|gminisp)
@@ -457,6 +464,7 @@ toolsdir='\$(ROOTDIR)/tools'
457 echo "17 - iPod 4G (Grayscale)" 464 echo "17 - iPod 4G (Grayscale)"
458 echo "18 - iPod Mini (1G/2G)" 465 echo "18 - iPod Mini (1G/2G)"
459 echo "19 - iriver iFP-790" 466 echo "19 - iriver iFP-790"
467 echo "20 - Toshiba Gigabeat F"
460 468
461 target_id=`input`; 469 target_id=`input`;
462 470
@@ -467,6 +475,7 @@ toolsdir='\$(ROOTDIR)/tools'
467 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb codepages" 475 archosbitmaptools="$toolset scramble descramble sh2d uclpack bmp2rb codepages"
468 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb codepages" 476 iriverbitmaptools="$toolset scramble descramble mkboot bmp2rb codepages"
469 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb codepages" 477 iaudiobitmaptools="$toolset scramble descramble mkboot bmp2rb codepages"
478 gigabeatbitmaptools="$toolset bmp2rb codepages"
470 ipodbitmaptools="$toolset scramble ipod_fw bmp2rb codepages" 479 ipodbitmaptools="$toolset scramble ipod_fw bmp2rb codepages"
471 ifpbitmaptools="$toolset bmp2rb codepages" 480 ifpbitmaptools="$toolset bmp2rb codepages"
472 481
@@ -837,6 +846,23 @@ toolsdir='\$(ROOTDIR)/tools'
837 toolset=$ifpbitmaptools 846 toolset=$ifpbitmaptools
838 ;; 847 ;;
839 848
849 20)
850 archos="gigabeatf"
851 target="-DGIGABEAT_F"
852 memory=32 # always
853 arm9tdmicc
854 tool="cp"
855 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
856 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
857 output="rockbox.gigabeat"
858 appextra="recorder:gui"
859 archosrom=""
860 flash=""
861 plugins="yes"
862 codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
863 toolset=$gigabeatbitmaptools
864 ;;
865
840 *) 866 *)
841 echo "Please select an actual target platform!" 867 echo "Please select an actual target platform!"
842 exit 868 exit
diff --git a/uisimulator/sdl/UI-gigabeatf.bmp b/uisimulator/sdl/UI-gigabeatf.bmp
new file mode 100644
index 0000000000..3f4104407c
--- /dev/null
+++ b/uisimulator/sdl/UI-gigabeatf.bmp
Binary files differ
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 72224315a2..9571beac5e 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -86,14 +86,18 @@ void button_event(int key, bool pressed)
86 new_btn = BUTTON_ON; 86 new_btn = BUTTON_ON;
87#elif defined(BUTTON_SELECT) && defined(BUTTON_PLAY) 87#elif defined(BUTTON_SELECT) && defined(BUTTON_PLAY)
88 new_btn = BUTTON_PLAY; 88 new_btn = BUTTON_PLAY;
89#elif defined BUTTON_POWER
90 new_btn = BUTTON_POWER;
89#endif 91#endif
90 break; 92 break;
91 93
94 case SDLK_KP_ENTER:
92#ifdef BUTTON_OFF 95#ifdef BUTTON_OFF
93 case SDLK_RETURN:
94 new_btn = BUTTON_OFF; 96 new_btn = BUTTON_OFF;
95 break; 97#elif defined BUTTON_A
98 new_btn = BUTTON_A;
96#endif 99#endif
100 break;
97 101
98#ifdef BUTTON_F1 102#ifdef BUTTON_F1
99 case SDLK_KP_DIVIDE: 103 case SDLK_KP_DIVIDE:
diff --git a/uisimulator/sdl/uisdl.h b/uisimulator/sdl/uisdl.h
index 800a7f8ab6..70b8e18bd1 100644
--- a/uisimulator/sdl/uisdl.h
+++ b/uisimulator/sdl/uisdl.h
@@ -180,6 +180,16 @@
180 180
181#define UI_REMOTE_BGCOLORLIGHT 250, 180, 130 // bkgnd of remote lcd (bklight) 181#define UI_REMOTE_BGCOLORLIGHT 250, 180, 130 // bkgnd of remote lcd (bklight)
182#define UI_REMOTE_BGCOLOR 90, 145, 90 // bkgnd of remote lcd (no bklight) 182#define UI_REMOTE_BGCOLOR 90, 145, 90 // bkgnd of remote lcd (no bklight)
183
184#elif defined(GIGABEAT_F)
185#define UI_TITLE "Toshiba Gigabeat"
186#define UI_WIDTH 401 // width of GUI window
187#define UI_HEIGHT 655 // height of GUI window
188/* high-colour */
189#define UI_LCD_POSX 48 // x position of lcd
190#define UI_LCD_POSY 60 // y position of lcd
191#define UI_LCD_WIDTH 240
192#define UI_LCD_HEIGHT 320
183#endif 193#endif
184 194
185extern SDL_Surface *gui_surface; 195extern SDL_Surface *gui_surface;