rockbox/apps/plugins/text_viewer/tv_button.h

615 lines
21 KiB
C
Raw Permalink Normal View History

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2002 Gilles Roux
* 2003 Garrett Derner
* 2010 Yoshihisa Uchida
*
* 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 PLUGIN_TEXT_VIEWER_BUTTON_H
#define PLUGIN_TEXT_VIEWER_BUTTON_H
/* variable button definitions */
/*
* [required]
* TV_QUIT exit txit viewer
* TV_SCROLL_UP scroll up
* TV_SCROLL_DOWN scroll down
* TV_SCREEN_LEFT scroll left (when wide mode)/scroll previous page (when narrow mode)
* TV_SCREEN_RIGHT scroll right (when wide mode)/scroll next page (when narrow mode)
* TV_MENU enter menu
* TV_AUTOSCROLL toggle autoscroll
* TV_BOOKMARK set/reset bookmark
*
* [optional]
* TV_RC_QUIT exit text plugin (remote key only)
* TV_LINE_UP one line up
* TV_LINE_DOWN one line down
* TV_COLUMN_LEFT one column left
* TV_COLUMN_RIGHT one column right
*/
/* iRiver H1x0 && H3x0 keys */
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD)
#define TV_QUIT BUTTON_OFF
#define TV_RC_QUIT BUTTON_RC_STOP
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MODE
#define TV_AUTOSCROLL BUTTON_SELECT
#define TV_LINE_UP (BUTTON_ON | BUTTON_UP)
#define TV_LINE_DOWN (BUTTON_ON | BUTTON_DOWN)
#define TV_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT)
#define TV_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT)
#define TV_BOOKMARK (BUTTON_ON | BUTTON_SELECT)
/* iPods */
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define TV_QUIT_PRE BUTTON_SELECT
#define TV_QUIT (BUTTON_SELECT | BUTTON_MENU)
#define TV_SCROLL_UP BUTTON_SCROLL_BACK
#define TV_SCROLL_DOWN BUTTON_SCROLL_FWD
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_SELECT
/* iAudio X5/M5 keys */
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_REC
/* Gigabeat F/X keys */
#elif CONFIG_KEYPAD == GIGABEAT_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL_PRE BUTTON_A
#define TV_AUTOSCROLL (BUTTON_A|BUTTON_REL)
#define TV_LINE_UP (BUTTON_A|BUTTON_UP)
#define TV_LINE_DOWN (BUTTON_A|BUTTON_DOWN)
#define TV_COLUMN_LEFT (BUTTON_A|BUTTON_LEFT)
#define TV_COLUMN_RIGHT (BUTTON_A|BUTTON_RIGHT)
#define TV_BOOKMARK BUTTON_SELECT
/* Sansa E200 keys */
#elif CONFIG_KEYPAD == SANSA_E200_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_REC
#define TV_LINE_UP BUTTON_SCROLL_BACK
#define TV_LINE_DOWN BUTTON_SCROLL_FWD
#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
/* Sansa Fuze keys */
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
#define TV_QUIT (BUTTON_HOME|BUTTON_REPEAT)
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT|BUTTON_REPEAT
#define TV_AUTOSCROLL BUTTON_SELECT|BUTTON_DOWN
#define TV_LINE_UP BUTTON_SCROLL_BACK
#define TV_LINE_DOWN BUTTON_SCROLL_FWD
#define TV_BOOKMARK BUTTON_SELECT
/* Sansa C200 keys */
#elif CONFIG_KEYPAD == SANSA_C200_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_REC
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_BOOKMARK (BUTTON_DOWN | BUTTON_SELECT)
/* Sansa Clip keys */
#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_HOME
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
/* Sansa M200 keys */
#elif CONFIG_KEYPAD == SANSA_M200_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU (BUTTON_SELECT | BUTTON_UP)
#define TV_AUTOSCROLL (BUTTON_SELECT | BUTTON_REL)
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
/* iriver H10 keys */
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_SCROLL_UP
#define TV_SCROLL_DOWN BUTTON_SCROLL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_REW
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_FF
/*M-Robe 500 keys */
#elif CONFIG_KEYPAD == MROBE500_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_RC_PLAY
#define TV_SCROLL_DOWN BUTTON_RC_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_RC_HEART
#define TV_AUTOSCROLL BUTTON_RC_MODE
#define TV_BOOKMARK BUTTON_CENTER
/*Gigabeat S keys */
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define TV_QUIT BUTTON_BACK
#define TV_SCROLL_UP BUTTON_PREV
#define TV_SCROLL_DOWN BUTTON_NEXT
#define TV_SCREEN_LEFT (BUTTON_PLAY | BUTTON_LEFT)
#define TV_SCREEN_RIGHT (BUTTON_PLAY | BUTTON_RIGHT)
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL_PRE BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_PLAY|BUTTON_REL)
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_COLUMN_LEFT BUTTON_LEFT
#define TV_COLUMN_RIGHT BUTTON_RIGHT
#define TV_BOOKMARK BUTTON_SELECT
/*M-Robe 100 keys */
#elif CONFIG_KEYPAD == MROBE100_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_DISPLAY
#define TV_BOOKMARK BUTTON_SELECT
/* iAUdio M3 keys */
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define TV_QUIT BUTTON_REC
#define TV_RC_QUIT BUTTON_RC_REC
#define TV_SCROLL_UP BUTTON_RC_VOL_UP
#define TV_SCROLL_DOWN BUTTON_RC_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_RC_REW
#define TV_SCREEN_RIGHT BUTTON_RC_FF
#define TV_MENU BUTTON_RC_MENU
#define TV_AUTOSCROLL BUTTON_RC_MODE
#define TV_BOOKMARK BUTTON_RC_PLAY
/* Cowon D2 keys */
#elif CONFIG_KEYPAD == COWON_D2_PAD
#define TV_QUIT BUTTON_POWER
#define TV_MENU BUTTON_MENU
#define TV_SCROLL_UP BUTTON_MINUS
#define TV_SCROLL_DOWN BUTTON_PLUS
#define TV_BOOKMARK (BUTTON_MENU|BUTTON_PLUS)
/* Creative Zen Vision:M keys */
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define TV_QUIT BUTTON_BACK
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_SELECT
#define TV_BOOKMARK BUTTON_PLAY
/* Creative Zen X-Fi3 keys */
#elif CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_BACK
#define TV_SCREEN_RIGHT BUTTON_MENU
#define TV_MENU BUTTON_PLAY|BUTTON_REPEAT
#define TV_AUTOSCROLL BUTTON_PLAY|BUTTON_DOWN
#define TV_LINE_UP BUTTON_VOL_UP
#define TV_LINE_DOWN BUTTON_VOL_DOWN
#define TV_BOOKMARK BUTTON_PLAY|BUTTON_REL
/* Philips HDD1630 keys */
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_VIEW
#define TV_BOOKMARK BUTTON_SELECT
/* Philips HDD6330 keys */
#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_NEXT
#define TV_BOOKMARK BUTTON_PLAY
/* Philips SA9200 keys */
#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_RIGHT
/* Onda VX747 keys */
#elif CONFIG_KEYPAD == ONDAVX747_PAD
#define TV_QUIT BUTTON_POWER
#define TV_MENU BUTTON_MENU
#define TV_BOOKMARK (BUTTON_RIGHT|BUTTON_POWER)
/* Onda VX777 keys */
#elif CONFIG_KEYPAD == ONDAVX777_PAD
#define TV_QUIT BUTTON_POWER
#define TV_BOOKMARK (BUTTON_RIGHT|BUTTON_POWER)
/* SAMSUNG YH-920 / YH-925 keys */
#elif CONFIG_KEYPAD == SAMSUNG_YH92X_PAD
#define TV_QUIT (BUTTON_REW|BUTTON_REPEAT)
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_REW
#define TV_AUTOSCROLL BUTTON_REC_SW_ON
#define TV_AUTOSCROLL2 BUTTON_REC_SW_OFF
#define TV_BOOKMARK BUTTON_PLAY
#define TV_LINE_UP (BUTTON_FFWD|BUTTON_UP)
#define TV_LINE_DOWN (BUTTON_FFWD|BUTTON_DOWN)
#define TV_COLUMN_LEFT (BUTTON_FFWD|BUTTON_LEFT)
#define TV_COLUMN_RIGHT (BUTTON_FFWD|BUTTON_RIGHT)
/* SAMSUNG YH-820 keys */
#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
#define TV_QUIT (BUTTON_REW|BUTTON_REPEAT)
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_REW
#define TV_AUTOSCROLL BUTTON_FFWD
#define TV_BOOKMARK BUTTON_PLAY
#define TV_LINE_UP (BUTTON_REC|BUTTON_UP)
#define TV_LINE_DOWN (BUTTON_REC|BUTTON_DOWN)
#define TV_COLUMN_LEFT (BUTTON_REC|BUTTON_LEFT)
#define TV_COLUMN_RIGHT (BUTTON_REC|BUTTON_RIGHT)
/* Packard Bell Vibe 500 keys */
#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
#define TV_QUIT BUTTON_REC
#define TV_SCROLL_UP BUTTON_OK
#define TV_SCROLL_DOWN BUTTON_CANCEL
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_POWER
/* MPIO HD200 keys */
#elif CONFIG_KEYPAD == MPIO_HD200_PAD
#define TV_QUIT (BUTTON_REC | BUTTON_PLAY)
#define TV_SCROLL_UP BUTTON_REW
#define TV_SCROLL_DOWN BUTTON_FF
#define TV_SCREEN_LEFT BUTTON_VOL_DOWN
#define TV_SCREEN_RIGHT BUTTON_VOL_UP
#define TV_MENU BUTTON_FUNC
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_REC
/* MPIO HD300 keys */
#elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define TV_QUIT (BUTTON_MENU | BUTTON_REPEAT)
#define TV_SCROLL_UP BUTTON_REW
#define TV_SCROLL_DOWN BUTTON_FF
#define TV_LINE_UP BUTTON_UP
#define TV_LINE_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT (BUTTON_REW | BUTTON_PLAY)
#define TV_SCREEN_RIGHT (BUTTON_FF | BUTTON_PLAY)
#define TV_MENU (BUTTON_MENU | BUTTON_REL)
#define TV_AUTOSCROLL BUTTON_REC
#define TV_BOOKMARK BUTTON_ENTER
/* Sansa Fuze+ keys */
#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_BACK
#define TV_AUTOSCROLL BUTTON_PLAYPAUSE
#define TV_BOOKMARK (BUTTON_SELECT | BUTTON_REPEAT)
#define TV_COLUMN_LEFT BUTTON_BOTTOMLEFT
#define TV_COLUMN_RIGHT BUTTON_BOTTOMRIGHT
#define TV_LINE_UP BUTTON_VOL_UP
#define TV_LINE_DOWN BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_VOL_DOWN
#define TV_LINE_UP BUTTON_SCROLL_BACK
#define TV_LINE_DOWN BUTTON_SCROLL_FWD
#define TV_BOOKMARK (BUTTON_DOWN|BUTTON_SELECT)
#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
#define TV_QUIT BUTTON_BACK
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_USER
#define TV_BOOKMARK BUTTON_SELECT
#elif CONFIG_KEYPAD == HM60X_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU (BUTTON_POWER | BUTTON_SELECT)
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_UP)
#define TV_BOOKMARK BUTTON_SELECT
#elif CONFIG_KEYPAD == HM801_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL BUTTON_NEXT
#define TV_BOOKMARK BUTTON_SELECT
#elif CONFIG_KEYPAD == SONY_NWZ_PAD
#define TV_QUIT (BUTTON_BACK|BUTTON_REPEAT)
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_BACK
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_BOOKMARK BUTTON_POWER
#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
#define TV_QUIT BUTTON_BACK
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_PLAYPAUSE
#define TV_BOOKMARK BUTTON_SHORTCUT
Introducing Targets iBasso DX50 & iBasso DX90 The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port. The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port. Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did was to separate the code for DX50 (&DX90) from the android target. On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it. What else I changed from Ilias sources besides the separation from the target "android": * removed a dirty hack to keep backlight off * changed value battery meter to voltage battery meter * made all plugins compile (named target as "standalone") and added keymaps * i added the graphics for the manual but did not do anything else for the manual yet * minor optimizations known bugs: * timers are slowed donw when playback is active (tinyalsa related?) * some minor bugs Things to do: * The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights. Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go. * All the wiki and manual to build: needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed ./tools/configure select iBasso DX50 or iBasso DX90 make -j apk the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed) the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed) The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary. Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his bitbucket page, using the CWM-OF and his installation script package. Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0 Reviewed-on: http://gerrit.rockbox.org/941 Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw> Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
2014-08-30 11:15:53 +00:00
#elif CONFIG_KEYPAD == DX50_PAD
#define TV_QUIT (BUTTON_POWER | BUTTON_REL)
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU (BUTTON_PLAY | BUTTON_REL)
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_PLAY)
#define TV_BOOKMARK (BUTTON_POWER | BUTTON_VOL_UP)
#elif CONFIG_KEYPAD == CREATIVE_ZENXFI2_PAD
#define TV_QUIT BUTTON_POWER
#define TV_MENU BUTTON_MENU
#define TV_BOOKMARK BUTTON_BOTTOMLEFT
#elif CONFIG_KEYPAD == AGPTEK_ROCKER_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_SELECT
#define TV_AUTOSCROLL BUTTON_VOLDOWN
#define TV_BOOKMARK BUTTON_VOLUP
#elif CONFIG_KEYPAD == XDUOO_X3_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_PWRALT | BUTTON_HOME)
#define TV_LINE_UP BUTTON_HOME
#define TV_LINE_DOWN BUTTON_OPTION
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
#define TV_LINE_UP BUTTON_HOME
#define TV_LINE_DOWN BUTTON_OPTION
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
#define TV_LINE_UP BUTTON_HOME
#define TV_LINE_DOWN BUTTON_OPTION
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
#elif CONFIG_KEYPAD == FIIO_M3K_LINUX_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
#define TV_LINE_UP BUTTON_HOME
#define TV_LINE_DOWN BUTTON_OPTION
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY)
#elif CONFIG_KEYPAD == EROSQ_PAD
#define TV_MENU BUTTON_MENU
#define TV_SCROLL_UP BUTTON_SCROLL_BACK
#define TV_SCROLL_DOWN BUTTON_SCROLL_FWD
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_AUTOSCROLL BUTTON_PLAY
#define TV_QUIT BUTTON_POWER
#define TV_BOOKMARK BUTTON_BACK
#define TV_LINE_UP BUTTON_VOL_UP
#define TV_LINE_DOWN BUTTON_VOL_DOWN
/* Xuelin 770/770c keys */
#elif CONFIG_KEYPAD == IHIFI_770_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
#define TV_LINE_UP (BUTTON_POWER | BUTTON_VOL_UP)
#define TV_LINE_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN)
#define TV_BOOKMARK (BUTTON_POWER | BUTTON_PLAY)
/* Xuelin 800 keys */
#elif CONFIG_KEYPAD == IHIFI_800_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_PREV
#define TV_SCREEN_RIGHT BUTTON_NEXT
#define TV_MENU BUTTON_PLAY
#define TV_AUTOSCROLL (BUTTON_POWER | BUTTON_HOME)
#define TV_LINE_UP (BUTTON_POWER | BUTTON_VOL_UP)
#define TV_LINE_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN)
#define TV_BOOKMARK (BUTTON_POWER | BUTTON_PLAY)
#elif CONFIG_KEYPAD == FIIO_M3K_PAD
#define TV_QUIT BUTTON_POWER
#define TV_SCROLL_UP BUTTON_VOL_UP
#define TV_SCROLL_DOWN BUTTON_VOL_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_SELECT
#define TV_LINE_UP BUTTON_SCROLL_BACK
#define TV_LINE_DOWN BUTTON_SCROLL_FWD
#define TV_BOOKMARK BUTTON_PLAY
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
#define TV_BOOKMARK BUTTON_PLAY
#else
#error No keymap defined!
#endif
#ifdef HAVE_TOUCHSCREEN
#ifdef TV_QUIT
#define TV_QUIT2 BUTTON_TOPLEFT
#else
#define TV_QUIT BUTTON_TOPLEFT
#endif
#ifdef TV_SCROLL_UP
#define TV_SCROLL_UP2 BUTTON_TOPMIDDLE
#else
#define TV_SCROLL_UP BUTTON_TOPMIDDLE
#endif
#ifdef TV_SCROLL_DOWN
#define TV_SCROLL_DOWN2 BUTTON_BOTTOMMIDDLE
#else
#define TV_SCROLL_DOWN BUTTON_BOTTOMMIDDLE
#endif
#ifndef TV_SCREEN_LEFT
#define TV_SCREEN_LEFT BUTTON_MIDLEFT
#endif
#ifndef TV_SCREEN_RIGHT
#define TV_SCREEN_RIGHT BUTTON_MIDRIGHT
#endif
#ifdef TV_MENU
#define TV_MENU2 BUTTON_TOPRIGHT
#else
#define TV_MENU BUTTON_TOPRIGHT
#endif
#ifndef TV_AUTOSCROLL
#define TV_AUTOSCROLL BUTTON_CENTER
#endif
#endif
#endif