summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorTeruaki Kawashima <teru@rockbox.org>2011-01-17 13:47:57 +0000
committerTeruaki Kawashima <teru@rockbox.org>2011-01-17 13:47:57 +0000
commit27424a89389123c312a967efcaaf72c51c3e9307 (patch)
treec5db20e31dc91878a5c9bbccc116efd9b7d5a841 /apps
parent0ecb0fe6b1f5ea2078d01f24a9ac35123ef55349 (diff)
downloadrockbox-27424a89389123c312a967efcaaf72c51c3e9307.tar.gz
rockbox-27424a89389123c312a967efcaaf72c51c3e9307.tar.bz2
rockbox-27424a89389123c312a967efcaaf72c51c3e9307.zip
image viewer:
* move button definitions to separate file. * apply slideshow timeout in ask_and_get_audio_buffer() if in slideshow mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29071 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/imageviewer/imageviewer.c29
-rw-r--r--apps/plugins/imageviewer/imageviewer.h362
-rw-r--r--apps/plugins/imageviewer/imageviewer_button.h389
3 files changed, 414 insertions, 366 deletions
diff --git a/apps/plugins/imageviewer/imageviewer.c b/apps/plugins/imageviewer/imageviewer.c
index 01b9f31be1..37610b7bf6 100644
--- a/apps/plugins/imageviewer/imageviewer.c
+++ b/apps/plugins/imageviewer/imageviewer.c
@@ -28,10 +28,10 @@
#include <lib/helper.h>
#include <lib/configfile.h>
#include "imageviewer.h"
+#include "imageviewer_button.h"
#include "image_decoder.h"
-
#ifdef USEGSLIB
GREY_INFO_STRUCT
#endif
@@ -344,6 +344,8 @@ static int show_menu(void) /* return 1 to quit */
#ifdef USE_PLUG_BUF
static int ask_and_get_audio_buffer(const char *filename)
{
+ int button;
+ int lastbutton = BUTTON_NONE;
rb->lcd_setfont(FONT_SYSFIXED);
rb->lcd_clear_display();
rb->lcd_puts(0, 0, rb->strrchr(filename,'/')+1);
@@ -359,10 +361,18 @@ static int ask_and_get_audio_buffer(const char *filename)
while (1)
{
- int button = rb->button_get(true);
+ if (iv_api.slideshow_enabled)
+ button = rb->button_get_w_tmo(settings.ss_timeout * HZ);
+ else
+ button = rb->button_get(true);
+
switch(button)
{
case IMGVIEW_ZOOM_IN:
+#ifdef IMGVIEW_ZOOM_PRE
+ if (lastbutton != IMGVIEW_ZOOM_PRE)
+ break;
+#endif
iv_api.plug_buf = false;
buf = rb->plugin_get_audio_buffer(&buf_size);
/*try again this file, now using the audio buffer */
@@ -391,11 +401,22 @@ static int ask_and_get_audio_buffer(const char *filename)
return change_filename(DIR_NEXT);
}
break;
+ case BUTTON_NONE:
+ if(entries>1)
+ {
+ rb->lcd_clear_display();
+ return change_filename(direction);
+ }
+ break;
+
default:
if(rb->default_event_handler_ex(button, cleanup, NULL)
== SYS_USB_CONNECTED)
return PLUGIN_USB_CONNECTED;
}
+
+ if (button != BUTTON_NONE)
+ lastbutton = button;
}
}
#endif /* USE_PLUG_BUF */
@@ -771,7 +792,7 @@ static int load_and_show(char* filename, struct image_info *info)
return change_filename(direction);
}
else if (status == PLUGIN_ABORT) {
- rb->splash(HZ, "aborted");
+ rb->splash(HZ, "Aborted");
return PLUGIN_OK;
}
@@ -793,7 +814,7 @@ static int load_and_show(char* filename, struct image_info *info)
else
#endif
{
- rb->splash(HZ, "too large");
+ rb->splash(HZ, "Too large");
file_pt[curfile] = NULL;
return change_filename(direction);
}
diff --git a/apps/plugins/imageviewer/imageviewer.h b/apps/plugins/imageviewer/imageviewer.h
index f35c1c7e6d..9cc1a9117a 100644
--- a/apps/plugins/imageviewer/imageviewer.h
+++ b/apps/plugins/imageviewer/imageviewer.h
@@ -24,368 +24,6 @@
#include "plugin.h"
-/* variable button definitions */
-#if CONFIG_KEYPAD == RECORDER_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_PLAY
-#define IMGVIEW_ZOOM_OUT BUTTON_ON
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_F3
-#define IMGVIEW_PREVIOUS BUTTON_F2
-#define IMGVIEW_MENU BUTTON_OFF
-
-#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_SELECT
-#define IMGVIEW_ZOOM_OUT BUTTON_ON
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_F3
-#define IMGVIEW_PREVIOUS BUTTON_F2
-#define IMGVIEW_MENU BUTTON_OFF
-
-#elif CONFIG_KEYPAD == ONDIO_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_MENU
-#define IMGVIEW_ZOOM_IN (BUTTON_MENU | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_MENU | BUTTON_DOWN)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT (BUTTON_MENU | BUTTON_RIGHT)
-#define IMGVIEW_PREVIOUS (BUTTON_MENU | BUTTON_LEFT)
-#define IMGVIEW_MENU BUTTON_OFF
-
-#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
- (CONFIG_KEYPAD == IRIVER_H300_PAD)
-#define IMGVIEW_ZOOM_IN BUTTON_SELECT
-#define IMGVIEW_ZOOM_OUT BUTTON_MODE
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#if (CONFIG_KEYPAD == IRIVER_H100_PAD)
-#define IMGVIEW_NEXT BUTTON_ON
-#define IMGVIEW_PREVIOUS BUTTON_REC
-#else
-#define IMGVIEW_NEXT BUTTON_REC
-#define IMGVIEW_PREVIOUS BUTTON_ON
-#endif
-#define IMGVIEW_MENU BUTTON_OFF
-#define IMGVIEW_RC_MENU BUTTON_RC_STOP
-
-#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
- (CONFIG_KEYPAD == IPOD_1G2G_PAD)
-#define IMGVIEW_ZOOM_IN BUTTON_SCROLL_FWD
-#define IMGVIEW_ZOOM_OUT BUTTON_SCROLL_BACK
-#define IMGVIEW_UP BUTTON_MENU
-#define IMGVIEW_DOWN BUTTON_PLAY
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT)
-#define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT)
-#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU)
-#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY)
-
-#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_PLAY
-#define IMGVIEW_PREVIOUS BUTTON_REC
-#define IMGVIEW_MENU BUTTON_POWER
-
-#elif CONFIG_KEYPAD == GIGABEAT_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT (BUTTON_A | BUTTON_RIGHT)
-#define IMGVIEW_PREVIOUS (BUTTON_A | BUTTON_LEFT)
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == SANSA_E200_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_SCROLL_FWD
-#define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
-#define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
-#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
-#define IMGVIEW_MENU BUTTON_POWER
-#define IMGVIEW_SLIDE_SHOW BUTTON_REC
-
-#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_SCROLL_FWD
-#define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
-#define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
-#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
-#define IMGVIEW_MENU (BUTTON_HOME|BUTTON_REPEAT)
-
-#elif CONFIG_KEYPAD == SANSA_C200_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_VOL_UP
-#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
-#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
-#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
-#define IMGVIEW_MENU BUTTON_POWER
-#define IMGVIEW_SLIDE_SHOW BUTTON_REC
-
-#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_VOL_UP
-#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
-#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
-#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
-#define IMGVIEW_MENU BUTTON_POWER
-#define IMGVIEW_SLIDE_SHOW BUTTON_HOME
-
-#elif CONFIG_KEYPAD == SANSA_M200_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
-#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_VOL_UP
-#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
-#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
-#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
-#define IMGVIEW_MENU BUTTON_POWER
-#define IMGVIEW_SLIDE_SHOW (BUTTON_SELECT | BUTTON_UP)
-
-#elif CONFIG_KEYPAD == IRIVER_H10_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_PLAY
-#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_SCROLL_UP
-#define IMGVIEW_DOWN BUTTON_SCROLL_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_FF
-#define IMGVIEW_PREVIOUS BUTTON_REW
-#define IMGVIEW_MENU BUTTON_POWER
-
-#elif CONFIG_KEYPAD == MROBE500_PAD
-#define IMGVIEW_MENU BUTTON_POWER
-
-#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_NEXT
-#define IMGVIEW_PREVIOUS BUTTON_PREV
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_BACK
-
-#elif CONFIG_KEYPAD == MROBE100_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_SELECT
-#define IMGVIEW_ZOOM_OUT BUTTON_PLAY
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT (BUTTON_DISPLAY | BUTTON_RIGHT)
-#define IMGVIEW_PREVIOUS (BUTTON_DISPLAY | BUTTON_LEFT)
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
-#define IMGVIEW_ZOOM_PRE BUTTON_RC_PLAY
-#define IMGVIEW_ZOOM_IN (BUTTON_RC_PLAY|BUTTON_REL)
-#define IMGVIEW_ZOOM_OUT (BUTTON_RC_PLAY|BUTTON_REPEAT)
-#define IMGVIEW_UP BUTTON_RC_VOL_UP
-#define IMGVIEW_DOWN BUTTON_RC_VOL_DOWN
-#define IMGVIEW_LEFT BUTTON_RC_REW
-#define IMGVIEW_RIGHT BUTTON_RC_FF
-#define IMGVIEW_NEXT BUTTON_RC_MODE
-#define IMGVIEW_PREVIOUS BUTTON_RC_MENU
-#define IMGVIEW_MENU BUTTON_RC_REC
-
-#elif CONFIG_KEYPAD == COWON_D2_PAD
-
-#elif CONFIG_KEYPAD == IAUDIO67_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOLUP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOLDOWN
-#define IMGVIEW_UP BUTTON_STOP
-#define IMGVIEW_DOWN BUTTON_PLAY
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT (BUTTON_PLAY|BUTTON_VOLUP)
-#define IMGVIEW_PREVIOUS (BUTTON_PLAY|BUTTON_VOLDOWN)
-#define IMGVIEW_MENU BUTTON_MENU
-
-#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
-
-#define IMGVIEW_ZOOM_IN BUTTON_PLAY
-#define IMGVIEW_ZOOM_OUT BUTTON_CUSTOM
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_SELECT
-#define IMGVIEW_PREVIOUS BUTTON_BACK
-#define IMGVIEW_MENU BUTTON_MENU
-
-#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_VIEW
-#define IMGVIEW_PREVIOUS BUTTON_PLAYLIST
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_NEXT
-#define IMGVIEW_PREVIOUS BUTTON_PREV
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
-#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
-#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_PREV
-#define IMGVIEW_RIGHT BUTTON_NEXT
-#define IMGVIEW_NEXT BUTTON_RIGHT
-#define IMGVIEW_PREVIOUS BUTTON_LEFT
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_POWER
-
-#elif CONFIG_KEYPAD == ONDAVX747_PAD
-#elif CONFIG_KEYPAD == ONDAVX777_PAD
-
-#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
-#define IMGVIEW_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
-#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY|BUTTON_DOWN)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_LEFT
-#define IMGVIEW_RIGHT BUTTON_RIGHT
-#define IMGVIEW_NEXT BUTTON_FFWD
-#define IMGVIEW_PREVIOUS BUTTON_REW
-#define IMGVIEW_MENU_PRE BUTTON_PLAY
-#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REL)
-#define IMGVIEW_QUIT BUTTON_REC
-
-#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
-#define IMGVIEW_ZOOM_IN (BUTTON_REC | BUTTON_UP)
-#define IMGVIEW_ZOOM_OUT (BUTTON_REC | BUTTON_DOWN)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_PREV
-#define IMGVIEW_RIGHT BUTTON_NEXT
-#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
-#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
-#define IMGVIEW_MENU BUTTON_MENU
-#define IMGVIEW_QUIT BUTTON_CANCEL
-
-#elif CONFIG_KEYPAD == MPIO_HD200_PAD
-#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP)
-#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN)
-#define IMGVIEW_UP BUTTON_REW
-#define IMGVIEW_DOWN BUTTON_FF
-#define IMGVIEW_LEFT BUTTON_VOL_DOWN
-#define IMGVIEW_RIGHT BUTTON_VOL_UP
-#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_FF)
-#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_REW)
-#define IMGVIEW_MENU BUTTON_FUNC
-#define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY)
-
-#elif CONFIG_KEYPAD == MPIO_HD300_PAD
-#define IMGVIEW_ZOOM_IN (BUTTON_ENTER | BUTTON_UP)
-#define IMGVIEW_ZOOM_OUT (BUTTON_ENTER | BUTTON_DOWN)
-#define IMGVIEW_UP BUTTON_UP
-#define IMGVIEW_DOWN BUTTON_DOWN
-#define IMGVIEW_LEFT BUTTON_REW
-#define IMGVIEW_RIGHT BUTTON_FF
-#define IMGVIEW_NEXT (BUTTON_FF | BUTTON_ENTER)
-#define IMGVIEW_PREVIOUS (BUTTON_REW | BUTTON_ENTER)
-#define IMGVIEW_MENU (BUTTON_ENTER | BUTTON_REPEAT)
-#define IMGVIEW_QUIT BUTTON_REC
-
-#else
-#error No keymap defined!
-#endif
-
-#ifdef HAVE_TOUCHSCREEN
-#ifndef IMGVIEW_UP
-#define IMGVIEW_UP BUTTON_TOPMIDDLE
-#endif
-#ifndef IMGVIEW_DOWN
-#define IMGVIEW_DOWN BUTTON_BOTTOMMIDDLE
-#endif
-#ifndef IMGVIEW_LEFT
-#define IMGVIEW_LEFT BUTTON_MIDLEFT
-#endif
-#ifndef IMGVIEW_RIGHT
-#define IMGVIEW_RIGHT BUTTON_MIDRIGHT
-#endif
-#ifndef IMGVIEW_ZOOM_IN
-#define IMGVIEW_ZOOM_IN BUTTON_TOPRIGHT
-#endif
-#ifndef IMGVIEW_ZOOM_OUT
-#define IMGVIEW_ZOOM_OUT BUTTON_TOPLEFT
-#endif
-#ifndef IMGVIEW_MENU
-#define IMGVIEW_MENU (BUTTON_CENTER|BUTTON_REL)
-#endif
-#ifndef IMGVIEW_NEXT
-#define IMGVIEW_NEXT BUTTON_BOTTOMRIGHT
-#endif
-#ifndef IMGVIEW_PREVIOUS
-#define IMGVIEW_PREVIOUS BUTTON_BOTTOMLEFT
-#endif
-#endif
-
/* different graphics libraries */
#if LCD_DEPTH < 8
#define USEGSLIB
diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h
new file mode 100644
index 0000000000..3636e44689
--- /dev/null
+++ b/apps/plugins/imageviewer/imageviewer_button.h
@@ -0,0 +1,389 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * user intereface of image viewer.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef _IMAGE_VIEWER_BUTTONS_H
+#define _IMAGE_VIEWER_BUTTONS_H
+
+#include "plugin.h"
+
+/* variable button definitions */
+#if CONFIG_KEYPAD == RECORDER_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_PLAY
+#define IMGVIEW_ZOOM_OUT BUTTON_ON
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_F3
+#define IMGVIEW_PREVIOUS BUTTON_F2
+#define IMGVIEW_MENU BUTTON_OFF
+
+#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_SELECT
+#define IMGVIEW_ZOOM_OUT BUTTON_ON
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_F3
+#define IMGVIEW_PREVIOUS BUTTON_F2
+#define IMGVIEW_MENU BUTTON_OFF
+
+#elif CONFIG_KEYPAD == ONDIO_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_MENU
+#define IMGVIEW_ZOOM_IN (BUTTON_MENU | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_MENU | BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_MENU | BUTTON_RIGHT)
+#define IMGVIEW_PREVIOUS (BUTTON_MENU | BUTTON_LEFT)
+#define IMGVIEW_MENU BUTTON_OFF
+
+#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
+ (CONFIG_KEYPAD == IRIVER_H300_PAD)
+#define IMGVIEW_ZOOM_IN BUTTON_SELECT
+#define IMGVIEW_ZOOM_OUT BUTTON_MODE
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#if (CONFIG_KEYPAD == IRIVER_H100_PAD)
+#define IMGVIEW_NEXT BUTTON_ON
+#define IMGVIEW_PREVIOUS BUTTON_REC
+#else
+#define IMGVIEW_NEXT BUTTON_REC
+#define IMGVIEW_PREVIOUS BUTTON_ON
+#endif
+#define IMGVIEW_MENU BUTTON_OFF
+#define IMGVIEW_RC_MENU BUTTON_RC_STOP
+
+#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
+ (CONFIG_KEYPAD == IPOD_1G2G_PAD)
+#define IMGVIEW_ZOOM_IN BUTTON_SCROLL_FWD
+#define IMGVIEW_ZOOM_OUT BUTTON_SCROLL_BACK
+#define IMGVIEW_UP BUTTON_MENU
+#define IMGVIEW_DOWN BUTTON_PLAY
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_SELECT | BUTTON_RIGHT)
+#define IMGVIEW_PREVIOUS (BUTTON_SELECT | BUTTON_LEFT)
+#define IMGVIEW_MENU (BUTTON_SELECT | BUTTON_MENU)
+#define IMGVIEW_QUIT (BUTTON_SELECT | BUTTON_PLAY)
+
+#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_PLAY
+#define IMGVIEW_PREVIOUS BUTTON_REC
+#define IMGVIEW_MENU BUTTON_POWER
+
+#elif CONFIG_KEYPAD == GIGABEAT_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_A | BUTTON_RIGHT)
+#define IMGVIEW_PREVIOUS (BUTTON_A | BUTTON_LEFT)
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_POWER
+
+#elif CONFIG_KEYPAD == SANSA_E200_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_SCROLL_FWD
+#define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
+#define IMGVIEW_MENU BUTTON_POWER
+#define IMGVIEW_SLIDE_SHOW BUTTON_REC
+
+#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_SCROLL_FWD
+#define IMGVIEW_NEXT_REPEAT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_SCROLL_BACK
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
+#define IMGVIEW_MENU (BUTTON_HOME|BUTTON_REPEAT)
+
+#elif CONFIG_KEYPAD == SANSA_C200_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_VOL_UP
+#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
+#define IMGVIEW_MENU BUTTON_POWER
+#define IMGVIEW_SLIDE_SHOW BUTTON_REC
+
+#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_VOL_UP
+#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
+#define IMGVIEW_MENU BUTTON_POWER
+#define IMGVIEW_SLIDE_SHOW BUTTON_HOME
+
+#elif CONFIG_KEYPAD == SANSA_M200_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_SELECT
+#define IMGVIEW_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_VOL_UP
+#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
+#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
+#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
+#define IMGVIEW_MENU BUTTON_POWER
+#define IMGVIEW_SLIDE_SHOW (BUTTON_SELECT | BUTTON_UP)
+
+#elif CONFIG_KEYPAD == IRIVER_H10_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_PLAY
+#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_SCROLL_UP
+#define IMGVIEW_DOWN BUTTON_SCROLL_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_FF
+#define IMGVIEW_PREVIOUS BUTTON_REW
+#define IMGVIEW_MENU BUTTON_POWER
+
+#elif CONFIG_KEYPAD == MROBE500_PAD
+#define IMGVIEW_MENU BUTTON_POWER
+
+#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_NEXT
+#define IMGVIEW_PREVIOUS BUTTON_PREV
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_BACK
+
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_SELECT
+#define IMGVIEW_ZOOM_OUT BUTTON_PLAY
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_DISPLAY | BUTTON_RIGHT)
+#define IMGVIEW_PREVIOUS (BUTTON_DISPLAY | BUTTON_LEFT)
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_POWER
+
+#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
+#define IMGVIEW_ZOOM_PRE BUTTON_RC_PLAY
+#define IMGVIEW_ZOOM_IN (BUTTON_RC_PLAY|BUTTON_REL)
+#define IMGVIEW_ZOOM_OUT (BUTTON_RC_PLAY|BUTTON_REPEAT)
+#define IMGVIEW_UP BUTTON_RC_VOL_UP
+#define IMGVIEW_DOWN BUTTON_RC_VOL_DOWN
+#define IMGVIEW_LEFT BUTTON_RC_REW
+#define IMGVIEW_RIGHT BUTTON_RC_FF
+#define IMGVIEW_NEXT BUTTON_RC_MODE
+#define IMGVIEW_PREVIOUS BUTTON_RC_MENU
+#define IMGVIEW_MENU BUTTON_RC_REC
+
+#elif CONFIG_KEYPAD == COWON_D2_PAD
+
+#elif CONFIG_KEYPAD == IAUDIO67_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOLUP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOLDOWN
+#define IMGVIEW_UP BUTTON_STOP
+#define IMGVIEW_DOWN BUTTON_PLAY
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT (BUTTON_PLAY|BUTTON_VOLUP)
+#define IMGVIEW_PREVIOUS (BUTTON_PLAY|BUTTON_VOLDOWN)
+#define IMGVIEW_MENU BUTTON_MENU
+
+#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
+
+#define IMGVIEW_ZOOM_IN BUTTON_PLAY
+#define IMGVIEW_ZOOM_OUT BUTTON_CUSTOM
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_SELECT
+#define IMGVIEW_PREVIOUS BUTTON_BACK
+#define IMGVIEW_MENU BUTTON_MENU
+
+#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_VIEW
+#define IMGVIEW_PREVIOUS BUTTON_PLAYLIST
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_POWER
+
+#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_NEXT
+#define IMGVIEW_PREVIOUS BUTTON_PREV
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_POWER
+
+#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
+#define IMGVIEW_ZOOM_IN BUTTON_VOL_UP
+#define IMGVIEW_ZOOM_OUT BUTTON_VOL_DOWN
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_PREV
+#define IMGVIEW_RIGHT BUTTON_NEXT
+#define IMGVIEW_NEXT BUTTON_RIGHT
+#define IMGVIEW_PREVIOUS BUTTON_LEFT
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_POWER
+
+#elif CONFIG_KEYPAD == ONDAVX747_PAD
+#elif CONFIG_KEYPAD == ONDAVX777_PAD
+
+#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_PLAY|BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY|BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_LEFT
+#define IMGVIEW_RIGHT BUTTON_RIGHT
+#define IMGVIEW_NEXT BUTTON_FFWD
+#define IMGVIEW_PREVIOUS BUTTON_REW
+#define IMGVIEW_MENU_PRE BUTTON_PLAY
+#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REL)
+#define IMGVIEW_QUIT BUTTON_REC
+
+#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_REC | BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_REC | BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_PREV
+#define IMGVIEW_RIGHT BUTTON_NEXT
+#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_NEXT)
+#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_PREV)
+#define IMGVIEW_MENU BUTTON_MENU
+#define IMGVIEW_QUIT BUTTON_CANCEL
+
+#elif CONFIG_KEYPAD == MPIO_HD200_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_REC|BUTTON_VOL_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_REC|BUTTON_VOL_DOWN)
+#define IMGVIEW_UP BUTTON_REW
+#define IMGVIEW_DOWN BUTTON_FF
+#define IMGVIEW_LEFT BUTTON_VOL_DOWN
+#define IMGVIEW_RIGHT BUTTON_VOL_UP
+#define IMGVIEW_NEXT (BUTTON_REC | BUTTON_FF)
+#define IMGVIEW_PREVIOUS (BUTTON_REC | BUTTON_REW)
+#define IMGVIEW_MENU BUTTON_FUNC
+#define IMGVIEW_QUIT (BUTTON_REC | BUTTON_PLAY)
+
+#elif CONFIG_KEYPAD == MPIO_HD300_PAD
+#define IMGVIEW_ZOOM_IN (BUTTON_ENTER | BUTTON_UP)
+#define IMGVIEW_ZOOM_OUT (BUTTON_ENTER | BUTTON_DOWN)
+#define IMGVIEW_UP BUTTON_UP
+#define IMGVIEW_DOWN BUTTON_DOWN
+#define IMGVIEW_LEFT BUTTON_REW
+#define IMGVIEW_RIGHT BUTTON_FF
+#define IMGVIEW_NEXT (BUTTON_FF | BUTTON_ENTER)
+#define IMGVIEW_PREVIOUS (BUTTON_REW | BUTTON_ENTER)
+#define IMGVIEW_MENU (BUTTON_ENTER | BUTTON_REPEAT)
+#define IMGVIEW_QUIT BUTTON_REC
+
+#else
+#error No keymap defined!
+#endif
+
+#ifdef HAVE_TOUCHSCREEN
+#ifndef IMGVIEW_UP
+#define IMGVIEW_UP BUTTON_TOPMIDDLE
+#endif
+#ifndef IMGVIEW_DOWN
+#define IMGVIEW_DOWN BUTTON_BOTTOMMIDDLE
+#endif
+#ifndef IMGVIEW_LEFT
+#define IMGVIEW_LEFT BUTTON_MIDLEFT
+#endif
+#ifndef IMGVIEW_RIGHT
+#define IMGVIEW_RIGHT BUTTON_MIDRIGHT
+#endif
+#ifndef IMGVIEW_ZOOM_IN
+#define IMGVIEW_ZOOM_IN BUTTON_TOPRIGHT
+#endif
+#ifndef IMGVIEW_ZOOM_OUT
+#define IMGVIEW_ZOOM_OUT BUTTON_TOPLEFT
+#endif
+#ifndef IMGVIEW_MENU
+#define IMGVIEW_MENU (BUTTON_CENTER|BUTTON_REL)
+#endif
+#ifndef IMGVIEW_NEXT
+#define IMGVIEW_NEXT BUTTON_BOTTOMRIGHT
+#endif
+#ifndef IMGVIEW_PREVIOUS
+#define IMGVIEW_PREVIOUS BUTTON_BOTTOMLEFT
+#endif
+#endif
+
+#endif /* _IMAGE_VIEWER_BUTTONS_H */