summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2011-12-24 11:56:46 +0000
committerThomas Martitz <kugel@rockbox.org>2011-12-24 11:56:46 +0000
commit249bba03f1051f4984538f66b9e7d36674c61e5c (patch)
treeb9a0d78e05269ed2043521ab0dfdad83aeaf2aff /apps
parent567e0ad93ef3048f2266932b10dcdb309b1a77c9 (diff)
downloadrockbox-249bba03f1051f4984538f66b9e7d36674c61e5c.tar.gz
rockbox-249bba03f1051f4984538f66b9e7d36674c61e5c.zip
Initial commit of the Samsung YP-R0 port.
This port is a hybrid native/RaaA port. It runs on a embedded linux system, but is the only application. It therefore can implement lots of stuff that native targets also implement, while leveraging the underlying linux kernel. The port is quite advanced. User interface, audio playback, plugins work mostly fine. Missing is e.g. power mangement and USB (see SamsungYPR0 wiki page). Included in utils/ypr0tools are scripts and programs required to generate a patched firmware. The patched firmware has the rootfs modified to load Rockbox. It includes a early/safe USB mode. This port needs a new toolchain, one that includes glibc headers and libraries. rockboxdev.sh can generate it, but e.g. codesourcey and distro packages may also work. Most of the initial effort is done by Lorenzo Miori and others (on ABI), including reverse engineering and patching of the original firmware, initial drivers, and more. Big thanks to you. Flyspray: FS#12348 Author: Lorenzo Miori, myself Merry christmas to ypr0 owners! :) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31415 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/SOURCES2
-rw-r--r--apps/keymaps/keymap-ypr0.c258
-rw-r--r--apps/plugin.h2
-rw-r--r--apps/plugins/SOURCES.app_build6
-rw-r--r--apps/plugins/SUBDIRS2
-rw-r--r--apps/plugins/SUBDIRS.app_build10
-rw-r--r--apps/plugins/battery_bench.c3
-rw-r--r--apps/plugins/blackjack.c16
-rw-r--r--apps/plugins/bounce.c3
-rw-r--r--apps/plugins/brickmania.c3
-rw-r--r--apps/plugins/calculator.c11
-rw-r--r--apps/plugins/calendar.c10
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.h10
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/chip8.c12
-rw-r--r--apps/plugins/chopper.c3
-rw-r--r--apps/plugins/clix.c3
-rw-r--r--apps/plugins/cube.c10
-rw-r--r--apps/plugins/doom/i_video.c11
-rw-r--r--apps/plugins/fft/fft.c9
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/flipit.c12
-rw-r--r--apps/plugins/fractals/fractal.h12
-rw-r--r--apps/plugins/goban/goban.h10
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h12
-rw-r--r--apps/plugins/invadrox.c3
-rw-r--r--apps/plugins/jewels.c3
-rw-r--r--apps/plugins/lamp.c3
-rw-r--r--apps/plugins/lib/pluginlib_actions.c6
-rw-r--r--apps/plugins/lib/simple_viewer.c1
-rw-r--r--apps/plugins/logo.c3
-rw-r--r--apps/plugins/lua/strcspn.c1
-rw-r--r--apps/plugins/lua/strpbrk.c1
-rw-r--r--apps/plugins/matrix.c3
-rw-r--r--apps/plugins/midi/midiplay.c8
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mosaique.c3
-rw-r--r--apps/plugins/mp3_encoder.c3
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c8
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c9
-rw-r--r--apps/plugins/oscilloscope.c11
-rw-r--r--apps/plugins/pacbox/pacbox.h11
-rw-r--r--apps/plugins/pdbox/pdbox.h19
-rw-r--r--apps/plugins/pegbox.c18
-rw-r--r--apps/plugins/pong.c8
-rw-r--r--apps/plugins/reversi/reversi-gui.h9
-rw-r--r--apps/plugins/rockblox.c12
-rw-r--r--apps/plugins/rockblox1d.c3
-rw-r--r--apps/plugins/rockboy/rockboy.c12
-rw-r--r--apps/plugins/rockboy/rockmacros.h2
-rw-r--r--apps/plugins/rockpaint.c11
-rw-r--r--apps/plugins/sliding_puzzle.c6
-rw-r--r--apps/plugins/snake.c3
-rw-r--r--apps/plugins/snake2.c3
-rw-r--r--apps/plugins/snow.c3
-rw-r--r--apps/plugins/sokoban.c15
-rw-r--r--apps/plugins/solitaire.c18
-rw-r--r--apps/plugins/spacerocks.c9
-rw-r--r--apps/plugins/star.c17
-rw-r--r--apps/plugins/starfield.c3
-rw-r--r--apps/plugins/stats.c3
-rw-r--r--apps/plugins/stopwatch.c8
-rw-r--r--apps/plugins/sudoku/sudoku.h10
-rw-r--r--apps/plugins/superdom.c3
-rw-r--r--apps/plugins/test_codec.c2
-rw-r--r--apps/plugins/test_fps.c2
-rw-r--r--apps/plugins/test_gfx.c6
-rw-r--r--apps/plugins/text_viewer/tv_button.h10
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c3
-rw-r--r--apps/plugins/xobox.c9
-rw-r--r--apps/plugins/zxbox/keymaps.h12
-rw-r--r--apps/plugins/zxbox/zxbox_keyb.c9
73 files changed, 754 insertions, 35 deletions
diff --git a/apps/SOURCES b/apps/SOURCES
index 34dc202345..53a67fd307 100644
--- a/apps/SOURCES
+++ b/apps/SOURCES
@@ -332,5 +332,7 @@ keymaps/keymap-hm60x.c
332keymaps/keymap-hm801.c 332keymaps/keymap-hm801.c
333#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD 333#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
334keymaps/keymap-sansa-connect.c 334keymaps/keymap-sansa-connect.c
335#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
336keymaps/keymap-ypr0.c
335#endif 337#endif
336 338
diff --git a/apps/keymaps/keymap-ypr0.c b/apps/keymaps/keymap-ypr0.c
new file mode 100644
index 0000000000..b5706760ba
--- /dev/null
+++ b/apps/keymaps/keymap-ypr0.c
@@ -0,0 +1,258 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: keymap-sdl.c 28704 2010-11-29 11:28:53Z teru $
9 *
10 * Copyright (C) 2011 Lorenzo Miori
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22/* Button Code Definitions for Samsung YP-R0 target */
23
24#include <stdio.h>
25#include <string.h>
26#include <stdlib.h>
27
28#include "config.h"
29#include "action.h"
30#include "button.h"
31#include "settings.h"
32
33/*
34 * The format of the list is as follows
35 * { Action Code, Button code, Prereq button code }
36 * if there's no need to check the previous button's value, use BUTTON_NONE
37 * Insert LAST_ITEM_IN_LIST at the end of each mapping
38 */
39
40static const struct button_mapping button_context_standard[] = {
41 { ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
42 { ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
43 { ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
44 { ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
45
46 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE },
47 { ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK },
48
49 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
50 { ACTION_STD_OK, BUTTON_RIGHT, BUTTON_NONE },
51
52 { ACTION_STD_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
53 { ACTION_STD_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
54 { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
55
56 { ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
57 { ACTION_STD_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
58
59 { ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
60
61 LAST_ITEM_IN_LIST
62}; /* button_context_standard */
63
64static const struct button_mapping button_context_wps[] = {
65 { ACTION_WPS_PLAY, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
66 { ACTION_WPS_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE },
67
68 { ACTION_WPS_BROWSE, BUTTON_BACK|BUTTON_REL, BUTTON_BACK },
69 { ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
70
71 /* NOTE: this is available only enabling AB-Repeat mode */
72 { ACTION_WPS_HOTKEY, BUTTON_USER|BUTTON_REL, BUTTON_USER },
73 { ACTION_WPSAB_SINGLE, BUTTON_USER|BUTTON_REPEAT, BUTTON_NONE },
74 { ACTION_STD_KEYLOCK, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
75 { ACTION_WPS_CONTEXT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_SELECT },
76 { ACTION_WPS_QUICKSCREEN, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
77
78 { ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
79 { ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
80 { ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
81
82 { ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
83 { ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
84 { ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
85
86
87 { ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
88 { ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
89 { ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
90 { ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE },
91
92 LAST_ITEM_IN_LIST
93}; /* button_context_wps */
94
95static const struct button_mapping button_context_list[] = {
96 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
97}; /* button_context_list */
98
99static const struct button_mapping button_context_tree[] = {
100 { ACTION_TREE_WPS, BUTTON_USER|BUTTON_REPEAT, BUTTON_USER },
101 { ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE },
102 { ACTION_TREE_HOTKEY, BUTTON_USER|BUTTON_REL, BUTTON_NONE },
103
104 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
105}; /* button_context_tree */
106
107static const struct button_mapping button_context_settings[] = {
108
109 { ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
110 { ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
111 { ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
112 { ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
113
114 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_TREE)
115}; /* button_context_settings */
116
117static const struct button_mapping button_context_yesno[] = {
118 { ACTION_YESNO_ACCEPT, BUTTON_SELECT, BUTTON_NONE },
119
120 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
121}; /* button_context_settings_yesno */
122
123static const struct button_mapping button_context_colorchooser[] = { //check
124 { ACTION_STD_OK, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT },
125 { ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE },
126
127 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
128}; /* button_context_colorchooser */
129
130static const struct button_mapping button_context_eq[] = {
131
132 { ACTION_STD_CANCEL, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
133
134 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
135}; /* button_context_eq */
136
137/** Bookmark Screen **/
138static const struct button_mapping button_context_bmark[] = {
139 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
140}; /* button_context_bmark */
141
142static const struct button_mapping button_context_time[] = {
143
144 { ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
145 { ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
146 { ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
147 { ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
148 { ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
149 { ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
150 { ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
151 { ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
152
153 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
154}; /* button_context_time */
155
156static const struct button_mapping button_context_quickscreen[] = {
157
158 { ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
159 { ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
160 { ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
161 { ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
162 { ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
163 { ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
164 { ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
165 { ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
166 { ACTION_STD_CANCEL, BUTTON_MENU, BUTTON_NONE },
167
168 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
169}; /* button_context_quickscreen */
170
171static const struct button_mapping button_context_pitchscreen[] = {
172
173 { ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE },
174 { ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
175 { ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE },
176 { ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
177
178 { ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
179 { ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
180
181 { ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
182 { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
183 { ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
184 { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
185
186 { ACTION_PS_RESET, BUTTON_SELECT, BUTTON_NONE },
187 { ACTION_PS_TOGGLE_MODE, BUTTON_USER, BUTTON_NONE },
188 { ACTION_PS_EXIT, BUTTON_MENU|BUTTON_REL, BUTTON_NONE },
189 { ACTION_PS_EXIT, BUTTON_BACK|BUTTON_REL, BUTTON_NONE },
190
191 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
192}; /* button_context_pitchcreen */
193
194static const struct button_mapping button_context_keyboard[] = {
195
196 { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
197 { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
198 { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
199 { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
200 { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
201 { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
202 { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
203 { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
204
205 { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE },
206 { ACTION_KBD_ABORT, BUTTON_BACK|BUTTON_REL, BUTTON_BACK },
207 { ACTION_KBD_DONE, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
208 { ACTION_KBD_BACKSPACE, BUTTON_USER, BUTTON_NONE },
209 { ACTION_KBD_PAGE_FLIP, BUTTON_POWER, BUTTON_NONE },
210
211 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
212}; /* button_context_keyboard */
213
214static const struct button_mapping button_context_radio[] = {
215 LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
216}; /* button_context_radio */
217
218const struct button_mapping* get_context_mapping(int context)
219{
220 switch (context)
221 {
222 case CONTEXT_STD:
223 return button_context_standard;
224 case CONTEXT_WPS:
225 return button_context_wps;
226
227 case CONTEXT_LIST:
228 return button_context_list;
229 case CONTEXT_MAINMENU:
230 case CONTEXT_TREE:
231 return button_context_tree;
232
233 case CONTEXT_SETTINGS:
234 return button_context_settings;
235
236 case CONTEXT_SETTINGS_COLOURCHOOSER:
237 return button_context_colorchooser;
238 case CONTEXT_SETTINGS_EQ:
239 return button_context_eq;
240
241 case CONTEXT_SETTINGS_TIME:
242 return button_context_time;
243
244 case CONTEXT_YESNOSCREEN:
245 return button_context_yesno;
246 case CONTEXT_FM:
247 return button_context_radio;
248 case CONTEXT_BOOKMARKSCREEN:
249 return button_context_bmark;
250 case CONTEXT_QUICKSCREEN:
251 return button_context_quickscreen;
252 case CONTEXT_PITCHSCREEN:
253 return button_context_pitchscreen;
254 case CONTEXT_KEYBOARD:
255 return button_context_keyboard;
256 }
257 return button_context_standard;
258}
diff --git a/apps/plugin.h b/apps/plugin.h
index 4a62697724..e778f51f62 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -121,6 +121,8 @@ void* plugin_get_buffer(size_t *buffer_size);
121/* on some platforms strcmp() seems to be a tricky define which 121/* on some platforms strcmp() seems to be a tricky define which
122 * breaks if we write down strcmp's prototype */ 122 * breaks if we write down strcmp's prototype */
123#undef strcmp 123#undef strcmp
124#undef strncmp
125#undef strchr
124 126
125#ifdef PLUGIN 127#ifdef PLUGIN
126 128
diff --git a/apps/plugins/SOURCES.app_build b/apps/plugins/SOURCES.app_build
index ddac2b9ba8..e374062536 100644
--- a/apps/plugins/SOURCES.app_build
+++ b/apps/plugins/SOURCES.app_build
@@ -1,3 +1,7 @@
1#ifndef HAVE_TOUCHSCREEN
2/* In devices running RockBox as an application, but having a keypad */
3#include "SOURCES"
4#else
1/* plugins common to all models */ 5/* plugins common to all models */
2credits.c 6credits.c
3properties.c 7properties.c
@@ -39,3 +43,5 @@ test_sampr.c
39#endif 43#endif
40test_viewports.c 44test_viewports.c
41#endif /* HAVE_TEST_PLUGINS */ 45#endif /* HAVE_TEST_PLUGINS */
46
47#endif /* HAVE_TOUCHSCREEN */
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index c497c49b14..d2feb721d4 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -73,7 +73,7 @@ mikmod
73#if defined(IRIVER_H300_SERIES) || defined(IRIVER_H100_SERIES) || \ 73#if defined(IRIVER_H300_SERIES) || defined(IRIVER_H100_SERIES) || \
74 (CONFIG_KEYPAD == SANSA_FUZE_PAD) || (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 74 (CONFIG_KEYPAD == SANSA_FUZE_PAD) || (CONFIG_KEYPAD == SANSA_E200_PAD) || \
75 (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 75 (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
76 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 76 (CONFIG_KEYPAD == IPOD_1G2G_PAD || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
77/* PDBox is confirmed to run on these player models. */ 77/* PDBox is confirmed to run on these player models. */
78pdbox 78pdbox
79#endif 79#endif
diff --git a/apps/plugins/SUBDIRS.app_build b/apps/plugins/SUBDIRS.app_build
index dbf4382b62..23b840fd87 100644
--- a/apps/plugins/SUBDIRS.app_build
+++ b/apps/plugins/SUBDIRS.app_build
@@ -1,4 +1,11 @@
1/* For all targets with a bitmap display */ 1#ifndef HAVE_TOUCHSCREEN
2/* This is for devices having a keypad, running RockBox as an application */
3#include "SUBDIRS"
4
5#else
6/* For all targets with a bitmap display and a touchscreen
7 * In fact, most of the plugins aren't supposed to be used on a touch(mouse) device
8 */
2#ifdef HAVE_LCD_BITMAP 9#ifdef HAVE_LCD_BITMAP
3 10
4#ifdef HAVE_TAGCACHE 11#ifdef HAVE_TAGCACHE
@@ -15,3 +22,4 @@ mikmod
15#endif 22#endif
16 23
17#endif /* CONFIG_CODEC == SWCODEC */ 24#endif /* CONFIG_CODEC == SWCODEC */
25#endif /* HAVE_TOUCHSCREEN */ \ No newline at end of file
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index a16302e8b0..be509cffcb 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -125,7 +125,8 @@
125#define BATTERY_ON_TXT "SELECT - start" 125#define BATTERY_ON_TXT "SELECT - start"
126#define BATTERY_OFF_TXT "POWER" 126#define BATTERY_OFF_TXT "POWER"
127 127
128#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 128#elif CONFIG_KEYPAD == GIGABEAT_S_PAD \
129 || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
129 130
130#define BATTERY_ON BUTTON_SELECT 131#define BATTERY_ON BUTTON_SELECT
131#define BATTERY_OFF BUTTON_BACK 132#define BATTERY_OFF BUTTON_BACK
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 0c35306cfc..ab4da37b0a 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -466,6 +466,22 @@ enum {
466#define BJACK_RIGHT BUTTON_RIGHT 466#define BJACK_RIGHT BUTTON_RIGHT
467#define BJACK_LEFT BUTTON_LEFT 467#define BJACK_LEFT BUTTON_LEFT
468 468
469#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
470#define BJACK_SELECT_NAME "SELECT"
471#define BJACK_STAY_NAME "MENU"
472#define BJACK_QUIT_NAME "BACK"
473#define BJACK_DOUBLE_NAME "USER"
474#define BJACK_SELECT BUTTON_SELECT
475#define BJACK_QUIT BUTTON_BACK
476#define BJACK_MAX (BUTTON_LEFT|BUTTON_UP)
477#define BJACK_MIN (BUTTON_RIGHT|BUTTON_DOWN)
478#define BJACK_STAY BUTTON_MENU
479#define BJACK_DOUBLEDOWN BUTTON_USER
480#define BJACK_UP BUTTON_UP
481#define BJACK_DOWN BUTTON_DOWN
482#define BJACK_RIGHT BUTTON_RIGHT
483#define BJACK_LEFT BUTTON_LEFT
484
469#else 485#else
470#error No keymap defined! 486#error No keymap defined!
471#endif 487#endif
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 6880e269e2..5bd81b7fed 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -127,7 +127,8 @@
127#define BOUNCE_QUIT BUTTON_POWER 127#define BOUNCE_QUIT BUTTON_POWER
128#define BOUNCE_MODE BUTTON_PLAY 128#define BOUNCE_MODE BUTTON_PLAY
129 129
130#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 130#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
131 || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
131#define BOUNCE_LEFT BUTTON_LEFT 132#define BOUNCE_LEFT BUTTON_LEFT
132#define BOUNCE_RIGHT BUTTON_RIGHT 133#define BOUNCE_RIGHT BUTTON_RIGHT
133#define BOUNCE_UP BUTTON_UP 134#define BOUNCE_UP BUTTON_UP
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index c362ffe702..dd3903eb26 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -158,7 +158,8 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
158#define UP BUTTON_SCROLL_UP 158#define UP BUTTON_SCROLL_UP
159#define DOWN BUTTON_SCROLL_DOWN 159#define DOWN BUTTON_SCROLL_DOWN
160 160
161#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 161#elif CONFIG_KEYPAD == GIGABEAT_S_PAD \
162 || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
162#define QUIT BUTTON_BACK 163#define QUIT BUTTON_BACK
163#define LEFT BUTTON_LEFT 164#define LEFT BUTTON_LEFT
164#define RIGHT BUTTON_RIGHT 165#define RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index 8288f34c28..77c7a5588d 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -431,6 +431,17 @@ F3: equal to "="
431#define CALCULATOR_CALC BUTTON_NEXT 431#define CALCULATOR_CALC BUTTON_NEXT
432#define CALCULATOR_CLEAR BUTTON_PREV 432#define CALCULATOR_CLEAR BUTTON_PREV
433 433
434#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
435
436#define CALCULATOR_LEFT BUTTON_LEFT
437#define CALCULATOR_RIGHT BUTTON_RIGHT
438#define CALCULATOR_UP BUTTON_UP
439#define CALCULATOR_DOWN BUTTON_DOWN
440#define CALCULATOR_QUIT BUTTON_BACK
441#define CALCULATOR_INPUT BUTTON_SELECT
442#define CALCULATOR_CALC BUTTON_MENU
443#define CALCULATOR_CLEAR BUTTON_USER
444
434#else 445#else
435#error No keymap defined! 446#error No keymap defined!
436#endif 447#endif
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index d8d8f1ad12..d498b97ffb 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -308,6 +308,16 @@
308#define CALENDAR_NEXT_MONTH BUTTON_NEXT 308#define CALENDAR_NEXT_MONTH BUTTON_NEXT
309#define CALENDAR_PREV_MONTH BUTTON_PREV 309#define CALENDAR_PREV_MONTH BUTTON_PREV
310 310
311#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
312#define CALENDAR_QUIT BUTTON_BACK
313#define CALENDAR_SELECT BUTTON_SELECT
314#define CALENDAR_NEXT_WEEK BUTTON_DOWN
315#define CALENDAR_PREV_WEEK BUTTON_UP
316#define CALENDAR_NEXT_DAY BUTTON_RIGHT
317#define CALENDAR_PREV_DAY BUTTON_LEFT
318#define CALENDAR_NEXT_MONTH BUTTON_POWER
319#define CALENDAR_PREV_MONTH BUTTON_USER
320
311#else 321#else
312#error "No keypad setting." 322#error "No keypad setting."
313#endif 323#endif
diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h
index 1627426cef..765e52ec8c 100644
--- a/apps/plugins/chessbox/chessbox_pgn.h
+++ b/apps/plugins/chessbox/chessbox_pgn.h
@@ -422,6 +422,16 @@
422#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT) 422#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
423#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT) 423#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
424 424
425#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
426#define CB_SELECT BUTTON_SELECT
427#define CB_UP BUTTON_UP
428#define CB_DOWN BUTTON_DOWN
429#define CB_LEFT BUTTON_LEFT
430#define CB_RIGHT BUTTON_RIGHT
431#define CB_PLAY BUTTON_USER
432#define CB_LEVEL BUTTON_BACK
433#define CB_MENU BUTTON_MENU
434
425#else 435#else
426#error No keymap defined! 436#error No keymap defined!
427#endif 437#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index dca5c4040e..94f069d0a0 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -326,6 +326,16 @@
326#define CHC_SETTINGS_OK BUTTON_SELECT 326#define CHC_SETTINGS_OK BUTTON_SELECT
327#define CHC_SETTINGS_CANCEL BUTTON_LEFT 327#define CHC_SETTINGS_CANCEL BUTTON_LEFT
328 328
329#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
330#define CHC_QUIT BUTTON_BACK
331#define CHC_STARTSTOP BUTTON_SELECT
332#define CHC_RESET BUTTON_USER
333#define CHC_MENU BUTTON_MENU
334#define CHC_SETTINGS_INC BUTTON_UP
335#define CHC_SETTINGS_DEC BUTTON_DOWN
336#define CHC_SETTINGS_OK BUTTON_SELECT
337#define CHC_SETTINGS_CANCEL BUTTON_BACK
338
329#else 339#else
330#error No keymap defined! 340#error No keymap defined!
331#endif 341#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 97d8351fe9..470a8e4c89 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1193,6 +1193,18 @@ CONFIG_KEYPAD == MROBE500_PAD
1193#define CHIP8_KEY8 BUTTON_VOL_DOWN 1193#define CHIP8_KEY8 BUTTON_VOL_DOWN
1194#define CHIP8_KEY9 BUTTON_VOL_UP 1194#define CHIP8_KEY9 BUTTON_VOL_UP
1195 1195
1196#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
1197#define CHIP8_OFF (BUTTON_BACK|BUTTON_REPEAT)
1198#define CHIP8_KEY1 BUTTON_MENU
1199#define CHIP8_KEY2 BUTTON_UP
1200#define CHIP8_KEY3 BUTTON_DOWN
1201#define CHIP8_KEY4 BUTTON_LEFT
1202#define CHIP8_KEY5 BUTTON_SELECT
1203#define CHIP8_KEY6 BUTTON_RIGHT
1204#define CHIP8_KEY7 BUTTON_BACK
1205#define CHIP8_KEY8 BUTTON_POWER
1206#define CHIP8_KEY9 BUTTON_USER
1207
1196#else 1208#else
1197#error No keymap defined! 1209#error No keymap defined!
1198#endif 1210#endif
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index 71ea8f835f..d819da421b 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -97,7 +97,8 @@ Still To do:
97#define ACTION2 BUTTON_MENU 97#define ACTION2 BUTTON_MENU
98#define ACTIONTEXT "UP" 98#define ACTIONTEXT "UP"
99 99
100#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 100#elif CONFIG_KEYPAD == GIGABEAT_S_PAD \
101 || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
101#define QUIT BUTTON_BACK 102#define QUIT BUTTON_BACK
102#define ACTION BUTTON_SELECT 103#define ACTION BUTTON_SELECT
103#define ACTION2 BUTTON_MENU 104#define ACTION2 BUTTON_MENU
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c
index 378e9813e6..06fe0d84e0 100644
--- a/apps/plugins/clix.c
+++ b/apps/plugins/clix.c
@@ -83,7 +83,8 @@
83#define CLIX_BUTTON_UP BUTTON_UP 83#define CLIX_BUTTON_UP BUTTON_UP
84#define CLIX_BUTTON_DOWN BUTTON_DOWN 84#define CLIX_BUTTON_DOWN BUTTON_DOWN
85 85
86#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 86#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
87 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
87#define CLIX_BUTTON_QUIT BUTTON_BACK 88#define CLIX_BUTTON_QUIT BUTTON_BACK
88#define CLIX_BUTTON_LEFT BUTTON_LEFT 89#define CLIX_BUTTON_LEFT BUTTON_LEFT
89#define CLIX_BUTTON_RIGHT BUTTON_RIGHT 90#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 7e97eaf569..cecb10e1f2 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -329,6 +329,16 @@
329#define CUBE_PAUSE BUTTON_DOWN 329#define CUBE_PAUSE BUTTON_DOWN
330#define CUBE_HIGHSPEED BUTTON_LEFT 330#define CUBE_HIGHSPEED BUTTON_LEFT
331 331
332#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
333#define CUBE_QUIT BUTTON_BACK
334#define CUBE_NEXT BUTTON_RIGHT
335#define CUBE_PREV BUTTON_LEFT
336#define CUBE_INC BUTTON_UP
337#define CUBE_DEC BUTTON_DOWN
338#define CUBE_MODE BUTTON_MENU
339#define CUBE_PAUSE BUTTON_USER
340#define CUBE_HIGHSPEED BUTTON_SELECT
341
332#else 342#else
333#error No keymap defined! 343#error No keymap defined!
334#endif 344#endif
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index d12799cac4..9009acc67f 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -424,6 +424,17 @@ void I_ShutdownGraphics(void)
424#define DOOMBUTTON_ENTER BUTTON_NEXT 424#define DOOMBUTTON_ENTER BUTTON_NEXT
425#define DOOMBUTTON_WEAPON BUTTON_PREV 425#define DOOMBUTTON_WEAPON BUTTON_PREV
426 426
427#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
428#define DOOMBUTTON_UP BUTTON_UP
429#define DOOMBUTTON_DOWN BUTTON_DOWN
430#define DOOMBUTTON_LEFT BUTTON_LEFT
431#define DOOMBUTTON_RIGHT BUTTON_RIGHT
432#define DOOMBUTTON_SHOOT BUTTON_SELECT
433#define DOOMBUTTON_OPEN BUTTON_MENU
434#define DOOMBUTTON_ESC BUTTON_BACK
435#define DOOMBUTTON_ENTER BUTTON_POWER
436#define DOOMBUTTON_WEAPON BUTTON_USER
437
427#else 438#else
428#error Keymap not defined! 439#error Keymap not defined!
429#endif 440#endif
diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c
index 89205503e7..b2ef8d8e33 100644
--- a/apps/plugins/fft/fft.c
+++ b/apps/plugins/fft/fft.c
@@ -257,6 +257,15 @@ GREY_INFO_STRUCT
257# define FFT_FREQ_SCALE BUTTON_DOWN 257# define FFT_FREQ_SCALE BUTTON_DOWN
258# define FFT_QUIT BUTTON_POWER 258# define FFT_QUIT BUTTON_POWER
259 259
260#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
261# define FFT_PREV_GRAPH BUTTON_LEFT
262# define FFT_NEXT_GRAPH BUTTON_RIGHT
263# define FFT_ORIENTATION BUTTON_USER
264# define FFT_WINDOW BUTTON_MENU
265# define FFT_AMP_SCALE BUTTON_SELECT
266# define FFT_FREQ_SCALE BUTTON_DOWN
267# define FFT_QUIT BUTTON_BACK
268
260#else 269#else
261#error No keymap defined! 270#error No keymap defined!
262#endif 271#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index e3a391035a..52b11b7079 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -63,7 +63,8 @@
63 63
64#elif (CONFIG_KEYPAD == GIGABEAT_PAD) || \ 64#elif (CONFIG_KEYPAD == GIGABEAT_PAD) || \
65 (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \ 65 (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
66 (CONFIG_KEYPAD == MROBE100_PAD) 66 (CONFIG_KEYPAD == MROBE100_PAD) || \
67 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
67#define BTN_MENU BUTTON_MENU 68#define BTN_MENU BUTTON_MENU
68#define BTN_FIRE BUTTON_SELECT 69#define BTN_FIRE BUTTON_SELECT
69 70
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index ffc691c720..da5a9e8c6b 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -380,6 +380,18 @@
380#define FLIPIT_STEP_BY_STEP BUTTON_NEXT 380#define FLIPIT_STEP_BY_STEP BUTTON_NEXT
381#define FLIPIT_TOGGLE BUTTON_SELECT 381#define FLIPIT_TOGGLE BUTTON_SELECT
382 382
383#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
384
385#define FLIPIT_LEFT BUTTON_LEFT
386#define FLIPIT_RIGHT BUTTON_RIGHT
387#define FLIPIT_UP BUTTON_UP
388#define FLIPIT_DOWN BUTTON_DOWN
389#define FLIPIT_QUIT BUTTON_BACK
390#define FLIPIT_SHUFFLE BUTTON_MENU
391#define FLIPIT_SOLVE BUTTON_USER
392#define FLIPIT_STEP_BY_STEP BUTTON_POWER
393#define FLIPIT_TOGGLE BUTTON_SELECT
394
383#else 395#else
384#error No keymap defined! 396#error No keymap defined!
385#endif 397#endif
diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h
index 76f3229399..0d1aff3078 100644
--- a/apps/plugins/fractals/fractal.h
+++ b/apps/plugins/fractals/fractal.h
@@ -378,6 +378,18 @@
378#define FRACTAL_PRECISION_DEC BUTTON_VOL_DOWN 378#define FRACTAL_PRECISION_DEC BUTTON_VOL_DOWN
379#define FRACTAL_RESET BUTTON_PREV 379#define FRACTAL_RESET BUTTON_PREV
380 380
381#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
382#define FRACTAL_QUIT BUTTON_BACK
383#define FRACTAL_UP BUTTON_UP
384#define FRACTAL_DOWN BUTTON_DOWN
385#define FRACTAL_LEFT BUTTON_LEFT
386#define FRACTAL_RIGHT BUTTON_RIGHT
387#define FRACTAL_ZOOM_IN (BUTTON_MENU|BUTTON_REL)
388#define FRACTAL_ZOOM_OUT (BUTTON_USER|BUTTON_REL)
389#define FRACTAL_PRECISION_INC (BUTTON_MENU|BUTTON_REPEAT)
390#define FRACTAL_PRECISION_DEC (BUTTON_USER|BUTTON_REPEAT)
391#define FRACTAL_RESET BUTTON_POWER
392
381#else 393#else
382#error No keymap defined! 394#error No keymap defined!
383#endif 395#endif
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index d03bc82474..20940d74f0 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -364,6 +364,16 @@
364#define GBN_BUTTON_PLAY BUTTON_SELECT 364#define GBN_BUTTON_PLAY BUTTON_SELECT
365#define GBN_BUTTON_MENU BUTTON_POWER 365#define GBN_BUTTON_MENU BUTTON_POWER
366 366
367#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
368#define GBN_BUTTON_UP BUTTON_UP
369#define GBN_BUTTON_DOWN BUTTON_DOWN
370#define GBN_BUTTON_LEFT BUTTON_LEFT
371#define GBN_BUTTON_RIGHT BUTTON_RIGHT
372#define GBN_BUTTON_RETREAT BUTTON_BACK
373#define GBN_BUTTON_ADVANCE BUTTON_USER
374#define GBN_BUTTON_PLAY BUTTON_SELECT
375#define GBN_BUTTON_MENU BUTTON_MENU
376
367#else 377#else
368#error Unsupported keypad 378#error Unsupported keypad
369#endif 379#endif
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
index 9f345d83f3..10d239922e 100644
--- a/apps/plugins/imageviewer/imageviewer_button.h
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -379,6 +379,18 @@
379#define IMGVIEW_MENU BUTTON_POWER 379#define IMGVIEW_MENU BUTTON_POWER
380#define IMGVIEW_SLIDE_SHOW BUTTON_NEXT 380#define IMGVIEW_SLIDE_SHOW BUTTON_NEXT
381 381
382#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
383#define IMGVIEW_ZOOM_IN BUTTON_POWER
384#define IMGVIEW_ZOOM_OUT BUTTON_USER
385#define IMGVIEW_UP BUTTON_UP
386#define IMGVIEW_DOWN BUTTON_DOWN
387#define IMGVIEW_LEFT BUTTON_LEFT
388#define IMGVIEW_RIGHT BUTTON_RIGHT
389#define IMGVIEW_NEXT BUTTON_SELECT
390#define IMGVIEW_PREVIOUS 0xFFFFFFA //not used
391#define IMGVIEW_MENU BUTTON_MENU
392#define IMGVIEW_QUIT BUTTON_BACK
393
382#else 394#else
383#error No keymap defined! 395#error No keymap defined!
384#endif 396#endif
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 96e04a976f..c52208d3c6 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -122,7 +122,8 @@
122#define RIGHT BUTTON_RIGHT 122#define RIGHT BUTTON_RIGHT
123#define FIRE BUTTON_SELECT 123#define FIRE BUTTON_SELECT
124 124
125#elif CONFIG_KEYPAD == GIGABEAT_PAD 125#elif CONFIG_KEYPAD == GIGABEAT_PAD \
126 || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
126 127
127#define QUIT BUTTON_POWER 128#define QUIT BUTTON_POWER
128#define LEFT BUTTON_LEFT 129#define LEFT BUTTON_LEFT
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 4d5a5b6ce9..7d80a536dd 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -172,7 +172,8 @@ CONFIG_KEYPAD == SANSA_M200_PAD
172#define HK_SELECT "PLAY" 172#define HK_SELECT "PLAY"
173#define HK_CANCEL "POWER" 173#define HK_CANCEL "POWER"
174 174
175#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 175#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
176 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
176#define JEWELS_UP BUTTON_UP 177#define JEWELS_UP BUTTON_UP
177#define JEWELS_DOWN BUTTON_DOWN 178#define JEWELS_DOWN BUTTON_DOWN
178#define JEWELS_LEFT BUTTON_LEFT 179#define JEWELS_LEFT BUTTON_LEFT
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index d9ad70b946..583e2753fa 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -57,7 +57,8 @@
57# define LAMP_UP BUTTON_UP 57# define LAMP_UP BUTTON_UP
58# define LAMP_DOWN BUTTON_DOWN 58# define LAMP_DOWN BUTTON_DOWN
59 59
60#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 60#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
61 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
61# define LAMP_LEFT BUTTON_LEFT 62# define LAMP_LEFT BUTTON_LEFT
62# define LAMP_RIGHT BUTTON_RIGHT 63# define LAMP_RIGHT BUTTON_RIGHT
63# define LAMP_UP BUTTON_UP 64# define LAMP_UP BUTTON_UP
diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c
index 0a2f12da50..44a2cd8c03 100644
--- a/apps/plugins/lib/pluginlib_actions.c
+++ b/apps/plugins/lib/pluginlib_actions.c
@@ -116,7 +116,8 @@ const struct button_mapping pla_main_ctx[] =
116 || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \ 116 || (CONFIG_KEYPAD == SANSA_FUZE_PAD) \
117 || (CONFIG_KEYPAD == SAMSUNG_YH_PAD) \ 117 || (CONFIG_KEYPAD == SAMSUNG_YH_PAD) \
118 || (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) \ 118 || (CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) \
119 || (CONFIG_KEYPAD == SANSA_CONNECT_PAD)) 119 || (CONFIG_KEYPAD == SANSA_CONNECT_PAD) \
120 || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD))
120 { PLA_UP, BUTTON_UP, BUTTON_NONE }, 121 { PLA_UP, BUTTON_UP, BUTTON_NONE },
121 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE }, 122 { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
122 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE }, 123 { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
@@ -278,7 +279,8 @@ const struct button_mapping pla_main_ctx[] =
278 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, 279 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
279 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, 280 {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
280 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, 281 {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
281#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 282#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) \
283 || (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
282 {PLA_CANCEL, BUTTON_BACK, BUTTON_NONE}, 284 {PLA_CANCEL, BUTTON_BACK, BUTTON_NONE},
283 {PLA_EXIT, BUTTON_MENU, BUTTON_NONE}, 285 {PLA_EXIT, BUTTON_MENU, BUTTON_NONE},
284 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, 286 {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
diff --git a/apps/plugins/lib/simple_viewer.c b/apps/plugins/lib/simple_viewer.c
index 16cbcb35de..06cc9c1a71 100644
--- a/apps/plugins/lib/simple_viewer.c
+++ b/apps/plugins/lib/simple_viewer.c
@@ -25,6 +25,7 @@
25#include "simple_viewer.h" 25#include "simple_viewer.h"
26#include <ctype.h> 26#include <ctype.h>
27 27
28
28struct view_info { 29struct view_info {
29#ifdef HAVE_LCD_BITMAP 30#ifdef HAVE_LCD_BITMAP
30 struct font* pf; 31 struct font* pf;
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index d651c2f634..be163f566e 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -123,7 +123,8 @@ const unsigned char rockbox16x7[] = {
123#elif CONFIG_KEYPAD == MROBE500_PAD 123#elif CONFIG_KEYPAD == MROBE500_PAD
124#define LP_QUIT BUTTON_POWER 124#define LP_QUIT BUTTON_POWER
125 125
126#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 126#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
127 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
127#define LP_QUIT BUTTON_BACK 128#define LP_QUIT BUTTON_BACK
128#define LP_DEC_X BUTTON_LEFT 129#define LP_DEC_X BUTTON_LEFT
129#define LP_INC_X BUTTON_RIGHT 130#define LP_INC_X BUTTON_RIGHT
diff --git a/apps/plugins/lua/strcspn.c b/apps/plugins/lua/strcspn.c
index 7af6f693eb..0a19eaebf2 100644
--- a/apps/plugins/lua/strcspn.c
+++ b/apps/plugins/lua/strcspn.c
@@ -1,5 +1,6 @@
1#include "rocklibc.h" 1#include "rocklibc.h"
2 2
3#undef strcspn
3size_t strcspn(const char *s, const char *reject) 4size_t strcspn(const char *s, const char *reject)
4{ 5{
5 size_t l=0; 6 size_t l=0;
diff --git a/apps/plugins/lua/strpbrk.c b/apps/plugins/lua/strpbrk.c
index f416f391ae..1e0491f779 100644
--- a/apps/plugins/lua/strpbrk.c
+++ b/apps/plugins/lua/strpbrk.c
@@ -1,5 +1,6 @@
1#include "rocklibc.h" 1#include "rocklibc.h"
2 2
3#undef strpbrk
3char *strpbrk(const char *s, const char *accept) { 4char *strpbrk(const char *s, const char *accept) {
4 register int i,l=strlen(accept); 5 register int i,l=strlen(accept);
5 for (; *s; s++) 6 for (; *s; s++)
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 1a1008073c..10b8ce578d 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -101,7 +101,8 @@
101#define MATRIX_SLEEP_LESS BUTTON_DOWN 101#define MATRIX_SLEEP_LESS BUTTON_DOWN
102#define MATRIX_PAUSE BUTTON_SELECT 102#define MATRIX_PAUSE BUTTON_SELECT
103 103
104#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 104#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
105 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
105#define MATRIX_EXIT BUTTON_BACK 106#define MATRIX_EXIT BUTTON_BACK
106#define MATRIX_SLEEP_MORE BUTTON_UP 107#define MATRIX_SLEEP_MORE BUTTON_UP
107#define MATRIX_SLEEP_LESS BUTTON_DOWN 108#define MATRIX_SLEEP_LESS BUTTON_DOWN
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index 1b5d18465b..ace7290a12 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -233,6 +233,14 @@
233#define BTN_DOWN BUTTON_DOWN 233#define BTN_DOWN BUTTON_DOWN
234#define BTN_PLAY BUTTON_SELECT 234#define BTN_PLAY BUTTON_SELECT
235 235
236#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
237#define BTN_QUIT BUTTON_BACK
238#define BTN_RIGHT BUTTON_RIGHT
239#define BTN_LEFT BUTTON_LEFT
240#define BTN_UP BUTTON_UP
241#define BTN_DOWN BUTTON_DOWN
242#define BTN_PLAY BUTTON_USER
243
236#else 244#else
237#error No keymap defined! 245#error No keymap defined!
238#endif 246#endif
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index ad67b1dd67..e0da928b02 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -311,6 +311,16 @@ CONFIG_KEYPAD == MROBE500_PAD
311# define MINESWP_DISCOVER BUTTON_SELECT 311# define MINESWP_DISCOVER BUTTON_SELECT
312# define MINESWP_INFO BUTTON_PREV 312# define MINESWP_INFO BUTTON_PREV
313 313
314#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
315# define MINESWP_LEFT BUTTON_LEFT
316# define MINESWP_RIGHT BUTTON_RIGHT
317# define MINESWP_UP BUTTON_UP
318# define MINESWP_DOWN BUTTON_DOWN
319# define MINESWP_QUIT BUTTON_BACK
320# define MINESWP_TOGGLE BUTTON_USER
321# define MINESWP_DISCOVER BUTTON_SELECT
322# define MINESWP_INFO BUTTON_MENU
323
314#else 324#else
315#error No keymap defined! 325#error No keymap defined!
316#endif 326#endif
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index ec41c8c02b..87e664e102 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -113,7 +113,8 @@
113#elif CONFIG_KEYPAD == MROBE500_PAD 113#elif CONFIG_KEYPAD == MROBE500_PAD
114#define MOSAIQUE_QUIT BUTTON_POWER 114#define MOSAIQUE_QUIT BUTTON_POWER
115 115
116#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 116#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
117 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
117#define MOSAIQUE_QUIT BUTTON_BACK 118#define MOSAIQUE_QUIT BUTTON_BACK
118#define MOSAIQUE_SPEED BUTTON_SELECT 119#define MOSAIQUE_SPEED BUTTON_SELECT
119#define MOSAIQUE_RESTART BUTTON_MENU 120#define MOSAIQUE_RESTART BUTTON_MENU
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index a70e316f06..567ec5dbc8 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2394,7 +2394,8 @@ static void get_mp3_filename(const char *wav_name)
2394#define MP3ENC_DONE BUTTON_POWER 2394#define MP3ENC_DONE BUTTON_POWER
2395#define MP3ENC_SELECT BUTTON_SELECT 2395#define MP3ENC_SELECT BUTTON_SELECT
2396 2396
2397#elif CONFIG_KEYPAD == GIGABEAT_PAD 2397#elif CONFIG_KEYPAD == GIGABEAT_PAD || \
2398 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
2398#define MP3ENC_PREV BUTTON_UP 2399#define MP3ENC_PREV BUTTON_UP
2399#define MP3ENC_NEXT BUTTON_DOWN 2400#define MP3ENC_NEXT BUTTON_DOWN
2400#define MP3ENC_DONE BUTTON_POWER 2401#define MP3ENC_DONE BUTTON_POWER
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 90b547893e..e9b1c01680 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -248,6 +248,14 @@ struct mpeg_settings settings;
248#define MPEG_START_TIME_DOWN BUTTON_DOWN 248#define MPEG_START_TIME_DOWN BUTTON_DOWN
249#define MPEG_START_TIME_EXIT BUTTON_POWER 249#define MPEG_START_TIME_EXIT BUTTON_POWER
250 250
251#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
252#define MPEG_START_TIME_SELECT BUTTON_SELECT
253#define MPEG_START_TIME_LEFT BUTTON_LEFT
254#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
255#define MPEG_START_TIME_UP BUTTON_UP
256#define MPEG_START_TIME_DOWN BUTTON_DOWN
257#define MPEG_START_TIME_EXIT BUTTON_BACK
258
251#else 259#else
252#error No keymap defined! 260#error No keymap defined!
253#endif 261#endif
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index e3d9865e12..f73e5f2090 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -362,6 +362,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
362#define MPEG_RW BUTTON_LEFT 362#define MPEG_RW BUTTON_LEFT
363#define MPEG_FF BUTTON_RIGHT 363#define MPEG_FF BUTTON_RIGHT
364 364
365#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
366#define MPEG_MENU BUTTON_MENU
367#define MPEG_PAUSE BUTTON_SELECT
368#define MPEG_STOP BUTTON_POWER
369#define MPEG_VOLDOWN BUTTON_DOWN
370#define MPEG_VOLUP BUTTON_UP
371#define MPEG_RW BUTTON_LEFT
372#define MPEG_FF BUTTON_RIGHT
373
365#else 374#else
366#error No keymap defined! 375#error No keymap defined!
367#endif 376#endif
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index 4469a92e12..0b1687da5c 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -342,6 +342,17 @@
342#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP 342#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
343#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN 343#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
344 344
345#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
346#define OSCILLOSCOPE_QUIT BUTTON_BACK
347#define OSCILLOSCOPE_DRAWMODE BUTTON_USER
348#define OSCILLOSCOPE_ADVMODE BUTTON_MENU
349#define OSCILLOSCOPE_ORIENTATION BUTTON_POWER
350#define OSCILLOSCOPE_PAUSE BUTTON_SELECT
351#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
352#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
353#define OSCILLOSCOPE_VOL_UP BUTTON_UP
354#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
355
345#else 356#else
346#error No keymap defined! 357#error No keymap defined!
347#endif 358#endif
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 3c906ac0aa..0183b0c3f6 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -265,6 +265,17 @@
265#define PACMAN_COIN BUTTON_VOL_DOWN 265#define PACMAN_COIN BUTTON_VOL_DOWN
266#define PACMAN_MENU BUTTON_POWER 266#define PACMAN_MENU BUTTON_POWER
267 267
268#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
269
270#define PACMAN_UP BUTTON_UP
271#define PACMAN_DOWN BUTTON_DOWN
272#define PACMAN_LEFT BUTTON_LEFT
273#define PACMAN_RIGHT BUTTON_RIGHT
274#define PACMAN_1UP BUTTON_SELECT
275#define PACMAN_2UP BUTTON_POWER
276#define PACMAN_COIN BUTTON_USER
277#define PACMAN_MENU BUTTON_MENU
278
268#else 279#else
269 280
270#error Keymap not defined! 281#error Keymap not defined!
diff --git a/apps/plugins/pdbox/pdbox.h b/apps/plugins/pdbox/pdbox.h
index 56ad568a3b..b53e15f94e 100644
--- a/apps/plugins/pdbox/pdbox.h
+++ b/apps/plugins/pdbox/pdbox.h
@@ -89,7 +89,9 @@ float rb_atan(float);
89float rb_atan2(float, float); 89float rb_atan2(float, float);
90float rb_sinh(float); 90float rb_sinh(float);
91float rb_tan(float); 91float rb_tan(float);
92#ifndef SIMULATOR 92//#ifndef SIMULATOR
93/*FIXME: is it a correct replacement??? */
94#if !(CONFIG_PLATFORM & PLATFORM_HOSTED)
93typedef struct 95typedef struct
94{ 96{
95 int quot; 97 int quot;
@@ -163,9 +165,12 @@ void pd_init(void);
163#define atoi rb->atoi 165#define atoi rb->atoi
164#define write rb->write 166#define write rb->write
165 167
168#undef strncat
166#define strncat rb_strncat 169#define strncat rb_strncat
167 170
168#ifndef SIMULATOR 171//#ifndef SIMULATOR
172/*FIXME: is it a correct replacement??? */
173#if !(CONFIG_PLATFORM & PLATFORM_HOSTED)
169#define floor rb_floor 174#define floor rb_floor
170#define atof rb_atof 175#define atof rb_atof
171#define atol rb_atol 176#define atol rb_atol
@@ -186,6 +191,7 @@ void pd_init(void);
186#endif 191#endif
187 192
188#define ftoan rb_ftoan 193#define ftoan rb_ftoan
194#undef strtok_r
189#define strtok_r rb->strtok_r 195#define strtok_r rb->strtok_r
190#define strstr rb->strcasestr 196#define strstr rb->strcasestr
191 197
@@ -282,6 +288,15 @@ enum pd_key_id
282 #define PDPOD_WHEELLEFT (BUTTON_SCROLL_BACK) 288 #define PDPOD_WHEELLEFT (BUTTON_SCROLL_BACK)
283 #define PDPOD_WHEELRIGHT (BUTTON_SCROLL_FWD) 289 #define PDPOD_WHEELRIGHT (BUTTON_SCROLL_FWD)
284 #define PDPOD_ACTION (BUTTON_SELECT) 290 #define PDPOD_ACTION (BUTTON_SELECT)
291#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
292 #define PDPOD_QUIT BUTTON_BACK
293 #define PDPOD_PLAY BUTTON_USER
294 #define PDPOD_PREVIOUS BUTTON_LEFT
295 #define PDPOD_NEXT BUTTON_RIGHT
296 #define PDPOD_MENU BUTTON_MENU
297 #define PDPOD_WHEELLEFT BUTTON_UP
298 #define PDPOD_WHEELRIGHT BUTTON_DOWN
299 #define PDPOD_ACTION BUTTON_SELECT
285#else 300#else
286 #warning "No keys defined for this architecture!" 301 #warning "No keys defined for this architecture!"
287#endif 302#endif
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index 3eb6008f76..479f7c5ec2 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -510,6 +510,24 @@ CONFIG_KEYPAD == MROBE500_PAD
510#define LVL_DOWN_TEXT "PREV" 510#define LVL_DOWN_TEXT "PREV"
511#define SELECT_TEXT "SELECT" 511#define SELECT_TEXT "SELECT"
512 512
513#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
514#define PEGBOX_SELECT BUTTON_SELECT
515#define PEGBOX_QUIT BUTTON_BACK
516#define PEGBOX_RESTART BUTTON_MENU
517#define PEGBOX_LVL_UP BUTTON_USER
518#define PEGBOX_LVL_DOWN BUTTON_POWER
519#define PEGBOX_UP BUTTON_UP
520#define PEGBOX_DOWN BUTTON_DOWN
521#define PEGBOX_RIGHT BUTTON_RIGHT
522#define PEGBOX_LEFT BUTTON_LEFT
523
524#define SAVE_TEXT "PLAYPAUSE"
525#define QUIT_TEXT "POWER"
526#define RESTART_TEXT "BACK"
527#define LVL_UP_TEXT "Vol+"
528#define LVL_DOWN_TEXT "Vol-"
529#define SELECT_TEXT "SELECT"
530
513#else 531#else
514#error Unsupported keymap! 532#error Unsupported keymap!
515#endif 533#endif
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index d3875f39e4..430b688f1f 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -244,6 +244,14 @@ CONFIG_KEYPAD == MROBE500_PAD
244#define PONG_RIGHT_UP BUTTON_UP 244#define PONG_RIGHT_UP BUTTON_UP
245#define PONG_RIGHT_DOWN BUTTON_RIGHT 245#define PONG_RIGHT_DOWN BUTTON_RIGHT
246 246
247#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
248#define PONG_QUIT BUTTON_BACK
249#define PONG_PAUSE BUTTON_SELECT
250#define PONG_LEFT_UP BUTTON_UP
251#define PONG_LEFT_DOWN BUTTON_DOWN
252#define PONG_RIGHT_UP BUTTON_MENU
253#define PONG_RIGHT_DOWN BUTTON_POWER
254
247#else 255#else
248#error No keymap defined! 256#error No keymap defined!
249#endif 257#endif
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index a36efe51cb..c0d6183c2f 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -252,6 +252,15 @@
252#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAYPAUSE 252#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAYPAUSE
253#define REVERSI_BUTTON_MENU BUTTON_BACK 253#define REVERSI_BUTTON_MENU BUTTON_BACK
254 254
255#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
256#define REVERSI_BUTTON_QUIT BUTTON_BACK
257#define REVERSI_BUTTON_UP BUTTON_UP
258#define REVERSI_BUTTON_DOWN BUTTON_DOWN
259#define REVERSI_BUTTON_LEFT BUTTON_LEFT
260#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
261#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
262#define REVERSI_BUTTON_MENU BUTTON_MENU
263
255#else 264#else
256#error No keymap defined! 265#error No keymap defined!
257#endif 266#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index 674b14ed83..c23c6b11cb 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -379,6 +379,18 @@
379#define ROCKBLOX_DROP BUTTON_SELECT 379#define ROCKBLOX_DROP BUTTON_SELECT
380#define ROCKBLOX_RESTART BUTTON_VOL_DOWN 380#define ROCKBLOX_RESTART BUTTON_VOL_DOWN
381 381
382#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
383
384#define ROCKBLOX_OFF BUTTON_BACK
385#define ROCKBLOX_ROTATE_CCW BUTTON_POWER
386#define ROCKBLOX_ROTATE_CW BUTTON_MENU
387#define ROCKBLOX_ROTATE BUTTON_UP
388#define ROCKBLOX_DOWN BUTTON_DOWN
389#define ROCKBLOX_LEFT BUTTON_LEFT
390#define ROCKBLOX_RIGHT BUTTON_RIGHT
391#define ROCKBLOX_DROP BUTTON_SELECT
392#define ROCKBLOX_RESTART BUTTON_USER
393
382#else 394#else
383#error No keymap defined! 395#error No keymap defined!
384#endif 396#endif
diff --git a/apps/plugins/rockblox1d.c b/apps/plugins/rockblox1d.c
index 49219c2eba..5b6e812abf 100644
--- a/apps/plugins/rockblox1d.c
+++ b/apps/plugins/rockblox1d.c
@@ -69,7 +69,8 @@
69#define ONEDROCKBLOX_DOWN BUTTON_PLAY 69#define ONEDROCKBLOX_DOWN BUTTON_PLAY
70#define ONEDROCKBLOX_QUIT BUTTON_POWER 70#define ONEDROCKBLOX_QUIT BUTTON_POWER
71 71
72#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 72#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
73 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
73#define ONEDROCKBLOX_DOWN BUTTON_SELECT 74#define ONEDROCKBLOX_DOWN BUTTON_SELECT
74#define ONEDROCKBLOX_QUIT BUTTON_BACK 75#define ONEDROCKBLOX_QUIT BUTTON_BACK
75 76
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c
index 37f0566b21..bc73abee92 100644
--- a/apps/plugins/rockboy/rockboy.c
+++ b/apps/plugins/rockboy/rockboy.c
@@ -342,6 +342,18 @@ static void setoptions (void)
342 options.SELECT = BUTTON_NEXT; 342 options.SELECT = BUTTON_NEXT;
343 options.MENU = BUTTON_SELECT; 343 options.MENU = BUTTON_SELECT;
344 344
345#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
346 options.UP = BUTTON_UP;
347 options.DOWN = BUTTON_DOWN;
348 options.LEFT = BUTTON_LEFT;
349 options.RIGHT = BUTTON_RIGHT;
350
351 options.A = BUTTON_SELECT;
352 options.B = BUTTON_BACK;
353 options.START = BUTTON_POWER;
354 options.SELECT = BUTTON_USER;
355 options.MENU = BUTTON_MENU;
356
345#else 357#else
346#error No Keymap Defined! 358#error No Keymap Defined!
347#endif 359#endif
diff --git a/apps/plugins/rockboy/rockmacros.h b/apps/plugins/rockboy/rockmacros.h
index 724a0fb96d..87e570b55a 100644
--- a/apps/plugins/rockboy/rockmacros.h
+++ b/apps/plugins/rockboy/rockmacros.h
@@ -23,8 +23,6 @@
23 23
24#include "plugin.h" 24#include "plugin.h"
25 25
26#include "autoconf.h"
27
28#define malloc(a) my_malloc(a) 26#define malloc(a) my_malloc(a)
29void *my_malloc(size_t size); 27void *my_malloc(size_t size);
30 28
diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c
index 7f16bf2763..eeca916d1d 100644
--- a/apps/plugins/rockpaint.c
+++ b/apps/plugins/rockpaint.c
@@ -243,6 +243,17 @@
243#define ROCKPAINT_LEFT BUTTON_LEFT 243#define ROCKPAINT_LEFT BUTTON_LEFT
244#define ROCKPAINT_RIGHT BUTTON_RIGHT 244#define ROCKPAINT_RIGHT BUTTON_RIGHT
245 245
246#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
247#define ROCKPAINT_QUIT BUTTON_BACK
248#define ROCKPAINT_DRAW BUTTON_SELECT
249#define ROCKPAINT_MENU BUTTON_MENU
250#define ROCKPAINT_TOOLBAR BUTTON_USER
251#define ROCKPAINT_TOOLBAR2 ( BUTTON_USER | BUTTON_REPEAT )
252#define ROCKPAINT_UP BUTTON_UP
253#define ROCKPAINT_DOWN BUTTON_DOWN
254#define ROCKPAINT_LEFT BUTTON_LEFT
255#define ROCKPAINT_RIGHT BUTTON_RIGHT
256
246#else 257#else
247#error "Please define keys for this keypad" 258#error "Please define keys for this keypad"
248#endif 259#endif
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 653099a547..a176f75c91 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -136,7 +136,8 @@
136#define PUZZLE_SHUFFLE BUTTON_REW 136#define PUZZLE_SHUFFLE BUTTON_REW
137#define PUZZLE_PICTURE BUTTON_PLAY 137#define PUZZLE_PICTURE BUTTON_PLAY
138 138
139#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 139#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
140 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
140#define PUZZLE_QUIT BUTTON_BACK 141#define PUZZLE_QUIT BUTTON_BACK
141#define PUZZLE_LEFT BUTTON_LEFT 142#define PUZZLE_LEFT BUTTON_LEFT
142#define PUZZLE_RIGHT BUTTON_RIGHT 143#define PUZZLE_RIGHT BUTTON_RIGHT
@@ -784,7 +785,8 @@ enum plugin_status plugin_start(
784 rb->lcd_putsxy(0, 18, "[OFF] to stop"); 785 rb->lcd_putsxy(0, 18, "[OFF] to stop");
785 rb->lcd_putsxy(0, 28, "[REW] shuffle"); 786 rb->lcd_putsxy(0, 28, "[REW] shuffle");
786 rb->lcd_putsxy(0, 38, "[PLAY] change pic"); 787 rb->lcd_putsxy(0, 38, "[PLAY] change pic");
787#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 788#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
789 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
788 rb->lcd_putsxy(0, 18, "[BACK] to stop"); 790 rb->lcd_putsxy(0, 18, "[BACK] to stop");
789 rb->lcd_putsxy(0, 28, "[SELECT] shuffle"); 791 rb->lcd_putsxy(0, 28, "[SELECT] shuffle");
790 rb->lcd_putsxy(0, 38, "[MENU] change pic"); 792 rb->lcd_putsxy(0, 38, "[MENU] change pic");
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 09e72a5fff..a20376742f 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -130,7 +130,8 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
130#define SNAKE_DOWN BUTTON_SCROLL_DOWN 130#define SNAKE_DOWN BUTTON_SCROLL_DOWN
131#define SNAKE_PLAYPAUSE BUTTON_PLAY 131#define SNAKE_PLAYPAUSE BUTTON_PLAY
132 132
133#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 133#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
134 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
134#define SNAKE_QUIT BUTTON_BACK 135#define SNAKE_QUIT BUTTON_BACK
135#define SNAKE_LEFT BUTTON_LEFT 136#define SNAKE_LEFT BUTTON_LEFT
136#define SNAKE_RIGHT BUTTON_RIGHT 137#define SNAKE_RIGHT BUTTON_RIGHT
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index 0e7b499271..bd0257d2be 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -238,7 +238,8 @@ Head and Tail are stored
238#define SNAKE2_PLAYPAUSE BUTTON_FF 238#define SNAKE2_PLAYPAUSE BUTTON_FF
239#define SNAKE2_PLAYPAUSE_TEXT "FF" 239#define SNAKE2_PLAYPAUSE_TEXT "FF"
240 240
241#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 241#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
242 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
242#define SNAKE2_LEFT BUTTON_LEFT 243#define SNAKE2_LEFT BUTTON_LEFT
243#define SNAKE2_RIGHT BUTTON_RIGHT 244#define SNAKE2_RIGHT BUTTON_RIGHT
244#define SNAKE2_UP BUTTON_UP 245#define SNAKE2_UP BUTTON_UP
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index 8a2de39707..6371a697da 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -67,7 +67,8 @@
67#define SNOW_QUIT (BUTTON_HOME|BUTTON_REPEAT) 67#define SNOW_QUIT (BUTTON_HOME|BUTTON_REPEAT)
68 68
69#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \ 69#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
70(CONFIG_KEYPAD == CREATIVEZVM_PAD) 70(CONFIG_KEYPAD == CREATIVEZVM_PAD) || \
71(CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
71#define SNOW_QUIT BUTTON_BACK 72#define SNOW_QUIT BUTTON_BACK
72 73
73#elif (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) || \ 74#elif (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD) || \
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index ddc95290da..942b101d4c 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -526,6 +526,21 @@
526#define BUTTON_SAVE (BUTTON_SELECT|BUTTON_REPEAT) 526#define BUTTON_SAVE (BUTTON_SELECT|BUTTON_REPEAT)
527#define BUTTON_SAVE_NAME "SELECT LONG" 527#define BUTTON_SAVE_NAME "SELECT LONG"
528 528
529#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
530#define SOKOBAN_LEFT BUTTON_LEFT
531#define SOKOBAN_RIGHT BUTTON_RIGHT
532#define SOKOBAN_UP BUTTON_UP
533#define SOKOBAN_DOWN BUTTON_DOWN
534#define SOKOBAN_MENU BUTTON_MENU
535#define SOKOBAN_UNDO BUTTON_BACK
536#define SOKOBAN_REDO BUTTON_USER
537//#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER|BUTTON_REL)
538//#define SOKOBAN_LEVEL_REPEAT (BUTTON_CENTER|BUTTON_REPEAT)
539//#define SOKOBAN_LEVEL_UP (BUTTON_MENU|BUTTON_REPEAT)
540#define SOKOBAN_PAUSE BUTTON_SELECT
541#define BUTTON_SAVE BUTTON_SELECT
542#define BUTTON_SAVE_NAME "SELECT"
543
529#else 544#else
530#error No keymap defined! 545#error No keymap defined!
531#endif 546#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 91ef346221..a1e8b7694b 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -544,6 +544,24 @@ CONFIG_KEYPAD == MROBE500_PAD
544# define HK_CUR2STACK "NEXT" 544# define HK_CUR2STACK "NEXT"
545# define HK_REM2STACK "PREV" 545# define HK_REM2STACK "PREV"
546 546
547#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
548# define SOL_QUIT BUTTON_BACK
549# define SOL_UP BUTTON_UP
550# define SOL_DOWN BUTTON_DOWN
551# define SOL_LEFT BUTTON_LEFT
552# define SOL_RIGHT BUTTON_RIGHT
553# define SOL_MOVE_PRE BUTTON_SELECT
554# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
555# define SOL_DRAW BUTTON_MENU
556# define SOL_REM2CUR (BUTTON_USER | BUTTON_REPEAT)
557# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
558# define SOL_REM2STACK BUTTON_POWER
559# define HK_MOVE "Select"
560# define HK_DRAW "Menu"
561# define HK_REM2CUR "Long User"
562# define HK_CUR2STACK "Long Select.."
563# define HK_REM2STACK "Power"
564
547#else 565#else
548#error No keymap defined! 566#error No keymap defined!
549#endif 567#endif
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 0c03a3183b..946d97d075 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -278,6 +278,15 @@
278#define AST_RIGHT BUTTON_RIGHT 278#define AST_RIGHT BUTTON_RIGHT
279#define AST_FIRE BUTTON_SELECT 279#define AST_FIRE BUTTON_SELECT
280 280
281#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
282#define AST_PAUSE BUTTON_MENU
283#define AST_QUIT BUTTON_BACK
284#define AST_THRUST BUTTON_UP
285#define AST_HYPERSPACE BUTTON_DOWN
286#define AST_LEFT BUTTON_LEFT
287#define AST_RIGHT BUTTON_RIGHT
288#define AST_FIRE BUTTON_SELECT
289
281#else 290#else
282#error No keymap defined! 291#error No keymap defined!
283#endif 292#endif
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 620cddf77e..cf04e02edc 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -480,6 +480,23 @@
480#define STAR_LEVEL_DOWN_NAME "Vol-" 480#define STAR_LEVEL_DOWN_NAME "Vol-"
481#define STAR_LEVEL_REPEAT_NAME "PREV LONG" 481#define STAR_LEVEL_REPEAT_NAME "PREV LONG"
482 482
483#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
484
485#define STAR_QUIT BUTTON_BACK
486#define STAR_LEFT BUTTON_LEFT
487#define STAR_RIGHT BUTTON_RIGHT
488#define STAR_UP BUTTON_UP
489#define STAR_DOWN BUTTON_DOWN
490#define STAR_TOGGLE_CONTROL BUTTON_SELECT
491#define STAR_LEVEL_UP BUTTON_MENU
492#define STAR_LEVEL_DOWN BUTTON_POWER
493#define STAR_LEVEL_REPEAT BUTTON_USER
494#define STAR_TOGGLE_CONTROL_NAME "Select"
495#define STAR_QUIT_NAME "Back"
496#define STAR_LEVEL_UP_NAME "Menu"
497#define STAR_LEVEL_DOWN_NAME "Power"
498#define STAR_LEVEL_REPEAT_NAME "User"
499
483#else 500#else
484#error No keymap defined! 501#error No keymap defined!
485#endif 502#endif
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index e3b5634978..c996da9234 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -78,7 +78,8 @@
78#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT 78#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
79#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT 79#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
80 80
81#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 81#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
82 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
82#define STARFIELD_QUIT BUTTON_BACK 83#define STARFIELD_QUIT BUTTON_BACK
83#define STARFIELD_INCREASE_ZMOVE BUTTON_UP 84#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
84#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN 85#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index c5ff31e2bd..da231b772c 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -72,7 +72,8 @@ static bool cancel;
72#define STATS_STOP BUTTON_POWER 72#define STATS_STOP BUTTON_POWER
73#define STATS_STOP_REMOTE BUTTON_RC_DOWN 73#define STATS_STOP_REMOTE BUTTON_RC_DOWN
74 74
75#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 75#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
76 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
76#define STATS_STOP BUTTON_BACK 77#define STATS_STOP BUTTON_BACK
77 78
78#elif CONFIG_KEYPAD == MROBE100_PAD 79#elif CONFIG_KEYPAD == MROBE100_PAD
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 94785dc352..fd33bb7c03 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -263,6 +263,14 @@
263#define STOPWATCH_SCROLL_UP BUTTON_UP 263#define STOPWATCH_SCROLL_UP BUTTON_UP
264#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN 264#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
265 265
266#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
267#define STOPWATCH_QUIT BUTTON_BACK
268#define STOPWATCH_START_STOP BUTTON_SELECT
269#define STOPWATCH_RESET_TIMER BUTTON_MENU
270#define STOPWATCH_LAP_TIMER BUTTON_USER
271#define STOPWATCH_SCROLL_UP BUTTON_UP
272#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
273
266#else 274#else
267#error No keymap defined! 275#error No keymap defined!
268#endif 276#endif
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 456e4fd9ee..07147185ae 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -329,6 +329,16 @@
329#define SUDOKU_BUTTON_MENU BUTTON_SELECT 329#define SUDOKU_BUTTON_MENU BUTTON_SELECT
330#define SUDOKU_BUTTON_POSSIBLE BUTTON_VOL_DOWN 330#define SUDOKU_BUTTON_POSSIBLE BUTTON_VOL_DOWN
331 331
332#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
333#define SUDOKU_BUTTON_QUIT BUTTON_BACK
334#define SUDOKU_BUTTON_UP BUTTON_UP
335#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
336#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
337#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
338#define SUDOKU_BUTTON_MENU BUTTON_MENU
339#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
340#define SUDOKU_BUTTON_POSSIBLE BUTTON_USER
341
332#else 342#else
333#error No keymap defined! 343#error No keymap defined!
334#endif 344#endif
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index b4e25afdb1..135a6ae445 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -120,7 +120,8 @@ char buf[255];
120#define SUPERDOM_RIGHT BUTTON_RIGHT 120#define SUPERDOM_RIGHT BUTTON_RIGHT
121#define SUPERDOM_CANCEL (BUTTON_HOME|BUTTON_REPEAT) 121#define SUPERDOM_CANCEL (BUTTON_HOME|BUTTON_REPEAT)
122 122
123#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 123#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
124 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
124#define SUPERDOM_OK BUTTON_SELECT 125#define SUPERDOM_OK BUTTON_SELECT
125#define SUPERDOM_UP BUTTON_UP 126#define SUPERDOM_UP BUTTON_UP
126#define SUPERDOM_DOWN BUTTON_DOWN 127#define SUPERDOM_DOWN BUTTON_DOWN
diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c
index 6e1b3b6f9e..849b40de42 100644
--- a/apps/plugins/test_codec.c
+++ b/apps/plugins/test_codec.c
@@ -39,6 +39,8 @@
39#define TESTCODEC_EXITBUTTON (BUTTON_REC | BUTTON_REPEAT) 39#define TESTCODEC_EXITBUTTON (BUTTON_REC | BUTTON_REPEAT)
40#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD 40#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD
41#define TESTCODEC_EXITBUTTON (BUTTON_M | BUTTON_REPEAT) 41#define TESTCODEC_EXITBUTTON (BUTTON_M | BUTTON_REPEAT)
42#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
43#define TESTCODEC_EXITBUTTON BUTTON_BACK
42#elif defined(HAVE_TOUCHSCREEN) 44#elif defined(HAVE_TOUCHSCREEN)
43#define TESTCODEC_EXITBUTTON BUTTON_TOPLEFT 45#define TESTCODEC_EXITBUTTON BUTTON_TOPLEFT
44#else 46#else
diff --git a/apps/plugins/test_fps.c b/apps/plugins/test_fps.c
index da4684f60a..4514aa61bb 100644
--- a/apps/plugins/test_fps.c
+++ b/apps/plugins/test_fps.c
@@ -37,6 +37,8 @@
37#define FPS_QUIT (BUTTON_REC|BUTTON_REPEAT) 37#define FPS_QUIT (BUTTON_REC|BUTTON_REPEAT)
38#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD 38#elif CONFIG_KEYPAD == RK27XX_GENERIC_PAD
39#define FPS_QUIT (BUTTON_M|BUTTON_REPEAT) 39#define FPS_QUIT (BUTTON_M|BUTTON_REPEAT)
40#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
41#define FPS_QUIT BUTTON_BACK
40#elif defined(BUTTON_OFF) 42#elif defined(BUTTON_OFF)
41#define FPS_QUIT BUTTON_OFF 43#define FPS_QUIT BUTTON_OFF
42#else 44#else
diff --git a/apps/plugins/test_gfx.c b/apps/plugins/test_gfx.c
index cde77c55fe..4081e64d13 100644
--- a/apps/plugins/test_gfx.c
+++ b/apps/plugins/test_gfx.c
@@ -402,7 +402,7 @@ static void time_text(void) /* tests mono_bitmap performance */
402/* plugin entry point */ 402/* plugin entry point */
403enum plugin_status plugin_start(const void* parameter) 403enum plugin_status plugin_start(const void* parameter)
404{ 404{
405#ifndef SIMULATOR 405#ifdef HAVE_ADJUSTABLE_CPU_FREQ
406 int cpu_freq; 406 int cpu_freq;
407#endif 407#endif
408 408
@@ -447,7 +447,7 @@ enum plugin_status plugin_start(const void* parameter)
447 6*4*DURATION/HZ); 447 6*4*DURATION/HZ);
448 init_rand_table(); 448 init_rand_table();
449 449
450#ifndef SIMULATOR 450#ifdef HAVE_ADJUSTABLE_CPU_FREQ
451 cpu_freq = *rb->cpu_frequency; /* remember CPU frequency */ 451 cpu_freq = *rb->cpu_frequency; /* remember CPU frequency */
452#endif 452#endif
453 453
@@ -458,7 +458,7 @@ enum plugin_status plugin_start(const void* parameter)
458 time_fillrect(); 458 time_fillrect();
459 time_text(); 459 time_text();
460 460
461#ifndef SIMULATOR 461#ifdef HAVE_ADJUSTABLE_CPU_FREQ
462 if (*rb->cpu_frequency != cpu_freq) 462 if (*rb->cpu_frequency != cpu_freq)
463 rb->fdprintf(log_fd, "\nCPU: %s\n", "clock changed!"); 463 rb->fdprintf(log_fd, "\nCPU: %s\n", "clock changed!");
464 else 464 else
diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h
index 697076e643..fe16b5f8ce 100644
--- a/apps/plugins/text_viewer/tv_button.h
+++ b/apps/plugins/text_viewer/tv_button.h
@@ -436,6 +436,16 @@
436#define TV_LINE_DOWN BUTTON_SCROLL_FWD 436#define TV_LINE_DOWN BUTTON_SCROLL_FWD
437#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT) 437#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
438 438
439#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
440#define TV_QUIT BUTTON_BACK
441#define TV_SCROLL_UP BUTTON_UP
442#define TV_SCROLL_DOWN BUTTON_DOWN
443#define TV_SCREEN_LEFT BUTTON_LEFT
444#define TV_SCREEN_RIGHT BUTTON_RIGHT
445#define TV_MENU BUTTON_MENU
446#define TV_AUTOSCROLL BUTTON_USER
447#define TV_BOOKMARK BUTTON_SELECT
448
439#else 449#else
440#error No keymap defined! 450#error No keymap defined!
441#endif 451#endif
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index cf66070c6b..7ca7b43726 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -338,6 +338,17 @@
338#define LABEL_MENU "PREV" 338#define LABEL_MENU "PREV"
339#define LABEL_VOLUME "VOL+/VOL-" 339#define LABEL_VOLUME "VOL+/VOL-"
340 340
341#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
342#define VUMETER_QUIT BUTTON_BACK
343#define VUMETER_HELP BUTTON_USER
344#define VUMETER_MENU BUTTON_MENU
345#define VUMETER_UP BUTTON_UP
346#define VUMETER_DOWN BUTTON_DOWN
347#define LABEL_HELP "User"
348#define LABEL_QUIT "Back"
349#define LABEL_MENU "Menu"
350#define LABEL_VOLUME "Up/Down"
351
341#else 352#else
342#error No keymap defined! 353#error No keymap defined!
343#endif 354#endif
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 016c4ad31b..f1834aade5 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -180,7 +180,8 @@ static long max_cycle;
180#define BTN_QUIT BUTTON_POWER 180#define BTN_QUIT BUTTON_POWER
181#define BTN_STOPRESET BUTTON_REW 181#define BTN_STOPRESET BUTTON_REW
182 182
183#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 183#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
184 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
184 185
185#define BTN_DIR_UP BUTTON_UP 186#define BTN_DIR_UP BUTTON_UP
186#define BTN_DIR_DOWN BUTTON_DOWN 187#define BTN_DIR_DOWN BUTTON_DOWN
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index 8de0c8fe16..30fd5fde13 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -277,6 +277,15 @@ CONFIG_KEYPAD == MROBE500_PAD
277#define DOWN BUTTON_DOWN 277#define DOWN BUTTON_DOWN
278#define PAUSE BUTTON_SELECT 278#define PAUSE BUTTON_SELECT
279 279
280#elif (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
281
282#define QUIT BUTTON_BACK
283#define LEFT BUTTON_LEFT
284#define RIGHT BUTTON_RIGHT
285#define UP BUTTON_UP
286#define DOWN BUTTON_DOWN
287#define PAUSE BUTTON_SELECT
288
280#else 289#else
281#error No keymap defined! 290#error No keymap defined!
282#endif 291#endif
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index 4e5d73a343..317e67cd9f 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -28,7 +28,8 @@
28#define ZX_SELECT BUTTON_SELECT 28#define ZX_SELECT BUTTON_SELECT
29#define ZX_MENU BUTTON_MENU 29#define ZX_MENU BUTTON_MENU
30 30
31#elif CONFIG_KEYPAD == GIGABEAT_S_PAD 31#elif CONFIG_KEYPAD == GIGABEAT_S_PAD || \
32 CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
32 33
33#define ZX_UP BUTTON_UP 34#define ZX_UP BUTTON_UP
34#define ZX_DOWN BUTTON_DOWN 35#define ZX_DOWN BUTTON_DOWN
@@ -226,6 +227,15 @@
226#define ZX_LEFT BUTTON_LEFT 227#define ZX_LEFT BUTTON_LEFT
227#define ZX_RIGHT BUTTON_RIGHT 228#define ZX_RIGHT BUTTON_RIGHT
228 229
230#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
231
232#define ZX_MENU BUTTON_MENU
233#define ZX_UP BUTTON_UP
234#define ZX_DOWN BUTTON_DOWN
235#define ZX_SELECT BUTTON_CENTER
236#define ZX_LEFT BUTTON_LEFT
237#define ZX_RIGHT BUTTON_RIGHT
238
229#else 239#else
230#error Keymap not defined! 240#error Keymap not defined!
231 241
diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c
index fc5ed41169..e8b5219de3 100644
--- a/apps/plugins/zxbox/zxbox_keyb.c
+++ b/apps/plugins/zxbox/zxbox_keyb.c
@@ -225,6 +225,15 @@
225 225
226#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD 226#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
227 227
228#define KBD_SELECT BUTTON_CENTER
229#define KBD_ABORT BUTTON_BACK
230#define KBD_LEFT BUTTON_LEFT
231#define KBD_RIGHT BUTTON_RIGHT
232#define KBD_UP BUTTON_UP
233#define KBD_DOWN BUTTON_DOWN
234
235#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
236
228#define KBD_SELECT BUTTON_SELECT 237#define KBD_SELECT BUTTON_SELECT
229#define KBD_ABORT BUTTON_BACK 238#define KBD_ABORT BUTTON_BACK
230#define KBD_LEFT BUTTON_LEFT 239#define KBD_LEFT BUTTON_LEFT