summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2006-01-12 00:35:50 +0000
committerDave Chapman <dave@dchapman.com>2006-01-12 00:35:50 +0000
commitd83e929f3fc369a5981e1e40e1c5307169a46cfc (patch)
treeac323ca5811374a030a1b65bb77fc7ccc163db04 /apps
parent8d130684214d23a9163810d1dacc33d108f2338a (diff)
downloadrockbox-d83e929f3fc369a5981e1e40e1c5307169a46cfc.tar.gz
rockbox-d83e929f3fc369a5981e1e40e1c5307169a46cfc.tar.bz2
rockbox-d83e929f3fc369a5981e1e40e1c5307169a46cfc.zip
Work-in-progress iriver iFP-7xx port by Tomasz Malesinski
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8342 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/bookmark.h5
-rw-r--r--apps/codecs/SOURCES2
-rw-r--r--apps/debug_menu.c6
-rw-r--r--apps/gui/gwps.h19
-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.h8
-rw-r--r--apps/plugins/Makefile2
-rw-r--r--apps/plugins/SOURCES2
-rw-r--r--apps/plugins/battery_test.c2
-rw-r--r--apps/plugins/chessclock.c10
-rw-r--r--apps/plugins/cube.c12
-rw-r--r--apps/plugins/databox/databox.c3
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/jewels.c6
-rw-r--r--apps/plugins/logo.c6
-rw-r--r--apps/plugins/metronome.c9
-rw-r--r--apps/plugins/mosaique.c6
-rw-r--r--apps/plugins/plugin.lds14
-rw-r--r--apps/plugins/rockboy/sys_rockbox.c7
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/stats.c2
-rw-r--r--apps/plugins/stopwatch.c7
-rw-r--r--apps/plugins/viewer.c11
-rw-r--r--apps/recorder/keyboard.c14
-rw-r--r--apps/settings.h6
-rw-r--r--apps/tree.h14
28 files changed, 187 insertions, 5 deletions
diff --git a/apps/bookmark.h b/apps/bookmark.h
index dff4473167..284c0ceffb 100644
--- a/apps/bookmark.h
+++ b/apps/bookmark.h
@@ -38,6 +38,11 @@
#define BOOKMARK_DELETE (BUTTON_RIGHT | BUTTON_REPEAT)
#define BOOKMARK_DOWN BUTTON_SCROLL_FWD
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define BOOKMARK_SELECT BUTTON_SELECT
+#define BOOKMARK_DELETE (BUTTON_PLAY | BUTTON_SELECT)
+#define BOOKMARK_DOWN BUTTON_DOWN
+
#else /* player, recorder, gmini */
#define BOOKMARK_SELECT BUTTON_PLAY
#define BOOKMARK_DELETE (BUTTON_ON | BUTTON_PLAY)
diff --git a/apps/codecs/SOURCES b/apps/codecs/SOURCES
index 69d925248b..911ee3b705 100644
--- a/apps/codecs/SOURCES
+++ b/apps/codecs/SOURCES
@@ -7,6 +7,8 @@ a52.c
mpc.c
wavpack.c
alac.c
+#if MEMORYSIZE > 1
aac.c
+#endif
shorten.c
#endif
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 4bb2cfbe75..69c0e2fceb 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -359,6 +359,12 @@ bool dbg_flash_id(unsigned* p_manufacturer, unsigned* p_device,
(void)p_device;
(void)addr1;
(void)addr2;
+#elif CONFIG_CPU == PNX0101
+ /* TODO: Implement for iFP7xx */
+ (void)p_manufacturer;
+ (void)p_device;
+ (void)addr1;
+ (void)addr2;
#else
unsigned not_manu, not_id; /* read values before switching to ID mode */
unsigned manu, id; /* read values when in ID mode */
diff --git a/apps/gui/gwps.h b/apps/gui/gwps.h
index 610c3021bf..b6d06a645a 100644
--- a/apps/gui/gwps.h
+++ b/apps/gui/gwps.h
@@ -191,6 +191,25 @@
#define WPS_EXIT (BUTTON_PLAY | BUTTON_REPEAT)
#define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+
+/* TODO: Check WPS button assignments */
+
+#define WPS_NEXT (BUTTON_RIGHT | BUTTON_REL)
+#define WPS_NEXT_PRE BUTTON_RIGHT
+#define WPS_PREV (BUTTON_LEFT | BUTTON_REL)
+#define WPS_PREV_PRE BUTTON_LEFT
+#define WPS_FFWD (BUTTON_RIGHT | BUTTON_REPEAT)
+#define WPS_REW (BUTTON_LEFT | BUTTON_REPEAT)
+#define WPS_INCVOL BUTTON_UP
+#define WPS_DECVOL BUTTON_DOWN
+#define WPS_PAUSE BUTTON_PLAY
+/* #define WPS_MENU iFP7xx can't have both main menu and context menu in wps */
+#define WPS_BROWSE (BUTTON_SELECT | BUTTON_REL)
+#define WPS_BROWSE_PRE BUTTON_SELECT
+#define WPS_EXIT (BUTTON_PLAY | BUTTON_REPEAT)
+#define WPS_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
+
#endif
/* 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 3ae1b80dc2..4f02693127 100644
--- a/apps/gui/list.h
+++ b/apps/gui/list.h
@@ -69,6 +69,10 @@
#define LIST_NEXT BUTTON_SCROLL_FWD
#define LIST_PREV BUTTON_SCROLL_BACK
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define LIST_NEXT BUTTON_DOWN
+#define LIST_PREV BUTTON_UP
+
#elif CONFIG_KEYPAD == GMINI100_PAD
#define LIST_NEXT BUTTON_DOWN
#define LIST_PREV BUTTON_UP
diff --git a/apps/gui/select.h b/apps/gui/select.h
index b6a9afd55c..3f6dd1413b 100644
--- a/apps/gui/select.h
+++ b/apps/gui/select.h
@@ -61,6 +61,14 @@
#define SELECT_OK2 BUTTON_RIGHT
#define SELECT_CANCEL BUTTON_MENU
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define SELECT_INC BUTTON_UP
+#define SELECT_DEC BUTTON_DOWN
+#define SELECT_OK BUTTON_RIGHT
+#define SELECT_OK2 BUTTON_LEFT
+#define SELECT_CANCEL BUTTON_PLAY
+#define SELECT_CANCEL2 BUTTON_MODE
+
#elif CONFIG_KEYPAD == ONDIO_PAD
#define SELECT_INC BUTTON_UP
#define SELECT_DEC BUTTON_DOWN
diff --git a/apps/gui/yesno.h b/apps/gui/yesno.h
index 5399c88391..98bf84f504 100644
--- a/apps/gui/yesno.h
+++ b/apps/gui/yesno.h
@@ -25,6 +25,9 @@
#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
#define YESNO_OK BUTTON_RIGHT
+
+#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
+#define YESNO_OK BUTTON_RIGHT
#endif
enum yesno_res
{
diff --git a/apps/menu.h b/apps/menu.h
index 2d5c036a34..143933d833 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -78,6 +78,14 @@
#define MENU_EXIT_MENU BUTTON_MENU
#define MENU_ENTER BUTTON_RIGHT
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+
+#define MENU_NEXT BUTTON_DOWN
+#define MENU_PREV BUTTON_UP
+#define MENU_EXIT BUTTON_LEFT
+#define MENU_EXIT_MENU BUTTON_PLAY
+#define MENU_ENTER BUTTON_RIGHT
+
#endif
struct menu_item {
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile
index 98c66c6d46..45fa7a469d 100644
--- a/apps/plugins/Makefile
+++ b/apps/plugins/Makefile
@@ -43,8 +43,10 @@ SUBDIRS += searchengine databox
#for any recorder and iRiver model
ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET)))))
+ifneq (-DIRIVER_IFP7XX,$(TARGET))
SUBDIRS += rockboy
endif
+endif
.PHONY: $(SUBDIRS)
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index 6742b88218..98ffcc2be8 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -18,6 +18,7 @@ viewer.c
dict.c
metronome.c
+#ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugin building for iFP7xx */
#ifdef HAVE_LCD_BITMAP /* Recorder/Ondio models only */
solitaire.c
#ifndef HAVE_LCD_COLOR
@@ -89,4 +90,5 @@ wav2wv.c
midi2wav.c
#else
splitedit.c
+#endif /* iFP7xx */
#endif
diff --git a/apps/plugins/battery_test.c b/apps/plugins/battery_test.c
index b559ed53af..ac47b001f2 100644
--- a/apps/plugins/battery_test.c
+++ b/apps/plugins/battery_test.c
@@ -39,6 +39,8 @@
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define BATTERY_TEST_QUIT BUTTON_OFF
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define BATTERY_TEST_QUIT BUTTON_PLAY
#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
#define BATTERY_TEST_QUIT BUTTON_MENU
#endif
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 3291f3e32e..18ba68014f 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -74,6 +74,16 @@
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_MENU
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define CHC_QUIT BUTTON_PLAY
+#define CHC_STARTSTOP BUTTON_MODE
+#define CHC_RESET BUTTON_EQ
+#define CHC_MENU BUTTON_SELECT
+#define CHC_SETTINGS_INC BUTTON_RIGHT
+#define CHC_SETTINGS_DEC BUTTON_LEFT
+#define CHC_SETTINGS_OK BUTTON_SELECT
+#define CHC_SETTINGS_CANCEL BUTTON_PLAY
+
#endif
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index cebc36a016..e71d8b6e4e 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -92,6 +92,18 @@
#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL)
#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_PLAY)
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define CUBE_QUIT BUTTON_PLAY
+#define CUBE_X_INC BUTTON_RIGHT
+#define CUBE_X_DEC BUTTON_LEFT
+#define CUBE_Y_INC BUTTON_UP
+#define CUBE_Y_DEC BUTTON_DOWN
+#define CUBE_Z_INC BUTTON_MODE
+#define CUBE_Z_DEC BUTTON_EQ
+#define CUBE_MODE (BUTTON_SELECT | BUTTON_REPEAT)
+#define CUBE_PAUSE (BUTTON_SELECT | BUTTON_REL)
+#define CUBE_HIGHSPEED (BUTTON_MODE | BUTTON_EQ) /* TODO: this is impossible */
+
#endif
#ifdef HAVE_LCD_BITMAP
diff --git a/apps/plugins/databox/databox.c b/apps/plugins/databox/databox.c
index d9b513c378..ebed139020 100644
--- a/apps/plugins/databox/databox.c
+++ b/apps/plugins/databox/databox.c
@@ -35,6 +35,9 @@
#elif CONFIG_KEYPAD == PLAYER_PAD
#define DBX_SELECT BUTTON_PLAY
#define DBX_STOP BUTTON_STOP
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define DBX_SELECT BUTTON_SELECT
+#define DBX_STOP BUTTON_PLAY
#endif
#define MAX_TOKENS 70
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index aea7c44a6c..c432b564f4 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -104,6 +104,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
#define LP_QUIT BUTTON_MENU
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define LP_QUIT BUTTON_PLAY
#else
#define LP_QUIT BUTTON_OFF
#endif
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 739e8141a6..af5a3743c7 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -81,6 +81,12 @@
#define BEJEWELED_SELECT_PRE BUTTON_SELECT
#define BEJEWELED_RESUME (BUTTON_SELECT|BUTTON_PLAY)
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define BEJEWELED_QUIT BUTTON_PLAY
+#define BEJEWELED_START BUTTON_MODE
+#define BEJEWELED_SELECT BUTTON_SELECT
+#define BEJEWELED_RESUME BUTTON_EQ
+
#else
#error BEJEWELED: Unsupported keypad
#endif
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index ba5451410b..9472de9110 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -187,6 +187,12 @@ const unsigned char rockbox16x7[] = {
#define LP_INC_X BUTTON_RIGHT
#define LP_DEC_Y BUTTON_SCROLL_BACK
#define LP_INC_Y BUTTON_SCROLL_FWD
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define LP_QUIT BUTTON_PLAY
+#define LP_DEC_X BUTTON_LEFT
+#define LP_INC_X BUTTON_RIGHT
+#define LP_DEC_Y BUTTON_DOWN
+#define LP_INC_Y BUTTON_UP
#else
#define LP_QUIT BUTTON_OFF
#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index c1e156075b..f8c5445542 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -64,6 +64,15 @@
#define METRONOME_TAP BUTTON_SELECT
#define METRONOME_MSG_START "press play"
#define METRONOME_MSG_STOP "press pause"
+
+#elif (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
+#define METRONOME_QUIT BUTTON_MODE
+#define METRONOME_PLAYPAUSE BUTTON_PLAY
+#define METRONOME_VOL_UP BUTTON_UP
+#define METRONOME_VOL_DOWN BUTTON_DOWN
+#define METRONOME_TAP BUTTON_EQ
+#define METRONOME_MSG_START "press play"
+#define METRONOME_MSG_STOP "press pause"
#endif
#if CONFIG_REMOTE_KEYPAD == H100_REMOTE
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 0773236140..7a18bc2d42 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -55,6 +55,12 @@
#define MOSAIQUE_QUIT BUTTON_MENU
#define MOSAIQUE_SPEED BUTTON_SELECT
#define MOSAIQUE_RESTART BUTTON_PLAY
+
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define MOSAIQUE_QUIT BUTTON_PLAY
+#define MOSAIQUE_SPEED BUTTON_MODE
+#define MOSAIQUE_RESTART BUTTON_SELECT
+
#endif
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 84617b9b4e..c8ac88fb62 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -4,7 +4,7 @@
#ifdef CPU_COLDFIRE
OUTPUT_FORMAT(elf32-m68k)
-#elif CONFIG_CPU==PP5020
+#elif defined(CPU_ARM)
OUTPUT_FORMAT(elf32-littlearm)
#else
OUTPUT_FORMAT(elf32-sh)
@@ -32,6 +32,10 @@ OUTPUT_FORMAT(elf32-sh)
#define DRAMORIG 0x10000000
#define IRAMORIG 0x4000c000
#define IRAMSIZE 0xc000
+#elif CONFIG_CPU == PNX0101
+#define DRAMORIG 0x24000000
+#define IRAMORIG 0x408000
+#define IRAMSIZE 0x8000
#else
#define DRAMORIG 0x09000000 + STUBOFFSET
#endif
@@ -53,7 +57,7 @@ OUTPUT_FORMAT(elf32-sh)
MEMORY
{
PLUGIN_RAM : ORIGIN = THIS_ORIGIN, LENGTH = THIS_LENGTH
-#if defined(ARCH_IRIVER) || defined(ARCH_IPOD)
+#if defined(ARCH_IRIVER) || defined(ARCH_IPOD) || (CONFIG_CPU==PNX0101)
PLUGIN_IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
#endif
}
@@ -64,7 +68,7 @@ SECTIONS
{
KEEP(*(.entry))
*(.text*)
-#if CONFIG_CPU==PP5020
+#if (CONFIG_CPU==PP5020) || (CONFIG_CPU==PNX0101)
*(.glue_7)
*(.glue_7t)
#endif
@@ -79,7 +83,7 @@ SECTIONS
.data :
{
*(.data*)
-#if defined(ARCH_IRIVER) || defined(ARCH_IPOD)
+#if defined(ARCH_IRIVER) || defined(ARCH_IPOD) || (CONFIG_CPU==PNX0101)
iramcopy = .;
#endif
} > PLUGIN_RAM
@@ -89,7 +93,7 @@ SECTIONS
*(.eh_frame)
}
-#if defined(ARCH_IRIVER) || defined(ARCH_IPOD)
+#if defined(ARCH_IRIVER) || defined(ARCH_IPOD) || (CONFIG_CPU==PNX0101)
.iram IRAMORIG : AT ( iramcopy)
{
iramstart = .;
diff --git a/apps/plugins/rockboy/sys_rockbox.c b/apps/plugins/rockboy/sys_rockbox.c
index b8bb65e6fc..53fe19b199 100644
--- a/apps/plugins/rockboy/sys_rockbox.c
+++ b/apps/plugins/rockboy/sys_rockbox.c
@@ -75,6 +75,13 @@ void joy_close(void)
#define ROCKBOY_PAD_SELECT BUTTON_PLAY
#define ROCKBOY_MENU BUTTON_OFF
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define ROCKBOY_PAD_A BUTTON_PLAY
+#define ROCKBOY_PAD_B BUTTON_EQ
+#define ROCKBOY_PAD_START BUTTON_MODE
+#define ROCKBOY_PAD_SELECT (BUTTON_SELECT | BUTTON_REL)
+#define ROCKBOY_MENU (BUTTON_SELECT | BUTTON_REPEAT)
+
#endif
unsigned int oldbuttonstate = 0, newbuttonstate,holdbutton;
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index ec4a240894..7fd0c8a3d6 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -36,6 +36,8 @@
#define SNOW_QUIT BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
#define SNOW_QUIT BUTTON_MENU
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define SNOW_QUIT BUTTON_PLAY
#else
#define SNOW_QUIT BUTTON_OFF
#endif
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 0dfac24c6d..e1b8b6fc21 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -30,6 +30,8 @@ static int fontwidth, fontheight;
#define STATS_STOP BUTTON_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
#define STATS_STOP BUTTON_MENU
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define STATS_STOP BUTTON_PLAY
#else
#define STATS_STOP BUTTON_OFF
#endif
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 9df064d36f..4a1382ef65 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -68,6 +68,13 @@
#define STOPWATCH_LAP_TIMER BUTTON_RIGHT
#define STOPWATCH_SCROLL_UP BUTTON_SCROLL_FWD
#define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_BACK
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define STOPWATCH_QUIT BUTTON_PLAY
+#define STOPWATCH_START_STOP BUTTON_MODE
+#define STOPWATCH_RESET_TIMER BUTTON_EQ
+#define STOPWATCH_LAP_TIMER BUTTON_SELECT
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index 60438c9dc9..823072e145 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -131,6 +131,17 @@
#define VIEWER_MODE_PAGE (BUTTON_SELECT | BUTTON_LEFT | BUTTON_MENU)
#define VIEWER_MODE_SCROLLBAR (BUTTON_SELECT | BUTTON_LEFT | BUTTON_RIGHT)
+/* iFP7xx keys */
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define VIEWER_QUIT BUTTON_PLAY
+#define VIEWER_PAGE_UP BUTTON_UP
+#define VIEWER_PAGE_DOWN BUTTON_DOWN
+#define VIEWER_SCREEN_LEFT BUTTON_LEFT
+#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
+#define VIEWER_MODE_WRAP (BUTTON_EQ | BUTTON_REL)
+#define VIEWER_MODE_LINE (BUTTON_EQ | BUTTON_REPEAT)
+#define VIEWER_MODE_WIDTH BUTTON_MODE
+
#endif
enum {
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c
index 5f56274026..3cff78bbc5 100644
--- a/apps/recorder/keyboard.c
+++ b/apps/recorder/keyboard.c
@@ -114,6 +114,20 @@
#define KBD_UP BUTTON_SCROLL_BACK
#define KBD_DOWN BUTTON_SCROLL_FWD
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+
+/* TODO: Check keyboard mappings */
+
+#define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */
+#define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */
+#define KBD_SELECT_PRE BUTTON_SELECT
+#define KBD_DONE BUTTON_MODE
+#define KBD_ABORT BUTTON_PLAY
+#define KBD_LEFT BUTTON_LEFT
+#define KBD_RIGHT BUTTON_RIGHT
+#define KBD_UP BUTTON_UP
+#define KBD_DOWN BUTTON_DOWN
+
#endif
#if KEYBOARD_PAGES == 1
diff --git a/apps/settings.h b/apps/settings.h
index 263147c92c..2490635620 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -101,6 +101,12 @@
#define SETTINGS_NEXT BUTTON_RIGHT
#define SETTINGS_ACCEPT BUTTON_PLAY
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+#define SETTINGS_INC BUTTON_RIGHT
+#define SETTINGS_DEC BUTTON_LEFT
+#define SETTINGS_OK BUTTON_SELECT
+#define SETTINGS_CANCEL BUTTON_PLAY
+
#endif
/* data structures */
diff --git a/apps/tree.h b/apps/tree.h
index 05800ae68a..ad4a4a91aa 100644
--- a/apps/tree.h
+++ b/apps/tree.h
@@ -150,6 +150,20 @@
#define TREE_WPS_PRE BUTTON_MENU
#define TREE_CONTEXT (BUTTON_SELECT | BUTTON_REPEAT)
+#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
+
+#define TREE_NEXT BUTTON_DOWN
+#define TREE_PREV BUTTON_UP
+#define TREE_EXIT BUTTON_LEFT
+#define TREE_ABORT BUTTON_PLAY
+#define TREE_RUN (BUTTON_RIGHT | BUTTON_REL)
+#define TREE_RUN_PRE BUTTON_RIGHT
+#define TREE_MENU (BUTTON_SELECT | BUTTON_REPEAT)
+#define TREE_MENU_PRE BUTTON_SELECT
+#define TREE_WPS (BUTTON_SELECT | BUTTON_REL)
+#define TREE_WPS_PRE BUTTON_SELECT
+#define TREE_CONTEXT (BUTTON_RIGHT | BUTTON_REPEAT)
+#define TREE_POWER_BTN (BUTTON_PLAY | BUTTON_REPEAT)
#endif
struct entry {