1
0
Fork 0
forked from len0rd/rockbox

New port: AIGO EROS Q / EROS K

The Q and K have a slightly different case, but the hardware under the
shell is completely identical.

These models are rebadged versions:

 * Hifiwalker H2   (== Q)
 * AGPTek H3       (== K)
 * Surfans F20     (== K)

Other notes:

  * Significant improvements in the shared Hiby-platform launcher/loader
    * SD card can theoretically be hot-swapped now
    * Support external USB mass storage!
  * Some consolidation of Hiby-platform targets
  * Some consolidation of plugin keymaps

Todo/known issues:

 * Keymaps need to be gone over properly
 * Convert to HAVE_SCROLLWHEEL?

Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
This commit is contained in:
Solomon Peachy 2020-10-08 09:47:40 -04:00
parent 5efaa9ef80
commit 2a471e288c
86 changed files with 2097 additions and 1398 deletions

View file

@ -302,4 +302,6 @@ keymaps/keymap-xduoox3ii.c
keymaps/keymap-xduoox20.c keymaps/keymap-xduoox20.c
#elif CONFIG_KEYPAD == FIIO_M3K_PAD #elif CONFIG_KEYPAD == FIIO_M3K_PAD
keymaps/keymap-fiiom3k.c keymaps/keymap-fiiom3k.c
#elif CONFIG_KEYPAD == EROSQ_PAD
keymaps/keymap-erosq.c
#endif #endif

View file

@ -46,7 +46,7 @@ toolsicon.130x130x16.bmp
hibyicon.70x70x16.bmp hibyicon.70x70x16.bmp
rockboxicon.70x70x16.bmp rockboxicon.70x70x16.bmp
toolsicon.70x70x16.bmp toolsicon.70x70x16.bmp
#elif (defined(XDUOO_X3II) || defined(XDUOO_X20)) #elif (defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(EROS_Q))
hibyicon.130x130x16.bmp hibyicon.130x130x16.bmp
rockboxicon.130x130x16.bmp rockboxicon.130x130x16.bmp
toolsicon.130x130x16.bmp toolsicon.130x130x16.bmp

View file

@ -2525,7 +2525,7 @@ static const struct {
{ "Screendump", dbg_screendump }, { "Screendump", dbg_screendump },
#endif #endif
{ "Skin Engine RAM usage", dbg_skin_engine }, { "Skin Engine RAM usage", dbg_skin_engine },
#if ((CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) && !defined(SIMULATOR) #if ((CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K)) && !defined(SIMULATOR)
{ "View HW info", dbg_hw_info }, { "View HW info", dbg_hw_info },
#endif #endif
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) #if (CONFIG_PLATFORM & PLATFORM_NATIVE)

256
apps/keymaps/keymap-erosq.c Normal file
View file

@ -0,0 +1,256 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2020 Solomon Peachy
*
* 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.
*
****************************************************************************/
#include "config.h"
#include "action.h"
#include "button.h"
#include "settings.h"
/* {Action Code, Button code, Prereq button code } */
/*
* The format of the list is as follows
* { Action Code, Button code, Prereq button code }
* if there's no need to check the previous button's value, use BUTTON_NONE
* Insert LAST_ITEM_IN_LIST at the end of each mapping
*/
static const struct button_mapping button_context_standard[] = {
{ ACTION_STD_PREV, BUTTON_SCROLL_BACK, BUTTON_NONE },
{ ACTION_STD_PREV, BUTTON_PREV, BUTTON_NONE },
{ ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_SCROLL_FWD, BUTTON_NONE },
{ ACTION_STD_NEXT, BUTTON_NEXT, BUTTON_NONE },
{ ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE },
{ ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
{ ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU },
/* ACTION_STD_QUICKSCREEN,
* ACTION_STD_KEYLOCK
* ACTION_STD_REC
* ACTION_STD_HOTKEY
*/
LAST_ITEM_IN_LIST
}; /* button_context_standard */
static const struct button_mapping button_context_mainmenu[] = {
{ ACTION_TREE_WPS, BUTTON_BACK, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_TREE),
}; /* button_context_mainmenu as with sansa clip mapping - "back" button returns you to WPS */
static const struct button_mapping button_context_wps[] = {
{ ACTION_WPS_BROWSE, BUTTON_BACK|BUTTON_REL, BUTTON_BACK },
{ ACTION_WPS_PLAY, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_WPS_SEEKBACK, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_SEEKFWD, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_STOPSEEK, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT|BUTTON_REPEAT },
{ ACTION_WPS_STOPSEEK, BUTTON_PREV|BUTTON_REL, BUTTON_PREV|BUTTON_REPEAT },
{ ACTION_WPS_SKIPNEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
{ ACTION_WPS_SKIPPREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
{ ACTION_WPS_STOP, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
{ ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_WPS_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_WPS_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_WPS_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
/* ACTION_WPS_ID3SCREEN optional */
{ ACTION_WPS_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU },
// { ACTION_WPS_QUICKSCREEN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_DOWN },
{ ACTION_WPS_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, /* this should be the same as ACTION_STD_MENU */
/* ACTION_WPS_VIEW_PLAYLIST
* ACTION_WPS_LIST_BOOKMARKS, optional
* ACTION_WPS_CREATE_BOOKMARK, optional
*/
{ ACTION_STD_KEYLOCK, BUTTON_POWER, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_wps */
static const struct button_mapping button_context_settings[] = {
{ ACTION_SETTINGS_INC, BUTTON_SCROLL_FWD, BUTTON_NONE },
// { ACTION_SETTINGS_INCREPEAT, BUTTON_VOLUP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_INCBIGSTEP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE },
// { ACTION_SETTINGS_DECREPEAT, BUTTON_VOLDOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DECBIGSTEP, BUTTON_VOL_DOWN, BUTTON_NONE },
/* ACTION_SETTINGS_DECBIGSTEP */
{ ACTION_SETTINGS_RESET, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
/* ACTION_SETTINGS_SET, Used by touchscreen targets */
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings */
static const struct button_mapping button_context_list[] = {
/* ACTION_LISTTREE_PGUP, optional
* ACTION_LISTTREE_PGDOWN, optional
*/
#ifdef HAVE_VOLUME_IN_LIST
{ ACTION_LIST_VOLUP, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_LIST_VOLUP, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_LIST_VOLDOWN, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
#endif
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
}; /* button_context_list */
#if 0 // XXX?
static const struct button_mapping button_context_tree[] = {
/* ACTION_TREE_ROOT_INIT,
* ACTION_TREE_PGLEFT, optional
* ACTION_TREE_PGRIGHT, optional
* ACTION_TREE_STOP,
* ACTION_TREE_WPS,
* ACTION_TREE_HOTKEY,
*/
/* { ACTION_TREE_WPS, BUTTON_UP|BUTTON_REL, BUTTON_UP },
* { ACTION_TREE_STOP, BUTTON_POWER|BUTTON_REL, BUTTON_POWER },
* { ACTION_TREE_HOTKEY, BUTTON_REC|BUTTON_REL, BUTTON_REC },
*/
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_tree */
#endif
static const struct button_mapping button_context_yesno[] = {
{ ACTION_YESNO_ACCEPT, BUTTON_PLAY, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_settings_yesno */
static const struct button_mapping button_context_quickscreen[] = {
{ ACTION_QS_TOP, BUTTON_PREV|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_TOP, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_QS_DOWN, BUTTON_SCROLL_FWD|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_LEFT, BUTTON_SCROLL_BACK|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_NEXT|BUTTON_REL, BUTTON_NONE },
{ ACTION_QS_RIGHT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_STD_CANCEL, BUTTON_BACK, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_quickscreen */
static const struct button_mapping button_context_settings_time[] = {
{ ACTION_STD_PREV, BUTTON_PREV|BUTTON_REL, BUTTON_PREV },
{ ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_PREV },
{ ACTION_STD_NEXT, BUTTON_NEXT|BUTTON_REL, BUTTON_NEXT },
{ ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NEXT },
{ ACTION_STD_CANCEL, BUTTON_BACK|BUTTON_REPEAT, BUTTON_BACK },
{ ACTION_STD_OK, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_SETTINGS_INC, BUTTON_SCROLL_FWD, BUTTON_NONE },
// { ACTION_SETTINGS_INCREPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_SCROLL_BACK, BUTTON_NONE },
// { ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST
//LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_settings_time */
static const struct button_mapping button_context_pitchscreen[] = {
{ ACTION_PS_INC_SMALL, BUTTON_SCROLL_FWD, BUTTON_NONE },
{ ACTION_PS_INC_BIG, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_PS_DEC_SMALL, BUTTON_SCROLL_BACK, BUTTON_NONE },
{ ACTION_PS_DEC_BIG, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_PS_NUDGE_LEFT, BUTTON_PREV, BUTTON_NONE },
/* { ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE }, */
{ ACTION_PS_NUDGE_RIGHT, BUTTON_NEXT, BUTTON_NONE },
/* { ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE }, */
{ ACTION_PS_TOGGLE_MODE, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY },
{ ACTION_PS_RESET, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
{ ACTION_PS_EXIT, BUTTON_BACK, BUTTON_NONE },
{ ACTION_PS_SLOWER, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_PS_FASTER, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD),
}; /* button_context_pitchscreen */
static const struct button_mapping button_context_keyboard[] = {
{ ACTION_KBD_LEFT, BUTTON_SCROLL_FWD, BUTTON_NONE },
{ ACTION_KBD_RIGHT, BUTTON_SCROLL_BACK, BUTTON_NONE },
{ ACTION_KBD_CURSOR_LEFT, BUTTON_PREV, BUTTON_NONE },
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_NEXT, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_KBD_UP, BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOL_UP, BUTTON_NONE },
{ ACTION_KBD_DOWN, BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_PAGE_FLIP, BUTTON_MENU, BUTTON_NONE },
{ ACTION_KBD_BACKSPACE, BUTTON_BACK, BUTTON_NONE },
{ ACTION_KBD_BACKSPACE, BUTTON_BACK|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_SELECT, BUTTON_PLAY, BUTTON_NONE },
{ ACTION_KBD_DONE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE },
{ ACTION_KBD_MORSE_INPUT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_KBD_MORSE_SELECT, BUTTON_PLAY|BUTTON_REL, BUTTON_NONE },
LAST_ITEM_IN_LIST
}; /* button_context_keyboard */
static const struct button_mapping button_context_bmark[] = {
{ ACTION_BMS_DELETE, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_PLAY },
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
}; /* button_context_bmark */
/* get_context_mapping returns a pointer to one of the above defined arrays depending on the context */
const struct button_mapping* get_context_mapping(int context)
{
switch (context)
{
case CONTEXT_STD:
return button_context_standard;
case CONTEXT_WPS:
return button_context_wps;
case CONTEXT_MAINMENU:
return button_context_mainmenu;
case CONTEXT_TREE:
case CONTEXT_LIST:
return button_context_list;
case CONTEXT_SETTINGS:
case CONTEXT_SETTINGS_EQ:
return button_context_settings;
case CONTEXT_SETTINGS_TIME:
return button_context_settings_time;
case CONTEXT_YESNOSCREEN:
return button_context_yesno;
case CONTEXT_BOOKMARKSCREEN:
return button_context_bmark;
case CONTEXT_QUICKSCREEN:
return button_context_quickscreen;
case CONTEXT_PITCHSCREEN:
return button_context_pitchscreen;
case CONTEXT_KEYBOARD:
case CONTEXT_MORSE_INPUT:
return button_context_keyboard;
default:
return button_context_standard;
}
return button_context_standard;
}

View file

@ -24,7 +24,6 @@
#include "plugin.h" #include "plugin.h"
#include "lang_enum.h" #include "lang_enum.h"
#define BATTERY_LOG HOME_DIR"/battery_bench.txt" #define BATTERY_LOG HOME_DIR"/battery_bench.txt"
#define BUF_SIZE 16000 #define BUF_SIZE 16000
@ -83,7 +82,17 @@
#define BATTERY_ON_TXT "SELECT - start" #define BATTERY_ON_TXT "SELECT - start"
#define BATTERY_OFF_TXT "HOME" #define BATTERY_OFF_TXT "HOME"
#elif CONFIG_KEYPAD == IRIVER_H10_PAD #elif (CONFIG_KEYPAD == IRIVER_H10_PAD || \
CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD || \
CONFIG_KEYPAD == SONY_NWZ_PAD || \
CONFIG_KEYPAD == AGPTEK_ROCKER_PAD || \
CONFIG_KEYPAD == XDUOO_X3_PAD || \
CONFIG_KEYPAD == IHIFI_770_PAD || \
CONFIG_KEYPAD == IHIFI_800_PAD || \
CONFIG_KEYPAD == XDUOO_X3II_PAD || \
CONFIG_KEYPAD == XDUOO_X20_PAD || \
CONFIG_KEYPAD == FIIO_M3K_PAD || \
CONFIG_KEYPAD == EROSQ_PAD)
#define BATTERY_ON BUTTON_PLAY #define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER #define BATTERY_OFF BUTTON_POWER
@ -177,7 +186,7 @@
#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \ #elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \
(CONFIG_KEYPAD == SAMSUNG_YH92X_PAD) (CONFIG_KEYPAD == SAMSUNG_YH92X_PAD)
#define BATTERY_ON BUTTON_LEFT #define BATTERY_ON BUTTON_LEFT
#define BATTERY_OFF BUTTON_RIGHT #define BATTERY_OFF BUTTON_RIGHT
#define BATTERY_ON_TXT "LEFT" #define BATTERY_ON_TXT "LEFT"
@ -214,12 +223,6 @@
#define BATTERY_ON_TXT "SELECT - start" #define BATTERY_ON_TXT "SELECT - start"
#define BATTERY_OFF_TXT "POWER" #define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "POWER"
#elif (CONFIG_KEYPAD == HM60X_PAD) || (CONFIG_KEYPAD == HM801_PAD) #elif (CONFIG_KEYPAD == HM60X_PAD) || (CONFIG_KEYPAD == HM801_PAD)
#define BATTERY_ON BUTTON_SELECT #define BATTERY_ON BUTTON_SELECT
#define BATTERY_OFF BUTTON_POWER #define BATTERY_OFF BUTTON_POWER
@ -227,12 +230,6 @@
#define BATTERY_OFF_TXT "POWER" #define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == SONY_NWZ_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "Power"
#elif CONFIG_KEYPAD == DX50_PAD #elif CONFIG_KEYPAD == DX50_PAD
#define BATTERY_ON BUTTON_PLAY #define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER_LONG #define BATTERY_OFF BUTTON_POWER_LONG
@ -245,53 +242,8 @@
#define BATTERY_OFF_TXT "Power" #define BATTERY_OFF_TXT "Power"
#define BATTERY_ON_TXT "Menu - start" #define BATTERY_ON_TXT "Menu - start"
#elif CONFIG_KEYPAD == AGPTEK_ROCKER_PAD #elif defined(HAVE_TOUCHSCREEN)
#define BATTERY_ON BUTTON_LEFT
#define BATTERY_OFF BUTTON_RIGHT
#define BATTERY_OFF_TXT "Right"
#define BATTERY_ON_TXT "Left - start"
#elif CONFIG_KEYPAD == XDUOO_X3_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == IHIFI_770_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == IHIFI_800_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "Play - start"
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "Play - start"
#define BATTERY_OFF_TXT "POWER"
#elif CONFIG_KEYPAD == FIIO_M3K_PAD
#define BATTERY_ON BUTTON_PLAY
#define BATTERY_OFF BUTTON_POWER
#define BATTERY_ON_TXT "Play - start"
#define BATTERY_OFF_TXT "POWER"
#else
#error No keymap defined!
#endif
#ifdef HAVE_TOUCHSCREEN
#ifndef BATTERY_ON #ifndef BATTERY_ON
#define BATTERY_ON BUTTON_CENTER #define BATTERY_ON BUTTON_CENTER
#endif #endif
@ -304,6 +256,9 @@
#ifndef BATTERY_OFF_TXT #ifndef BATTERY_OFF_TXT
#define BATTERY_OFF_TXT "TOPLEFT" #define BATTERY_OFF_TXT "TOPLEFT"
#endif #endif
#else
#error No keymap defined!
#endif #endif
/****************************** Plugin Entry Point ****************************/ /****************************** Plugin Entry Point ****************************/
@ -375,7 +330,7 @@ static bool exit_tsr(bool reenter)
#define BIT_CHARGING 0x2 #define BIT_CHARGING 0x2
#define BIT_USB_POWER 0x4 #define BIT_USB_POWER 0x4
#define HMS(x) (x)/3600,((x)%3600)/60,((x)%3600)%60 #define HMS(x) (x)/3600,((x)%3600)/60,((x)%3600)%60
#if CONFIG_CHARGING || defined(HAVE_USB_POWER) #if CONFIG_CHARGING || defined(HAVE_USB_POWER)
static unsigned int charge_state(void) static unsigned int charge_state(void)
@ -476,7 +431,7 @@ static void thread(void)
rb->register_storage_idle_func(flush_buffer); rb->register_storage_idle_func(flush_buffer);
#endif #endif
} }
/* What to do when the measurement buffer is full: /* What to do when the measurement buffer is full:
1) save our measurements to disk but waste some power doing so? 1) save our measurements to disk but waste some power doing so?
2) throw away measurements to save some power? 2) throw away measurements to save some power?
@ -486,12 +441,12 @@ static void thread(void)
if (buf_idx == BUF_ELEMENTS) { if (buf_idx == BUF_ELEMENTS) {
flush_buffer(); flush_buffer();
} }
/* sleep some time until next measurement */ /* sleep some time until next measurement */
rb->queue_wait_w_tmo(&thread_q, &ev, sleep_time); rb->queue_wait_w_tmo(&thread_q, &ev, sleep_time);
switch (ev.id) switch (ev.id)
{ {
case SYS_USB_CONNECTED: case SYS_USB_CONNECTED:
in_usb_mode = true; in_usb_mode = true;
rb->usb_acknowledge(SYS_USB_CONNECTED_ACK); rb->usb_acknowledge(SYS_USB_CONNECTED_ACK);
break; break;
@ -516,7 +471,7 @@ static void thread(void)
#else #else
flush_buffer(); flush_buffer();
#endif #endif
/* log end of bench and exit reason */ /* log end of bench and exit reason */
fd = rb->open(BATTERY_LOG, O_RDWR | O_CREAT | O_APPEND, 0666); fd = rb->open(BATTERY_LOG, O_RDWR | O_CREAT | O_APPEND, 0666);
if (fd >= 0) if (fd >= 0)
@ -565,7 +520,7 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_remote_putsxy,LCD_REMOTE_WIDTH,2); rb->lcd_remote_putsxy,LCD_REMOTE_WIDTH,2);
rb->lcd_remote_update(); rb->lcd_remote_update();
#endif #endif
do do
{ {
button = rb->button_get(true); button = rb->button_get(true);
@ -574,10 +529,10 @@ enum plugin_status plugin_start(const void* parameter)
case BATTERY_ON: case BATTERY_ON:
#ifdef BATTERY_RC_ON #ifdef BATTERY_RC_ON
case BATTERY_RC_ON: case BATTERY_RC_ON:
#endif #endif
on = true; on = true;
break; break;
case BATTERY_OFF: case BATTERY_OFF:
#ifdef BATTERY_RC_OFF #ifdef BATTERY_RC_OFF
case BATTERY_RC_OFF: case BATTERY_RC_OFF:
#endif #endif
@ -588,7 +543,7 @@ enum plugin_status plugin_start(const void* parameter)
return PLUGIN_USB_CONNECTED; return PLUGIN_USB_CONNECTED;
} }
}while(!on); }while(!on);
fd = rb->open(BATTERY_LOG, O_RDONLY); fd = rb->open(BATTERY_LOG, O_RDONLY);
if (fd < 0) if (fd < 0)
{ {

View file

@ -543,39 +543,7 @@ enum {
#define BJACK_QUIT_NAME "Volume up" #define BJACK_QUIT_NAME "Volume up"
#define BJACK_DOUBLE_NAME "Option+Down" #define BJACK_DOUBLE_NAME "Option+Down"
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define BJACK_SELECT_NAME "PLAY"
#define BJACK_STAY_NAME "NEXT"
#define BJACK_QUIT_NAME "POWER"
#define BJACK_DOUBLE_NAME "PREV"
#define BJACK_SELECT BUTTON_PLAY
#define BJACK_QUIT BUTTON_POWER
#define BJACK_MAX BUTTON_VOL_UP
#define BJACK_MIN BUTTON_VOL_DOWN
#define BJACK_STAY BUTTON_NEXT
#define BJACK_DOUBLEDOWN BUTTON_PREV
#define BJACK_UP BUTTON_HOME
#define BJACK_DOWN BUTTON_OPTION
#define BJACK_RIGHT BUTTON_NEXT
#define BJACK_LEFT BUTTON_PREV
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define BJACK_SELECT_NAME "PLAY"
#define BJACK_STAY_NAME "NEXT"
#define BJACK_QUIT_NAME "POWER"
#define BJACK_DOUBLE_NAME "PREV"
#define BJACK_SELECT BUTTON_PLAY
#define BJACK_QUIT BUTTON_POWER
#define BJACK_MAX BUTTON_VOL_UP
#define BJACK_MIN BUTTON_VOL_DOWN
#define BJACK_STAY BUTTON_NEXT
#define BJACK_DOUBLEDOWN BUTTON_PREV
#define BJACK_UP BUTTON_HOME
#define BJACK_DOWN BUTTON_OPTION
#define BJACK_RIGHT BUTTON_NEXT
#define BJACK_LEFT BUTTON_PREV
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define BJACK_SELECT_NAME "PLAY" #define BJACK_SELECT_NAME "PLAY"
#define BJACK_STAY_NAME "NEXT" #define BJACK_STAY_NAME "NEXT"
#define BJACK_QUIT_NAME "POWER" #define BJACK_QUIT_NAME "POWER"
@ -607,7 +575,7 @@ enum {
#define BJACK_RIGHT BUTTON_NEXT #define BJACK_RIGHT BUTTON_NEXT
#define BJACK_LEFT BUTTON_PREV #define BJACK_LEFT BUTTON_PREV
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define BJACK_SELECT_NAME "PLAY" #define BJACK_SELECT_NAME "PLAY"
#define BJACK_STAY_NAME "NEXT" #define BJACK_STAY_NAME "NEXT"
#define BJACK_QUIT_NAME "POWER" #define BJACK_QUIT_NAME "POWER"
@ -623,7 +591,7 @@ enum {
#define BJACK_RIGHT BUTTON_NEXT #define BJACK_RIGHT BUTTON_NEXT
#define BJACK_LEFT BUTTON_PREV #define BJACK_LEFT BUTTON_PREV
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define BJACK_SELECT_NAME "PLAY" #define BJACK_SELECT_NAME "PLAY"
#define BJACK_STAY_NAME "NEXT" #define BJACK_STAY_NAME "NEXT"
#define BJACK_QUIT_NAME "POWER" #define BJACK_QUIT_NAME "POWER"
@ -632,12 +600,12 @@ enum {
#define BJACK_QUIT BUTTON_POWER #define BJACK_QUIT BUTTON_POWER
#define BJACK_MAX BUTTON_VOL_UP #define BJACK_MAX BUTTON_VOL_UP
#define BJACK_MIN BUTTON_VOL_DOWN #define BJACK_MIN BUTTON_VOL_DOWN
#define BJACK_STAY BUTTON_NEXT #define BJACK_STAY BUTTON_MENU
#define BJACK_DOUBLEDOWN BUTTON_PREV #define BJACK_DOUBLEDOWN BUTTON_BACK
#define BJACK_UP BUTTON_HOME #define BJACK_UP BUTTON_PREV
#define BJACK_DOWN (BUTTON_POWER | BUTTON_HOME) #define BJACK_DOWN BUTTON_NEXT
#define BJACK_RIGHT BUTTON_NEXT #define BJACK_RIGHT BUTTON_SCROLL_FWD
#define BJACK_LEFT BUTTON_PREV #define BJACK_LEFT BUTTON_SCROLL_BACK
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -41,9 +41,6 @@
#include "pluginbitmaps/brickmania_break.h" #include "pluginbitmaps/brickmania_break.h"
#endif #endif
/* /*
* *
* Keymaps * Keymaps
@ -307,27 +304,7 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define UP BUTTON_UP #define UP BUTTON_UP
#define DOWN BUTTON_DOWN #define DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV
#define RIGHT BUTTON_NEXT
#define ALTLEFT BUTTON_VOL_DOWN
#define ALTRIGHT BUTTON_VOL_UP
#define SELECT BUTTON_PLAY
#define UP BUTTON_HOME
#define DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV
#define RIGHT BUTTON_NEXT
#define ALTLEFT BUTTON_VOL_DOWN
#define ALTRIGHT BUTTON_VOL_UP
#define SELECT BUTTON_PLAY
#define UP BUTTON_HOME
#define DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV #define LEFT BUTTON_PREV
#define RIGHT BUTTON_NEXT #define RIGHT BUTTON_NEXT
@ -347,7 +324,7 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define UP BUTTON_HOME #define UP BUTTON_HOME
#define DOWN BUTTON_OPTION #define DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_HOME
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_VOL_DOWN
@ -357,12 +334,10 @@ CONFIG_KEYPAD == SANSA_CONNECT_PAD
#define UP BUTTON_PREV #define UP BUTTON_PREV
#define DOWN BUTTON_NEXT #define DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_SCROLL_BACK
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_SCROLL_FWD
#define ALTLEFT (BUTTON_POWER | BUTTON_HOME)
#define ALTRIGHT (BUTTON_POWER | BUTTON_VOL_UP)
#define SELECT BUTTON_PLAY #define SELECT BUTTON_PLAY
#define UP BUTTON_PREV #define UP BUTTON_PREV
#define DOWN BUTTON_NEXT #define DOWN BUTTON_NEXT

View file

@ -493,29 +493,7 @@ F3: equal to "="
#define CALCULATOR_CALC BUTTON_VOLUP #define CALCULATOR_CALC BUTTON_VOLUP
#define CALCULATOR_CLEAR (BUTTON_SELECT|BUTTON_REPEAT) #define CALCULATOR_CLEAR (BUTTON_SELECT|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define CALCULATOR_LEFT BUTTON_PREV
#define CALCULATOR_RIGHT BUTTON_NEXT
#define CALCULATOR_UP BUTTON_HOME
#define CALCULATOR_DOWN BUTTON_OPTION
#define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_INPUT_CALC_PRE (BUTTON_OPTION|BUTTON_REPEAT)
#define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL)
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define CALCULATOR_LEFT BUTTON_PREV
#define CALCULATOR_RIGHT BUTTON_NEXT
#define CALCULATOR_UP BUTTON_HOME
#define CALCULATOR_DOWN BUTTON_OPTION
#define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_INPUT_CALC_PRE (BUTTON_OPTION|BUTTON_REPEAT)
#define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL)
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CALCULATOR_LEFT BUTTON_PREV #define CALCULATOR_LEFT BUTTON_PREV
#define CALCULATOR_RIGHT BUTTON_NEXT #define CALCULATOR_RIGHT BUTTON_NEXT
#define CALCULATOR_UP BUTTON_HOME #define CALCULATOR_UP BUTTON_HOME
@ -537,7 +515,7 @@ F3: equal to "="
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) #define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) #define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define CALCULATOR_LEFT BUTTON_HOME #define CALCULATOR_LEFT BUTTON_HOME
#define CALCULATOR_RIGHT BUTTON_VOL_DOWN #define CALCULATOR_RIGHT BUTTON_VOL_DOWN
#define CALCULATOR_UP BUTTON_PREV #define CALCULATOR_UP BUTTON_PREV
@ -548,16 +526,15 @@ F3: equal to "="
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) #define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT)
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT) #define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CALCULATOR_LEFT BUTTON_HOME #define CALCULATOR_LEFT BUTTON_SCROLL_BACK
#define CALCULATOR_RIGHT BUTTON_VOL_DOWN #define CALCULATOR_RIGHT BUTTON_SCROLL_FWD
#define CALCULATOR_UP BUTTON_PREV #define CALCULATOR_UP BUTTON_PREV
#define CALCULATOR_DOWN BUTTON_NEXT #define CALCULATOR_DOWN BUTTON_NEXT
#define CALCULATOR_QUIT BUTTON_POWER #define CALCULATOR_QUIT BUTTON_POWER
#define CALCULATOR_INPUT_CALC_PRE (BUTTON_HOME|BUTTON_REPEAT) #define CALCULATOR_INPUT BUTTON_PLAY
#define CALCULATOR_INPUT (BUTTON_PLAY|BUTTON_REL) #define CALCULATOR_CALC BUTTON_MENU
#define CALCULATOR_CALC (BUTTON_PLAY|BUTTON_REPEAT) #define CALCULATOR_CLEAR BUTTON_BACK
#define CALCULATOR_CLEAR (BUTTON_POWER|BUTTON_REPEAT)
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -381,27 +381,7 @@
#define CALENDAR_NEXT_MONTH (BUTTON_VOLDOWN) #define CALENDAR_NEXT_MONTH (BUTTON_VOLDOWN)
#define CALENDAR_PREV_MONTH (BUTTON_VOLUP) #define CALENDAR_PREV_MONTH (BUTTON_VOLUP)
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define CALENDAR_QUIT BUTTON_POWER
#define CALENDAR_SELECT BUTTON_PLAY
#define CALENDAR_NEXT_WEEK BUTTON_OPTION
#define CALENDAR_PREV_WEEK BUTTON_HOME
#define CALENDAR_NEXT_DAY BUTTON_NEXT
#define CALENDAR_PREV_DAY BUTTON_PREV
#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define CALENDAR_QUIT BUTTON_POWER
#define CALENDAR_SELECT BUTTON_PLAY
#define CALENDAR_NEXT_WEEK BUTTON_OPTION
#define CALENDAR_PREV_WEEK BUTTON_HOME
#define CALENDAR_NEXT_DAY BUTTON_NEXT
#define CALENDAR_PREV_DAY BUTTON_PREV
#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CALENDAR_QUIT BUTTON_POWER #define CALENDAR_QUIT BUTTON_POWER
#define CALENDAR_SELECT BUTTON_PLAY #define CALENDAR_SELECT BUTTON_PLAY
#define CALENDAR_NEXT_WEEK BUTTON_OPTION #define CALENDAR_NEXT_WEEK BUTTON_OPTION
@ -421,7 +401,7 @@
#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define CALENDAR_QUIT BUTTON_POWER #define CALENDAR_QUIT BUTTON_POWER
#define CALENDAR_SELECT BUTTON_PLAY #define CALENDAR_SELECT BUTTON_PLAY
#define CALENDAR_NEXT_WEEK (BUTTON_POWER | BUTTON_VOL_DOWN) #define CALENDAR_NEXT_WEEK (BUTTON_POWER | BUTTON_VOL_DOWN)
@ -431,15 +411,15 @@
#define CALENDAR_NEXT_MONTH BUTTON_VOL_DOWN #define CALENDAR_NEXT_MONTH BUTTON_VOL_DOWN
#define CALENDAR_PREV_MONTH BUTTON_VOL_UP #define CALENDAR_PREV_MONTH BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CALENDAR_QUIT BUTTON_POWER #define CALENDAR_QUIT BUTTON_POWER
#define CALENDAR_SELECT BUTTON_PLAY #define CALENDAR_SELECT BUTTON_PLAY
#define CALENDAR_NEXT_WEEK (BUTTON_POWER | BUTTON_VOL_DOWN) #define CALENDAR_NEXT_WEEK BUTTON_NEXT
#define CALENDAR_PREV_WEEK (BUTTON_POWER | BUTTON_VOL_UP) #define CALENDAR_PREV_WEEK BUTTON_PREV
#define CALENDAR_NEXT_DAY BUTTON_NEXT #define CALENDAR_NEXT_DAY BUTTON_SCROLL_FWD
#define CALENDAR_PREV_DAY BUTTON_PREV #define CALENDAR_PREV_DAY BUTTON_SCROLL_BACK
#define CALENDAR_NEXT_MONTH BUTTON_VOL_DOWN #define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
#define CALENDAR_PREV_MONTH BUTTON_VOL_UP #define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
#else #else
#error "No keypad setting." #error "No keypad setting."

View file

@ -525,21 +525,7 @@
#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) #define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) #define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define CB_SELECT BUTTON_PLAY
#define CB_UP BUTTON_HOME
#define CB_DOWN BUTTON_OPTION
#define CB_LEFT BUTTON_PREV
#define CB_RIGHT BUTTON_NEXT
#define CB_PLAY BUTTON_VOL_UP
#define CB_LEVEL BUTTON_VOL_DOWN
#define CB_MENU BUTTON_POWER
#define CB_SCROLL_UP (BUTTON_HOME|BUTTON_REPEAT)
#define CB_SCROLL_DOWN (BUTTON_OPTION|BUTTON_REPEAT)
#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CB_SELECT BUTTON_PLAY #define CB_SELECT BUTTON_PLAY
#define CB_UP BUTTON_HOME #define CB_UP BUTTON_HOME
#define CB_DOWN BUTTON_OPTION #define CB_DOWN BUTTON_OPTION
@ -567,7 +553,7 @@
#define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT) #define CB_SCROLL_LEFT (BUTTON_PREV|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT) #define CB_SCROLL_RIGHT (BUTTON_NEXT|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define CB_SELECT BUTTON_PLAY #define CB_SELECT BUTTON_PLAY
#define CB_UP BUTTON_PREV #define CB_UP BUTTON_PREV
#define CB_DOWN BUTTON_NEXT #define CB_DOWN BUTTON_NEXT
@ -581,19 +567,19 @@
#define CB_SCROLL_LEFT (BUTTON_HOME|BUTTON_REPEAT) #define CB_SCROLL_LEFT (BUTTON_HOME|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_VOL_UP|BUTTON_REPEAT) #define CB_SCROLL_RIGHT (BUTTON_VOL_UP|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CB_SELECT BUTTON_PLAY #define CB_SELECT BUTTON_PLAY
#define CB_UP BUTTON_PREV #define CB_UP BUTTON_PREV
#define CB_DOWN BUTTON_NEXT #define CB_DOWN BUTTON_NEXT
#define CB_LEFT BUTTON_HOME #define CB_LEFT BUTTON_SCROLL_BACK
#define CB_RIGHT BUTTON_VOL_DOWN #define CB_RIGHT BUTTON_SCROLL_FWD
#define CB_PLAY BUTTON_VOL_UP #define CB_PLAY BUTTON_VOL_DOWN
#define CB_LEVEL (BUTTON_PLAY|BUTTON_REPEAT) #define CB_MENU BUTTON_MENU
#define CB_MENU BUTTON_POWER #define CB_LEVEL BUTTON_VOL_UP
#define CB_SCROLL_UP (BUTTON_PREV|BUTTON_REPEAT) #define CB_SCROLL_UP (BUTTON_PREV|BUTTON_REPEAT)
#define CB_SCROLL_DOWN (BUTTON_NEXT|BUTTON_REPEAT) #define CB_SCROLL_DOWN (BUTTON_NEXT|BUTTON_REPEAT)
#define CB_SCROLL_LEFT (BUTTON_HOME|BUTTON_REPEAT) #define CB_SCROLL_LEFT (BUTTON_SCROLL_BACK|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_VOL_UP|BUTTON_REPEAT) #define CB_SCROLL_RIGHT (BUTTON_SCROLL_FWD|BUTTON_REPEAT)
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -366,27 +366,7 @@
#define CHC_SETTINGS_CANCEL BUTTON_RIGHT #define CHC_SETTINGS_CANCEL BUTTON_RIGHT
#define CHC_SETTINGS_OK (BUTTON_SELECT|BUTTON_REPEAT) #define CHC_SETTINGS_OK (BUTTON_SELECT|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif (CONFIG_KEYPAD == XDUOO_X3_PAD) || (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET BUTTON_OPTION
#define CHC_MENU BUTTON_HOME
#define CHC_SETTINGS_INC BUTTON_NEXT
#define CHC_SETTINGS_DEC BUTTON_PREV
#define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_POWER
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET BUTTON_OPTION
#define CHC_MENU BUTTON_HOME
#define CHC_SETTINGS_INC BUTTON_NEXT
#define CHC_SETTINGS_DEC BUTTON_PREV
#define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_POWER
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CHC_QUIT BUTTON_POWER #define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY #define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET BUTTON_OPTION #define CHC_RESET BUTTON_OPTION
@ -406,7 +386,7 @@
#define CHC_SETTINGS_OK BUTTON_PLAY #define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_POWER #define CHC_SETTINGS_CANCEL BUTTON_POWER
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define CHC_QUIT BUTTON_POWER #define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY #define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET (BUTTON_PLAY|BUTTON_REPEAT) #define CHC_RESET (BUTTON_PLAY|BUTTON_REPEAT)
@ -416,15 +396,15 @@
#define CHC_SETTINGS_OK BUTTON_PLAY #define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_HOME #define CHC_SETTINGS_CANCEL BUTTON_HOME
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CHC_QUIT BUTTON_POWER #define CHC_QUIT BUTTON_POWER
#define CHC_STARTSTOP BUTTON_PLAY #define CHC_STARTSTOP BUTTON_PLAY
#define CHC_RESET (BUTTON_PLAY|BUTTON_REPEAT) #define CHC_RESET BUTTON_BACK
#define CHC_MENU BUTTON_HOME #define CHC_MENU BUTTON_MENU
#define CHC_SETTINGS_INC BUTTON_VOL_UP #define CHC_SETTINGS_INC BUTTON_NEXT
#define CHC_SETTINGS_DEC BUTTON_VOL_DOWN #define CHC_SETTINGS_DEC BUTTON_PREV
#define CHC_SETTINGS_OK BUTTON_PLAY #define CHC_SETTINGS_OK BUTTON_PLAY
#define CHC_SETTINGS_CANCEL BUTTON_HOME #define CHC_SETTINGS_CANCEL BUTTON_POWER
#else #else
#error No keymap defined! #error No keymap defined!
@ -481,7 +461,7 @@ static struct {
} timer_holder[MAX_PLAYERS]; } timer_holder[MAX_PLAYERS];
static int run_timer(int nr); static int run_timer(int nr);
static int chessclock_set_int(char* string, static int chessclock_set_int(char* string,
int* variable, int* variable,
int step, int step,
int min, int min,
@ -784,7 +764,7 @@ static int run_timer(int nr)
return retval; return retval;
} }
static int chessclock_set_int(char* string, static int chessclock_set_int(char* string,
int* variable, int* variable,
int step, int step,
int min, int min,
@ -856,4 +836,3 @@ static char * show_time(int seconds)
rb->snprintf(buf, sizeof(buf), "%02d:%02d", seconds/60, seconds%60); rb->snprintf(buf, sizeof(buf), "%02d:%02d", seconds/60, seconds%60);
return buf; return buf;
} }

View file

@ -57,7 +57,7 @@
#ifndef EXTERN #ifndef EXTERN
#define EXTERN extern #define EXTERN extern
#endif #endif
typedef unsigned char byte; /* sizeof(byte)==1 */ typedef unsigned char byte; /* sizeof(byte)==1 */
typedef unsigned short word; /* sizeof(word)>=2 */ typedef unsigned short word; /* sizeof(word)>=2 */
@ -390,11 +390,11 @@ static void op_system (word opcode)
break; break;
case 0xfc: case 0xfc:
scroll_left(); scroll_left();
break; break;
case 0xfd: case 0xfd:
DBG_(printf("SUPER: quit the emulator\n")); DBG_(printf("SUPER: quit the emulator\n"));
chip8_reset(); chip8_reset();
break; break;
case 0xfe: case 0xfe:
DBG_(printf("SUPER: set CHIP-8 graphic mode\n")); DBG_(printf("SUPER: set CHIP-8 graphic mode\n"));
memset (chip8_display,0,sizeof(chip8_display)); memset (chip8_display,0,sizeof(chip8_display));
@ -404,7 +404,7 @@ static void op_system (word opcode)
DBG_(printf("SUPER: set SCHIP graphic mode\n")); DBG_(printf("SUPER: set SCHIP graphic mode\n"));
memset (chip8_display,0,sizeof(chip8_display)); memset (chip8_display,0,sizeof(chip8_display));
chip8_super = 1; chip8_super = 1;
break; break;
#endif #endif
case 0xe0: case 0xe0:
memset (chip8_display,0,sizeof(chip8_display)); memset (chip8_display,0,sizeof(chip8_display));
@ -553,7 +553,7 @@ static void op_sprite (word opcode)
x &= 64-1; x &= 64-1;
y &= 32-1; y &= 32-1;
q=chip8_display+y*CHIP8_WIDTH*2; q=chip8_display+y*CHIP8_WIDTH*2;
if(n == 0) if(n == 0)
n = 16; n = 16;
if (n+y>32) if (n+y>32)
n=32-y; n=32-y;
@ -838,7 +838,7 @@ STATIC void chip8_execute(void)
--chip8_regs.delay; --chip8_regs.delay;
if (chip8_regs.sound) if (chip8_regs.sound)
if (--chip8_regs.sound == 0) if (--chip8_regs.sound == 0)
chip8_sound_off(); chip8_sound_off();
/* Update the machine status */ /* Update the machine status */
chip8_interrupt (); chip8_interrupt ();
@ -1092,7 +1092,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define CHIP8_KEY8 BUTTON_DOWN #define CHIP8_KEY8 BUTTON_DOWN
#define CHIP8_KEY9 BUTTON_VIEW #define CHIP8_KEY9 BUTTON_VIEW
#define CHIP8_KEY0 BUTTON_VOL_DOWN #define CHIP8_KEY0 BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
#define CHIP8_OFF BUTTON_POWER #define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY1 BUTTON_LEFT #define CHIP8_KEY1 BUTTON_LEFT
@ -1251,23 +1251,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_RIGHT #define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY8 BUTTON_LEFT #define CHIP8_KEY8 BUTTON_LEFT
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY2 BUTTON_HOME
#define CHIP8_KEY4 BUTTON_PREV
#define CHIP8_KEY5 BUTTON_PLAY
#define CHIP8_KEY6 BUTTON_NEXT
#define CHIP8_KEY8 BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY2 BUTTON_HOME
#define CHIP8_KEY4 BUTTON_PREV
#define CHIP8_KEY5 BUTTON_PLAY
#define CHIP8_KEY6 BUTTON_NEXT
#define CHIP8_KEY8 BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CHIP8_OFF BUTTON_POWER #define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY2 BUTTON_HOME #define CHIP8_KEY2 BUTTON_HOME
#define CHIP8_KEY4 BUTTON_PREV #define CHIP8_KEY4 BUTTON_PREV
@ -1283,7 +1267,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_NEXT #define CHIP8_KEY6 BUTTON_NEXT
#define CHIP8_KEY8 BUTTON_OPTION #define CHIP8_KEY8 BUTTON_OPTION
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define CHIP8_OFF BUTTON_POWER #define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY2 BUTTON_NEXT #define CHIP8_KEY2 BUTTON_NEXT
#define CHIP8_KEY4 BUTTON_HOME #define CHIP8_KEY4 BUTTON_HOME
@ -1291,12 +1275,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY6 BUTTON_VOL_DOWN #define CHIP8_KEY6 BUTTON_VOL_DOWN
#define CHIP8_KEY8 BUTTON_PREV #define CHIP8_KEY8 BUTTON_PREV
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CHIP8_OFF BUTTON_POWER #define CHIP8_OFF BUTTON_POWER
#define CHIP8_KEY2 BUTTON_NEXT #define CHIP8_KEY2 BUTTON_NEXT
#define CHIP8_KEY4 BUTTON_HOME #define CHIP8_KEY4 BUTTON_MENU
#define CHIP8_KEY5 BUTTON_VOL_UP #define CHIP8_KEY5 BUTTON_PLAY
#define CHIP8_KEY6 BUTTON_VOL_DOWN #define CHIP8_KEY6 BUTTON_BACK
#define CHIP8_KEY8 BUTTON_PREV #define CHIP8_KEY8 BUTTON_PREV
#else #else
@ -1342,15 +1326,15 @@ static unsigned long cycles; /* Number of update cycles (50Hz) */
/****************************************************************************/ /****************************************************************************/
/* Turn sound on */ /* Turn sound on */
/****************************************************************************/ /****************************************************************************/
static void chip8_sound_on (void) static void chip8_sound_on (void)
{ {
} }
/****************************************************************************/ /****************************************************************************/
/* Turn sound off */ /* Turn sound off */
/****************************************************************************/ /****************************************************************************/
static void chip8_sound_off (void) static void chip8_sound_off (void)
{ {
} }
/****************************************************************************/ /****************************************************************************/
@ -1587,7 +1571,7 @@ enum plugin_status plugin_start(const void* parameter)
} }
else else
{ {
filename = (char*) parameter; filename = (char*) parameter;
} }
/* now go ahead and have fun! */ /* now go ahead and have fun! */

View file

@ -198,32 +198,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION BUTTON_SELECT #define ACTION BUTTON_SELECT
#define ACTIONTEXT "Select" #define ACTIONTEXT "Select"
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD || CONFIG_KEYPAD == FIIO_M3K_PAD || CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD || CONFIG_KEYPAD == EROSQ_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == FIIO_M3K_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == IHIFI_770_PAD
#define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY"
#elif CONFIG_KEYPAD == IHIFI_800_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define ACTION BUTTON_PLAY #define ACTION BUTTON_PLAY
#define ACTIONTEXT "PLAY" #define ACTIONTEXT "PLAY"
@ -735,7 +710,7 @@ static void chopDrawScene(void)
#elif LCD_DEPTH == 2 #elif LCD_DEPTH == 2
rb->lcd_set_foreground(LCD_WHITE); rb->lcd_set_foreground(LCD_WHITE);
#endif #endif
#if LCD_WIDTH <= 128 #if LCD_WIDTH <= 128
rb->snprintf(s, sizeof(s), "Dist: %d", score); rb->snprintf(s, sizeof(s), "Dist: %d", score);
#else #else
@ -781,7 +756,7 @@ static int chopMenu(int menunum)
{ "Normal", -1 }, { "Normal", -1 },
{ "Steep", -1 }, { "Steep", -1 },
}; };
MENUITEM_STRINGLIST(menu,"Chopper Menu",chopMenuCb, MENUITEM_STRINGLIST(menu,"Chopper Menu",chopMenuCb,
"Resume Game","Start New Game", "Resume Game","Start New Game",
"Level","Playback Control","Quit"); "Level","Playback Control","Quit");

View file

@ -284,15 +284,7 @@
#define CLIX_BUTTON_RIGHT BUTTON_NEXT #define CLIX_BUTTON_RIGHT BUTTON_NEXT
#define CLIX_BUTTON_CLICK BUTTON_PLAY #define CLIX_BUTTON_CLICK BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_UP BUTTON_HOME
#define CLIX_BUTTON_DOWN BUTTON_OPTION
#define CLIX_BUTTON_LEFT BUTTON_PREV
#define CLIX_BUTTON_RIGHT BUTTON_NEXT
#define CLIX_BUTTON_CLICK BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER #define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_UP BUTTON_HOME #define CLIX_BUTTON_UP BUTTON_HOME
#define CLIX_BUTTON_DOWN BUTTON_OPTION #define CLIX_BUTTON_DOWN BUTTON_OPTION
@ -308,7 +300,7 @@
#define CLIX_BUTTON_RIGHT BUTTON_NEXT #define CLIX_BUTTON_RIGHT BUTTON_NEXT
#define CLIX_BUTTON_CLICK BUTTON_PLAY #define CLIX_BUTTON_CLICK BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER #define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_UP BUTTON_PREV #define CLIX_BUTTON_UP BUTTON_PREV
#define CLIX_BUTTON_DOWN BUTTON_NEXT #define CLIX_BUTTON_DOWN BUTTON_NEXT
@ -316,13 +308,13 @@
#define CLIX_BUTTON_RIGHT BUTTON_VOL_DOWN #define CLIX_BUTTON_RIGHT BUTTON_VOL_DOWN
#define CLIX_BUTTON_CLICK BUTTON_VOL_UP #define CLIX_BUTTON_CLICK BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define CLIX_BUTTON_QUIT BUTTON_POWER #define CLIX_BUTTON_QUIT BUTTON_POWER
#define CLIX_BUTTON_UP BUTTON_PREV #define CLIX_BUTTON_UP BUTTON_PREV
#define CLIX_BUTTON_DOWN BUTTON_NEXT #define CLIX_BUTTON_DOWN BUTTON_NEXT
#define CLIX_BUTTON_LEFT BUTTON_HOME #define CLIX_BUTTON_LEFT BUTTON_SCROLL_BACK
#define CLIX_BUTTON_RIGHT BUTTON_VOL_DOWN #define CLIX_BUTTON_RIGHT BUTTON_SCROLL_FWD
#define CLIX_BUTTON_CLICK BUTTON_VOL_UP #define CLIX_BUTTON_CLICK BUTTON_PLAY
#else #else
#error "no keymap" #error "no keymap"

View file

@ -370,27 +370,7 @@
#define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REPEAT) #define CUBE_HIGHSPEED (BUTTON_SELECT | BUTTON_REPEAT)
#define CUBE_PAUSE (BUTTON_LEFT | BUTTON_REPEAT) #define CUBE_PAUSE (BUTTON_LEFT | BUTTON_REPEAT)
#elif (CONFIG_KEYPAD == XDUOO_X3_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3_PAD) || (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_NEXT
#define CUBE_PREV BUTTON_PREV
#define CUBE_INC BUTTON_VOL_UP
#define CUBE_DEC BUTTON_VOL_DOWN
#define CUBE_MODE BUTTON_OPTION
#define CUBE_PAUSE BUTTON_HOME
#define CUBE_HIGHSPEED BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
#define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_NEXT
#define CUBE_PREV BUTTON_PREV
#define CUBE_INC BUTTON_VOL_UP
#define CUBE_DEC BUTTON_VOL_DOWN
#define CUBE_MODE BUTTON_OPTION
#define CUBE_PAUSE BUTTON_HOME
#define CUBE_HIGHSPEED BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define CUBE_QUIT BUTTON_POWER #define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_NEXT #define CUBE_NEXT BUTTON_NEXT
#define CUBE_PREV BUTTON_PREV #define CUBE_PREV BUTTON_PREV
@ -410,7 +390,7 @@
#define CUBE_PAUSE BUTTON_HOME #define CUBE_PAUSE BUTTON_HOME
#define CUBE_HIGHSPEED BUTTON_PLAY #define CUBE_HIGHSPEED BUTTON_PLAY
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define CUBE_QUIT BUTTON_POWER #define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_NEXT #define CUBE_NEXT BUTTON_NEXT
#define CUBE_PREV BUTTON_PREV #define CUBE_PREV BUTTON_PREV
@ -420,14 +400,14 @@
#define CUBE_PAUSE BUTTON_HOME #define CUBE_PAUSE BUTTON_HOME
#define CUBE_HIGHSPEED BUTTON_PLAY #define CUBE_HIGHSPEED BUTTON_PLAY
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif CONFIG_KEYPAD == EROSQ_PAD
#define CUBE_QUIT BUTTON_POWER #define CUBE_QUIT BUTTON_POWER
#define CUBE_NEXT BUTTON_NEXT #define CUBE_NEXT BUTTON_NEXT
#define CUBE_PREV BUTTON_PREV #define CUBE_PREV BUTTON_PREV
#define CUBE_INC BUTTON_VOL_UP #define CUBE_INC BUTTON_SCROLL_FWD
#define CUBE_DEC BUTTON_VOL_DOWN #define CUBE_DEC BUTTON_SCROLL_BACK
#define CUBE_MODE (BUTTON_HOME | BUTTON_POWER) #define CUBE_MODE BUTTON_MENU
#define CUBE_PAUSE BUTTON_HOME #define CUBE_PAUSE BUTTON_BACK
#define CUBE_HIGHSPEED BUTTON_PLAY #define CUBE_HIGHSPEED BUTTON_PLAY
#else #else
@ -666,7 +646,7 @@ static void cube_draw(void)
{ {
#if LCD_DEPTH > 1 || defined(USEGSLIB) #if LCD_DEPTH > 1 || defined(USEGSLIB)
case SOLID: case SOLID:
old_foreground = mylcd_get_foreground(); old_foreground = mylcd_get_foreground();
for (i = 0; i < 6; i++) for (i = 0; i < 6; i++)
{ {
@ -882,7 +862,7 @@ enum plugin_status plugin_start(const void* parameter)
t_disp = DISP_TIME; t_disp = DISP_TIME;
redraw = true; redraw = true;
break; break;
case CUBE_NEXT: case CUBE_NEXT:
if (++curr > 2) if (++curr > 2)
curr = 0; curr = 0;
@ -947,5 +927,3 @@ enum plugin_status plugin_start(const void* parameter)
return PLUGIN_OK; return PLUGIN_OK;
} }

View file

@ -566,18 +566,7 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ENTER BUTTON_PLAY #define DOOMBUTTON_ENTER BUTTON_PLAY
#define DOOMBUTTON_WEAPON BUTTON_VOL_UP #define DOOMBUTTON_WEAPON BUTTON_VOL_UP
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define DOOMBUTTON_UP BUTTON_HOME
#define DOOMBUTTON_DOWN BUTTON_OPTION
#define DOOMBUTTON_LEFT BUTTON_PREV
#define DOOMBUTTON_RIGHT BUTTON_NEXT
#define DOOMBUTTON_SHOOT BUTTON_PLAY
#define DOOMBUTTON_OPEN (BUTTON_HOME | BUTTON_POWER)
#define DOOMBUTTON_ESC BUTTON_POWER
#define DOOMBUTTON_ENTER BUTTON_PLAY
#define DOOMBUTTON_WEAPON BUTTON_VOL_UP
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define DOOMBUTTON_UP BUTTON_HOME #define DOOMBUTTON_UP BUTTON_HOME
#define DOOMBUTTON_DOWN BUTTON_OPTION #define DOOMBUTTON_DOWN BUTTON_OPTION
#define DOOMBUTTON_LEFT BUTTON_PREV #define DOOMBUTTON_LEFT BUTTON_PREV
@ -599,7 +588,7 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_ENTER BUTTON_PLAY #define DOOMBUTTON_ENTER BUTTON_PLAY
#define DOOMBUTTON_WEAPON BUTTON_VOL_UP #define DOOMBUTTON_WEAPON BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define DOOMBUTTON_UP BUTTON_PREV #define DOOMBUTTON_UP BUTTON_PREV
#define DOOMBUTTON_DOWN BUTTON_NEXT #define DOOMBUTTON_DOWN BUTTON_NEXT
#define DOOMBUTTON_LEFT BUTTON_HOME #define DOOMBUTTON_LEFT BUTTON_HOME
@ -611,17 +600,17 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT) #define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT)
#define DOOMBUTTON_MAP (BUTTON_POWER|BUTTON_REPEAT) #define DOOMBUTTON_MAP (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define DOOMBUTTON_UP BUTTON_PREV #define DOOMBUTTON_UP BUTTON_PREV
#define DOOMBUTTON_DOWN BUTTON_NEXT #define DOOMBUTTON_DOWN BUTTON_NEXT
#define DOOMBUTTON_LEFT BUTTON_HOME #define DOOMBUTTON_LEFT BUTTON_SCROLL_BACK
#define DOOMBUTTON_RIGHT BUTTON_VOL_DOWN #define DOOMBUTTON_RIGHT BUTTON_SCROLL_FWD
#define DOOMBUTTON_OPEN BUTTON_PLAY #define DOOMBUTTON_SHOOT BUTTON_PLAY
#define DOOMBUTTON_ESC BUTTON_POWER #define DOOMBUTTON_OPEN BUTTON_BACK
#define DOOMBUTTON_ENTER BUTTON_VOL_UP #define DOOMBUTTON_ESC BUTTON_MENU
#define DOOMBUTTON_SHOOT BUTTON_VOL_UP #define DOOMBUTTON_ENTER BUTTON_PLAY
#define DOOMBUTTON_WEAPON (BUTTON_PLAY|BUTTON_REPEAT) #define DOOMBUTTON_WEAPON BUTTON_VOL_UP
#define DOOMBUTTON_MAP (BUTTON_POWER|BUTTON_REPEAT) #define DOOMBUTTON_MAP BUTTON_VOL_DOWN
#else #else
#error Keymap not defined! #error Keymap not defined!
@ -745,7 +734,7 @@ static inline void getkey()
D_PostEvent(&event); D_PostEvent(&event);
} }
#endif #endif
#endif #endif
newbuttonstate = rb->button_status(); newbuttonstate = rb->button_status();
#ifdef DOOMBUTTON_SCROLLWHEEL #ifdef DOOMBUTTON_SCROLLWHEEL
newbuttonstate |= read_scroll_wheel(); newbuttonstate |= read_scroll_wheel();
@ -954,7 +943,7 @@ void I_FinishUpdate (void)
{ {
int count; int count;
byte *src = d_screens[0]; byte *src = d_screens[0];
#if (CONFIG_LCD == LCD_H300) && !defined(SIMULATOR) #if (CONFIG_LCD == LCD_H300) && !defined(SIMULATOR)
count = SCREENWIDTH*SCREENHEIGHT; count = SCREENWIDTH*SCREENHEIGHT;
@ -1091,7 +1080,7 @@ void I_FinishUpdate (void)
*dst++ = palette[*src++]; *dst++ = palette[*src++];
while (--count); while (--count);
} }
rb->lcd_update(); rb->lcd_update();
#else /* !HAVE_LCD_COLOR */ #else /* !HAVE_LCD_COLOR */
unsigned char *dst; unsigned char *dst;
@ -1108,8 +1097,8 @@ void I_FinishUpdate (void)
grey_ub_gray_bitmap(greybuffer, 0, y, SCREENWIDTH, 1); grey_ub_gray_bitmap(greybuffer, 0, y, SCREENWIDTH, 1);
} }
#endif #endif
#endif #endif
} }
// //
@ -1136,7 +1125,7 @@ void I_InitGraphics(void)
printf("Starting Graphics engine\n"); printf("Starting Graphics engine\n");
noprintf=1; noprintf=1;
#if defined(HAVE_LCD_MODES) #if defined(HAVE_LCD_MODES)
#if (HAVE_LCD_MODES & LCD_MODE_PAL256) #if (HAVE_LCD_MODES & LCD_MODE_PAL256)
rb->lcd_set_mode(LCD_MODE_PAL256); rb->lcd_set_mode(LCD_MODE_PAL256);

View file

@ -334,16 +334,7 @@ GREY_INFO_STRUCT
# define FFT_AMP_SCALE BUTTON_PLAY # define FFT_AMP_SCALE BUTTON_PLAY
# define FFT_QUIT BUTTON_POWER # define FFT_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
# define FFT_PREV_GRAPH BUTTON_PREV
# define FFT_NEXT_GRAPH BUTTON_NEXT
# define FFT_ORIENTATION BUTTON_HOME
# define FFT_FREQ_SCALE BUTTON_OPTION
# define FFT_WINDOW (BUTTON_HOME|BUTTON_POWER)
# define FFT_AMP_SCALE BUTTON_PLAY
# define FFT_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
# define FFT_PREV_GRAPH BUTTON_PREV # define FFT_PREV_GRAPH BUTTON_PREV
# define FFT_NEXT_GRAPH BUTTON_NEXT # define FFT_NEXT_GRAPH BUTTON_NEXT
# define FFT_ORIENTATION BUTTON_HOME # define FFT_ORIENTATION BUTTON_HOME
@ -361,7 +352,7 @@ GREY_INFO_STRUCT
# define FFT_AMP_SCALE BUTTON_PLAY # define FFT_AMP_SCALE BUTTON_PLAY
# define FFT_QUIT BUTTON_POWER # define FFT_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
# define FFT_PREV_GRAPH BUTTON_PREV # define FFT_PREV_GRAPH BUTTON_PREV
# define FFT_NEXT_GRAPH BUTTON_NEXT # define FFT_NEXT_GRAPH BUTTON_NEXT
# define FFT_ORIENTATION BUTTON_HOME # define FFT_ORIENTATION BUTTON_HOME
@ -370,13 +361,13 @@ GREY_INFO_STRUCT
# define FFT_AMP_SCALE BUTTON_PLAY # define FFT_AMP_SCALE BUTTON_PLAY
# define FFT_QUIT BUTTON_POWER # define FFT_QUIT BUTTON_POWER
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
# define FFT_PREV_GRAPH BUTTON_PREV # define FFT_PREV_GRAPH BUTTON_SCROLL_BACK
# define FFT_NEXT_GRAPH BUTTON_NEXT # define FFT_NEXT_GRAPH BUTTON_SCROLL_FWD
# define FFT_ORIENTATION BUTTON_HOME # define FFT_ORIENTATION BUTTON_VOL_UP
# define FFT_FREQ_SCALE BUTTON_VOL_UP # define FFT_FREQ_SCALE BUTTON_VOL_DOWN
# define FFT_WINDOW BUTTON_VOL_DOWN # define FFT_WINDOW BUTTON_BACK
# define FFT_AMP_SCALE BUTTON_PLAY # define FFT_AMP_SCALE BUTTON_MENU
# define FFT_QUIT BUTTON_POWER # define FFT_QUIT BUTTON_POWER
#elif !defined(HAVE_TOUCHSCREEN) #elif !defined(HAVE_TOUCHSCREEN)
@ -530,7 +521,7 @@ static struct fft_config
int amp_scale; int amp_scale;
int freq_scale; int freq_scale;
int window_func; int window_func;
} fft_disk = } fft_disk =
{ {
/* Defaults */ /* Defaults */
.orientation = FFT_OR_VERT, .orientation = FFT_OR_VERT,
@ -647,7 +638,7 @@ static void apply_window_func(enum fft_window_func mode)
/* Calculates the magnitudes from complex numbers and returns the maximum */ /* Calculates the magnitudes from complex numbers and returns the maximum */
static unsigned calc_magnitudes(enum fft_amp_scale scale) static unsigned calc_magnitudes(enum fft_amp_scale scale)
{ {
/* A major assumption made when calculating the Q*MAX constants /* A major assumption made when calculating the Q*MAX constants
* is that the maximum magnitude is 29 bits long. */ * is that the maximum magnitude is 29 bits long. */
unsigned this_max = 0; unsigned this_max = 0;
kiss_fft_cpx *this_output = output[output_head] + 1; /* skip DC */ kiss_fft_cpx *this_output = output[output_head] + 1; /* skip DC */
@ -806,7 +797,7 @@ static void draw_lines_vertical(unsigned this_max, unsigned graph_max)
{ {
int bins_acc = LCD_WIDTH / 2; int bins_acc = LCD_WIDTH / 2;
unsigned bins_max = 0; unsigned bins_max = 0;
for(int i = 0, x = 0; i < ARRAYLEN_PLOT; ++i) for(int i = 0, x = 0; i < ARRAYLEN_PLOT; ++i)
{ {
unsigned bin = plot[i]; unsigned bin = plot[i];
@ -1107,7 +1098,7 @@ static inline bool fft_get_fft(void)
/* This block can introduce discontinuities in our data. Meaning, the /* This block can introduce discontinuities in our data. Meaning, the
* FFT will not be done a continuous segment of the signal. Which can * FFT will not be done a continuous segment of the signal. Which can
* be bad. Or not. * be bad. Or not.
* *
* Anyway, this is a demo, not a scientific tool. If you want accuracy, * Anyway, this is a demo, not a scientific tool. If you want accuracy,
* do a proper spectrum analysis.*/ * do a proper spectrum analysis.*/
@ -1409,7 +1400,7 @@ static void fft_setting_update(unsigned which)
[FFT_OR_HORZ] = draw_bars_horizontal, [FFT_OR_HORZ] = draw_bars_horizontal,
[FFT_OR_VERT] = draw_bars_vertical, [FFT_OR_VERT] = draw_bars_vertical,
}, },
[FFT_DM_SPECTROGRAM] = [FFT_DM_SPECTROGRAM] =
{ {
[FFT_OR_HORZ] = draw_spectrogram_horizontal, [FFT_OR_HORZ] = draw_spectrogram_horizontal,
[FFT_OR_VERT] = draw_spectrogram_vertical, [FFT_OR_VERT] = draw_spectrogram_vertical,
@ -1533,7 +1524,7 @@ static void fft_cleanup(void)
{ {
myosd_destroy(); myosd_destroy();
fft_close_fft(); fft_close_fft();
#ifdef HAVE_ADJUSTABLE_CPU_FREQ #ifdef HAVE_ADJUSTABLE_CPU_FREQ
rb->cancel_cpu_boost(); rb->cancel_cpu_boost();

View file

@ -436,31 +436,7 @@
#define FLIPIT_STEP_BY_STEP (BUTTON_LEFT|BUTTON_VOLUP) #define FLIPIT_STEP_BY_STEP (BUTTON_LEFT|BUTTON_VOLUP)
#define FLIPIT_TOGGLE BUTTON_SELECT #define FLIPIT_TOGGLE BUTTON_SELECT
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define FLIPIT_LEFT BUTTON_PREV
#define FLIPIT_RIGHT BUTTON_NEXT
#define FLIPIT_UP BUTTON_HOME
#define FLIPIT_DOWN BUTTON_OPTION
#define FLIPIT_QUIT BUTTON_POWER
#define FLIPIT_SHUFFLE (BUTTON_HOME | BUTTON_PREV)
#define FLIPIT_SOLVE (BUTTON_HOME | BUTTON_NEXT)
#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
#define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define FLIPIT_LEFT BUTTON_PREV
#define FLIPIT_RIGHT BUTTON_NEXT
#define FLIPIT_UP BUTTON_HOME
#define FLIPIT_DOWN BUTTON_OPTION
#define FLIPIT_QUIT BUTTON_POWER
#define FLIPIT_SHUFFLE (BUTTON_HOME | BUTTON_PREV)
#define FLIPIT_SOLVE (BUTTON_HOME | BUTTON_NEXT)
#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
#define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define FLIPIT_LEFT BUTTON_PREV #define FLIPIT_LEFT BUTTON_PREV
#define FLIPIT_RIGHT BUTTON_NEXT #define FLIPIT_RIGHT BUTTON_NEXT
@ -484,7 +460,7 @@
#define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY) #define FLIPIT_STEP_BY_STEP (BUTTON_HOME | BUTTON_PLAY)
#define FLIPIT_TOGGLE BUTTON_PLAY #define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define FLIPIT_LEFT BUTTON_HOME #define FLIPIT_LEFT BUTTON_HOME
#define FLIPIT_RIGHT BUTTON_VOL_DOWN #define FLIPIT_RIGHT BUTTON_VOL_DOWN
@ -496,16 +472,16 @@
#define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_PLAY) #define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_PLAY)
#define FLIPIT_TOGGLE BUTTON_PLAY #define FLIPIT_TOGGLE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define FLIPIT_LEFT BUTTON_HOME #define FLIPIT_LEFT BUTTON_SCROLL_BACK
#define FLIPIT_RIGHT BUTTON_VOL_DOWN #define FLIPIT_RIGHT BUTTON_SCROLL_FWD
#define FLIPIT_UP BUTTON_PREV #define FLIPIT_UP BUTTON_PREV
#define FLIPIT_DOWN BUTTON_NEXT #define FLIPIT_DOWN BUTTON_NEXT
#define FLIPIT_QUIT BUTTON_POWER #define FLIPIT_QUIT BUTTON_POWER
#define FLIPIT_SHUFFLE (BUTTON_POWER | BUTTON_PREV) #define FLIPIT_SHUFFLE BUTTON_MENU
#define FLIPIT_SOLVE (BUTTON_POWER | BUTTON_NEXT) #define FLIPIT_SOLVE BUTTON_VOL_DOWN
#define FLIPIT_STEP_BY_STEP (BUTTON_POWER | BUTTON_PLAY) #define FLIPIT_STEP_BY_STEP BUTTON_VOL_UP
#define FLIPIT_TOGGLE BUTTON_PLAY #define FLIPIT_TOGGLE BUTTON_PLAY
#else #else
@ -562,8 +538,8 @@ static int cursor_pos, moves;
/* draw a spot at the coordinates (x,y), range of p is 0-19 */ /* draw a spot at the coordinates (x,y), range of p is 0-19 */
static void draw_spot(int p) static void draw_spot(int p)
{ {
rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT,
STRIDE(SCREEN_MAIN, BMPWIDTH_flipit_tokens, STRIDE(SCREEN_MAIN, BMPWIDTH_flipit_tokens,
BMPHEIGHT_flipit_tokens), BMPHEIGHT_flipit_tokens),
GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE), GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE),
GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE), GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE),
@ -571,7 +547,7 @@ static void draw_spot(int p)
} }
/* draw the cursor at the current cursor position */ /* draw the cursor at the current cursor position */
static void draw_cursor(void) static void draw_cursor(void)
{ {
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_bitmap_transparent( flipit_cursor, rb->lcd_bitmap_transparent( flipit_cursor,
@ -612,7 +588,7 @@ static inline void clear_cursor(void)
} }
/* check if the puzzle is finished */ /* check if the puzzle is finished */
static bool flipit_finished(void) static bool flipit_finished(void)
{ {
int i; int i;
for (i=0; i<20; i++) for (i=0; i<20; i++)
@ -653,7 +629,7 @@ static void flipit_toggle(void)
} }
/* move the cursor in any direction */ /* move the cursor in any direction */
static void move_cursor(int x, int y) static void move_cursor(int x, int y)
{ {
if (!(flipit_finished())) { if (!(flipit_finished())) {
clear_cursor(); clear_cursor();
@ -665,7 +641,7 @@ static void move_cursor(int x, int y)
} }
/* initialize the board */ /* initialize the board */
static void flipit_init(void) static void flipit_init(void)
{ {
int i; int i;
@ -690,7 +666,7 @@ static void flipit_init(void)
} }
/* the main game loop */ /* the main game loop */
static bool flipit_loop(void) static bool flipit_loop(void)
{ {
int i; int i;
int button; int button;
@ -775,7 +751,7 @@ static bool flipit_loop(void)
/*move cursor though the entire field*/ /*move cursor though the entire field*/
#ifdef FLIPIT_SCROLLWHEEL #ifdef FLIPIT_SCROLLWHEEL
case FLIPIT_PREV: case FLIPIT_PREV:
case FLIPIT_PREV|BUTTON_REPEAT: case FLIPIT_PREV|BUTTON_REPEAT:
if ((cursor_pos)%5 == 0) { if ((cursor_pos)%5 == 0) {
move_cursor(-1, -1); move_cursor(-1, -1);
} }

View file

@ -458,19 +458,7 @@
#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) #define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) #define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define FRACTAL_QUIT BUTTON_POWER
#define FRACTAL_UP BUTTON_HOME
#define FRACTAL_DOWN BUTTON_OPTION
#define FRACTAL_LEFT BUTTON_PREV
#define FRACTAL_RIGHT BUTTON_NEXT
#define FRACTAL_ZOOM_IN BUTTON_VOL_UP
#define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN
#define FRACTAL_PRECISION_INC (BUTTON_PLAY | BUTTON_NEXT)
#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define FRACTAL_QUIT BUTTON_POWER #define FRACTAL_QUIT BUTTON_POWER
#define FRACTAL_UP BUTTON_HOME #define FRACTAL_UP BUTTON_HOME
#define FRACTAL_DOWN BUTTON_OPTION #define FRACTAL_DOWN BUTTON_OPTION
@ -494,7 +482,7 @@
#define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV) #define FRACTAL_PRECISION_DEC (BUTTON_PLAY | BUTTON_PREV)
#define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER) #define FRACTAL_RESET (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define FRACTAL_QUIT BUTTON_POWER #define FRACTAL_QUIT BUTTON_POWER
#define FRACTAL_UP BUTTON_PREV #define FRACTAL_UP BUTTON_PREV
#define FRACTAL_DOWN BUTTON_NEXT #define FRACTAL_DOWN BUTTON_NEXT
@ -506,17 +494,17 @@
#define FRACTAL_PRECISION_DEC (BUTTON_POWER | BUTTON_PREV) #define FRACTAL_PRECISION_DEC (BUTTON_POWER | BUTTON_PREV)
#define FRACTAL_RESET (BUTTON_POWER | BUTTON_HOME) #define FRACTAL_RESET (BUTTON_POWER | BUTTON_HOME)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define FRACTAL_QUIT BUTTON_POWER #define FRACTAL_QUIT BUTTON_POWER
#define FRACTAL_UP BUTTON_PREV #define FRACTAL_UP BUTTON_PREV
#define FRACTAL_DOWN BUTTON_NEXT #define FRACTAL_DOWN BUTTON_NEXT
#define FRACTAL_LEFT BUTTON_HOME #define FRACTAL_LEFT BUTTON_SCROLL_BACK
#define FRACTAL_RIGHT BUTTON_VOL_DOWN #define FRACTAL_RIGHT BUTTON_SCROLL_FWD
#define FRACTAL_ZOOM_IN (BUTTON_POWER | BUTTON_VOL_UP) #define FRACTAL_ZOOM_IN BUTTON_VOL_UP
#define FRACTAL_ZOOM_OUT (BUTTON_POWER | BUTTON_VOL_DOWN) #define FRACTAL_ZOOM_OUT BUTTON_VOL_DOWN
#define FRACTAL_PRECISION_INC (BUTTON_POWER | BUTTON_NEXT) #define FRACTAL_PRECISION_INC BUTTON_MENU
#define FRACTAL_PRECISION_DEC (BUTTON_POWER | BUTTON_PREV) #define FRACTAL_PRECISION_DEC BUTTON_BACK
#define FRACTAL_RESET (BUTTON_POWER | BUTTON_HOME) #define FRACTAL_RESET BUTTON_PLAY
#else #else
#error No keymap defined! #error No keymap defined!
@ -555,4 +543,3 @@
#endif #endif
#endif #endif

View file

@ -443,19 +443,7 @@
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_PWRALT #define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_PWRALT
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define GBN_BUTTON_UP BUTTON_HOME
#define GBN_BUTTON_DOWN BUTTON_OPTION
#define GBN_BUTTON_LEFT BUTTON_PREV
#define GBN_BUTTON_RIGHT BUTTON_NEXT
#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
#define GBN_BUTTON_MENU BUTTON_POWER
#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define GBN_BUTTON_UP BUTTON_HOME #define GBN_BUTTON_UP BUTTON_HOME
#define GBN_BUTTON_DOWN BUTTON_OPTION #define GBN_BUTTON_DOWN BUTTON_OPTION
#define GBN_BUTTON_LEFT BUTTON_PREV #define GBN_BUTTON_LEFT BUTTON_PREV
@ -479,7 +467,7 @@
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
#define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER #define GBN_BUTTON_NEXT_VAR BUTTON_HOME | BUTTON_POWER
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define GBN_BUTTON_UP BUTTON_PREV #define GBN_BUTTON_UP BUTTON_PREV
#define GBN_BUTTON_DOWN BUTTON_NEXT #define GBN_BUTTON_DOWN BUTTON_NEXT
@ -492,18 +480,17 @@
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT #define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
#define GBN_BUTTON_NEXT_VAR BUTTON_POWER | BUTTON_HOME #define GBN_BUTTON_NEXT_VAR BUTTON_POWER | BUTTON_HOME
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define GBN_BUTTON_UP BUTTON_PREV #define GBN_BUTTON_UP BUTTON_PREV
#define GBN_BUTTON_DOWN BUTTON_NEXT #define GBN_BUTTON_DOWN BUTTON_NEXT
#define GBN_BUTTON_LEFT BUTTON_HOME #define GBN_BUTTON_LEFT BUTTON_SCROLL_BACK
#define GBN_BUTTON_RIGHT BUTTON_VOL_DOWN #define GBN_BUTTON_RIGHT BUTTON_SCROLL_FWD
#define GBN_BUTTON_RETREAT BUTTON_POWER | BUTTON_VOL_DOWN #define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
#define GBN_BUTTON_ADVANCE BUTTON_POWER | BUTTON_VOL_UP #define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
#define GBN_BUTTON_MENU BUTTON_POWER #define GBN_BUTTON_MENU BUTTON_MENU
#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL #define GBN_BUTTON_PLAY BUTTON_PLAY
#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT #define GBN_BUTTON_CONTEXT BUTTON_MENU | BUTTON_REPEAT
#define GBN_BUTTON_NEXT_VAR BUTTON_POWER | BUTTON_HOME #define GBN_BUTTON_NEXT_VAR BUTTON_BACK
#else #else
#error Unsupported keypad #error Unsupported keypad

View file

@ -476,22 +476,7 @@
#define IMGVIEW_MENU BUTTON_POWER #define IMGVIEW_MENU BUTTON_POWER
#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_PWRALT) #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_PWRALT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_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_HOME
#define IMGVIEW_DOWN BUTTON_OPTION
#define IMGVIEW_LEFT BUTTON_PREV
#define IMGVIEW_RIGHT BUTTON_NEXT
#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|BUTTON_POWER)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define IMGVIEW_ZOOM_PRE BUTTON_PLAY #define IMGVIEW_ZOOM_PRE BUTTON_PLAY
#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
@ -521,7 +506,7 @@
#define IMGVIEW_MENU BUTTON_POWER #define IMGVIEW_MENU BUTTON_POWER
#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define IMGVIEW_ZOOM_PRE BUTTON_PLAY #define IMGVIEW_ZOOM_PRE BUTTON_PLAY
#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
@ -536,20 +521,20 @@
#define IMGVIEW_MENU BUTTON_POWER #define IMGVIEW_MENU BUTTON_POWER
#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) #define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define IMGVIEW_ZOOM_PRE BUTTON_PLAY #define IMGVIEW_ZOOM_PRE BUTTON_PLAY
#define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) #define IMGVIEW_ZOOM_IN (BUTTON_PLAY | BUTTON_REL)
#define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT) #define IMGVIEW_ZOOM_OUT (BUTTON_PLAY | BUTTON_REPEAT)
#define IMGVIEW_UP BUTTON_PREV #define IMGVIEW_UP BUTTON_PREV
#define IMGVIEW_DOWN BUTTON_NEXT #define IMGVIEW_DOWN BUTTON_NEXT
#define IMGVIEW_LEFT BUTTON_HOME #define IMGVIEW_LEFT BUTTON_SCROLL_BACK
#define IMGVIEW_RIGHT (BUTTON_PLAY|BUTTON_POWER) #define IMGVIEW_RIGHT BUTTON_SCROLL_FWD
#define IMGVIEW_NEXT BUTTON_VOL_UP #define IMGVIEW_NEXT BUTTON_VOL_UP
#define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT) #define IMGVIEW_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT)
#define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN #define IMGVIEW_PREVIOUS BUTTON_VOL_DOWN
#define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT) #define IMGVIEW_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT)
#define IMGVIEW_MENU BUTTON_POWER #define IMGVIEW_MENU BUTTON_MENU
#define IMGVIEW_SLIDE_SHOW (BUTTON_HOME|BUTTON_POWER) #define IMGVIEW_SLIDE_SHOW BUTTON_BACK
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -268,14 +268,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define FIRE BUTTON_MENU #define FIRE BUTTON_MENU
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME
#define RIGHT BUTTON_VOL_DOWN
#define FIRE BUTTON_VOL_UP
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_HOME
@ -289,19 +282,19 @@ CONFIG_KEYPAD == MROBE500_PAD
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_VOL_DOWN
#define FIRE BUTTON_VOL_UP #define FIRE BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_HOME
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_VOL_DOWN
#define FIRE BUTTON_VOL_UP #define FIRE BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_SCROLL_BACK
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_SCROLL_FWD
#define FIRE BUTTON_VOL_UP #define FIRE BUTTON_PLAY
#else #else
#error INVADROX: Unsupported keypad #error INVADROX: Unsupported keypad
@ -829,8 +822,8 @@ static void draw_number(int x, int y, int num, int digits)
d = num % 10; d = num % 10;
num = num / 10; num = num / 10;
rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0, rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_numbers, BMPWIDTH_invadrox_numbers,
BMPHEIGHT_invadrox_numbers), BMPHEIGHT_invadrox_numbers),
x + i * (NUMBERS_WIDTH + NUM_SPACING), y, x + i * (NUMBERS_WIDTH + NUM_SPACING), y,
NUMBERS_WIDTH, FONT_HEIGHT); NUMBERS_WIDTH, FONT_HEIGHT);
@ -861,17 +854,17 @@ static void draw_lives(void)
int i; int i;
/* Lives num */ /* Lives num */
rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0, rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_numbers, BMPWIDTH_invadrox_numbers,
BMPHEIGHT_invadrox_numbers), BMPHEIGHT_invadrox_numbers),
PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2, PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2,
NUMBERS_WIDTH, FONT_HEIGHT); NUMBERS_WIDTH, FONT_HEIGHT);
/* Ships */ /* Ships */
for (i = 0; i < (lives - 1); i++) { for (i = 0; i < (lives - 1); i++) {
rb->lcd_bitmap_part(invadrox_ships, 0, 0, rb->lcd_bitmap_part(invadrox_ships, 0, 0,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_ships, BMPWIDTH_invadrox_ships,
BMPHEIGHT_invadrox_ships), BMPHEIGHT_invadrox_ships),
PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING), PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING),
PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT); PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT);
@ -893,11 +886,11 @@ static inline void draw_aliens(void)
int i; int i;
for (i = 0; i < 5 * ALIENS; i++) { for (i = 0; i < 5 * ALIENS; i++) {
rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0, rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0,
aliens[i].type * ALIEN_HEIGHT, aliens[i].type * ALIEN_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_aliens, BMPWIDTH_invadrox_aliens,
BMPHEIGHT_invadrox_aliens), BMPHEIGHT_invadrox_aliens),
PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED, PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED,
ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT, ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT,
ALIEN_WIDTH, ALIEN_HEIGHT); ALIEN_WIDTH, ALIEN_HEIGHT);
@ -1035,11 +1028,11 @@ static bool move_aliens(void)
x = PLAYFIELD_X + LIVES_X + aliens[curr_alien].x * ALIEN_SPEED; x = PLAYFIELD_X + LIVES_X + aliens[curr_alien].x * ALIEN_SPEED;
y = ALIEN_START_Y + aliens[curr_alien].y * ALIEN_HEIGHT; y = ALIEN_START_Y + aliens[curr_alien].y * ALIEN_HEIGHT;
rb->lcd_bitmap_part(invadrox_aliens, rb->lcd_bitmap_part(invadrox_aliens,
aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0, aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0,
aliens[curr_alien].type * ALIEN_HEIGHT, aliens[curr_alien].type * ALIEN_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_aliens, BMPWIDTH_invadrox_aliens,
BMPHEIGHT_invadrox_aliens), BMPHEIGHT_invadrox_aliens),
x, y, ALIEN_WIDTH, ALIEN_HEIGHT); x, y, ALIEN_WIDTH, ALIEN_HEIGHT);
if (!next_alien()) { if (!next_alien()) {
@ -1068,9 +1061,9 @@ static inline void draw_ship(void)
/* Draw ship */ /* Draw ship */
rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT, rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_ships, BMPWIDTH_invadrox_ships,
BMPHEIGHT_invadrox_ships), BMPHEIGHT_invadrox_ships),
ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT); ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT);
if (ship_hit) { if (ship_hit) {
/* Alternate between frame 1 and 2 during hit */ /* Alternate between frame 1 and 2 during hit */
@ -1095,7 +1088,7 @@ static inline void fire_alpha(int xc, int yc, unsigned color)
rb->lcd_set_foreground(color); rb->lcd_set_foreground(color);
rb->lcd_set_drawmode(DRMODE_FG); rb->lcd_set_drawmode(DRMODE_FG);
rb->lcd_mono_bitmap(invadrox_fire, xc - (FIRE_WIDTH/2), yc, FIRE_WIDTH, FIRE_HEIGHT); rb->lcd_mono_bitmap(invadrox_fire, xc - (FIRE_WIDTH/2), yc, FIRE_WIDTH, FIRE_HEIGHT);
rb->lcd_set_foreground(LCD_BLACK); rb->lcd_set_foreground(LCD_BLACK);
@ -1311,9 +1304,9 @@ static inline void draw_bomb(int i)
{ {
rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH, rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH,
bombs[i].frame * BOMB_HEIGHT, bombs[i].frame * BOMB_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_bombs, BMPWIDTH_invadrox_bombs,
BMPHEIGHT_invadrox_bombs), BMPHEIGHT_invadrox_bombs),
bombs[i].x, bombs[i].y, bombs[i].x, bombs[i].y,
BOMB_WIDTH, BOMB_HEIGHT); BOMB_WIDTH, BOMB_HEIGHT);
/* Advance frame */ /* Advance frame */
@ -1415,9 +1408,9 @@ static void move_bombs(void)
bombs[i].state = S_EXPLODE * 4; bombs[i].state = S_EXPLODE * 4;
bombs[i].target = TARGET_SHIP; bombs[i].target = TARGET_SHIP;
rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT, rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_invadrox_ships, BMPWIDTH_invadrox_ships,
BMPHEIGHT_invadrox_ships), BMPHEIGHT_invadrox_ships),
ship_x, SHIP_Y, ship_x, SHIP_Y,
SHIP_WIDTH, SHIP_HEIGHT); SHIP_WIDTH, SHIP_HEIGHT);
break; break;

View file

@ -347,27 +347,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define JEWELS_CANCEL BUTTON_POWER #define JEWELS_CANCEL BUTTON_POWER
#define HK_CANCEL "Power" #define HK_CANCEL "Power"
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define JEWELS_UP BUTTON_HOME
#define JEWELS_DOWN BUTTON_OPTION
#define JEWELS_LEFT BUTTON_PREV
#define JEWELS_RIGHT BUTTON_NEXT
#define JEWELS_SELECT BUTTON_PLAY
#define JEWELS_CANCEL BUTTON_POWER
#define HK_SELECT "PLAY"
#define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define JEWELS_UP BUTTON_HOME
#define JEWELS_DOWN BUTTON_OPTION
#define JEWELS_LEFT BUTTON_PREV
#define JEWELS_RIGHT BUTTON_NEXT
#define JEWELS_SELECT BUTTON_PLAY
#define JEWELS_CANCEL BUTTON_POWER
#define HK_SELECT "PLAY"
#define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define JEWELS_UP BUTTON_HOME #define JEWELS_UP BUTTON_HOME
#define JEWELS_DOWN BUTTON_OPTION #define JEWELS_DOWN BUTTON_OPTION
#define JEWELS_LEFT BUTTON_PREV #define JEWELS_LEFT BUTTON_PREV
@ -387,7 +367,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_SELECT "PLAY" #define HK_SELECT "PLAY"
#define HK_CANCEL "POWER" #define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define JEWELS_UP BUTTON_PREV #define JEWELS_UP BUTTON_PREV
#define JEWELS_DOWN BUTTON_NEXT #define JEWELS_DOWN BUTTON_NEXT
#define JEWELS_LEFT BUTTON_HOME #define JEWELS_LEFT BUTTON_HOME
@ -397,15 +377,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_SELECT "PLAY" #define HK_SELECT "PLAY"
#define HK_CANCEL "POWER" #define HK_CANCEL "POWER"
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define JEWELS_UP BUTTON_PREV #define JEWELS_UP BUTTON_PREV
#define JEWELS_DOWN BUTTON_NEXT #define JEWELS_DOWN BUTTON_NEXT
#define JEWELS_LEFT BUTTON_HOME #define JEWELS_LEFT BUTTON_SCROLL_BACK
#define JEWELS_RIGHT BUTTON_VOL_DOWN #define JEWELS_RIGHT BUTTON_SCROLL_FWD
#define JEWELS_SELECT BUTTON_PLAY #define JEWELS_SELECT BUTTON_PLAY
#define JEWELS_CANCEL BUTTON_POWER #define JEWELS_CANCEL BUTTON_BACK
#define HK_SELECT "PLAY" #define HK_SELECT "PLAY"
#define HK_CANCEL "POWER" #define HK_CANCEL "BACK"
#else #else
#error No keymap defined! #error No keymap defined!
@ -662,14 +643,14 @@ static void jewels_drawboard(struct game_context* bj) {
TILE_WIDTH, TILE_HEIGHT); TILE_WIDTH, TILE_HEIGHT);
rb->lcd_bitmap_transparent_part(jewels, rb->lcd_bitmap_transparent_part(jewels,
0, TILE_HEIGHT*(bj->playboard[i+1][j].type), 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
TILE_WIDTH, TILE_HEIGHT); TILE_WIDTH, TILE_HEIGHT);
#else #else
rb->lcd_bitmap_part(jewels, rb->lcd_bitmap_part(jewels,
0, TILE_HEIGHT*(bj->playboard[i+1][j].type), 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
TILE_WIDTH, TILE_HEIGHT); TILE_WIDTH, TILE_HEIGHT);
@ -685,7 +666,7 @@ static void jewels_drawboard(struct game_context* bj) {
rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, 18); rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, 18);
rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, LCD_HEIGHT-10); rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, LCD_HEIGHT-10);
/* draw progress bar */ /* draw progress bar */
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63));
@ -708,7 +689,7 @@ static void jewels_drawboard(struct game_context* bj) {
(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2, (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2,
((LCD_HEIGHT-10)-18)*tempscore/size+1); ((LCD_HEIGHT-10)-18)*tempscore/size+1);
#endif #endif
/* print text */ /* print text */
rb->lcd_getstringsize(title, &w, &h); rb->lcd_getstringsize(title, &w, &h);
rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title); rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title);
@ -730,7 +711,7 @@ static void jewels_drawboard(struct game_context* bj) {
rb->lcd_hline(0, LCD_WIDTH-1, 8*TILE_HEIGHT+YOFS); rb->lcd_hline(0, LCD_WIDTH-1, 8*TILE_HEIGHT+YOFS);
rb->lcd_hline(0, LCD_WIDTH-1, LCD_HEIGHT-14); rb->lcd_hline(0, LCD_WIDTH-1, LCD_HEIGHT-14);
rb->lcd_vline(LCD_WIDTH/2, LCD_HEIGHT-14, LCD_HEIGHT-1); rb->lcd_vline(LCD_WIDTH/2, LCD_HEIGHT-14, LCD_HEIGHT-1);
/* draw progress bar */ /* draw progress bar */
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63));
@ -751,10 +732,10 @@ static void jewels_drawboard(struct game_context* bj) {
LCD_WIDTH*tempscore/size+1, LCD_WIDTH*tempscore/size+1,
(LCD_HEIGHT-14-(8*TILE_HEIGHT+YOFS))/2); (LCD_HEIGHT-14-(8*TILE_HEIGHT+YOFS))/2);
#endif #endif
/* print text */ /* print text */
rb->lcd_putsxyf(1, LCD_HEIGHT-10, "%s %d", title, bj->level); rb->lcd_putsxyf(1, LCD_HEIGHT-10, "%s %d", title, bj->level);
if (bj->type == GAME_TYPE_NORMAL) { if (bj->type == GAME_TYPE_NORMAL) {
rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score);
rb->lcd_getstringsize(str, &w, &h); rb->lcd_getstringsize(str, &w, &h);
@ -796,7 +777,7 @@ static void jewels_drawboard(struct game_context* bj) {
/* print text */ /* print text */
rb->lcd_putsxyf(1, LCD_HEIGHT-(LCD_HEIGHT-(8*TILE_HEIGHT+YOFS))/2-3,"%s %d", rb->lcd_putsxyf(1, LCD_HEIGHT-(LCD_HEIGHT-(8*TILE_HEIGHT+YOFS))/2-3,"%s %d",
title, bj->level); title, bj->level);
if (bj->type == GAME_TYPE_NORMAL) { if (bj->type == GAME_TYPE_NORMAL) {
rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score);
rb->lcd_getstringsize(str, &w, &h); rb->lcd_getstringsize(str, &w, &h);
@ -881,8 +862,8 @@ static void jewels_putjewels(struct game_context* bj){
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_bitmap_transparent_part(jewels, 0, rb->lcd_bitmap_transparent_part(jewels, 0,
TILE_HEIGHT*(bj->playboard[i][j].type), TILE_HEIGHT*(bj->playboard[i][j].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPWIDTH_jewels,
BMPHEIGHT_jewels), BMPHEIGHT_jewels),
j*TILE_WIDTH, j*TILE_WIDTH,
(i-1)*TILE_HEIGHT+YOFS+ (i-1)*TILE_HEIGHT+YOFS+
@ -891,8 +872,8 @@ static void jewels_putjewels(struct game_context* bj){
#else #else
rb->lcd_bitmap_part(jewels, 0, rb->lcd_bitmap_part(jewels, 0,
TILE_HEIGHT*(bj->playboard[i][j].type), TILE_HEIGHT*(bj->playboard[i][j].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPWIDTH_jewels,
BMPHEIGHT_jewels), BMPHEIGHT_jewels),
j*TILE_WIDTH, j*TILE_WIDTH,
(i-1)*TILE_HEIGHT+YOFS+ (i-1)*TILE_HEIGHT+YOFS+
@ -1113,7 +1094,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
rb->lcd_bitmap_transparent_part(jewels, rb->lcd_bitmap_transparent_part(jewels,
0, TILE_HEIGHT*(bj->playboard 0, TILE_HEIGHT*(bj->playboard
[y+1+vertmod][x+horzmod].type), [y+1+vertmod][x+horzmod].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
(x+horzmod)*TILE_WIDTH-horzmod* (x+horzmod)*TILE_WIDTH-horzmod*
((((movelen<<10)*k)/8)>>10), ((((movelen<<10)*k)/8)>>10),
@ -1122,7 +1103,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
TILE_WIDTH, TILE_HEIGHT); TILE_WIDTH, TILE_HEIGHT);
rb->lcd_bitmap_transparent_part(jewels, rb->lcd_bitmap_transparent_part(jewels,
0, TILE_HEIGHT*(bj->playboard[y+1][x].type), 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
x*TILE_WIDTH+horzmod* x*TILE_WIDTH+horzmod*
((((movelen<<10)*k)/8)>>10), ((((movelen<<10)*k)/8)>>10),
@ -1133,7 +1114,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
rb->lcd_bitmap_part(jewels, rb->lcd_bitmap_part(jewels,
0, TILE_HEIGHT*(bj->playboard 0, TILE_HEIGHT*(bj->playboard
[y+1+vertmod][x+horzmod].type), [y+1+vertmod][x+horzmod].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
(x+horzmod)*TILE_WIDTH-horzmod* (x+horzmod)*TILE_WIDTH-horzmod*
((((movelen<<10)*k)/8)>>10), ((((movelen<<10)*k)/8)>>10),
@ -1143,7 +1124,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
rb->lcd_set_drawmode(DRMODE_FG); rb->lcd_set_drawmode(DRMODE_FG);
rb->lcd_bitmap_part(jewels, rb->lcd_bitmap_part(jewels,
0, TILE_HEIGHT*(bj->playboard[y+1][x].type), 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_jewels, BMPHEIGHT_jewels), BMPWIDTH_jewels, BMPHEIGHT_jewels),
x*TILE_WIDTH+horzmod* x*TILE_WIDTH+horzmod*
((((movelen<<10)*k)/8)>>10), ((((movelen<<10)*k)/8)>>10),
@ -1430,7 +1411,7 @@ static bool jewels_help(void)
{ {
static char *help_text[] = { static char *help_text[] = {
"Jewels", "", "Aim", "", "Jewels", "", "Aim", "",
"Swap", "pairs", "of", "jewels", "to", "form", "connected", "Swap", "pairs", "of", "jewels", "to", "form", "connected",
"segments", "of", "three", "or", "more", "of", "the", "same", "segments", "of", "three", "or", "more", "of", "the", "same",
"type.", "", "type.", "",
"The", "goal", "of", "the", "game", "is", "to", "score", "as", "many", "The", "goal", "of", "the", "game", "is", "to", "score", "as", "many",

View file

@ -215,23 +215,7 @@
#define BTN_FIRE BUTTON_MENU #define BTN_FIRE BUTTON_MENU
#define BTN_PAUSE BUTTON_POWER #define BTN_PAUSE BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X3_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3_PAD) || (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define BTN_UP BUTTON_VOL_UP
#define BTN_DOWN BUTTON_VOL_DOWN
#define BTN_LEFT BUTTON_PREV
#define BTN_RIGHT BUTTON_NEXT
#define BTN_FIRE BUTTON_PLAY
#define BTN_PAUSE BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
#define BTN_UP BUTTON_VOL_UP
#define BTN_DOWN BUTTON_VOL_DOWN
#define BTN_LEFT BUTTON_PREV
#define BTN_RIGHT BUTTON_NEXT
#define BTN_FIRE BUTTON_PLAY
#define BTN_PAUSE BUTTON_POWER
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define BTN_UP BUTTON_VOL_UP #define BTN_UP BUTTON_VOL_UP
#define BTN_DOWN BUTTON_VOL_DOWN #define BTN_DOWN BUTTON_VOL_DOWN
#define BTN_LEFT BUTTON_PREV #define BTN_LEFT BUTTON_PREV
@ -247,15 +231,15 @@
#define BTN_FIRE BUTTON_PLAY #define BTN_FIRE BUTTON_PLAY
#define BTN_PAUSE BUTTON_POWER #define BTN_PAUSE BUTTON_POWER
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define BTN_UP BUTTON_PREV #define BTN_UP BUTTON_PREV
#define BTN_DOWN BUTTON_NEXT #define BTN_DOWN BUTTON_NEXT
#define BTN_LEFT BUTTON_HOME #define BTN_LEFT BUTTON_SCROLL_BACK
#define BTN_RIGHT BUTTON_VOL_DOWN #define BTN_RIGHT BUTTON_SCROLL_FWD
#define BTN_FIRE BUTTON_PLAY #define BTN_FIRE BUTTON_PLAY
#define BTN_PAUSE BUTTON_POWER #define BTN_PAUSE BUTTON_POWER
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define BTN_UP BUTTON_PREV #define BTN_UP BUTTON_PREV
#define BTN_DOWN BUTTON_NEXT #define BTN_DOWN BUTTON_NEXT
#define BTN_LEFT BUTTON_HOME #define BTN_LEFT BUTTON_HOME

View file

@ -68,7 +68,7 @@ const struct button_mapping pla_remote_ctx[] =
#endif /* HAVE_REMOTE_LCD */ #endif /* HAVE_REMOTE_LCD */
/* these were taken from the bubbles plugin, so may need tweaking */ /* these were taken from the bubbles plugin, so may need tweaking */
const struct button_mapping pla_main_ctx[] = const struct button_mapping pla_main_ctx[] =
{ {
/* Touchscreens */ /* Touchscreens */
#ifdef HAVE_TOUCHSCREEN #ifdef HAVE_TOUCHSCREEN
@ -242,6 +242,15 @@ const struct button_mapping pla_main_ctx[] =
{ PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE }, { PLA_DOWN_REPEAT, BUTTON_OPTION|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE }, { PLA_LEFT_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE }, { PLA_RIGHT_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
#elif (CONFIG_KEYPAD == EROSQ_PAD)
{ PLA_UP, BUTTON_NEXT, BUTTON_NONE },
{ PLA_DOWN, BUTTON_PREV, BUTTON_NONE },
{ PLA_LEFT, BUTTON_SCROLL_BACK, BUTTON_NONE },
{ PLA_RIGHT, BUTTON_SCROLL_FWD, BUTTON_NONE },
{ PLA_UP_REPEAT, BUTTON_NEXT|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_DOWN_REPEAT, BUTTON_PREV|BUTTON_REPEAT, BUTTON_NONE },
// { PLA_LEFT_REPEAT, BUTTON_SCROLL_BACK|BUTTON_REPEAT, BUTTON_NONE },
// { PLA_RIGHT_REPEAT, BUTTON_SCROLL_FWD|BUTTON_REPEAT, BUTTON_NONE },
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD)
{ PLA_UP, BUTTON_PREV, BUTTON_NONE }, { PLA_UP, BUTTON_PREV, BUTTON_NONE },
{ PLA_DOWN, BUTTON_NEXT, BUTTON_NONE }, { PLA_DOWN, BUTTON_NEXT, BUTTON_NONE },
@ -407,19 +416,19 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_OK, BUTTON_NONE}, {PLA_SELECT, BUTTON_OK, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_OK|BUTTON_REL, BUTTON_OK }, {PLA_SELECT_REL, BUTTON_OK|BUTTON_REL, BUTTON_OK },
{PLA_SELECT_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE}, {PLA_SELECT_REPEAT, BUTTON_OK|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == MPIO_HD200_PAD) #elif (CONFIG_KEYPAD == MPIO_HD200_PAD)
{PLA_CANCEL, BUTTON_REC, BUTTON_NONE}, {PLA_CANCEL, BUTTON_REC, BUTTON_NONE},
{PLA_EXIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE}, {PLA_EXIT, (BUTTON_REC|BUTTON_PLAY), BUTTON_NONE},
{PLA_SELECT, BUTTON_FUNC, BUTTON_NONE}, {PLA_SELECT, BUTTON_FUNC, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_FUNC|BUTTON_REL, BUTTON_FUNC}, {PLA_SELECT_REL, BUTTON_FUNC|BUTTON_REL, BUTTON_FUNC},
{PLA_SELECT_REPEAT, BUTTON_FUNC|BUTTON_REPEAT, BUTTON_NONE}, {PLA_SELECT_REPEAT, BUTTON_FUNC|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == MPIO_HD300_PAD) #elif (CONFIG_KEYPAD == MPIO_HD300_PAD)
{PLA_CANCEL, BUTTON_MENU, BUTTON_NONE}, {PLA_CANCEL, BUTTON_MENU, BUTTON_NONE},
{PLA_EXIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE}, {PLA_EXIT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_ENTER, BUTTON_NONE}, {PLA_SELECT, BUTTON_ENTER, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_ENTER|BUTTON_REL, BUTTON_ENTER}, {PLA_SELECT_REL, BUTTON_ENTER|BUTTON_REL, BUTTON_ENTER},
{PLA_SELECT_REPEAT, BUTTON_ENTER|BUTTON_REPEAT, BUTTON_NONE}, {PLA_SELECT_REPEAT, BUTTON_ENTER|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == RK27XX_GENERIC_PAD) #elif (CONFIG_KEYPAD == RK27XX_GENERIC_PAD)
{PLA_CANCEL, BUTTON_M, BUTTON_NONE}, {PLA_CANCEL, BUTTON_M, BUTTON_NONE},
{PLA_EXIT, BUTTON_M|BUTTON_REPEAT, BUTTON_NONE}, {PLA_EXIT, BUTTON_M|BUTTON_REPEAT, BUTTON_NONE},
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
@ -431,7 +440,7 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT}, {PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
{PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, {PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == AGPTEK_ROCKER_PAD) #elif (CONFIG_KEYPAD == AGPTEK_ROCKER_PAD)
{PLA_CANCEL, BUTTON_VOLUP, BUTTON_NONE}, {PLA_CANCEL, BUTTON_VOLUP, BUTTON_NONE},
{PLA_EXIT, BUTTON_POWER, BUTTON_NONE}, {PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE}, {PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
@ -479,6 +488,12 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE}, {PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY}, {PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, {PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == EROSQ_PAD)
{PLA_CANCEL, BUTTON_BACK|BUTTON_REL, BUTTON_BACK},
{PLA_EXIT, BUTTON_POWER, BUTTON_NONE},
{PLA_SELECT, BUTTON_PLAY, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_PLAY|BUTTON_REL, BUTTON_PLAY},
{PLA_SELECT_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD)
{PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER}, {PLA_CANCEL, BUTTON_POWER|BUTTON_REL, BUTTON_POWER},
{PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE}, {PLA_EXIT, BUTTON_POWER|BUTTON_REPEAT, BUTTON_NONE},
@ -501,7 +516,7 @@ const struct button_mapping pla_main_ctx[] =
static struct button_mapping **plugin_context_order; static struct button_mapping **plugin_context_order;
static int plugin_context_count = 0; static int plugin_context_count = 0;
static int last_context = 0; /* index into plugin_context_order static int last_context = 0; /* index into plugin_context_order
of the last context returned */ of the last context returned */
static const struct button_mapping* get_context_map(int context) static const struct button_mapping* get_context_map(int context)

View file

@ -293,23 +293,7 @@
#define MIDI_VOL_DOWN BUTTON_VOLDOWN #define MIDI_VOL_DOWN BUTTON_VOLDOWN
#define MIDI_PLAYPAUSE BUTTON_SELECT #define MIDI_PLAYPAUSE BUTTON_SELECT
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_NEXT
#define MIDI_REWIND BUTTON_PREV
#define MIDI_VOL_UP BUTTON_VOL_UP
#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
#define MIDI_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_NEXT
#define MIDI_REWIND BUTTON_PREV
#define MIDI_VOL_UP BUTTON_VOL_UP
#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
#define MIDI_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define MIDI_QUIT BUTTON_POWER #define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_NEXT #define MIDI_FFWD BUTTON_NEXT
#define MIDI_REWIND BUTTON_PREV #define MIDI_REWIND BUTTON_PREV
@ -325,15 +309,7 @@
#define MIDI_VOL_DOWN BUTTON_VOL_DOWN #define MIDI_VOL_DOWN BUTTON_VOL_DOWN
#define MIDI_PLAYPAUSE BUTTON_PLAY #define MIDI_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_VOL_DOWN
#define MIDI_REWIND BUTTON_HOME
#define MIDI_VOL_UP BUTTON_PREV
#define MIDI_VOL_DOWN BUTTON_NEXT
#define MIDI_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD
#define MIDI_QUIT BUTTON_POWER #define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_VOL_DOWN #define MIDI_FFWD BUTTON_VOL_DOWN
#define MIDI_REWIND BUTTON_HOME #define MIDI_REWIND BUTTON_HOME
@ -341,6 +317,14 @@
#define MIDI_VOL_DOWN BUTTON_NEXT #define MIDI_VOL_DOWN BUTTON_NEXT
#define MIDI_PLAYPAUSE BUTTON_PLAY #define MIDI_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == EROSQ_PAD
#define MIDI_QUIT BUTTON_POWER
#define MIDI_FFWD BUTTON_NEXT
#define MIDI_REWIND BUTTON_PREV
#define MIDI_VOL_UP BUTTON_VOL_UP
#define MIDI_VOL_DOWN BUTTON_VOL_DOWN
#define MIDI_PLAYPAUSE BUTTON_PLAY
#else #else
#error No keymap defined! #error No keymap defined!
#endif #endif
@ -716,4 +700,3 @@ enum plugin_status plugin_start(const void* parameter)
return PLUGIN_ERROR; return PLUGIN_ERROR;
return PLUGIN_OK; return PLUGIN_OK;
} }

View file

@ -382,20 +382,7 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER2 BUTTON_VOL_UP # define MINESWP_DISCOVER2 BUTTON_VOL_UP
# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) # define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
# define MINESWP_LEFT BUTTON_PREV
# define MINESWP_RIGHT BUTTON_NEXT
# define MINESWP_UP BUTTON_HOME
# define MINESWP_DOWN BUTTON_OPTION
# define MINESWP_QUIT BUTTON_POWER
# define MINESWP_TOGGLE_PRE BUTTON_PLAY
# define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL)
# define MINESWP_TOGGLE2 BUTTON_VOL_DOWN
# define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT)
# define MINESWP_DISCOVER2 BUTTON_VOL_UP
# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
# define MINESWP_LEFT BUTTON_PREV # define MINESWP_LEFT BUTTON_PREV
# define MINESWP_RIGHT BUTTON_NEXT # define MINESWP_RIGHT BUTTON_NEXT
# define MINESWP_UP BUTTON_HOME # define MINESWP_UP BUTTON_HOME
@ -421,7 +408,7 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER2 BUTTON_VOL_UP # define MINESWP_DISCOVER2 BUTTON_VOL_UP
# define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION) # define MINESWP_INFO (BUTTON_PLAY | BUTTON_OPTION)
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
# define MINESWP_LEFT BUTTON_HOME # define MINESWP_LEFT BUTTON_HOME
# define MINESWP_RIGHT BUTTON_VOL_DOWN # define MINESWP_RIGHT BUTTON_VOL_DOWN
# define MINESWP_UP BUTTON_PREV # define MINESWP_UP BUTTON_PREV
@ -434,18 +421,16 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER2 (BUTTON_POWER | BUTTON_VOL_DOWN) # define MINESWP_DISCOVER2 (BUTTON_POWER | BUTTON_VOL_DOWN)
# define MINESWP_INFO (BUTTON_POWER | BUTTON_HOME) # define MINESWP_INFO (BUTTON_POWER | BUTTON_HOME)
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
# define MINESWP_LEFT BUTTON_HOME # define MINESWP_LEFT BUTTON_SCROLL_BACK
# define MINESWP_RIGHT BUTTON_VOL_DOWN # define MINESWP_RIGHT BUTTON_SCROLL_FWD
# define MINESWP_UP BUTTON_PREV # define MINESWP_UP BUTTON_PREV
# define MINESWP_DOWN BUTTON_NEXT # define MINESWP_DOWN BUTTON_NEXT
# define MINESWP_QUIT BUTTON_POWER # define MINESWP_QUIT BUTTON_POWER
# define MINESWP_TOGGLE_PRE BUTTON_PLAY # define MINESWP_TOGGLE_PRE BUTTON_PLAY
# define MINESWP_TOGGLE (BUTTON_POWER | BUTTON_PREV) # define MINESWP_TOGGLE (BUTTON_PLAY | BUTTON_REL)
# define MINESWP_TOGGLE2 (BUTTON_POWER | BUTTON_NEXT) # define MINESWP_DISCOVER (BUTTON_PLAY | BUTTON_REPEAT)
# define MINESWP_DISCOVER (BUTTON_POWER | BUTTON_VOL_UP) # define MINESWP_INFO BUTTON_VOL_UP
# define MINESWP_DISCOVER2 (BUTTON_POWER | BUTTON_VOL_DOWN)
# define MINESWP_INFO (BUTTON_POWER | BUTTON_HOME)
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -152,7 +152,7 @@ static const uint8_t ht_count[2][2][16] =
{ {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, /* table1 */ { {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, /* table1 */
{ 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 } } }; /* hleng1 */ { 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 } } }; /* hleng1 */
static const uint8_t t1HB[4] = {1,1,1,0}; static const uint8_t t1HB[4] = {1,1,1,0};
static const uint8_t t2HB[9] = {1,2,1,3,1,1,3,2,0}; static const uint8_t t2HB[9] = {1,2,1,3,1,1,3,2,0};
static const uint8_t t3HB[9] = {3,2,1,1,1,1,3,2,0}; static const uint8_t t3HB[9] = {3,2,1,1,1,1,3,2,0};
static const uint8_t t5HB[16] = {1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0}; static const uint8_t t5HB[16] = {1,2,6,5,3,1,4,4,7,5,7,1,6,1,1,0};
@ -802,7 +802,7 @@ static const int16_t win[18][4] = {
{ 529, -831,-3747,-2387 }, { 529, -831,-3747,-2387 },
{ 362, -471,-3579,-2747 }, { 362, -471,-3579,-2747 },
{ 134, -146,-3352,-3072 } }; { 134, -146,-3352,-3072 } };
static char* mp3_enc_err[] = { static char* mp3_enc_err[] = {
/* 0 */ "", /* 0 */ "",
/* 1 */ "Cannot open file.", /* 1 */ "Cannot open file.",
@ -880,21 +880,21 @@ static int wave_open(void)
if((wavfile = rb->open(wav_filename, O_RDONLY)) < 0) if((wavfile = rb->open(wav_filename, O_RDONLY)) < 0)
return -1; return -1;
if(!checkString(wavfile,"RIFF")) return -2; if(!checkString(wavfile,"RIFF")) return -2;
Read32BitsLowHigh(wavfile); /* complete wave chunk size */ Read32BitsLowHigh(wavfile); /* complete wave chunk size */
if(!checkString(wavfile,"WAVE")) return -3; if(!checkString(wavfile,"WAVE")) return -3;
if(!checkString(wavfile,"fmt ")) return -4; if(!checkString(wavfile,"fmt ")) return -4;
header_size = Read32BitsLowHigh(wavfile); /* chunk size */ header_size = Read32BitsLowHigh(wavfile); /* chunk size */
wFormatTag = Read16BitsLowHigh(wavfile); wFormatTag = Read16BitsLowHigh(wavfile);
cfg.channels = Read16BitsLowHigh(wavfile); cfg.channels = Read16BitsLowHigh(wavfile);
cfg.samplerate = Read32BitsLowHigh(wavfile); cfg.samplerate = Read32BitsLowHigh(wavfile);
/*dAvgBytesPerSec*/ Read32BitsLowHigh(wavfile); /*dAvgBytesPerSec*/ Read32BitsLowHigh(wavfile);
/*wBlockAlign */ Read16BitsLowHigh(wavfile); /*wBlockAlign */ Read16BitsLowHigh(wavfile);
bits_per_samp = Read16BitsLowHigh(wavfile); bits_per_samp = Read16BitsLowHigh(wavfile);
if(wFormatTag != 0x0001) return -5; /* linear PCM required */ if(wFormatTag != 0x0001) return -5; /* linear PCM required */
if(bits_per_samp != 16) return -6; /* 16 bps required */ if(bits_per_samp != 16) return -6; /* 16 bps required */
if(cfg.channels > 2) return -7; /* <=2 channels required */ if(cfg.channels > 2) return -7; /* <=2 channels required */
@ -904,11 +904,11 @@ static int wave_open(void)
if((cfg.samplerate != 16000) && (cfg.samplerate != 22050) && if((cfg.samplerate != 16000) && (cfg.samplerate != 22050) &&
(cfg.samplerate != 24000) && (cfg.samplerate != 32000) && (cfg.samplerate != 24000) && (cfg.samplerate != 32000) &&
(cfg.samplerate != 44100) && (cfg.samplerate != 48000)) return -9; (cfg.samplerate != 44100) && (cfg.samplerate != 48000)) return -9;
header_size = 0x28; header_size = 0x28;
wav_size = rb->filesize(wavfile); wav_size = rb->filesize(wavfile);
rb->lseek(wavfile, header_size, SEEK_SET); rb->lseek(wavfile, header_size, SEEK_SET);
return 0; return 0;
} }
@ -946,7 +946,7 @@ static void encodeSideInfo( side_info_t si[2][2] )
{ {
int gr, ch, header; int gr, ch, header;
uint32_t cc=0, sz=0; uint32_t cc=0, sz=0;
/* /*
* MPEG header layout: * MPEG header layout:
* AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM * AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
@ -1053,7 +1053,7 @@ static void Huffmancodebits( short *ix, char *xr_sign, side_info_t *gi )
if(bigvals > region2) if(bigvals > region2)
bits += HuffmanCode(ix, xr_sign, region2, bigvals, gi->table_select[2]); bits += HuffmanCode(ix, xr_sign, region2, bigvals, gi->table_select[2]);
if(count1 > bigvals) if(count1 > bigvals)
bits += HuffmanCod1(ix, xr_sign, bigvals, count1, gi->table_select[3]); bits += HuffmanCod1(ix, xr_sign, bigvals, count1, gi->table_select[3]);
@ -1251,7 +1251,7 @@ static int choose_table( short *ix, uint32_t begin, uint32_t end, int *bits )
{ {
uint32_t i; uint32_t i;
int max, table0, table1; int max, table0, table1;
for(i=begin,max=0; i<end; i++) for(i=begin,max=0; i<end; i++)
if(ix[i] > max) if(ix[i] > max)
max = ix[i]; max = ix[i];
@ -1408,7 +1408,7 @@ static int calc_runlen( short *ix, side_info_t *si )
int w = ix[i-2]; int w = ix[i-2];
int x = ix[i-3]; int x = ix[i-3];
int y = ix[i-4]; int y = ix[i-4];
if((v | w | x | y) <= 1) if((v | w | x | y) <= 1)
{ {
p = (y<<3) + (x<<2) + (w<<1) + (v); p = (y<<3) + (x<<2) + (w<<1) + (v);
@ -1473,7 +1473,7 @@ static int quantize_int(int *xr, short *ix, side_info_t *si)
static void subdivide(side_info_t *si) static void subdivide(side_info_t *si)
{ {
int scfb, count0, count1; int scfb, count0, count1;
if( !si->address3 ) if( !si->address3 )
{ /* no bigvalue region */ { /* no bigvalue region */
si->region_0_1 = 0; si->region_0_1 = 0;
@ -1535,7 +1535,7 @@ static int quantize_and_count_bits(int *xr, short *ix, side_info_t *si)
/************************************************************************/ /************************************************************************/
/* The code selects the best quantStep for a particular set of scalefacs*/ /* The code selects the best quantStep for a particular set of scalefacs*/
/************************************************************************/ /************************************************************************/
static int inner_loop(int *xr, int max_bits, side_info_t *si) static int inner_loop(int *xr, int max_bits, side_info_t *si)
{ {
int bits; int bits;
@ -1877,7 +1877,7 @@ void window_subband2(short *x1, int a[SBLIMIT])
a[ 7] -= a[ 6]; a[ 7] -= a[ 6];
a[22] -= a[ 7]; a[22] -= a[ 7];
a[23] -= a[22]; a[23] -= a[22];
xr = a[ 6]; a[ 6] = a[31] - xr; a[31] = a[31] + xr; xr = a[ 6]; a[ 6] = a[31] - xr; a[31] = a[31] + xr;
xr = a[ 7]; a[ 7] = a[30] - xr; a[30] = a[30] + xr; xr = a[ 7]; a[ 7] = a[30] - xr; a[30] = a[30] + xr;
xr = a[22]; a[22] = a[15] - xr; a[15] = a[15] + xr; xr = a[22]; a[22] = a[15] - xr; a[15] = a[15] + xr;
@ -1897,23 +1897,23 @@ void window_subband2(short *x1, int a[SBLIMIT])
xr = a[ 1] - a[13]; a[ 1] += a[13]; a[13] = shft9(xr) * wp[ -4*27+25]; xr = a[ 1] - a[13]; a[ 1] += a[13]; a[13] = shft9(xr) * wp[ -4*27+25];
xr = a[16] - a[28]; a[16] += a[28]; a[28] = shft9(xr) * wp[ -4*27+25]; xr = a[16] - a[28]; a[16] += a[28]; a[28] = shft9(xr) * wp[ -4*27+25];
xr =-a[17] + a[29]; a[17] += a[29]; a[29] = shft9(xr) * wp[ -4*27+25]; xr =-a[17] + a[29]; a[17] += a[29]; a[29] = shft9(xr) * wp[ -4*27+25];
xr = SQRT * shft9(a[ 2] - a[10]); a[ 2] += a[10]; a[10] = xr; xr = SQRT * shft9(a[ 2] - a[10]); a[ 2] += a[10]; a[10] = xr;
xr = SQRT * shft9(a[ 3] - a[11]); a[ 3] += a[11]; a[11] = xr; xr = SQRT * shft9(a[ 3] - a[11]); a[ 3] += a[11]; a[11] = xr;
xr = SQRT * shft9(a[26] - a[18]); a[18] += a[26]; a[26] = xr - a[18]; xr = SQRT * shft9(a[26] - a[18]); a[18] += a[26]; a[26] = xr - a[18];
xr = SQRT * shft9(a[27] - a[19]); a[19] += a[27]; a[27] = xr - a[19]; xr = SQRT * shft9(a[27] - a[19]); a[19] += a[27]; a[27] = xr - a[19];
xr = a[ 2]; a[19] -= a[ 3]; a[ 3] -= xr; a[ 2] = a[31] - xr; a[31] += xr; xr = a[ 2]; a[19] -= a[ 3]; a[ 3] -= xr; a[ 2] = a[31] - xr; a[31] += xr;
xr = a[ 3]; a[11] -= a[19]; a[18] -= xr; a[ 3] = a[30] - xr; a[30] += xr; xr = a[ 3]; a[11] -= a[19]; a[18] -= xr; a[ 3] = a[30] - xr; a[30] += xr;
xr = a[18]; a[27] -= a[11]; a[19] -= xr; a[18] = a[15] - xr; a[15] += xr; xr = a[18]; a[27] -= a[11]; a[19] -= xr; a[18] = a[15] - xr; a[15] += xr;
xr = a[19]; a[10] -= xr; a[19] = a[14] - xr; a[14] += xr; xr = a[19]; a[10] -= xr; a[19] = a[14] - xr; a[14] += xr;
xr = a[10]; a[11] -= xr; a[10] = a[23] - xr; a[23] += xr; xr = a[10]; a[11] -= xr; a[10] = a[23] - xr; a[23] += xr;
xr = a[11]; a[26] -= xr; a[11] = a[22] - xr; a[22] += xr; xr = a[11]; a[26] -= xr; a[11] = a[22] - xr; a[22] += xr;
xr = a[26]; a[27] -= xr; a[26] = a[ 7] - xr; a[ 7] += xr; xr = a[26]; a[27] -= xr; a[26] = a[ 7] - xr; a[ 7] += xr;
xr = a[27]; a[27] = a[6] - xr; a[6] += xr; xr = a[27]; a[27] = a[6] - xr; a[6] += xr;
xr = SQRT * shft9(a[ 0] - a[ 4]); a[ 0] += a[ 4]; a[ 4] = xr; xr = SQRT * shft9(a[ 0] - a[ 4]); a[ 0] += a[ 4]; a[ 4] = xr;
xr = SQRT * shft9(a[ 1] - a[ 5]); a[ 1] += a[ 5]; a[ 5] = xr; xr = SQRT * shft9(a[ 1] - a[ 5]); a[ 1] += a[ 5]; a[ 5] = xr;
xr = SQRT * shft9(a[16] - a[20]); a[16] += a[20]; a[20] = xr; xr = SQRT * shft9(a[16] - a[20]); a[16] += a[20]; a[20] = xr;
@ -1922,15 +1922,15 @@ void window_subband2(short *x1, int a[SBLIMIT])
xr =-SQRT * shft9(a[ 9] - a[13]); a[ 9] += a[13]; a[13] = xr - a[ 9]; xr =-SQRT * shft9(a[ 9] - a[13]); a[ 9] += a[13]; a[13] = xr - a[ 9];
xr =-SQRT * shft9(a[25] - a[29]); a[25] += a[29]; a[29] = xr - a[25]; xr =-SQRT * shft9(a[25] - a[29]); a[25] += a[29]; a[29] = xr - a[25];
xr =-SQRT * shft9(a[24] + a[28]); a[24] -= a[28]; a[28] = xr - a[24]; xr =-SQRT * shft9(a[24] + a[28]); a[24] -= a[28]; a[28] = xr - a[24];
xr = a[24] - a[16]; a[24] = xr; xr = a[24] - a[16]; a[24] = xr;
xr = a[20] - xr; a[20] = xr; xr = a[20] - xr; a[20] = xr;
xr = a[28] - xr; a[28] = xr; xr = a[28] - xr; a[28] = xr;
xr = a[25] - a[17]; a[25] = xr; xr = a[25] - a[17]; a[25] = xr;
xr = a[21] - xr; a[21] = xr; xr = a[21] - xr; a[21] = xr;
xr = a[29] - xr; a[29] = xr; xr = a[29] - xr; a[29] = xr;
xr = a[17] - a[1]; a[17] = xr; xr = a[17] - a[1]; a[17] = xr;
xr = a[ 9] - xr; a[ 9] = xr; xr = a[ 9] - xr; a[ 9] = xr;
xr = a[25] - xr; a[25] = xr; xr = a[25] - xr; a[25] = xr;
@ -1938,7 +1938,7 @@ void window_subband2(short *x1, int a[SBLIMIT])
xr = a[21] - xr; a[21] = xr; xr = a[21] - xr; a[21] = xr;
xr = a[13] - xr; a[13] = xr; xr = a[13] - xr; a[13] = xr;
xr = a[29] - xr; a[29] = xr; xr = a[29] - xr; a[29] = xr;
xr = a[ 1] - a[0]; a[ 1] = xr; xr = a[ 1] - a[0]; a[ 1] = xr;
xr = a[16] - xr; a[16] = xr; xr = a[16] - xr; a[16] = xr;
xr = a[17] - xr; a[17] = xr; xr = a[17] - xr; a[17] = xr;
@ -1954,7 +1954,7 @@ void window_subband2(short *x1, int a[SBLIMIT])
xr = a[13] - xr; a[13] = xr; xr = a[13] - xr; a[13] = xr;
xr = a[28] - xr; a[28] = xr; xr = a[28] - xr; a[28] = xr;
xr = a[29] - xr; a[29] = xr; xr = a[29] - xr; a[29] = xr;
xr = a[ 0]; a[ 0] += a[31]; a[31] -= xr; xr = a[ 0]; a[ 0] += a[31]; a[31] -= xr;
xr = a[ 1]; a[ 1] += a[30]; a[30] -= xr; xr = a[ 1]; a[ 1] += a[30]; a[30] -= xr;
xr = a[16]; a[16] += a[15]; a[15] -= xr; xr = a[16]; a[16] += a[15]; a[15] -= xr;
@ -1994,7 +1994,7 @@ void mdct_long(int *out, int *in)
ct = (tc1 - tc3 - tc4) * cx[6]; ct = (tc1 - tc3 - tc4) * cx[6];
out[5] = ct + st; out[5] = ct + st;
out[6] = ct - st; out[6] = ct - st;
tc2 = (in[16] - in[10]) * cx[6]; tc2 = (in[16] - in[10]) * cx[6];
ts6 = ts6 * cx[7] + in[4] * cx[8]; ts6 = ts6 * cx[7] + in[4] * cx[8];
@ -2002,12 +2002,12 @@ void mdct_long(int *out, int *in)
st = -ts5 * cx[4] + ts6 - ts7 * cx[5] + ts8 * cx[3]; st = -ts5 * cx[4] + ts6 - ts7 * cx[5] + ts8 * cx[3];
out[1] = ct + st; out[1] = ct + st;
out[2] = ct - st; out[2] = ct - st;
ct = tc1 * cx[1] - tc2 - tc3 * cx[2] + tc4 * cx[0]; ct = tc1 * cx[1] - tc2 - tc3 * cx[2] + tc4 * cx[0];
st = -ts5 * cx[5] + ts6 - ts7 * cx[3] + ts8 * cx[4]; st = -ts5 * cx[5] + ts6 - ts7 * cx[3] + ts8 * cx[4];
out[ 9] = ct + st; out[ 9] = ct + st;
out[10] = ct - st; out[10] = ct - st;
ct = tc1 * cx[2] - tc2 + tc3 * cx[0] - tc4 * cx[1]; ct = tc1 * cx[2] - tc2 + tc3 * cx[0] - tc4 * cx[1];
st = ts5 * cx[3] - ts6 + ts7 * cx[4] - ts8 * cx[5]; st = ts5 * cx[3] - ts6 + ts7 * cx[4] - ts8 * cx[5];
out[13] = ct + st; out[13] = ct + st;
@ -2089,7 +2089,7 @@ static void init_mp3_encoder_engine(bool stereo, int bitrate, uint16_t sample_ra
cfg.mpg.smpl_id = find_samplerate_index(cfg.samplerate, &cfg.mpg.type); cfg.mpg.smpl_id = find_samplerate_index(cfg.samplerate, &cfg.mpg.type);
cfg.mpg.bitr_id = find_bitrate_index(cfg.mpg.type, cfg.mpg.bitrate); cfg.mpg.bitr_id = find_bitrate_index(cfg.mpg.type, cfg.mpg.bitrate);
cfg.mpg.num_bands = num_bands[stereo ? cfg.mpg.type : 2][cfg.mpg.bitr_id]; cfg.mpg.num_bands = num_bands[stereo ? cfg.mpg.type : 2][cfg.mpg.bitr_id];
if(0 == cfg.mpg.type) if(0 == cfg.mpg.type)
{ /* use MPEG2 format */ { /* use MPEG2 format */
cfg.smpl_per_frm = MAX_SAMP_PER_FRAME/2; cfg.smpl_per_frm = MAX_SAMP_PER_FRAME/2;
@ -2172,13 +2172,13 @@ static void compress(void)
{ {
if((frames & 7) == 0) if((frames & 7) == 0)
{ rb->lcd_clear_display(); { rb->lcd_clear_display();
rb->lcd_putsxyf(4, 20, "Frame %d / %d", frames, rb->lcd_putsxyf(4, 20, "Frame %d / %d", frames,
wav_size/cfg.smpl_per_frm/cfg.channels/2); wav_size/cfg.smpl_per_frm/cfg.channels/2);
rb->lcd_update(); rb->lcd_update();
} }
/* encode one mp3 frame in this loop */ /* encode one mp3 frame in this loop */
memset(CodedData.bbuf, 0, sizeof(CodedData.bbuf)); memset(CodedData.bbuf, 0, sizeof(CodedData.bbuf));
if((cfg.slot_lag += cfg.frac_per_frame) >= 64) if((cfg.slot_lag += cfg.frac_per_frame) >= 64)
{ /* Padding for this frame */ { /* Padding for this frame */
cfg.slot_lag -= 64; cfg.slot_lag -= 64;
@ -2556,19 +2556,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_POWER #define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_SELECT #define MP3ENC_SELECT BUTTON_SELECT
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define MP3ENC_PREV BUTTON_HOME
#define MP3ENC_NEXT BUTTON_OPTION
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define MP3ENC_PREV BUTTON_HOME
#define MP3ENC_NEXT BUTTON_OPTION
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define MP3ENC_PREV BUTTON_HOME #define MP3ENC_PREV BUTTON_HOME
#define MP3ENC_NEXT BUTTON_OPTION #define MP3ENC_NEXT BUTTON_OPTION
#define MP3ENC_DONE BUTTON_POWER #define MP3ENC_DONE BUTTON_POWER
@ -2580,13 +2568,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_POWER #define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY #define MP3ENC_SELECT BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define MP3ENC_PREV BUTTON_PREV #define MP3ENC_PREV BUTTON_PREV
#define MP3ENC_NEXT BUTTON_NEXT #define MP3ENC_NEXT BUTTON_NEXT
#define MP3ENC_DONE BUTTON_POWER #define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_PLAY #define MP3ENC_SELECT BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define MP3ENC_PREV BUTTON_PREV #define MP3ENC_PREV BUTTON_PREV
#define MP3ENC_NEXT BUTTON_NEXT #define MP3ENC_NEXT BUTTON_NEXT
#define MP3ENC_DONE BUTTON_POWER #define MP3ENC_DONE BUTTON_POWER

View file

@ -316,17 +316,7 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN #define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER #define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY
#define MPEG_START_TIME_LEFT BUTTON_PREV
#define MPEG_START_TIME_RIGHT BUTTON_NEXT
#define MPEG_START_TIME_UP BUTTON_HOME
#define MPEG_START_TIME_DOWN BUTTON_OPTION
#define MPEG_START_TIME_LEFT2 BUTTON_VOL_UP
#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY #define MPEG_START_TIME_SELECT BUTTON_PLAY
#define MPEG_START_TIME_LEFT BUTTON_PREV #define MPEG_START_TIME_LEFT BUTTON_PREV
#define MPEG_START_TIME_RIGHT BUTTON_NEXT #define MPEG_START_TIME_RIGHT BUTTON_NEXT
@ -346,7 +336,7 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN #define MPEG_START_TIME_RIGHT2 BUTTON_VOL_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER #define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY #define MPEG_START_TIME_SELECT BUTTON_PLAY
#define MPEG_START_TIME_LEFT BUTTON_HOME #define MPEG_START_TIME_LEFT BUTTON_HOME
#define MPEG_START_TIME_RIGHT BUTTON_VOL_DOWN #define MPEG_START_TIME_RIGHT BUTTON_VOL_DOWN
@ -356,14 +346,12 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_RIGHT2 (BUTTON_POWER + BUTTON_VOL_DOWN) #define MPEG_START_TIME_RIGHT2 (BUTTON_POWER + BUTTON_VOL_DOWN)
#define MPEG_START_TIME_EXIT BUTTON_POWER #define MPEG_START_TIME_EXIT BUTTON_POWER
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define MPEG_START_TIME_SELECT BUTTON_PLAY #define MPEG_START_TIME_SELECT BUTTON_PLAY
#define MPEG_START_TIME_LEFT BUTTON_HOME #define MPEG_START_TIME_LEFT BUTTON_SCROLL_BACK
#define MPEG_START_TIME_RIGHT BUTTON_VOL_DOWN #define MPEG_START_TIME_RIGHT BUTTON_SCROLL_FWD
#define MPEG_START_TIME_UP BUTTON_PREV #define MPEG_START_TIME_UP BUTTON_PREV
#define MPEG_START_TIME_DOWN BUTTON_NEXT #define MPEG_START_TIME_DOWN BUTTON_NEXT
#define MPEG_START_TIME_LEFT2 (BUTTON_POWER + BUTTON_HOME)
#define MPEG_START_TIME_RIGHT2 (BUTTON_POWER + BUTTON_VOL_DOWN)
#define MPEG_START_TIME_EXIT BUTTON_POWER #define MPEG_START_TIME_EXIT BUTTON_POWER
#else #else

View file

@ -23,9 +23,9 @@
/**************************************************************************** /****************************************************************************
* NOTES: * NOTES:
* *
* mpegplayer is structured as follows: * mpegplayer is structured as follows:
* *
* +-->Video Thread-->Video Output-->LCD * +-->Video Thread-->Video Output-->LCD
* | * |
* UI-->Stream Manager-->+-->Audio Thread-->PCM buffer--Audio Device * UI-->Stream Manager-->+-->Audio Thread-->PCM buffer--Audio Device
@ -36,53 +36,53 @@
* | Disk I/O * | Disk I/O
* Stream services * Stream services
* (timing, etc.) * (timing, etc.)
* *
* Thread list: * Thread list:
* 1) The main thread - Handles user input, settings, basic playback control * 1) The main thread - Handles user input, settings, basic playback control
* and USB connect. * and USB connect.
* *
* 2) Stream Manager thread - Handles playback state, events from streams * 2) Stream Manager thread - Handles playback state, events from streams
* such as when a stream is finished, stream commands, PCM state. The * such as when a stream is finished, stream commands, PCM state. The
* layer in which this thread run also handles arbitration of data * layer in which this thread run also handles arbitration of data
* requests between the streams and the disk buffer. The actual specific * requests between the streams and the disk buffer. The actual specific
* transport layer code may get moved out to support multiple container * transport layer code may get moved out to support multiple container
* formats. * formats.
* *
* 3) Buffer thread - Buffers data in the background, generates notifications * 3) Buffer thread - Buffers data in the background, generates notifications
* to streams when their data has been buffered, and watches streams' * to streams when their data has been buffered, and watches streams'
* progress to keep data available during playback. Handles synchronous * progress to keep data available during playback. Handles synchronous
* random access requests when the file cache is missed. * random access requests when the file cache is missed.
* *
* 4) Video thread (running on the COP for PortalPlayer targets) - Decodes * 4) Video thread (running on the COP for PortalPlayer targets) - Decodes
* the video stream and renders video frames to the LCD. Handles * the video stream and renders video frames to the LCD. Handles
* miscellaneous video tasks like frame and thumbnail printing. * miscellaneous video tasks like frame and thumbnail printing.
* *
* 5) Audio thread (running on the main CPU to maintain consistency with the * 5) Audio thread (running on the main CPU to maintain consistency with the
* audio FIQ hander on PP) - Decodes audio frames and places them into * audio FIQ hander on PP) - Decodes audio frames and places them into
* the PCM buffer for rendering by the audio device. * the PCM buffer for rendering by the audio device.
* *
* Streams are neither aware of one another nor care about one another. All * Streams are neither aware of one another nor care about one another. All
* streams shall have their own thread (unless it is _really_ efficient to * streams shall have their own thread (unless it is _really_ efficient to
* have a single thread handle a couple minor streams). All coordination of * have a single thread handle a couple minor streams). All coordination of
* the streams is done through the stream manager. The clocking is controlled * the streams is done through the stream manager. The clocking is controlled
* by and exposed by the stream manager to other streams and implemented at * by and exposed by the stream manager to other streams and implemented at
* the PCM level. * the PCM level.
* *
* Notes about MPEG files: * Notes about MPEG files:
* *
* MPEG System Clock is 27MHz - i.e. 27000000 ticks/second. * MPEG System Clock is 27MHz - i.e. 27000000 ticks/second.
* *
* FPS is represented in terms of a frame period - this is always an * FPS is represented in terms of a frame period - this is always an
* integer number of 27MHz ticks. * integer number of 27MHz ticks.
* *
* e.g. 29.97fps (30000/1001) NTSC video has an exact frame period of * e.g. 29.97fps (30000/1001) NTSC video has an exact frame period of
* 900900 27MHz ticks. * 900900 27MHz ticks.
* *
* In libmpeg2, info->sequence->frame_period contains the frame_period. * In libmpeg2, info->sequence->frame_period contains the frame_period.
* *
* Working with Rockbox's 100Hz tick, the common frame rates would need * Working with Rockbox's 100Hz tick, the common frame rates would need
* to be as follows (1): * to be as follows (1):
* *
* FPS | 27Mhz | 100Hz | 44.1KHz | 48KHz * FPS | 27Mhz | 100Hz | 44.1KHz | 48KHz
* --------|----------------------------------------------------------- * --------|-----------------------------------------------------------
* 10* | 2700000 | 10 | 4410 | 4800 * 10* | 2700000 | 10 | 4410 | 4800
@ -93,9 +93,9 @@
* 25 | 1080000 | 4 | 1764 | 1920 * 25 | 1080000 | 4 | 1764 | 1920
* 29.9700 | 900900 | 3.336667 | 1471,47 | 1601.6 * 29.9700 | 900900 | 3.336667 | 1471,47 | 1601.6
* 30 | 900000 | 3.333333 | 1470 | 1600 * 30 | 900000 | 3.333333 | 1470 | 1600
* *
* *Unofficial framerates * *Unofficial framerates
* *
* (1) But we don't really care since the audio clock is used anyway and has * (1) But we don't really care since the audio clock is used anyway and has
* very fine resolution ;-) * very fine resolution ;-)
*****************************************************************************/ *****************************************************************************/
@ -450,16 +450,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_PREV #define MPEG_RW BUTTON_PREV
#define MPEG_FF BUTTON_NEXT #define MPEG_FF BUTTON_NEXT
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define MPEG_MENU BUTTON_PLAY
#define MPEG_STOP BUTTON_POWER
#define MPEG_PAUSE BUTTON_HOME
#define MPEG_VOLDOWN BUTTON_VOL_DOWN
#define MPEG_VOLUP BUTTON_VOL_UP
#define MPEG_RW BUTTON_PREV
#define MPEG_FF BUTTON_NEXT
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define MPEG_MENU BUTTON_PLAY #define MPEG_MENU BUTTON_PLAY
#define MPEG_STOP BUTTON_POWER #define MPEG_STOP BUTTON_POWER
#define MPEG_PAUSE BUTTON_HOME #define MPEG_PAUSE BUTTON_HOME
@ -477,7 +468,7 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_PREV #define MPEG_RW BUTTON_PREV
#define MPEG_FF BUTTON_NEXT #define MPEG_FF BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define MPEG_MENU BUTTON_PLAY #define MPEG_MENU BUTTON_PLAY
#define MPEG_STOP BUTTON_POWER #define MPEG_STOP BUTTON_POWER
#define MPEG_PAUSE BUTTON_HOME #define MPEG_PAUSE BUTTON_HOME
@ -486,10 +477,10 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_PREV #define MPEG_RW BUTTON_PREV
#define MPEG_FF BUTTON_NEXT #define MPEG_FF BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define MPEG_MENU BUTTON_PLAY #define MPEG_MENU BUTTON_MENU
#define MPEG_STOP BUTTON_POWER #define MPEG_STOP BUTTON_POWER
#define MPEG_PAUSE BUTTON_HOME #define MPEG_PAUSE BUTTON_PLAY
#define MPEG_VOLDOWN BUTTON_VOL_DOWN #define MPEG_VOLDOWN BUTTON_VOL_DOWN
#define MPEG_VOLUP BUTTON_VOL_UP #define MPEG_VOLUP BUTTON_VOL_UP
#define MPEG_RW BUTTON_PREV #define MPEG_RW BUTTON_PREV
@ -2508,7 +2499,7 @@ enum plugin_status plugin_start(const void* parameter)
/* Enter button loop and process UI */ /* Enter button loop and process UI */
next_action = button_loop(); next_action = button_loop();
manual_skip = next_action & VIDEO_ACTION_MANUAL; manual_skip = next_action & VIDEO_ACTION_MANUAL;
next_action &= ~VIDEO_ACTION_MANUAL; next_action &= ~VIDEO_ACTION_MANUAL;
} }
stream_close(); stream_close();

View file

@ -484,21 +484,7 @@
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define NEED_LASTBUTTON #define NEED_LASTBUTTON
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define OSCILLOSCOPE_QUIT BUTTON_POWER
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL)
#define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_PLAY
#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY | BUTTON_REPEAT)
#define OSCILLOSCOPE_ADVMODE BUTTON_HOME
#define OSCILLOSCOPE_PAUSE BUTTON_OPTION
#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define NEED_LASTBUTTON
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define OSCILLOSCOPE_QUIT BUTTON_POWER #define OSCILLOSCOPE_QUIT BUTTON_POWER
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY #define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL) #define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL)
@ -526,7 +512,7 @@
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define NEED_LASTBUTTON #define NEED_LASTBUTTON
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define OSCILLOSCOPE_QUIT BUTTON_POWER #define OSCILLOSCOPE_QUIT BUTTON_POWER
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY #define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY
#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL) #define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL)
@ -540,19 +526,16 @@
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define NEED_LASTBUTTON #define NEED_LASTBUTTON
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif CONFIG_KEYPAD == EROSQ_PAD
#define OSCILLOSCOPE_QUIT BUTTON_POWER #define OSCILLOSCOPE_QUIT BUTTON_POWER
#define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_PLAY #define OSCILLOSCOPE_DRAWMODE BUTTON_PREV
#define OSCILLOSCOPE_DRAWMODE (BUTTON_PLAY | BUTTON_REL) #define OSCILLOSCOPE_ADVMODE BUTTON_NEXT
#define OSCILLOSCOPE_ORIENTATION_PRE BUTTON_PLAY #define OSCILLOSCOPE_ORIENTATION BUTTON_BACK
#define OSCILLOSCOPE_ORIENTATION (BUTTON_PLAY | BUTTON_REPEAT) #define OSCILLOSCOPE_PAUSE BUTTON_PLAY
#define OSCILLOSCOPE_ADVMODE BUTTON_HOME #define OSCILLOSCOPE_SPEED_UP BUTTON_SCROLL_FWD
#define OSCILLOSCOPE_PAUSE (BUTTON_HOME | BUTTON_REPEAT) #define OSCILLOSCOPE_SPEED_DOWN BUTTON_SCROLL_BACK
#define OSCILLOSCOPE_SPEED_UP BUTTON_NEXT #define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_PREV #define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
#define NEED_LASTBUTTON
#else #else
#error No keymap defined! #error No keymap defined!
@ -881,7 +864,7 @@ static void anim_draw_cursor_h(int x)
{ {
#if LCD_DEPTH > 1 #if LCD_DEPTH > 1
rb->lcd_set_foreground(CURSOR_COLOR); rb->lcd_set_foreground(CURSOR_COLOR);
rb->lcd_vline(x, 0, LCD_HEIGHT-1); rb->lcd_vline(x, 0, LCD_HEIGHT-1);
rb->lcd_set_foreground(GRAPH_COLOR); rb->lcd_set_foreground(GRAPH_COLOR);
#else #else
rb->lcd_set_drawmode(DRMODE_COMPLEMENT); rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
@ -895,7 +878,7 @@ static void anim_draw_cursor_v(int y)
{ {
#if LCD_DEPTH > 1 /* cursor bar */ #if LCD_DEPTH > 1 /* cursor bar */
rb->lcd_set_foreground(CURSOR_COLOR); rb->lcd_set_foreground(CURSOR_COLOR);
rb->lcd_hline(0, LCD_WIDTH-1, y); rb->lcd_hline(0, LCD_WIDTH-1, y);
rb->lcd_set_foreground(GRAPH_COLOR); rb->lcd_set_foreground(GRAPH_COLOR);
#else #else
rb->lcd_set_drawmode(DRMODE_COMPLEMENT); rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
@ -1040,9 +1023,9 @@ static long anim_peaks_horizontal(void)
} }
else else
{ {
left = last_left left = last_left
+ (LCD_WIDTH - last_pos) * (last_left - cur_left) / d; + (LCD_WIDTH - last_pos) * (last_left - cur_left) / d;
right = last_right right = last_right
+ (LCD_WIDTH - last_pos) * (last_right - cur_right) / d; + (LCD_WIDTH - last_pos) * (last_right - cur_right) / d;
rb->lcd_drawline( rb->lcd_drawline(
@ -1066,7 +1049,7 @@ static long anim_peaks_horizontal(void)
} }
} }
break; break;
case DRAW_PIXEL: case DRAW_PIXEL:
left = last_left; left = last_left;
right = last_right; right = last_right;
@ -1090,14 +1073,14 @@ static long anim_peaks_horizontal(void)
last_left = cur_left; last_left = cur_left;
last_right = cur_right; last_right = cur_right;
if (full_update) if (full_update)
{ {
osd_lcd_update(); osd_lcd_update();
} }
else else
{ {
anim_draw_cursor_h(cur_x + 1); /* cursor bar */ anim_draw_cursor_h(cur_x + 1); /* cursor bar */
if (cur_x > last_pos) if (cur_x > last_pos)
{ {
@ -1164,7 +1147,7 @@ static long anim_peaks_vertical(void)
cur_y -= shift; cur_y -= shift;
last_pos -= shift; last_pos -= shift;
} }
else else
{ {
cur_y -= LCD_HEIGHT; cur_y -= LCD_HEIGHT;
} }
@ -1219,7 +1202,7 @@ static long anim_peaks_vertical(void)
} }
else else
{ {
left = last_left left = last_left
+ (LCD_HEIGHT - last_pos) * (last_left - cur_left) / d; + (LCD_HEIGHT - last_pos) * (last_left - cur_left) / d;
right = last_right right = last_right
+ (LCD_HEIGHT - last_pos) * (last_right - cur_right) / d; + (LCD_HEIGHT - last_pos) * (last_right - cur_right) / d;
@ -1245,7 +1228,7 @@ static long anim_peaks_vertical(void)
} }
} }
break; break;
case DRAW_PIXEL: case DRAW_PIXEL:
left = last_left; left = last_left;
right = last_right; right = last_right;
@ -1269,7 +1252,7 @@ static long anim_peaks_vertical(void)
last_left = cur_left; last_left = cur_left;
last_right = cur_right; last_right = cur_right;
if (full_update) if (full_update)
{ {
osd_lcd_update(); osd_lcd_update();
@ -1358,7 +1341,7 @@ static void waveform_buffer_done(void)
waveform_buffer_have = have; waveform_buffer_have = have;
} }
/* where the samples are obtained and buffered */ /* where the samples are obtained and buffered */
static void waveform_buffer_callback(const void *start, size_t size) static void waveform_buffer_callback(const void *start, size_t size)
{ {
@ -2053,7 +2036,7 @@ enum plugin_status plugin_start(const void* parameter)
osc_popupmsg(OSC_MSG_GRAPHMODE, osc.graphmode); osc_popupmsg(OSC_MSG_GRAPHMODE, osc.graphmode);
break; break;
#endif /* OSCILLOSCOPE_GRAPHMODE */ #endif /* OSCILLOSCOPE_GRAPHMODE */
case OSCILLOSCOPE_ORIENTATION: case OSCILLOSCOPE_ORIENTATION:
#ifdef OSCILLOSCOPE_ORIENTATION_PRE #ifdef OSCILLOSCOPE_ORIENTATION_PRE
if (lastbutton != OSCILLOSCOPE_ORIENTATION_PRE) if (lastbutton != OSCILLOSCOPE_ORIENTATION_PRE)
@ -2075,7 +2058,7 @@ enum plugin_status plugin_start(const void* parameter)
graphmode_pause_unpause(paused); graphmode_pause_unpause(paused);
osc_popupmsg(OSC_MSG_PAUSED, paused ? 1 : 0); osc_popupmsg(OSC_MSG_PAUSED, paused ? 1 : 0);
break; break;
case OSCILLOSCOPE_SPEED_UP: case OSCILLOSCOPE_SPEED_UP:
case OSCILLOSCOPE_SPEED_UP | BUTTON_REPEAT: case OSCILLOSCOPE_SPEED_UP | BUTTON_REPEAT:
{ {
@ -2088,7 +2071,7 @@ enum plugin_status plugin_start(const void* parameter)
osc_popupmsg(OSC_MSG_SPEED, *val); osc_popupmsg(OSC_MSG_SPEED, *val);
break; break;
} }
case OSCILLOSCOPE_SPEED_DOWN: case OSCILLOSCOPE_SPEED_DOWN:
case OSCILLOSCOPE_SPEED_DOWN | BUTTON_REPEAT: case OSCILLOSCOPE_SPEED_DOWN | BUTTON_REPEAT:
{ {

View file

@ -364,16 +364,7 @@
#define PACMAN_1UP BUTTON_VOLUP #define PACMAN_1UP BUTTON_VOLUP
#define PACMAN_COIN BUTTON_VOLDOWN #define PACMAN_COIN BUTTON_VOLDOWN
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define PACMAN_UP BUTTON_PREV
#define PACMAN_DOWN BUTTON_NEXT
#define PACMAN_LEFT BUTTON_HOME
#define PACMAN_RIGHT BUTTON_VOL_DOWN
#define PACMAN_MENU BUTTON_POWER
#define PACMAN_1UP BUTTON_VOL_UP
#define PACMAN_COIN BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define PACMAN_UP BUTTON_PREV #define PACMAN_UP BUTTON_PREV
#define PACMAN_DOWN BUTTON_NEXT #define PACMAN_DOWN BUTTON_NEXT
#define PACMAN_LEFT BUTTON_HOME #define PACMAN_LEFT BUTTON_HOME
@ -391,7 +382,8 @@
#define PACMAN_1UP BUTTON_VOL_UP #define PACMAN_1UP BUTTON_VOL_UP
#define PACMAN_COIN BUTTON_PLAY #define PACMAN_COIN BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define PACMAN_UP BUTTON_PREV #define PACMAN_UP BUTTON_PREV
#define PACMAN_DOWN BUTTON_NEXT #define PACMAN_DOWN BUTTON_NEXT
#define PACMAN_LEFT BUTTON_HOME #define PACMAN_LEFT BUTTON_HOME
@ -400,13 +392,12 @@
#define PACMAN_1UP BUTTON_VOL_UP #define PACMAN_1UP BUTTON_VOL_UP
#define PACMAN_COIN BUTTON_PLAY #define PACMAN_COIN BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define PACMAN_UP BUTTON_PREV #define PACMAN_UP BUTTON_PREV
#define PACMAN_DOWN BUTTON_NEXT #define PACMAN_DOWN BUTTON_NEXT
#define PACMAN_LEFT BUTTON_HOME #define PACMAN_LEFT BUTTON_SCROLL_BACK
#define PACMAN_RIGHT BUTTON_VOL_DOWN #define PACMAN_RIGHT BUTTON_SCROLL_FWD
#define PACMAN_MENU BUTTON_POWER #define PACMAN_MENU BUTTON_MENU
#define PACMAN_1UP BUTTON_VOL_UP #define PACMAN_1UP BUTTON_VOL_UP
#define PACMAN_COIN BUTTON_PLAY #define PACMAN_COIN BUTTON_PLAY
@ -516,7 +507,7 @@
*/ */
#if defined(TOSHIBA_GIGABEAT_S) || defined (TOSHIBA_GIGABEAT_F) || \ #if defined(TOSHIBA_GIGABEAT_S) || defined (TOSHIBA_GIGABEAT_F) || \
defined(SANSA_FUZEPLUS) defined(SANSA_FUZEPLUS)
/* Gigabeat S,F and Sansa Fuze+ can manage the full framerate /* Gigabeat S,F and Sansa Fuze+ can manage the full framerate
(1 in 1 frames) */ (1 in 1 frames) */
#define FPS 60 #define FPS 60
#elif defined(IPOD_NANO) #elif defined(IPOD_NANO)

View file

@ -626,24 +626,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define PEGBOX_SELECT BUTTON_PLAY
#define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
#define PEGBOX_LVL_UP BUTTON_VOL_UP
#define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN
#define PEGBOX_UP BUTTON_HOME
#define PEGBOX_DOWN BUTTON_OPTION
#define PEGBOX_RIGHT BUTTON_NEXT
#define PEGBOX_LEFT BUTTON_PREV
#define SELECT_TEXT "PLAY"
#define QUIT_TEXT "POWER"
#define RESTART_TEXT "HOME"
#define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define PEGBOX_SELECT BUTTON_PLAY #define PEGBOX_SELECT BUTTON_PLAY
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME) #define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
@ -677,7 +660,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define PEGBOX_SELECT BUTTON_PLAY #define PEGBOX_SELECT BUTTON_PLAY
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME) #define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
@ -694,16 +677,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == FIIO_M3K_PAD
#define PEGBOX_SELECT BUTTON_PLAY #define PEGBOX_SELECT BUTTON_PLAY
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME) #define PEGBOX_RESTART (BUTTON_POWER | BUTTON_HOME)
#define PEGBOX_LVL_UP (BUTTON_POWER | BUTTON_VOL_UP) #define PEGBOX_LVL_UP BUTTON_VOL_UP
#define PEGBOX_LVL_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN) #define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN
#define PEGBOX_UP BUTTON_PREV #define PEGBOX_UP BUTTON_HOME
#define PEGBOX_DOWN BUTTON_NEXT #define PEGBOX_DOWN BUTTON_OPTION
#define PEGBOX_RIGHT BUTTON_HOME #define PEGBOX_RIGHT BUTTON_NEXT
#define PEGBOX_LEFT BUTTON_VOL_DOWN #define PEGBOX_LEFT BUTTON_PREV
#define SELECT_TEXT "PLAY" #define SELECT_TEXT "PLAY"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
@ -711,11 +694,24 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#else #elif CONFIG_KEYPAD == EROSQ_PAD
#error Unsupported keymap! #define PEGBOX_SELECT BUTTON_PLAY
#endif #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_BACK
#define PEGBOX_LVL_UP BUTTON_VOL_UP
#define PEGBOX_LVL_DOWN BUTTON_VOL_DOWN
#define PEGBOX_UP BUTTON_PREV
#define PEGBOX_DOWN BUTTON_NEXT
#define PEGBOX_RIGHT BUTTON_SCROLL_FWD
#define PEGBOX_LEFT BUTTON_SCROLL_BACK
#ifdef HAVE_TOUCHSCREEN #define SELECT_TEXT "PLAY"
#define QUIT_TEXT "POWER"
#define RESTART_TEXT "BACK"
#define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-"
#elif defined(HAVE_TOUCHSCREEN)
#ifndef PEGBOX_QUIT #ifndef PEGBOX_QUIT
#define PEGBOX_QUIT BUTTON_TOPLEFT #define PEGBOX_QUIT BUTTON_TOPLEFT
#endif #endif
@ -758,9 +754,10 @@ CONFIG_KEYPAD == MROBE500_PAD
#ifndef LVL_DOWN_TEXT #ifndef LVL_DOWN_TEXT
#define LVL_DOWN_TEXT "BOTTOMRIGHT" #define LVL_DOWN_TEXT "BOTTOMRIGHT"
#endif #endif
#else
#error Unsupported keymap!
#endif #endif
/* get several sizes from the bitmaps */ /* get several sizes from the bitmaps */
#ifdef BMPWIDTH_pegbox_pieces #ifdef BMPWIDTH_pegbox_pieces
#define PIECE_WIDTH BMPWIDTH_pegbox_pieces #define PIECE_WIDTH BMPWIDTH_pegbox_pieces
@ -1083,7 +1080,7 @@ static void pegbox_draw_board(struct game_context* pb)
if(type != SPACE) { if(type != SPACE) {
rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces), BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces),
c * PIECE_WIDTH + BOARD_X, c * PIECE_WIDTH + BOARD_X,
r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,

View file

@ -293,15 +293,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_HOME #define PONG_RIGHT_UP BUTTON_HOME
#define PONG_RIGHT_DOWN BUTTON_NEXT #define PONG_RIGHT_DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_PLAY
#define PONG_LEFT_UP BUTTON_PREV
#define PONG_LEFT_DOWN BUTTON_OPTION
#define PONG_RIGHT_UP BUTTON_HOME
#define PONG_RIGHT_DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define PONG_QUIT BUTTON_POWER #define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_PLAY #define PONG_PAUSE BUTTON_PLAY
#define PONG_LEFT_UP BUTTON_PREV #define PONG_LEFT_UP BUTTON_PREV
@ -317,7 +309,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_HOME #define PONG_RIGHT_UP BUTTON_HOME
#define PONG_RIGHT_DOWN BUTTON_NEXT #define PONG_RIGHT_DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define PONG_QUIT BUTTON_POWER #define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_PREV #define PONG_PAUSE BUTTON_PREV
#define PONG_LEFT_UP BUTTON_PLAY #define PONG_LEFT_UP BUTTON_PLAY
@ -325,13 +317,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_VOL_UP #define PONG_RIGHT_UP BUTTON_VOL_UP
#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN #define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define PONG_QUIT BUTTON_POWER #define PONG_QUIT BUTTON_POWER
#define PONG_PAUSE BUTTON_PREV #define PONG_PAUSE BUTTON_PLAY
#define PONG_LEFT_UP BUTTON_PLAY #define PONG_LEFT_UP BUTTON_SCROLL_BACK
#define PONG_LEFT_DOWN BUTTON_HOME #define PONG_LEFT_DOWN BUTTON_SCROLL_FWD
#define PONG_RIGHT_UP BUTTON_VOL_UP #define PONG_RIGHT_UP BUTTON_PREV
#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN #define PONG_RIGHT_DOWN BUTTON_NEXT
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -45,9 +45,9 @@
#define REVERSI_BUTTON_LEFT (BUTTON_LEFT | BUTTON_SCROLL_BACK) #define REVERSI_BUTTON_LEFT (BUTTON_LEFT | BUTTON_SCROLL_BACK)
#define REVERSI_BUTTON_RIGHT (BUTTON_RIGHT | BUTTON_SCROLL_FWD) #define REVERSI_BUTTON_RIGHT (BUTTON_RIGHT | BUTTON_SCROLL_FWD)
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_SELECT #define REVERSI_BUTTON_MENU BUTTON_SELECT
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
#define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_QUIT BUTTON_POWER
@ -96,9 +96,9 @@
#define REVERSI_BUTTON_LEFT BUTTON_LEFT #define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_SELECT #define REVERSI_BUTTON_MENU BUTTON_SELECT
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD) #elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
#define REVERSI_BUTTON_QUIT (BUTTON_HOME|BUTTON_REPEAT) #define REVERSI_BUTTON_QUIT (BUTTON_HOME|BUTTON_REPEAT)
@ -107,9 +107,9 @@
#define REVERSI_BUTTON_LEFT BUTTON_LEFT #define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_SELECT #define REVERSI_BUTTON_MENU BUTTON_SELECT
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == MROBE500_PAD #elif CONFIG_KEYPAD == MROBE500_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_QUIT BUTTON_POWER
@ -233,17 +233,17 @@
#define REVERSI_BUTTON_UP BUTTON_REW #define REVERSI_BUTTON_UP BUTTON_REW
#define REVERSI_BUTTON_DOWN BUTTON_FF #define REVERSI_BUTTON_DOWN BUTTON_FF
#define REVERSI_BUTTON_LEFT BUTTON_VOL_DOWN #define REVERSI_BUTTON_LEFT BUTTON_VOL_DOWN
#define REVERSI_BUTTON_RIGHT BUTTON_VOL_UP #define REVERSI_BUTTON_RIGHT BUTTON_VOL_UP
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_FUNC #define REVERSI_BUTTON_MAKE_MOVE BUTTON_FUNC
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_FUNC #define REVERSI_BUTTON_MENU BUTTON_FUNC
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == MPIO_HD300_PAD #elif CONFIG_KEYPAD == MPIO_HD300_PAD
#define REVERSI_BUTTON_UP BUTTON_UP #define REVERSI_BUTTON_UP BUTTON_UP
#define REVERSI_BUTTON_DOWN BUTTON_DOWN #define REVERSI_BUTTON_DOWN BUTTON_DOWN
#define REVERSI_BUTTON_LEFT BUTTON_REW #define REVERSI_BUTTON_LEFT BUTTON_REW
#define REVERSI_BUTTON_RIGHT BUTTON_FF #define REVERSI_BUTTON_RIGHT BUTTON_FF
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_ENTER #define REVERSI_BUTTON_MAKE_MOVE BUTTON_ENTER
#define REVERSI_BUTTON_MENU BUTTON_MENU #define REVERSI_BUTTON_MENU BUTTON_MENU
@ -251,7 +251,7 @@
#define REVERSI_BUTTON_UP BUTTON_UP #define REVERSI_BUTTON_UP BUTTON_UP
#define REVERSI_BUTTON_DOWN BUTTON_DOWN #define REVERSI_BUTTON_DOWN BUTTON_DOWN
#define REVERSI_BUTTON_LEFT BUTTON_LEFT #define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAYPAUSE #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAYPAUSE
#define REVERSI_BUTTON_MENU BUTTON_BACK #define REVERSI_BUTTON_MENU BUTTON_BACK
@ -269,7 +269,7 @@
#define REVERSI_BUTTON_UP BUTTON_UP #define REVERSI_BUTTON_UP BUTTON_UP
#define REVERSI_BUTTON_DOWN BUTTON_DOWN #define REVERSI_BUTTON_DOWN BUTTON_DOWN
#define REVERSI_BUTTON_LEFT BUTTON_LEFT #define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT #define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT #define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MENU BUTTON_POWER #define REVERSI_BUTTON_MENU BUTTON_POWER
@ -319,18 +319,7 @@
#define REVERSI_BUTTON_MENU BUTTON_PLAY #define REVERSI_BUTTON_MENU BUTTON_PLAY
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_HOME
#define REVERSI_BUTTON_DOWN BUTTON_OPTION
#define REVERSI_BUTTON_LEFT BUTTON_PREV
#define REVERSI_BUTTON_RIGHT BUTTON_NEXT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_PLAY
#define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_HOME #define REVERSI_BUTTON_UP BUTTON_HOME
#define REVERSI_BUTTON_DOWN BUTTON_OPTION #define REVERSI_BUTTON_DOWN BUTTON_OPTION
@ -352,27 +341,25 @@
#define REVERSI_BUTTON_MENU BUTTON_PLAY #define REVERSI_BUTTON_MENU BUTTON_PLAY
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_PREV #define REVERSI_BUTTON_UP BUTTON_PREV
#define REVERSI_BUTTON_DOWN BUTTON_NEXT #define REVERSI_BUTTON_DOWN BUTTON_NEXT
#define REVERSI_BUTTON_LEFT BUTTON_PREV #define REVERSI_BUTTON_LEFT BUTTON_PREV
#define REVERSI_BUTTON_RIGHT BUTTON_VOL_DOWN #define REVERSI_BUTTON_RIGHT BUTTON_VOL_DOWN
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS
#define REVERSI_BUTTON_MENU BUTTON_PLAY #define REVERSI_BUTTON_MENU BUTTON_PLAY
#define REVERSI_BUTTON_MENU_LONGPRESS #define REVERSI_BUTTON_MENU_LONGPRESS
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_QUIT BUTTON_POWER
#define REVERSI_BUTTON_UP BUTTON_PREV #define REVERSI_BUTTON_UP BUTTON_PREV
#define REVERSI_BUTTON_DOWN BUTTON_NEXT #define REVERSI_BUTTON_DOWN BUTTON_NEXT
#define REVERSI_BUTTON_LEFT BUTTON_PREV #define REVERSI_BUTTON_LEFT BUTTON_SCROLL_BACK
#define REVERSI_BUTTON_RIGHT BUTTON_VOL_DOWN #define REVERSI_BUTTON_RIGHT BUTTON_SCROLL_FWD
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY #define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
#define REVERSI_BUTTON_MAKE_MOVE_SHORTPRESS #define REVERSI_BUTTON_MENU BUTTON_MENU
#define REVERSI_BUTTON_MENU BUTTON_PLAY
#define REVERSI_BUTTON_MENU_LONGPRESS
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -431,31 +431,7 @@
#define ROCKBLOX_ROTATE_CCW BUTTON_VOLDOWN #define ROCKBLOX_ROTATE_CCW BUTTON_VOLDOWN
#define ROCKBLOX_DOWN BUTTON_DOWN #define ROCKBLOX_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif (CONFIG_KEYPAD == XDUOO_X3_PAD) || (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME
#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN
#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP
#define ROCKBLOX_DOWN BUTTON_OPTION
#define ROCKBLOX_LEFT BUTTON_PREV
#define ROCKBLOX_RIGHT BUTTON_NEXT
#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME
#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN
#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP
#define ROCKBLOX_DOWN BUTTON_OPTION
#define ROCKBLOX_LEFT BUTTON_PREV
#define ROCKBLOX_RIGHT BUTTON_NEXT
#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define ROCKBLOX_OFF BUTTON_POWER #define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME #define ROCKBLOX_ROTATE_CCW BUTTON_HOME
@ -479,7 +455,7 @@
#define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL) #define ROCKBLOX_DROP (BUTTON_PLAY|BUTTON_REL)
#define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT) #define ROCKBLOX_RESTART (BUTTON_PLAY|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define ROCKBLOX_OFF BUTTON_POWER #define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME #define ROCKBLOX_ROTATE_CCW BUTTON_HOME
@ -491,17 +467,15 @@
#define ROCKBLOX_DROP (BUTTON_POWER|BUTTON_PLAY) #define ROCKBLOX_DROP (BUTTON_POWER|BUTTON_PLAY)
#define ROCKBLOX_RESTART (BUTTON_POWER|BUTTON_REPEAT) #define ROCKBLOX_RESTART (BUTTON_POWER|BUTTON_REPEAT)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define ROCKBLOX_OFF BUTTON_POWER #define ROCKBLOX_OFF BUTTON_POWER
#define ROCKBLOX_ROTATE_CCW BUTTON_HOME #define ROCKBLOX_ROTATE_CCW BUTTON_SCROLL_BACK
#define ROCKBLOX_ROTATE_CCW2 BUTTON_VOL_DOWN #define ROCKBLOX_ROTATE_CW BUTTON_SCROLL_FWD
#define ROCKBLOX_ROTATE_CW BUTTON_VOL_UP #define ROCKBLOX_DOWN BUTTON_MENU
#define ROCKBLOX_DOWN BUTTON_PLAY
#define ROCKBLOX_LEFT BUTTON_PREV #define ROCKBLOX_LEFT BUTTON_PREV
#define ROCKBLOX_RIGHT BUTTON_NEXT #define ROCKBLOX_RIGHT BUTTON_NEXT
#define ROCKBLOX_DROP (BUTTON_POWER|BUTTON_PLAY) #define ROCKBLOX_DROP BUTTON_PLAY
#define ROCKBLOX_RESTART (BUTTON_POWER|BUTTON_REPEAT) #define ROCKBLOX_RESTART BUTTON_BACK
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -425,17 +425,7 @@ static void setoptions (void)
options.SELECT = BUTTON_VOL_UP; options.SELECT = BUTTON_VOL_UP;
options.MENU = BUTTON_POWER; options.MENU = BUTTON_POWER;
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
options.UP = BUTTON_PREV;
options.DOWN = BUTTON_NEXT;
options.A = BUTTON_HOME;
options.B = BUTTON_OPTION;
options.START = BUTTON_VOL_DOWN;
options.SELECT = BUTTON_VOL_UP;
options.MENU = BUTTON_POWER;
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
options.UP = BUTTON_PREV; options.UP = BUTTON_PREV;
options.DOWN = BUTTON_NEXT; options.DOWN = BUTTON_NEXT;
@ -455,7 +445,7 @@ static void setoptions (void)
options.SELECT = BUTTON_VOL_UP; options.SELECT = BUTTON_VOL_UP;
options.MENU = BUTTON_POWER; options.MENU = BUTTON_POWER;
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
options.UP = BUTTON_PREV; options.UP = BUTTON_PREV;
options.DOWN = BUTTON_NEXT; options.DOWN = BUTTON_NEXT;
@ -465,14 +455,16 @@ static void setoptions (void)
options.SELECT = BUTTON_HOME; options.SELECT = BUTTON_HOME;
options.MENU = BUTTON_POWER; options.MENU = BUTTON_POWER;
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
options.UP = BUTTON_PREV; options.UP = BUTTON_PREV;
options.DOWN = BUTTON_NEXT; options.DOWN = BUTTON_NEXT;
options.LEFT = BUTTON_SCROLL_BACK;
options.RIGHT = BUTTON_SCROLL_FWD;
options.A = BUTTON_VOL_UP; options.A = BUTTON_MENU;
options.B = BUTTON_VOL_DOWN; options.B = BUTTON_BACK;
options.START = BUTTON_PLAY; options.START = BUTTON_VOL_DOWN;
options.SELECT = BUTTON_HOME; options.SELECT = BUTTON_VOL_UP;
options.MENU = BUTTON_POWER; options.MENU = BUTTON_POWER;
#else #else

View file

@ -63,7 +63,7 @@
#define PUZZLE_PICTURE BUTTON_A #define PUZZLE_PICTURE BUTTON_A
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == SANSA_C200_PAD) (CONFIG_KEYPAD == SANSA_C200_PAD)
#define PUZZLE_QUIT BUTTON_POWER #define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_LEFT BUTTON_LEFT #define PUZZLE_LEFT BUTTON_LEFT
#define PUZZLE_RIGHT BUTTON_RIGHT #define PUZZLE_RIGHT BUTTON_RIGHT
@ -312,16 +312,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_PWRALT) #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_PWRALT)
#define PUZZLE_PICTURE BUTTON_PLAY #define PUZZLE_PICTURE BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_LEFT BUTTON_PREV
#define PUZZLE_RIGHT BUTTON_NEXT
#define PUZZLE_UP BUTTON_HOME
#define PUZZLE_DOWN BUTTON_OPTION
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
#define PUZZLE_PICTURE BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define PUZZLE_QUIT BUTTON_POWER #define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_LEFT BUTTON_PREV #define PUZZLE_LEFT BUTTON_PREV
#define PUZZLE_RIGHT BUTTON_NEXT #define PUZZLE_RIGHT BUTTON_NEXT
@ -339,7 +330,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
#define PUZZLE_PICTURE BUTTON_PLAY #define PUZZLE_PICTURE BUTTON_PLAY
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define PUZZLE_QUIT BUTTON_POWER #define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_LEFT BUTTON_HOME #define PUZZLE_LEFT BUTTON_HOME
#define PUZZLE_RIGHT BUTTON_VOL_DOWN #define PUZZLE_RIGHT BUTTON_VOL_DOWN
@ -348,15 +339,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) #define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER)
#define PUZZLE_PICTURE BUTTON_PLAY #define PUZZLE_PICTURE BUTTON_PLAY
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define PUZZLE_QUIT BUTTON_POWER #define PUZZLE_QUIT BUTTON_POWER
#define PUZZLE_LEFT BUTTON_HOME #define PUZZLE_LEFT BUTTON_SCROLL_BACK
#define PUZZLE_RIGHT BUTTON_VOL_DOWN #define PUZZLE_RIGHT BUTTON_SCROLL_FWD
#define PUZZLE_UP BUTTON_PREV #define PUZZLE_UP BUTTON_PREV
#define PUZZLE_DOWN BUTTON_NEXT #define PUZZLE_DOWN BUTTON_NEXT
#define PUZZLE_SHUFFLE (BUTTON_HOME | BUTTON_POWER) #define PUZZLE_SHUFFLE BUTTON_BACK
#define PUZZLE_PICTURE BUTTON_PLAY #define PUZZLE_PICTURE BUTTON_PLAY
#else #else
#error No keymap defined! #error No keymap defined!
#endif #endif
@ -383,13 +375,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#ifndef PUZZLE_PICTURE #ifndef PUZZLE_PICTURE
#define PUZZLE_PICTURE BUTTON_CENTER #define PUZZLE_PICTURE BUTTON_CENTER
#endif #endif
#ifndef PUZZLE_QUIT_TEXT #ifndef PUZZLE_QUIT_TEXT
#define PUZZLE_QUIT_TEXT "[TOPLEFT]" #define PUZZLE_QUIT_TEXT "[TOPLEFT]"
#endif #endif
#ifndef PUZZLE_SHUFFLE_TEXT #ifndef PUZZLE_SHUFFLE_TEXT
#define PUZZLE_SHUFFLE_TEXT "[BOTTOMLEFT]" #define PUZZLE_SHUFFLE_TEXT "[BOTTOMLEFT]"
#endif #endif
#ifndef PUZZLE_PICTURE_TEXT #ifndef PUZZLE_PICTURE_TEXT
#define PUZZLE_PICTURE_TEXT "[CENTER]" #define PUZZLE_PICTURE_TEXT "[CENTER]"
#endif #endif
#endif #endif
@ -563,7 +555,7 @@ static void draw_spot(int p, int x, int y)
an appropriate hole graphic */ an appropriate hole graphic */
rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH, rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
((p-1)/SPOTS_X)*SPOTS_HEIGHT, ((p-1)/SPOTS_X)*SPOTS_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
x, y, SPOTS_WIDTH, SPOTS_HEIGHT); x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
#else #else
@ -580,8 +572,8 @@ static void draw_spot(int p, int x, int y)
{ {
rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH, rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
((p-1)/SPOTS_X)*SPOTS_HEIGHT, ((p-1)/SPOTS_X)*SPOTS_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
x, y, SPOTS_WIDTH, SPOTS_HEIGHT); x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
} else { } else {
rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT); rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT);

View file

@ -24,7 +24,7 @@ Snake!
by Itai Shaked by Itai Shaked
ok, a little explanation - ok, a little explanation -
board holds the snake and apple position - 1+ - snake body (the number board holds the snake and apple position - 1+ - snake body (the number
represents the age [1 is the snake's head]). represents the age [1 is the snake's head]).
-1 is an apple, and 0 is a clear spot. -1 is an apple, and 0 is a clear spot.
@ -273,15 +273,7 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_OPTION #define SNAKE_DOWN BUTTON_OPTION
#define SNAKE_PLAYPAUSE BUTTON_PLAY #define SNAKE_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define SNAKE_QUIT BUTTON_POWER
#define SNAKE_LEFT BUTTON_PREV
#define SNAKE_RIGHT BUTTON_NEXT
#define SNAKE_UP BUTTON_HOME
#define SNAKE_DOWN BUTTON_OPTION
#define SNAKE_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define SNAKE_QUIT BUTTON_POWER #define SNAKE_QUIT BUTTON_POWER
#define SNAKE_LEFT BUTTON_PREV #define SNAKE_LEFT BUTTON_PREV
#define SNAKE_RIGHT BUTTON_NEXT #define SNAKE_RIGHT BUTTON_NEXT
@ -297,7 +289,7 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_OPTION #define SNAKE_DOWN BUTTON_OPTION
#define SNAKE_PLAYPAUSE BUTTON_PLAY #define SNAKE_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define SNAKE_QUIT BUTTON_POWER #define SNAKE_QUIT BUTTON_POWER
#define SNAKE_LEFT BUTTON_HOME #define SNAKE_LEFT BUTTON_HOME
#define SNAKE_RIGHT BUTTON_VOL_DOWN #define SNAKE_RIGHT BUTTON_VOL_DOWN
@ -305,10 +297,10 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_NEXT #define SNAKE_DOWN BUTTON_NEXT
#define SNAKE_PLAYPAUSE BUTTON_PLAY #define SNAKE_PLAYPAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define SNAKE_QUIT BUTTON_POWER #define SNAKE_QUIT BUTTON_POWER
#define SNAKE_LEFT BUTTON_HOME #define SNAKE_LEFT BUTTON_SCROLL_BACK
#define SNAKE_RIGHT BUTTON_VOL_DOWN #define SNAKE_RIGHT BUTTON_SCROLL_FWD
#define SNAKE_UP BUTTON_PREV #define SNAKE_UP BUTTON_PREV
#define SNAKE_DOWN BUTTON_NEXT #define SNAKE_DOWN BUTTON_NEXT
#define SNAKE_PLAYPAUSE BUTTON_PLAY #define SNAKE_PLAYPAUSE BUTTON_PLAY

View file

@ -401,16 +401,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAY #define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "PLAY" #define SNAKE2_PLAYPAUSE_TEXT "PLAY"
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define SNAKE2_LEFT BUTTON_PREV
#define SNAKE2_RIGHT BUTTON_NEXT
#define SNAKE2_UP BUTTON_HOME
#define SNAKE2_DOWN BUTTON_OPTION
#define SNAKE2_QUIT BUTTON_POWER
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define SNAKE2_LEFT BUTTON_PREV #define SNAKE2_LEFT BUTTON_PREV
#define SNAKE2_RIGHT BUTTON_NEXT #define SNAKE2_RIGHT BUTTON_NEXT
#define SNAKE2_UP BUTTON_HOME #define SNAKE2_UP BUTTON_HOME
@ -428,7 +419,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAY #define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "PLAY" #define SNAKE2_PLAYPAUSE_TEXT "PLAY"
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define SNAKE2_LEFT BUTTON_HOME #define SNAKE2_LEFT BUTTON_HOME
#define SNAKE2_RIGHT BUTTON_VOL_DOWN #define SNAKE2_RIGHT BUTTON_VOL_DOWN
#define SNAKE2_UP BUTTON_PREV #define SNAKE2_UP BUTTON_PREV
@ -437,9 +428,9 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_PLAY #define SNAKE2_PLAYPAUSE BUTTON_PLAY
#define SNAKE2_PLAYPAUSE_TEXT "PLAY" #define SNAKE2_PLAYPAUSE_TEXT "PLAY"
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define SNAKE2_LEFT BUTTON_HOME #define SNAKE2_LEFT BUTTON_SCROLL_BACK
#define SNAKE2_RIGHT BUTTON_VOL_DOWN #define SNAKE2_RIGHT BUTTON_SCROLL_FWD
#define SNAKE2_UP BUTTON_PREV #define SNAKE2_UP BUTTON_PREV
#define SNAKE2_DOWN BUTTON_NEXT #define SNAKE2_DOWN BUTTON_NEXT
#define SNAKE2_QUIT BUTTON_POWER #define SNAKE2_QUIT BUTTON_POWER
@ -451,7 +442,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#endif #endif
#ifdef HAVE_TOUCHSCREEN #ifdef HAVE_TOUCHSCREEN
#ifndef SNAKE2_LEFT #ifndef SNAKE2_LEFT
#define SNAKE2_LEFT BUTTON_MIDLEFT #define SNAKE2_LEFT BUTTON_MIDLEFT
#endif #endif
#ifndef SNAKE2_RIGHT #ifndef SNAKE2_RIGHT

View file

@ -631,23 +631,7 @@
#define BUTTON_SAVE BUTTON_PLAY #define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY" #define BUTTON_SAVE_NAME "PLAY"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define SOKOBAN_LEFT BUTTON_PREV
#define SOKOBAN_RIGHT BUTTON_NEXT
#define SOKOBAN_UP BUTTON_HOME
#define SOKOBAN_DOWN BUTTON_OPTION
#define SOKOBAN_MENU BUTTON_POWER
#define SOKOBAN_UNDO_PRE BUTTON_PLAY
#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL)
#define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY)
#define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN
#define SOKOBAN_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_NEXT)
#define SOKOBAN_LEVEL_UP BUTTON_VOL_UP
#define SOKOBAN_PAUSE BUTTON_PLAY
#define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define SOKOBAN_LEFT BUTTON_PREV #define SOKOBAN_LEFT BUTTON_PREV
#define SOKOBAN_RIGHT BUTTON_NEXT #define SOKOBAN_RIGHT BUTTON_NEXT
#define SOKOBAN_UP BUTTON_HOME #define SOKOBAN_UP BUTTON_HOME
@ -679,7 +663,7 @@
#define BUTTON_SAVE BUTTON_PLAY #define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY" #define BUTTON_SAVE_NAME "PLAY"
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define SOKOBAN_LEFT BUTTON_HOME #define SOKOBAN_LEFT BUTTON_HOME
#define SOKOBAN_RIGHT BUTTON_VOL_DOWN #define SOKOBAN_RIGHT BUTTON_VOL_DOWN
#define SOKOBAN_UP BUTTON_PREV #define SOKOBAN_UP BUTTON_PREV
@ -695,18 +679,18 @@
#define BUTTON_SAVE BUTTON_PLAY #define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY" #define BUTTON_SAVE_NAME "PLAY"
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define SOKOBAN_LEFT BUTTON_HOME #define SOKOBAN_LEFT BUTTON_SCROLL_BACK
#define SOKOBAN_RIGHT BUTTON_VOL_DOWN #define SOKOBAN_RIGHT BUTTON_SCROLL_FWD
#define SOKOBAN_UP BUTTON_PREV #define SOKOBAN_UP BUTTON_PREV
#define SOKOBAN_DOWN BUTTON_NEXT #define SOKOBAN_DOWN BUTTON_NEXT
#define SOKOBAN_MENU BUTTON_POWER #define SOKOBAN_MENU BUTTON_MENU
#define SOKOBAN_UNDO_PRE BUTTON_PLAY #define SOKOBAN_UNDO_PRE BUTTON_PLAY
#define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL) #define SOKOBAN_UNDO (BUTTON_PLAY | BUTTON_REL)
#define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY) #define SOKOBAN_REDO (BUTTON_POWER | BUTTON_PLAY)
#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN) #define SOKOBAN_LEVEL_DOWN BUTTON_VOL_DOWN
#define SOKOBAN_LEVEL_REPEAT (BUTTON_POWER | BUTTON_HOME) #define SOKOBAN_LEVEL_REPEAT BUTTON_BACK
#define SOKOBAN_LEVEL_UP (BUTTON_POWER | BUTTON_VOL_UP) #define SOKOBAN_LEVEL_UP BUTTON_VOL_UP
#define SOKOBAN_PAUSE BUTTON_PLAY #define SOKOBAN_PAUSE BUTTON_PLAY
#define BUTTON_SAVE BUTTON_PLAY #define BUTTON_SAVE BUTTON_PLAY
#define BUTTON_SAVE_NAME "PLAY" #define BUTTON_SAVE_NAME "PLAY"
@ -1286,56 +1270,56 @@ static void update_screen(void)
case ' ': /* floor */ case ' ': /* floor */
rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;
case '#': /* wall */ case '#': /* wall */
rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;
case '$': /* box */ case '$': /* box */
rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE);
break; break;
case '*': /* box on goal */ case '*': /* box on goal */
rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;
case '.': /* goal */ case '.': /* goal */
rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;
case '@': /* player */ case '@': /* player */
rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;
case '+': /* player on goal */ case '+': /* player on goal */
rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE, rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_sokoban_tiles, BMPWIDTH_sokoban_tiles,
BMPHEIGHT_sokoban_tiles), BMPHEIGHT_sokoban_tiles),
c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
break; break;

View file

@ -646,26 +646,7 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "DBL PLAY" # define HK_CUR2STACK "DBL PLAY"
# define HK_REM2STACK "NEXT" # define HK_REM2STACK "NEXT"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
# define SOL_QUIT BUTTON_POWER
# define SOL_UP BUTTON_HOME
# define SOL_DOWN BUTTON_OPTION
# define SOL_LEFT BUTTON_PREV
# define SOL_RIGHT BUTTON_NEXT
# define SOL_MOVE_PRE BUTTON_PLAY
# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL)
# define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT)
# define SOL_REM2CUR BUTTON_VOL_DOWN
# define SOL_CUR2STACK_PRE BUTTON_PLAY
# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT)
# define SOL_REM2STACK BUTTON_VOL_UP
# define HK_MOVE "PLAY"
# define HK_DRAW "DBL HOME"
# define HK_REM2CUR "PREV"
# define HK_CUR2STACK "DBL PLAY"
# define HK_REM2STACK "NEXT"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
# define SOL_QUIT BUTTON_POWER # define SOL_QUIT BUTTON_POWER
# define SOL_UP BUTTON_HOME # define SOL_UP BUTTON_HOME
# define SOL_DOWN BUTTON_OPTION # define SOL_DOWN BUTTON_OPTION
@ -703,7 +684,7 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "DBL PLAY" # define HK_CUR2STACK "DBL PLAY"
# define HK_REM2STACK "NEXT" # define HK_REM2STACK "NEXT"
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
# define SOL_QUIT BUTTON_POWER # define SOL_QUIT BUTTON_POWER
# define SOL_UP BUTTON_PREV # define SOL_UP BUTTON_PREV
# define SOL_DOWN BUTTON_NEXT # define SOL_DOWN BUTTON_NEXT
@ -722,24 +703,24 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "DBL PLAY" # define HK_CUR2STACK "DBL PLAY"
# define HK_REM2STACK "POWER+" # define HK_REM2STACK "POWER+"
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
# define SOL_QUIT BUTTON_POWER # define SOL_QUIT BUTTON_POWER
# define SOL_UP BUTTON_PREV # define SOL_UP BUTTON_PREV
# define SOL_DOWN BUTTON_NEXT # define SOL_DOWN BUTTON_NEXT
# define SOL_LEFT BUTTON_HOME # define SOL_LEFT BUTTON_SCROLL_BACK
# define SOL_RIGHT BUTTON_VOL_DOWN # define SOL_RIGHT BUTTON_SCROLL_FWD
# define SOL_MOVE_PRE BUTTON_VOL_UP # define SOL_MOVE_PRE BUTTON_PLAY
# define SOL_MOVE (BUTTON_PLAY | BUTTON_REL) # define SOL_MOVE (BUTTON_PLAY | BUTTON_REL)
# define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT) # define SOL_DRAW (BUTTON_POWER | BUTTON_REPEAT)
# define SOL_REM2CUR (BUTTON_POWER | BUTTON_VOL_DOWN) # define SOL_REM2CUR BUTTON_VOL_DOWN
# define SOL_CUR2STACK_PRE BUTTON_PLAY # define SOL_CUR2STACK_PRE BUTTON_PLAY
# define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT) # define SOL_CUR2STACK (BUTTON_PLAY | BUTTON_REPEAT)
# define SOL_REM2STACK (BUTTON_POWER | BUTTON_VOL_UP) # define SOL_REM2STACK BUTTON_VOL_UP
# define HK_MOVE "PLAY" # define HK_MOVE "PLAY"
# define HK_DRAW "DBL POWER" # define HK_DRAW "DBL HOME"
# define HK_REM2CUR "POWER" # define HK_REM2CUR "PREV"
# define HK_CUR2STACK "DBL PLAY" # define HK_CUR2STACK "DBL PLAY"
# define HK_REM2STACK "POWER+" # define HK_REM2STACK "NEXT"
#else #else
#error No keymap defined! #error No keymap defined!
@ -950,8 +931,8 @@ static void draw_card( card_t *card, int x, int y,
if( card->known ) if( card->known )
{ {
rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num, rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num,
CARD_GFX_HEIGHT * card->suit, CARD_GFX_HEIGHT * card->suit,
STRIDE(SCREEN_MAIN, STRIDE(SCREEN_MAIN,
BMPWIDTH_card_deck, BMPHEIGHT_card_deck), BMPWIDTH_card_deck, BMPHEIGHT_card_deck),
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
} }
@ -967,7 +948,7 @@ static void draw_card( card_t *card, int x, int y,
static void draw_empty_stack( int s, int x, int y, bool cursor ) static void draw_empty_stack( int s, int x, int y, bool cursor )
{ {
rb->lcd_bitmap_part( solitaire_suitsi, 0, rb->lcd_bitmap_part( solitaire_suitsi, 0,
CARD_GFX_HEIGHT * s, CARD_GFX_HEIGHT * s,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi), BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi),
x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
@ -1618,11 +1599,11 @@ static int save_game( void )
static int load_game( void ) static int load_game( void )
{ {
int checksum, retval; int checksum, retval;
int fd = open_save_file( O_RDONLY ); int fd = open_save_file( O_RDONLY );
if( fd < 0 ) if( fd < 0 )
return -1; return -1;
retval = 0; /* Assume good case */ retval = 0; /* Assume good case */
if( ( rb->lseek( fd, -(off_t)sizeof( int ), SEEK_END ) == -((ssize_t)sizeof( int ))-1 ) if( ( rb->lseek( fd, -(off_t)sizeof( int ), SEEK_END ) == -((ssize_t)sizeof( int ))-1 )
|| ( rb->read( fd, &checksum, sizeof( int ) ) < ((ssize_t)sizeof( int )) ) || ( rb->read( fd, &checksum, sizeof( int ) ) < ((ssize_t)sizeof( int )) )
@ -1646,7 +1627,7 @@ static int load_game( void )
rb->splash( 2*HZ, "Save file was corrupted. Aborting." ); rb->splash( 2*HZ, "Save file was corrupted. Aborting." );
retval = -3; retval = -3;
} }
rb->close( fd ); rb->close( fd );
delete_save_file(); delete_save_file();
return retval; return retval;

View file

@ -327,25 +327,7 @@
#define AST_RIGHT BUTTON_RIGHT #define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_SELECT #define AST_FIRE BUTTON_SELECT
#elif (CONFIG_KEYPAD == XDUOO_X3_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3_PAD) || (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define AST_PAUSE BUTTON_VOL_UP
#define AST_QUIT BUTTON_POWER
#define AST_THRUST BUTTON_HOME
#define AST_HYPERSPACE BUTTON_OPTION
#define AST_LEFT BUTTON_PREV
#define AST_RIGHT BUTTON_NEXT
#define AST_FIRE BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD)
#define AST_PAUSE BUTTON_VOL_UP
#define AST_QUIT BUTTON_POWER
#define AST_THRUST BUTTON_HOME
#define AST_HYPERSPACE BUTTON_OPTION
#define AST_LEFT BUTTON_PREV
#define AST_RIGHT BUTTON_NEXT
#define AST_FIRE BUTTON_PLAY
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define AST_PAUSE BUTTON_VOL_UP #define AST_PAUSE BUTTON_VOL_UP
#define AST_QUIT BUTTON_POWER #define AST_QUIT BUTTON_POWER
#define AST_THRUST BUTTON_HOME #define AST_THRUST BUTTON_HOME
@ -363,7 +345,7 @@
#define AST_RIGHT BUTTON_NEXT #define AST_RIGHT BUTTON_NEXT
#define AST_FIRE BUTTON_PLAY #define AST_FIRE BUTTON_PLAY
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define AST_PAUSE BUTTON_PLAY #define AST_PAUSE BUTTON_PLAY
#define AST_QUIT BUTTON_POWER #define AST_QUIT BUTTON_POWER
#define AST_THRUST BUTTON_NEXT #define AST_THRUST BUTTON_NEXT
@ -372,14 +354,14 @@
#define AST_RIGHT BUTTON_VOL_DOWN #define AST_RIGHT BUTTON_VOL_DOWN
#define AST_FIRE BUTTON_VOL_UP #define AST_FIRE BUTTON_VOL_UP
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define AST_PAUSE BUTTON_PLAY #define AST_PAUSE BUTTON_PREV
#define AST_QUIT BUTTON_POWER #define AST_QUIT BUTTON_POWER
#define AST_THRUST BUTTON_NEXT #define AST_THRUST BUTTON_PLAY
#define AST_HYPERSPACE BUTTON_PREV #define AST_HYPERSPACE BUTTON_MENU
#define AST_LEFT BUTTON_HOME #define AST_LEFT BUTTON_SCROLL_BACK
#define AST_RIGHT BUTTON_VOL_DOWN #define AST_RIGHT BUTTON_SCROLL_FWD
#define AST_FIRE BUTTON_VOL_UP #define AST_FIRE BUTTON_BACK
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -588,23 +588,7 @@
#define STAR_LEVEL_DOWN_NAME "PLAY + PREV" #define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" #define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define STAR_QUIT BUTTON_POWER
#define STAR_LEFT BUTTON_PREV
#define STAR_RIGHT BUTTON_NEXT
#define STAR_UP BUTTON_HOME
#define STAR_DOWN BUTTON_OPTION
#define STAR_TOGGLE_CONTROL BUTTON_PLAY
#define STAR_LEVEL_UP (BUTTON_PLAY | BUTTON_NEXT)
#define STAR_LEVEL_DOWN (BUTTON_PLAY | BUTTON_PREV)
#define STAR_LEVEL_REPEAT (BUTTON_PLAY | BUTTON_OPTION)
#define STAR_TOGGLE_CONTROL_NAME "PLAY"
#define STAR_QUIT_NAME "POWER"
#define STAR_LEVEL_UP_NAME "PLAY + NEXT"
#define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define STAR_QUIT BUTTON_POWER #define STAR_QUIT BUTTON_POWER
#define STAR_LEFT BUTTON_PREV #define STAR_LEFT BUTTON_PREV
#define STAR_RIGHT BUTTON_NEXT #define STAR_RIGHT BUTTON_NEXT
@ -636,7 +620,7 @@
#define STAR_LEVEL_DOWN_NAME "PLAY + PREV" #define STAR_LEVEL_DOWN_NAME "PLAY + PREV"
#define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION" #define STAR_LEVEL_REPEAT_NAME "PLAY + OPTION"
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define STAR_QUIT BUTTON_POWER #define STAR_QUIT BUTTON_POWER
#define STAR_LEFT BUTTON_HOME #define STAR_LEFT BUTTON_HOME
#define STAR_RIGHT BUTTON_VOL_DOWN #define STAR_RIGHT BUTTON_VOL_DOWN
@ -652,21 +636,21 @@
#define STAR_LEVEL_DOWN_NAME "POWER + VOL-" #define STAR_LEVEL_DOWN_NAME "POWER + VOL-"
#define STAR_LEVEL_REPEAT_NAME "POWER + HOME" #define STAR_LEVEL_REPEAT_NAME "POWER + HOME"
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define STAR_QUIT BUTTON_POWER #define STAR_QUIT BUTTON_POWER
#define STAR_LEFT BUTTON_HOME #define STAR_LEFT BUTTON_SCROLL_BACK
#define STAR_RIGHT BUTTON_VOL_DOWN #define STAR_RIGHT BUTTON_SCROLL_FWD
#define STAR_UP BUTTON_PREV #define STAR_UP BUTTON_PREV
#define STAR_DOWN BUTTON_NEXT #define STAR_DOWN BUTTON_NEXT
#define STAR_TOGGLE_CONTROL BUTTON_PLAY #define STAR_TOGGLE_CONTROL BUTTON_PLAY
#define STAR_LEVEL_UP (BUTTON_POWER | BUTTON_VOL_UP) #define STAR_LEVEL_UP BUTTON_VOL_UP
#define STAR_LEVEL_DOWN (BUTTON_POWER | BUTTON_VOL_DOWN) #define STAR_LEVEL_DOWN BUTTON_VOL_DOWN
#define STAR_LEVEL_REPEAT (BUTTON_POWER | BUTTON_HOME) #define STAR_LEVEL_REPEAT BUTTON_BACK
#define STAR_TOGGLE_CONTROL_NAME "PLAY" #define STAR_TOGGLE_CONTROL_NAME "PLAY"
#define STAR_QUIT_NAME "POWER" #define STAR_QUIT_NAME "POWER"
#define STAR_LEVEL_UP_NAME "POWER + VOL+" #define STAR_LEVEL_UP_NAME "VOL UP"
#define STAR_LEVEL_DOWN_NAME "POWER + VOL-" #define STAR_LEVEL_DOWN_NAME "VOL DN"
#define STAR_LEVEL_REPEAT_NAME "POWER + HOME" #define STAR_LEVEL_REPEAT_NAME "BACK"
#else #else
#error No keymap defined! #error No keymap defined!
@ -1035,8 +1019,8 @@ static void star_display_board_info(int current_level)
label_pos_y, "C:"); label_pos_y, "C:");
rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ? rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ?
BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH, STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH,
tile_pos_y, TILE_WIDTH, TILE_HEIGHT); tile_pos_y, TILE_WIDTH, TILE_HEIGHT);
@ -1082,7 +1066,7 @@ static int star_load_level(int current_level)
STAR_OFFSET_X + x * TILE_WIDTH, \ STAR_OFFSET_X + x * TILE_WIDTH, \
STAR_OFFSET_Y + y * TILE_HEIGHT, \ STAR_OFFSET_Y + y * TILE_HEIGHT, \
TILE_WIDTH, TILE_HEIGHT); TILE_WIDTH, TILE_HEIGHT);
case STAR_VOID: case STAR_VOID:
DRAW_TILE( SPACE ); DRAW_TILE( SPACE );
break; break;
@ -1128,12 +1112,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y,
for (i = 1 ; i <= TILE_WIDTH ; i++) for (i = 1 ; i <= TILE_WIDTH ; i++)
{ {
STAR_SLEEP STAR_SLEEP
rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
start_x, start_y, TILE_WIDTH, TILE_HEIGHT); start_x, start_y, TILE_WIDTH, TILE_HEIGHT);
rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT); start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT);
rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0), rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0),
@ -1145,12 +1129,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y,
for (i = 1 ; i <= TILE_HEIGHT ; i++) for (i = 1 ; i <= TILE_HEIGHT ; i++)
{ {
STAR_SLEEP STAR_SLEEP
rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
start_x, start_y, TILE_WIDTH, TILE_HEIGHT); start_x, start_y, TILE_WIDTH, TILE_HEIGHT);
rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT,
STRIDE( SCREEN_MAIN, STRIDE( SCREEN_MAIN,
BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT); start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT);
rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0), rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0),
@ -1169,7 +1153,7 @@ static int star_run_game(int current_level)
int key; int key;
#if defined(STAR_LEVEL_DOWN_PRE) || \ #if defined(STAR_LEVEL_DOWN_PRE) || \
defined(STAR_LEVEL_UP_PRE) || \ defined(STAR_LEVEL_UP_PRE) || \
defined(STAR_TOGGLE_CONTROL_PRE) defined(STAR_TOGGLE_CONTROL_PRE)
int lastkey = BUTTON_NONE; int lastkey = BUTTON_NONE;
#endif #endif
@ -1261,7 +1245,7 @@ static int star_run_game(int current_level)
} }
#if defined(STAR_LEVEL_DOWN_PRE) || \ #if defined(STAR_LEVEL_DOWN_PRE) || \
defined(STAR_LEVEL_UP_PRE) || \ defined(STAR_LEVEL_UP_PRE) || \
defined(STAR_TOGGLE_CONTROL_PRE) defined(STAR_TOGGLE_CONTROL_PRE)
if (key != BUTTON_NONE) if (key != BUTTON_NONE)
lastkey = key; lastkey = key;
#endif #endif

View file

@ -277,23 +277,7 @@
#define STOPWATCH_SCROLL_UP BUTTON_UP #define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define STOPWATCH_QUIT BUTTON_POWER
#define STOPWATCH_START_STOP BUTTON_NEXT
#define STOPWATCH_RESET_TIMER BUTTON_PREV
#define STOPWATCH_LAP_TIMER BUTTON_PLAY
#define STOPWATCH_SCROLL_UP BUTTON_HOME
#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define STOPWATCH_QUIT BUTTON_POWER
#define STOPWATCH_START_STOP BUTTON_NEXT
#define STOPWATCH_RESET_TIMER BUTTON_PREV
#define STOPWATCH_LAP_TIMER BUTTON_PLAY
#define STOPWATCH_SCROLL_UP BUTTON_HOME
#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define STOPWATCH_QUIT BUTTON_POWER #define STOPWATCH_QUIT BUTTON_POWER
#define STOPWATCH_START_STOP BUTTON_NEXT #define STOPWATCH_START_STOP BUTTON_NEXT
#define STOPWATCH_RESET_TIMER BUTTON_PREV #define STOPWATCH_RESET_TIMER BUTTON_PREV
@ -309,7 +293,7 @@
#define STOPWATCH_SCROLL_UP BUTTON_HOME #define STOPWATCH_SCROLL_UP BUTTON_HOME
#define STOPWATCH_SCROLL_DOWN BUTTON_OPTION #define STOPWATCH_SCROLL_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define STOPWATCH_QUIT BUTTON_POWER #define STOPWATCH_QUIT BUTTON_POWER
#define STOPWATCH_START_STOP BUTTON_NEXT #define STOPWATCH_START_STOP BUTTON_NEXT
#define STOPWATCH_RESET_TIMER BUTTON_PREV #define STOPWATCH_RESET_TIMER BUTTON_PREV
@ -317,13 +301,13 @@
#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP #define STOPWATCH_SCROLL_UP BUTTON_VOL_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN #define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define STOPWATCH_QUIT BUTTON_POWER #define STOPWATCH_QUIT BUTTON_POWER
#define STOPWATCH_START_STOP BUTTON_NEXT #define STOPWATCH_START_STOP BUTTON_PLAY
#define STOPWATCH_RESET_TIMER BUTTON_PREV #define STOPWATCH_RESET_TIMER BUTTON_BACK
#define STOPWATCH_LAP_TIMER BUTTON_PLAY #define STOPWATCH_LAP_TIMER BUTTON_MENU
#define STOPWATCH_SCROLL_UP BUTTON_VOL_UP #define STOPWATCH_SCROLL_UP BUTTON_SCROLL_FWD
#define STOPWATCH_SCROLL_DOWN BUTTON_VOL_DOWN #define STOPWATCH_SCROLL_DOWN BUTTON_SCROLL_BACK
#else #else
#error No keymap defined! #error No keymap defined!
@ -405,24 +389,24 @@ static void ticks_to_string(int ticks,int lap,int buflen, char * buf)
} }
} }
/* /*
* Load saved stopwatch state, if exists. * Load saved stopwatch state, if exists.
*/ */
static void load_stopwatch(void) static void load_stopwatch(void)
{ {
int fd; int fd;
fd = rb->open(STOPWATCH_FILE, O_RDONLY); fd = rb->open(STOPWATCH_FILE, O_RDONLY);
if (fd < 0) if (fd < 0)
{ {
return; return;
} }
/* variable stopwatch isn't saved/loaded, because it is only used /* variable stopwatch isn't saved/loaded, because it is only used
* temporarily in main loop * temporarily in main loop
*/ */
rb->read(fd, &start_at, sizeof(start_at)); rb->read(fd, &start_at, sizeof(start_at));
rb->read(fd, &prev_total, sizeof(prev_total)); rb->read(fd, &prev_total, sizeof(prev_total));
rb->read(fd, &counting, sizeof(counting)); rb->read(fd, &counting, sizeof(counting));
@ -430,7 +414,7 @@ static void load_stopwatch(void)
rb->read(fd, &lap_scroll, sizeof(lap_scroll)); rb->read(fd, &lap_scroll, sizeof(lap_scroll));
rb->read(fd, &lap_start, sizeof(lap_start)); rb->read(fd, &lap_start, sizeof(lap_start));
rb->read(fd, lap_times, sizeof(lap_times)); rb->read(fd, lap_times, sizeof(lap_times));
if (counting && start_at > *rb->current_tick) if (counting && start_at > *rb->current_tick)
{ {
/* Stopwatch started in the future? Unlikely; probably started on a /* Stopwatch started in the future? Unlikely; probably started on a
@ -441,28 +425,28 @@ static void load_stopwatch(void)
start_at = 0; start_at = 0;
counting = false; counting = false;
} }
rb->close(fd); rb->close(fd);
} }
/* /*
* Save stopwatch state. * Save stopwatch state.
*/ */
static void save_stopwatch(void) static void save_stopwatch(void)
{ {
int fd; int fd;
fd = rb->open(STOPWATCH_FILE, O_CREAT|O_WRONLY|O_TRUNC, 0666); fd = rb->open(STOPWATCH_FILE, O_CREAT|O_WRONLY|O_TRUNC, 0666);
if (fd < 0) if (fd < 0)
{ {
return; return;
} }
/* variable stopwatch isn't saved/loaded, because it is only used /* variable stopwatch isn't saved/loaded, because it is only used
* temporarily in main loop * temporarily in main loop
*/ */
rb->write(fd, &start_at, sizeof(start_at)); rb->write(fd, &start_at, sizeof(start_at));
rb->write(fd, &prev_total, sizeof(prev_total)); rb->write(fd, &prev_total, sizeof(prev_total));
rb->write(fd, &counting, sizeof(counting)); rb->write(fd, &counting, sizeof(counting));
@ -470,7 +454,7 @@ static void save_stopwatch(void)
rb->write(fd, &lap_scroll, sizeof(lap_scroll)); rb->write(fd, &lap_scroll, sizeof(lap_scroll));
rb->write(fd, &lap_start, sizeof(lap_start)); rb->write(fd, &lap_start, sizeof(lap_start));
rb->write(fd, lap_times, sizeof(lap_times)); rb->write(fd, lap_times, sizeof(lap_times));
rb->close(fd); rb->close(fd);
} }
@ -491,9 +475,9 @@ enum plugin_status plugin_start(const void* parameter)
lines = (LCD_HEIGHT / h) - (LAP_Y); lines = (LCD_HEIGHT / h) - (LAP_Y);
load_stopwatch(); load_stopwatch();
rb->lcd_clear_display(); rb->lcd_clear_display();
while (!done) while (!done)
{ {
if (counting) if (counting)

View file

@ -404,21 +404,7 @@
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_PWRALT) #define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_PWRALT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
#define SUDOKU_BUTTON_UP BUTTON_HOME
#define SUDOKU_BUTTON_DOWN BUTTON_OPTION
#define SUDOKU_BUTTON_LEFT BUTTON_PREV
#define SUDOKU_BUTTON_RIGHT BUTTON_NEXT
#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN
#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP
#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_PLAY
#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
#define SUDOKU_BUTTON_UP BUTTON_HOME #define SUDOKU_BUTTON_UP BUTTON_HOME
@ -446,7 +432,7 @@
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER) #define SUDOKU_BUTTON_POSSIBLE (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
#define SUDOKU_BUTTON_UP BUTTON_PREV #define SUDOKU_BUTTON_UP BUTTON_PREV
@ -460,19 +446,18 @@
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) #define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_POWER | BUTTON_HOME) #define SUDOKU_BUTTON_POSSIBLE (BUTTON_POWER | BUTTON_HOME)
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER #define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER
#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) #define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT)
#define SUDOKU_BUTTON_UP BUTTON_PREV #define SUDOKU_BUTTON_UP BUTTON_PREV
#define SUDOKU_BUTTON_DOWN BUTTON_NEXT #define SUDOKU_BUTTON_DOWN BUTTON_NEXT
#define SUDOKU_BUTTON_LEFT BUTTON_HOME #define SUDOKU_BUTTON_LEFT BUTTON_SCROLL_BACK
#define SUDOKU_BUTTON_RIGHT BUTTON_VOL_DOWN #define SUDOKU_BUTTON_RIGHT BUTTON_SCROLL_FWD
#define SUDOKU_BUTTON_TOGGLEBACK (BUTTON_POWER | BUTTON_VOL_DOWN) #define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN
#define SUDOKU_BUTTON_TOGGLE (BUTTON_POWER | BUTTON_VOL_UP) #define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP
#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_PLAY #define SUDOKU_BUTTON_MENU_PRE BUTTON_MENU
#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER #define SUDOKU_BUTTON_MENU (BUTTON_MENU | BUTTON_REL)
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) #define SUDOKU_BUTTON_POSSIBLE BUTTON_BACK
#define SUDOKU_BUTTON_POSSIBLE (BUTTON_POWER | BUTTON_HOME)
#else #else
#error No keymap defined! #error No keymap defined!
@ -512,7 +497,7 @@ struct sudoku_state_t {
char savedboard[9][9]; /* Cached copy of saved state */ char savedboard[9][9]; /* Cached copy of saved state */
int x,y; /* Cursor position */ int x,y; /* Cursor position */
int editmode; /* We are editing the start board */ int editmode; /* We are editing the start board */
#ifdef SUDOKU_BUTTON_POSSIBLE #ifdef SUDOKU_BUTTON_POSSIBLE
short possiblevals[9][9]; /* possible values a cell could be, user sets them */ short possiblevals[9][9]; /* possible values a cell could be, user sets them */
short savedpossible[9][9]; /* cached copy of possible cell values */ short savedpossible[9][9]; /* cached copy of possible cell values */
#endif #endif

View file

@ -545,6 +545,18 @@
#define TV_LINE_DOWN BUTTON_OPTION #define TV_LINE_DOWN BUTTON_OPTION
#define TV_BOOKMARK (BUTTON_OPTION | BUTTON_PLAY) #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 */ /* Xuelin 770/770c keys */
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD
#define TV_QUIT BUTTON_POWER #define TV_QUIT BUTTON_POWER

View file

@ -397,18 +397,7 @@
#define LABEL_MENU "PLAY" #define LABEL_MENU "PLAY"
#define LABEL_VOLUME "VOL UP/DN" #define LABEL_VOLUME "VOL UP/DN"
#elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) #elif (CONFIG_KEYPAD == XDUOO_X3II_PAD) || (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define VUMETER_QUIT BUTTON_POWER
#define VUMETER_HELP BUTTON_HOME
#define VUMETER_MENU BUTTON_PLAY
#define VUMETER_UP BUTTON_VOL_UP
#define VUMETER_DOWN BUTTON_VOL_DOWN
#define LABEL_HELP "HOME"
#define LABEL_QUIT "POWER"
#define LABEL_MENU "PLAY"
#define LABEL_VOLUME "VOL UP/DN"
#elif (CONFIG_KEYPAD == XDUOO_X20_PAD)
#define VUMETER_QUIT BUTTON_POWER #define VUMETER_QUIT BUTTON_POWER
#define VUMETER_HELP BUTTON_HOME #define VUMETER_HELP BUTTON_HOME
#define VUMETER_MENU BUTTON_PLAY #define VUMETER_MENU BUTTON_PLAY
@ -430,7 +419,7 @@
#define LABEL_MENU "PLAY" #define LABEL_MENU "PLAY"
#define LABEL_VOLUME "VOL UP/DN" #define LABEL_VOLUME "VOL UP/DN"
#elif (CONFIG_KEYPAD == IHIFI_770_PAD) #elif (CONFIG_KEYPAD == IHIFI_770_PAD) || (CONFIG_KEYPAD == IHIFI_800_PAD)
#define VUMETER_QUIT BUTTON_POWER #define VUMETER_QUIT BUTTON_POWER
#define VUMETER_HELP BUTTON_HOME #define VUMETER_HELP BUTTON_HOME
#define VUMETER_MENU BUTTON_PLAY #define VUMETER_MENU BUTTON_PLAY
@ -441,15 +430,15 @@
#define LABEL_MENU "PLAY" #define LABEL_MENU "PLAY"
#define LABEL_VOLUME "VOL UP/DN" #define LABEL_VOLUME "VOL UP/DN"
#elif (CONFIG_KEYPAD == IHIFI_800_PAD) #elif (CONFIG_KEYPAD == EROSQ_PAD)
#define VUMETER_QUIT BUTTON_POWER #define VUMETER_QUIT BUTTON_POWER
#define VUMETER_HELP BUTTON_HOME #define VUMETER_HELP BUTTON_BACK
#define VUMETER_MENU BUTTON_PLAY #define VUMETER_MENU BUTTON_MENU
#define VUMETER_UP BUTTON_VOL_UP #define VUMETER_UP BUTTON_VOL_UP
#define VUMETER_DOWN BUTTON_VOL_DOWN #define VUMETER_DOWN BUTTON_VOL_DOWN
#define LABEL_HELP "HOME" #define LABEL_HELP "BACK"
#define LABEL_QUIT "POWER" #define LABEL_QUIT "POWER"
#define LABEL_MENU "PLAY" #define LABEL_MENU "MENU"
#define LABEL_VOLUME "VOL UP/DN" #define LABEL_VOLUME "VOL UP/DN"
#else #else
@ -551,7 +540,7 @@ struct saved_settings {
bool analog_minimeters; bool analog_minimeters;
bool digital_minimeters; bool digital_minimeters;
int analog_decay; int analog_decay;
int digital_decay; int digital_decay;
} vumeter_settings; } vumeter_settings;
static void reset_settings(void) { static void reset_settings(void) {
@ -561,7 +550,7 @@ static void reset_settings(void) {
vumeter_settings.analog_minimeters=true; vumeter_settings.analog_minimeters=true;
vumeter_settings.digital_minimeters=false; vumeter_settings.digital_minimeters=false;
vumeter_settings.analog_decay=3; vumeter_settings.analog_decay=3;
vumeter_settings.digital_decay=0; vumeter_settings.digital_decay=0;
} }
static void calc_scales(void) static void calc_scales(void)
@ -639,11 +628,11 @@ static bool vu_meter_menu(void)
int selection; int selection;
bool menu_quit = false; bool menu_quit = false;
bool exit = false; bool exit = false;
MENUITEM_STRINGLIST(menu,"VU Meter Menu",NULL,"Meter Type","Scale", MENUITEM_STRINGLIST(menu,"VU Meter Menu",NULL,"Meter Type","Scale",
"Minimeters","Decay Speed","Playback Control", "Minimeters","Decay Speed","Playback Control",
"Quit"); "Quit");
static const struct opt_items meter_type_option[2] = { static const struct opt_items meter_type_option[2] = {
{ "Analog", -1 }, { "Analog", -1 },
{ "Digital", -1 }, { "Digital", -1 },
@ -666,7 +655,7 @@ static bool vu_meter_menu(void)
rb->set_option("Meter Type", &vumeter_settings.meter_type, INT, rb->set_option("Meter Type", &vumeter_settings.meter_type, INT,
meter_type_option, 2, NULL); meter_type_option, 2, NULL);
break; break;
case 1: case 1:
if(vumeter_settings.meter_type==ANALOG) if(vumeter_settings.meter_type==ANALOG)
{ {
@ -679,7 +668,7 @@ static bool vu_meter_menu(void)
"dBfs", -1, "Linear", -1, NULL); "dBfs", -1, "Linear", -1, NULL);
} }
break; break;
case 2: case 2:
if(vumeter_settings.meter_type==ANALOG) if(vumeter_settings.meter_type==ANALOG)
{ {
@ -692,16 +681,16 @@ static bool vu_meter_menu(void)
&vumeter_settings.digital_minimeters); &vumeter_settings.digital_minimeters);
} }
break; break;
case 3: case 3:
if(vumeter_settings.meter_type==ANALOG) if(vumeter_settings.meter_type==ANALOG)
{ {
rb->set_option("Decay Speed", &vumeter_settings.analog_decay, INT, rb->set_option("Decay Speed", &vumeter_settings.analog_decay, INT,
decay_speed_option, 7, NULL); decay_speed_option, 7, NULL);
} }
else else
{ {
rb->set_option("Decay Speed", &vumeter_settings.digital_decay, INT, rb->set_option("Decay Speed", &vumeter_settings.digital_decay, INT,
decay_speed_option, 7, NULL); decay_speed_option, 7, NULL);
} }
break; break;
@ -779,7 +768,7 @@ static void draw_digital_minimeters(void) {
if(8<(num_right_leds)) if(8<(num_right_leds))
rb->lcd_mono_bitmap(sound_max_level, 46, half_height+8, 3, 8); rb->lcd_mono_bitmap(sound_max_level, 46, half_height+8, 3, 8);
rb->lcd_set_drawmode(DRMODE_SOLID); rb->lcd_set_drawmode(DRMODE_SOLID);
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_set_foreground(screen_foreground); rb->lcd_set_foreground(screen_foreground);
#endif #endif
@ -880,10 +869,10 @@ static void digital_meter(void) {
rb->lcd_set_foreground(LCD_RGBPACK(255, 255 - 23 * i, 0)); rb->lcd_set_foreground(LCD_RGBPACK(255, 255 - 23 * i, 0));
#endif #endif
rb->lcd_fillrect((digital_lead + (i*digital_block_width)), rb->lcd_fillrect((digital_lead + (i*digital_block_width)),
(half_height + 20), digital_block_width - digital_block_gap, (half_height + 20), digital_block_width - digital_block_gap,
digital_block_height); digital_block_height);
} }
#ifdef HAVE_LCD_COLOR #ifdef HAVE_LCD_COLOR
rb->lcd_set_foreground(screen_foreground); rb->lcd_set_foreground(screen_foreground);
#endif #endif

View file

@ -362,16 +362,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER #define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET (BUTTON_HOME | BUTTON_PWRALT) #define BTN_STOPRESET (BUTTON_HOME | BUTTON_PWRALT)
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define BTN_DIR_UP BUTTON_HOME
#define BTN_DIR_DOWN BUTTON_OPTION
#define BTN_DIR_LEFT BUTTON_PREV
#define BTN_DIR_RIGHT BUTTON_NEXT
#define BTN_STARTPAUSE BUTTON_PLAY
#define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define BTN_DIR_UP BUTTON_HOME #define BTN_DIR_UP BUTTON_HOME
#define BTN_DIR_DOWN BUTTON_OPTION #define BTN_DIR_DOWN BUTTON_OPTION
#define BTN_DIR_LEFT BUTTON_PREV #define BTN_DIR_LEFT BUTTON_PREV
@ -389,7 +380,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER #define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER) #define BTN_STOPRESET (BUTTON_HOME | BUTTON_POWER)
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define BTN_DIR_UP BUTTON_PREV #define BTN_DIR_UP BUTTON_PREV
#define BTN_DIR_DOWN BUTTON_NEXT #define BTN_DIR_DOWN BUTTON_NEXT
#define BTN_DIR_LEFT BUTTON_HOME #define BTN_DIR_LEFT BUTTON_HOME
@ -398,14 +389,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_POWER #define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET BUTTON_VOL_UP #define BTN_STOPRESET BUTTON_VOL_UP
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define BTN_DIR_UP BUTTON_PREV #define BTN_DIR_UP BUTTON_PREV
#define BTN_DIR_DOWN BUTTON_NEXT #define BTN_DIR_DOWN BUTTON_NEXT
#define BTN_DIR_LEFT BUTTON_HOME #define BTN_DIR_LEFT BUTTON_SCROLL_BACK
#define BTN_DIR_RIGHT BUTTON_VOL_DOWN #define BTN_DIR_RIGHT BUTTON_SCROLL_FWD
#define BTN_STARTPAUSE BUTTON_PLAY #define BTN_STARTPAUSE BUTTON_PLAY
#define BTN_QUIT BUTTON_POWER #define BTN_QUIT BUTTON_POWER
#define BTN_STOPRESET BUTTON_VOL_UP #define BTN_STOPRESET BUTTON_BACK
#else #else
#error No keymap defined! #error No keymap defined!

View file

@ -315,25 +315,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN #define DOWN BUTTON_DOWN
#define PAUSE BUTTON_SELECT #define PAUSE BUTTON_SELECT
#elif CONFIG_KEYPAD == XDUOO_X3_PAD #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV
#define RIGHT BUTTON_NEXT
#define UP BUTTON_HOME
#define DOWN BUTTON_OPTION
#define PAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV
#define RIGHT BUTTON_NEXT
#define UP BUTTON_HOME
#define DOWN BUTTON_OPTION
#define PAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_PREV #define LEFT BUTTON_PREV
@ -351,7 +333,7 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_OPTION #define DOWN BUTTON_OPTION
#define PAUSE BUTTON_PLAY #define PAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_HOME
@ -360,20 +342,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_NEXT #define DOWN BUTTON_NEXT
#define PAUSE BUTTON_PLAY #define PAUSE BUTTON_PLAY
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define QUIT BUTTON_POWER #define QUIT BUTTON_POWER
#define LEFT BUTTON_HOME #define LEFT BUTTON_SCROLL_BACK
#define RIGHT BUTTON_VOL_DOWN #define RIGHT BUTTON_SCROLL_FWD
#define UP BUTTON_PREV #define UP BUTTON_PREV
#define DOWN BUTTON_NEXT #define DOWN BUTTON_NEXT
#define PAUSE BUTTON_PLAY #define PAUSE BUTTON_PLAY
#else #elif defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif
#ifdef HAVE_TOUCHSCREEN
#ifndef QUIT #ifndef QUIT
#define QUIT BUTTON_TOPLEFT #define QUIT BUTTON_TOPLEFT
#endif #endif
@ -392,6 +370,8 @@ CONFIG_KEYPAD == MROBE500_PAD
#ifndef PAUSE #ifndef PAUSE
#define PAUSE BUTTON_CENTER #define PAUSE BUTTON_CENTER
#endif #endif
#else
#error No keymap defined!
#endif #endif
#define MOVE_NO 0 /* player movement */ #define MOVE_NO 0 /* player movement */
@ -734,7 +714,7 @@ static void refresh_board (void)
#else #else
x = BOARD_X + CUBE_SIZE * BOARD_W - 40; x = BOARD_X + CUBE_SIZE * BOARD_W - 40;
#endif #endif
rb->lcd_putsxyf (x, BOARD_Y + CUBE_SIZE * BOARD_H - 8, rb->lcd_putsxyf (x, BOARD_Y + CUBE_SIZE * BOARD_H - 8,
(player.lives != 1) ? "%d Lives" : "%d Life", player.lives); (player.lives != 1) ? "%d Lives" : "%d Life", player.lives);
#if LCD_DEPTH>=2 #if LCD_DEPTH>=2
@ -1160,7 +1140,7 @@ static int xobox_menu_cb(int action,
static int xobox_menu(bool ingame) static int xobox_menu(bool ingame)
{ {
rb->button_clear_queue(); rb->button_clear_queue();
int selection = 0; int selection = 0;
MENUITEM_STRINGLIST(main_menu, "Xobox Menu", xobox_menu_cb, MENUITEM_STRINGLIST(main_menu, "Xobox Menu", xobox_menu_cb,
"Resume Game", "Start New Game", "Resume Game", "Start New Game",

View file

@ -266,15 +266,7 @@
#define ZX_UP BUTTON_HOME #define ZX_UP BUTTON_HOME
#define ZX_DOWN BUTTON_OPTION #define ZX_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define ZX_SELECT BUTTON_PLAY
#define ZX_MENU BUTTON_POWER
#define ZX_LEFT BUTTON_PREV
#define ZX_RIGHT BUTTON_NEXT
#define ZX_UP BUTTON_HOME
#define ZX_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define ZX_SELECT BUTTON_PLAY #define ZX_SELECT BUTTON_PLAY
#define ZX_MENU BUTTON_POWER #define ZX_MENU BUTTON_POWER
#define ZX_LEFT BUTTON_PREV #define ZX_LEFT BUTTON_PREV
@ -290,7 +282,7 @@
#define ZX_UP BUTTON_HOME #define ZX_UP BUTTON_HOME
#define ZX_DOWN BUTTON_OPTION #define ZX_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define ZX_SELECT BUTTON_PLAY #define ZX_SELECT BUTTON_PLAY
#define ZX_MENU BUTTON_POWER #define ZX_MENU BUTTON_POWER
#define ZX_LEFT BUTTON_HOME #define ZX_LEFT BUTTON_HOME
@ -298,11 +290,11 @@
#define ZX_UP BUTTON_PREV #define ZX_UP BUTTON_PREV
#define ZX_DOWN BUTTON_NEXT #define ZX_DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define ZX_SELECT BUTTON_PLAY #define ZX_SELECT BUTTON_PLAY
#define ZX_MENU BUTTON_POWER #define ZX_MENU BUTTON_MENU
#define ZX_LEFT BUTTON_HOME #define ZX_LEFT BUTTON_SCROLL_BACK
#define ZX_RIGHT BUTTON_VOL_DOWN #define ZX_RIGHT BUTTON_SCROLL_FWD
#define ZX_UP BUTTON_PREV #define ZX_UP BUTTON_PREV
#define ZX_DOWN BUTTON_NEXT #define ZX_DOWN BUTTON_NEXT

View file

@ -36,7 +36,7 @@
/* TODO: Check keyboard mappings */ /* TODO: Check keyboard mappings */
#define KBD_SELECT BUTTON_SELECT #define KBD_SELECT BUTTON_SELECT
#define KBD_ABORT BUTTON_PLAY #define KBD_ABORT BUTTON_PLAY
#define KBD_LEFT BUTTON_LEFT #define KBD_LEFT BUTTON_LEFT
#define KBD_RIGHT BUTTON_RIGHT #define KBD_RIGHT BUTTON_RIGHT
@ -257,16 +257,7 @@
#define KBD_UP BUTTON_HOME #define KBD_UP BUTTON_HOME
#define KBD_DOWN BUTTON_OPTION #define KBD_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X3II_PAD #elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
#define KBD_SELECT BUTTON_PLAY
#define KBD_ABORT BUTTON_POWER
#define KBD_LEFT BUTTON_PREV
#define KBD_RIGHT BUTTON_NEXT
#define KBD_UP BUTTON_HOME
#define KBD_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == XDUOO_X20_PAD
#define KBD_SELECT BUTTON_PLAY #define KBD_SELECT BUTTON_PLAY
#define KBD_ABORT BUTTON_POWER #define KBD_ABORT BUTTON_POWER
@ -284,7 +275,7 @@
#define KBD_UP BUTTON_HOME #define KBD_UP BUTTON_HOME
#define KBD_DOWN BUTTON_OPTION #define KBD_DOWN BUTTON_OPTION
#elif CONFIG_KEYPAD == IHIFI_770_PAD #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
#define KBD_SELECT BUTTON_PLAY #define KBD_SELECT BUTTON_PLAY
#define KBD_ABORT BUTTON_POWER #define KBD_ABORT BUTTON_POWER
@ -293,12 +284,12 @@
#define KBD_UP BUTTON_PREV #define KBD_UP BUTTON_PREV
#define KBD_DOWN BUTTON_NEXT #define KBD_DOWN BUTTON_NEXT
#elif CONFIG_KEYPAD == IHIFI_800_PAD #elif CONFIG_KEYPAD == EROSQ_PAD
#define KBD_SELECT BUTTON_PLAY #define KBD_SELECT BUTTON_PLAY
#define KBD_ABORT BUTTON_POWER #define KBD_ABORT BUTTON_BACK
#define KBD_LEFT BUTTON_HOME #define KBD_LEFT BUTTON_SCROLL_BACK
#define KBD_RIGHT BUTTON_VOL_DOWN #define KBD_RIGHT BUTTON_SCROLL_FWD
#define KBD_UP BUTTON_PREV #define KBD_UP BUTTON_PREV
#define KBD_DOWN BUTTON_NEXT #define KBD_DOWN BUTTON_NEXT
@ -581,7 +572,7 @@ int zx_kbd_input(char* text/*, int buflen*/)
} }
cur_blink = !cur_blink; cur_blink = !cur_blink;
/* highlight the key that has focus */ /* highlight the key that has focus */
FOR_NB_SCREENS(l) FOR_NB_SCREENS(l)
{ {
@ -591,7 +582,7 @@ int zx_kbd_input(char* text/*, int buflen*/)
param[l].font_w, param[l].font_h); param[l].font_w, param[l].font_h);
rb->screens[l]->set_drawmode(DRMODE_SOLID); rb->screens[l]->set_drawmode(DRMODE_SOLID);
} }
FOR_NB_SCREENS(l) FOR_NB_SCREENS(l)
rb->screens[l]->update(); rb->screens[l]->update();
@ -687,7 +678,7 @@ int zx_kbd_input(char* text/*, int buflen*/)
char_screen = 0; char_screen = 0;
/* inserts the selected char */ /* inserts the selected char */
/* find input char */ /* find input char */
k = (param[char_screen].page*param[char_screen].lines + k = (param[char_screen].page*param[char_screen].lines +
param[char_screen].y)*param[char_screen].max_chars + param[char_screen].y)*param[char_screen].max_chars +

View file

@ -76,7 +76,7 @@ show_logo.c
mpio_hd200_hd300.c mpio_hd200_hd300.c
#elif defined(SONY_NWZ_LINUX) #elif defined(SONY_NWZ_LINUX)
nwz_linux.c nwz_linux.c
#elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) #elif defined(HIBY_LINUX) || defined(FIIO_M3K)
rocker_linux.c rocker_linux.c
#elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \ #elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \
|| defined(MA9) || defined(MA9C) || defined(MA8) || defined(MA8C) \ || defined(MA9) || defined(MA9C) || defined(MA8) || defined(MA8C) \

View file

@ -10,6 +10,7 @@
* Copyright (C) 2016 by Amaury Pouly * Copyright (C) 2016 by Amaury Pouly
* 2018 by Marcin Bukat * 2018 by Marcin Bukat
* 2018 by Roman Stolyarov * 2018 by Roman Stolyarov
* 2020 by Solomon Peachy
* *
* Based on Rockbox iriver bootloader by Linus Nielsen Feltzing * Based on Rockbox iriver bootloader by Linus Nielsen Feltzing
* and the ipodlinux bootloader by Daniel Palffy and Bernard Leach * and the ipodlinux bootloader by Daniel Palffy and Bernard Leach
@ -60,6 +61,9 @@
#define RBFILE "rockbox.x3ii" #define RBFILE "rockbox.x3ii"
#define ICON_NAME bm_hibyicon #define ICON_NAME bm_hibyicon
#define OF_NAME "HIBY PLAYER" #define OF_NAME "HIBY PLAYER"
#define BUTTON_UP BUTTON_OPTION
#define BUTTON_DOWN BUTTON_HOME
#define BUTTON_SELECT BUTTON_PLAY
#include "bitmaps/hibyicon.h" #include "bitmaps/hibyicon.h"
#elif defined(XDUOO_X20) #elif defined(XDUOO_X20)
#define ICON_WIDTH 130 #define ICON_WIDTH 130
@ -67,14 +71,30 @@
#define RBFILE "rockbox.x20" #define RBFILE "rockbox.x20"
#define ICON_NAME bm_hibyicon #define ICON_NAME bm_hibyicon
#define OF_NAME "HIBY PLAYER" #define OF_NAME "HIBY PLAYER"
#define BUTTON_UP BUTTON_OPTION
#define BUTTON_DOWN BUTTON_HOME
#define BUTTON_SELECT BUTTON_PLAY
#include "bitmaps/hibyicon.h" #include "bitmaps/hibyicon.h"
#elif defined(FIIO_M3K) #elif defined(FIIO_M3K)
#define ICON_WIDTH 130 #define ICON_WIDTH 130
#define ICON_HEIGHT 130 #define ICON_HEIGHT 130
#define RBFILE "rockbox.fiiom3k" #define RBFILE "rockbox.fiiom3k"
#define ICON_NAME bm_fiioicon #define ICON_NAME bm_fiioicon
#define BUTTON_LEFT BUTTON_PREV
#define BUTTON_RIGHT BUTTON_NEXT
#define BUTTON_SELECT BUTTON_PLAY
#define OF_NAME "FIIO PLAYER" #define OF_NAME "FIIO PLAYER"
#include "bitmaps/fiioicon.h" #include "bitmaps/fiioicon.h"
#elif defined(EROS_Q)
#define ICON_WIDTH 130
#define ICON_HEIGHT 130
#define RBFILE "rockbox.erosq"
#define ICON_NAME bm_hibyicon
#define OF_NAME "HIBY PLAYER"
#define BUTTON_UP BUTTON_SCROLL_BACK
#define BUTTON_DOWN BUTTON_SCROLL_FWD
#define BUTTON_SELECT BUTTON_PLAY
#include "bitmaps/hibyicon.h"
#else #else
#error "must define ICON_WIDTH/HEIGHT" #error "must define ICON_WIDTH/HEIGHT"
#endif #endif
@ -107,21 +127,8 @@
#error toolsicon has the wrong resolution #error toolsicon has the wrong resolution
#endif #endif
#ifndef BUTTON_LEFT /* If we started ADB, don't immediately boot into USB mode if we plug in. */
#define BUTTON_LEFT BUTTON_REW static int adb_running = 0;
#endif
#ifndef BUTTON_RIGHT
#define BUTTON_RIGHT BUTTON_FF
#endif
#ifndef BUTTON_SELECT
#define BUTTON_SELECT BUTTON_PLAY
#endif
#ifndef BUTTON_DOWN
#define BUTTON_DOWN BUTTON_NEXT
#endif
#ifndef BUTTON_UP
#define BUTTON_UP BUTTON_PREV
#endif
/* return icon y position (x is always centered) */ /* return icon y position (x is always centered) */
static int get_icon_y(void) static int get_icon_y(void)
@ -141,7 +148,6 @@ enum boot_mode
BOOT_TOOLS, BOOT_TOOLS,
BOOT_OF, BOOT_OF,
BOOT_COUNT, BOOT_COUNT,
BOOT_USB, /* special */
BOOT_STOP, /* power down/suspend */ BOOT_STOP, /* power down/suspend */
}; };
@ -199,6 +205,19 @@ static enum boot_mode load_boot_mode(enum boot_mode mode)
return mode; return mode;
} }
static void mount_storage(int enable)
{
if (enable) {
system("/bin/mkdir -p " BASE_DIR);
if (system("/bin/mount /dev/mmcblk0 " BASE_DIR))
system("/bin/mount /dev/mmcblk0p1 " BASE_DIR);
// XXX possibly invoke sys_serv -> "MOUNT:MOUNT:%s %s", blkdev, mntpoint
} else {
system("/bin/unmount " BASE_DIR);
// XXX possibly invoke sys_serv -> "MOUNT:UNMOUNT:%s %s", mntpoint
}
}
static void save_boot_mode(enum boot_mode mode) static void save_boot_mode(enum boot_mode mode)
{ {
int fd = open(BASE_DIR "/.rockbox/rb_bl_mode.txt", O_RDWR | O_CREAT | O_TRUNC); int fd = open(BASE_DIR "/.rockbox/rb_bl_mode.txt", O_RDWR | O_CREAT | O_TRUNC);
@ -221,13 +240,12 @@ static enum boot_mode get_boot_mode(void)
#endif #endif
while(true) while(true)
{ {
/* on usb detect, return to usb /* on usb detect, immediately boot with last choice */
* FIXME this is a hack, we need proper usb detection */ if(!adb_running && power_input_status() & POWER_INPUT_USB_CHARGER)
if(power_input_status() & POWER_INPUT_USB_CHARGER)
{ {
/* save last choice */ /* save last choice */
save_boot_mode(mode); save_boot_mode(mode);
return BOOT_USB; return mode;
} }
/* inactivity detection */ /* inactivity detection */
int timeout = last_activity + get_inactivity_tmo(); int timeout = last_activity + get_inactivity_tmo();
@ -318,7 +336,7 @@ void error_screen(const char *msg)
lcd_update(); lcd_update();
} }
int choice_screen(const char *title, bool center, int nr_choices, const char *choices[]) int choice_screen(const char *title, bool center, int nr_choices, const char *choices[], int nr_extra, const char *extra[])
{ {
int choice = 0; int choice = 0;
int max_len = 0; int max_len = 0;
@ -360,6 +378,14 @@ int choice_screen(const char *title, bool center, int nr_choices, const char *ch
line++; line++;
} }
lcd_set_foreground(LCD_RGBPACK(255, 201, 0));
line++;
for (int i = 0 ; i < nr_extra && line < nr_lines ; i++) {
sprintf(buf, "%s", extra[i]);
display_text_center(top_y + h * line, buf);
line++;
}
lcd_update(); lcd_update();
/* wait for a key */ /* wait for a key */
@ -370,15 +396,15 @@ int choice_screen(const char *title, bool center, int nr_choices, const char *ch
if(btn & BUTTON_REPEAT) if(btn & BUTTON_REPEAT)
btn &= ~BUTTON_REPEAT; btn &= ~BUTTON_REPEAT;
/* play -> stop loop and return mode */ /* play -> stop loop and return mode */
if(btn == BUTTON_SELECT || btn == BUTTON_LEFT) if (btn == BUTTON_SELECT)
{ {
free(buf); free(buf);
return btn == BUTTON_SELECT ? choice : -1; return btn == BUTTON_SELECT ? choice : -1;
} }
/* left/right/up/down: change mode */ /* left/right/up/down: change mode */
if(btn == BUTTON_UP) if (btn == BUTTON_UP || btn == BUTTON_LEFT)
choice = (choice + nr_choices - 1) % nr_choices; choice = (choice + nr_choices - 1) % nr_choices;
if(btn == BUTTON_DOWN) if(btn == BUTTON_DOWN || btn == BUTTON_RIGHT)
choice = (choice + 1) % nr_choices; choice = (choice + 1) % nr_choices;
} }
} }
@ -437,7 +463,7 @@ void run_script_menu(void)
entries[nr_entries++] = strdup(ent->d_name); entries[nr_entries++] = strdup(ent->d_name);
} }
closedir(dir); closedir(dir);
int idx = choice_screen("RUN SCRIPT", false, nr_entries, entries); int idx = choice_screen("RUN SCRIPT", false, nr_entries, entries, 0, NULL);
if(idx >= 0) if(idx >= 0)
run_file(entries[idx]); run_file(entries[idx]);
for(int i = 0; i < nr_entries; i++) for(int i = 0; i < nr_entries; i++)
@ -455,6 +481,7 @@ static void adb(int start)
} }
int status; int status;
waitpid(pid, &status, 0); waitpid(pid, &status, 0);
adb_running = start;
#if 0 #if 0
if(WIFEXITED(status)) if(WIFEXITED(status))
{ {
@ -471,8 +498,11 @@ static void adb(int start)
static void tools_screen(void) static void tools_screen(void)
{ {
const char *choices[] = {"ADB start", "ADB stop", "Run script", "Restart", "Shutdown"}; const char *extra[] = { MODEL_NAME, rbversion };
int choice = choice_screen("TOOLS MENU", true, 5, choices); printf("Version: %s\n", rbversion);
printf("%s\n", MODEL_NAME);
const char *choices[] = {"ADB start", "ADB stop", "Run script", "Remount SD", "Restart", "Shutdown", "Recovery", "Back"};
int choice = choice_screen("TOOLS MENU", true, 8, choices, 2, extra);
if(choice == 0) if(choice == 0)
{ {
/* run service menu */ /* run service menu */
@ -492,12 +522,30 @@ static void tools_screen(void)
} }
else if(choice == 3) else if(choice == 3)
{ {
system_reboot(); mount_storage(false);
mount_storage(true);
} }
else if(choice == 4) else if(choice == 4)
{
system_reboot();
}
else if(choice == 5)
{ {
power_off(); power_off();
} }
else if(choice == 6)
{
int fd = open("/proc/jz/reset/reset", O_WRONLY);
if (fd >= 0) {
const char *buf = "recovery\n";
write(fd, buf, strlen(buf));
close(fd);
}
}
else if (choice == 7)
{
return;
}
} }
#if 0 #if 0
@ -555,11 +603,13 @@ int main(int argc, char **argv)
// if(font_id >= 0) // if(font_id >= 0)
// lcd_setfont(font_id); // lcd_setfont(font_id);
mount_storage(true);
/* run all tools menu */ /* run all tools menu */
while(true) while(true)
{ {
enum boot_mode mode = get_boot_mode(); enum boot_mode mode = get_boot_mode();
if(mode == BOOT_USB || mode == BOOT_OF) if (mode == BOOT_OF)
{ {
#if 0 #if 0
fflush(stdout); fflush(stdout);
@ -567,7 +617,7 @@ int main(int argc, char **argv)
close(fileno(stdout)); close(fileno(stdout));
close(fileno(stderr)); close(fileno(stderr));
#endif #endif
/* for now the only way we have to trigger USB mode it to run the OF */ mount_storage(false);
/* boot OF */ /* boot OF */
execvp("/usr/bin/hiby_player", argv); execvp("/usr/bin/hiby_player", argv);
error_screen("Cannot boot OF"); error_screen("Cannot boot OF");
@ -580,12 +630,14 @@ int main(int argc, char **argv)
else if(mode == BOOT_ROCKBOX) else if(mode == BOOT_ROCKBOX)
{ {
fflush(stdout); fflush(stdout);
mount_storage(true);
system("/bin/cp " BASE_DIR "/.rockbox/" RBFILE " /tmp"); system("/bin/cp " BASE_DIR "/.rockbox/" RBFILE " /tmp");
system("/bin/chmod +x /tmp/" RBFILE);
execl("/tmp/" RBFILE, RBFILE, NULL); execl("/tmp/" RBFILE, RBFILE, NULL);
printf("execvp failed: %s\n", strerror(errno)); printf("execvp failed: %s\n", strerror(errno));
/* fallback to OF in case of failure */ /* fallback to OF in case of failure */
error_screen("Cannot boot Rockbox"); error_screen("Cannot boot Rockbox");
sleep(5 * HZ); sleep(2 * HZ);
} }
else else
{ {

View file

@ -115,7 +115,7 @@ target/hosted/sonynwz/nvp-nwz.c
target/hosted/sonynwz/nwz-db.c target/hosted/sonynwz/nwz-db.c
#endif #endif
#if ((defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K)) && !defined(SIMULATOR)) #if ((defined(HIBY_LINUX) || defined(FIIO_M3K)) && !defined(SIMULATOR))
drivers/lcd-memframe.c drivers/lcd-memframe.c
target/hosted/alsa-controls.c target/hosted/alsa-controls.c
target/hosted/pcm-alsa.c target/hosted/pcm-alsa.c
@ -155,6 +155,14 @@ target/hosted/fiio/system-fiio.c
target/hosted/fiio/usb-fiio.c target/hosted/fiio/usb-fiio.c
#endif #endif
#if (defined(EROS_Q)) && !defined(SIMULATOR)
target/hosted/aigo/button-erosq.c
target/hosted/aigo/debug-erosq.c
target/hosted/aigo/power-erosq.c
target/hosted/aigo/powermgmt-erosq.c
target/hosted/aigo/usb-erosq.c
#endif
#if defined(SAMSUNG_YPR0) && !defined(SIMULATOR) #if defined(SAMSUNG_YPR0) && !defined(SIMULATOR)
drivers/adc-as3514.c drivers/adc-as3514.c
#if (CONFIG_RTC == RTC_AS3514) #if (CONFIG_RTC == RTC_AS3514)
@ -513,6 +521,8 @@ drivers/audio/rocker_codec.c
drivers/audio/xduoolinux_codec.c drivers/audio/xduoolinux_codec.c
#elif defined(HAVE_FIIO_LINUX_CODEC) && !defined(SIMULATOR) #elif defined(HAVE_FIIO_LINUX_CODEC) && !defined(SIMULATOR)
drivers/audio/fiiolinux_codec.c drivers/audio/fiiolinux_codec.c
#elif defined(HAVE_EROSQ_LINUX_CODEC) && !defined(SIMULATOR)
drivers/audio/erosqlinux_codec.c
#elif defined(HAVE_SDL_AUDIO) #elif defined(HAVE_SDL_AUDIO)
drivers/audio/sdl.c drivers/audio/sdl.c

View file

@ -15,8 +15,8 @@ mempcpy.c
defined(CREATIVE_ZVx) || defined(SANSA_CONNECT) || defined(SANSA_FUZEPLUS) || \ defined(CREATIVE_ZVx) || defined(SANSA_CONNECT) || defined(SANSA_FUZEPLUS) || \
defined(COWON_D2) || defined(MINI2440) || defined(SAMSUNG_YPR0) || \ defined(COWON_D2) || defined(MINI2440) || defined(SAMSUNG_YPR0) || \
defined(SAMSUNG_YPR1) || defined(DX50) || defined(DX90) || (defined(MROBE_500) && !defined(LCD_USE_DMA)) || \ defined(SAMSUNG_YPR1) || defined(DX50) || defined(DX90) || (defined(MROBE_500) && !defined(LCD_USE_DMA)) || \
defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || \ defined(CREATIVE_ZEN) || defined(CREATIVE_ZENXFI) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || \
defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K)) && \ defined(FIIO_M3K)) && \
!defined(SIMULATOR) !defined(SIMULATOR)
#if LCD_DEPTH >= 24 #if LCD_DEPTH >= 24
lcd-as-memframe-24bit.c lcd-as-memframe-24bit.c

View file

@ -0,0 +1,181 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
*
* Copyright (c) 2018 Marcin Bukat
* Copyright (c) 2020 Solomon Peachy
*
* 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.
*
****************************************************************************/
//#define LOGF_ENABLE
#include "config.h"
#include "audio.h"
#include "audiohw.h"
#include "button.h"
#include "system.h"
#include "kernel.h"
#include "panic.h"
#include "sysfs.h"
#include "alsa-controls.h"
#include "pcm-alsa.h"
#include "pcm_sw_volume.h"
#include "logf.h"
static int fd_hw;
static int inited = 0;
static long int vol_l_hw = 255;
static long int vol_r_hw = 255;
static long int last_ps = 0;
static void hw_open(void)
{
fd_hw = open("/dev/snd/controlC0", O_RDWR);
if(fd_hw < 0)
panicf("Cannot open '/dev/snd/controlC0'");
}
static void hw_close(void)
{
close(fd_hw);
}
void audiohw_mute(int mute)
{
logf("mute %d", mute);
if(mute)
{
long int ps0 = 0;
alsa_controls_set_ints("Output Port Switch", 1, &ps0);
}
else
{
last_ps = 0;
erosq_get_outputs();
}
}
int erosq_get_outputs(void) {
long int ps = 0; // Muted, if nothing is plugged in!
int status = 0;
if (!inited) return ps;
const char * const sysfs_lo_switch = "/sys/class/switch/lineout/state";
const char * const sysfs_hs_switch = "/sys/class/switch/headset/state";
sysfs_get_int(sysfs_lo_switch, &status);
if (status) ps = 1; // lineout
sysfs_get_int(sysfs_hs_switch, &status);
if (status) ps = 2; // headset
erosq_set_output(ps);
return ps;
}
void erosq_set_output(int ps)
{
if (!inited) return;
if (last_ps != ps)
{
logf("set out %d/%d", ps, last_ps);
/* Output port switch */
last_ps = ps;
alsa_controls_set_ints("Output Port Switch", 1, &last_ps);
audiohw_set_volume(vol_l_hw, vol_r_hw);
}
}
void audiohw_preinit(void)
{
logf("hw preinit");
alsa_controls_init();
hw_open();
audiohw_mute(true); /* Start muted to avoid the POP */
inited = 1;
}
void audiohw_postinit(void)
{
logf("hw postinit");
erosq_set_output(erosq_get_outputs()); /* Unmute */
}
void audiohw_close(void)
{
logf("hw close");
inited = 0;
hw_close();
alsa_controls_close();
}
void audiohw_set_frequency(int fsel)
{
(void)fsel;
}
void audiohw_set_volume(int vol_l, int vol_r)
{
logf("hw vol %d %d", vol_l, vol_r);
long l,r;
vol_l_hw = vol_l;
vol_r_hw = vol_r;
if (lineout_inserted()) {
l = 0;
r = 0;
} else {
l = vol_l_hw;
r = vol_r_hw;
}
/* SW volume for <= 1.0 gain, HW at unity, < -740 == MUTE */
int sw_volume_l = l <= -740 ? PCM_MUTE_LEVEL : MIN(l, 0);
int sw_volume_r = r <= -740 ? PCM_MUTE_LEVEL : MIN(r, 0);
pcm_set_master_volume(sw_volume_l, sw_volume_r);
}
void audiohw_set_lineout_volume(int vol_l, int vol_r)
{
long l,r;
logf("lo vol %d %d", vol_l, vol_r);
(void)vol_l;
(void)vol_r;
if (lineout_inserted()) {
l = 0;
r = 0;
} else {
l = vol_l_hw;
r = vol_r_hw;
}
int sw_volume_l = l <= -740 ? PCM_MUTE_LEVEL : MIN(l, 0);
int sw_volume_r = r <= -740 ? PCM_MUTE_LEVEL : MIN(r, 0);
pcm_set_master_volume(sw_volume_l, sw_volume_r);
}

View file

@ -226,6 +226,8 @@ struct sound_settings_info
#include "xduoolinux_codec.h" #include "xduoolinux_codec.h"
#elif defined(HAVE_FIIO_LINUX_CODEC) #elif defined(HAVE_FIIO_LINUX_CODEC)
#include "fiiolinux_codec.h" #include "fiiolinux_codec.h"
#elif defined(HAVE_EROSQ_LINUX_CODEC)
#include "erosqlinux_codec.h"
#endif #endif
/* convert caps into defines */ /* convert caps into defines */

View file

@ -162,6 +162,7 @@
#define XDUOO_X3II_PAD 69 #define XDUOO_X3II_PAD 69
#define XDUOO_X20_PAD 70 #define XDUOO_X20_PAD 70
#define FIIO_M3K_PAD 71 #define FIIO_M3K_PAD 71
#define EROSQ_PAD 72
/* CONFIG_REMOTE_KEYPAD */ /* CONFIG_REMOTE_KEYPAD */
#define H100_REMOTE 1 #define H100_REMOTE 1
@ -602,6 +603,8 @@ Lyre prototype 1 */
#include "config/xduoox20.h" #include "config/xduoox20.h"
#elif defined(FIIO_M3K) #elif defined(FIIO_M3K)
#include "config/fiiom3k.h" #include "config/fiiom3k.h"
#elif defined(EROS_Q)
#include "config/aigoerosq.h"
#else #else
//#error "unknown hwardware platform!" //#error "unknown hwardware platform!"
#endif #endif

View file

@ -17,6 +17,7 @@
#define CONFIG_PLATFORM (PLATFORM_HOSTED) #define CONFIG_PLATFORM (PLATFORM_HOSTED)
#endif #endif
#define HIBY_LINUX
#define HAVE_FPU #define HAVE_FPU
/* define this if you have a colour LCD */ /* define this if you have a colour LCD */

View file

@ -0,0 +1,132 @@
/*
* This config file is for the AIGO EROS Q / EROS K (and its clones)
*/
/* For Rolo and boot loader */
#define MODEL_NUMBER 113
#define MODEL_NAME "AIGO Eros Q"
/* LCD dimensions */
#define LCD_WIDTH 320
#define LCD_HEIGHT 240
/* sqrt(240^2 + 320^2) / 2.0 = 200 */
#define LCD_DPI 200
#ifndef SIMULATOR
#define CONFIG_PLATFORM (PLATFORM_HOSTED)
#endif
#define HIBY_LINUX
#define HAVE_FPU
/* define this if you have a colour LCD */
#define HAVE_LCD_COLOR
#define HAVE_LCD_ENABLE
/* Define this if the LCD can shut down */
#define HAVE_LCD_SHUTDOWN
/* define this if you want album art for this target */
#define HAVE_ALBUMART
/* define this to enable bitmap scaling */
#define HAVE_BMP_SCALING
/* define this to enable JPEG decoding */
#define HAVE_JPEG
/* define this if you have access to the quickscreen */
#define HAVE_QUICKSCREEN
/* define this if you would like tagcache to build on this target */
#define HAVE_TAGCACHE
#define LCD_DEPTH 32
/* Check that but should not matter */
#define LCD_PIXELFORMAT XRGB8888
#define HAVE_BACKLIGHT
#define HAVE_BACKLIGHT_BRIGHTNESS
/* Main LCD backlight brightness range and defaults: the backlight driver
* has levels from 0 to 255. But 0 is off so start at 1.
*/
#define MIN_BRIGHTNESS_SETTING 1
#define MAX_BRIGHTNESS_SETTING 255
#define BRIGHTNESS_STEP 5
#define DEFAULT_BRIGHTNESS_SETTING 70
/* Which backlight fading type? */
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
/* define this if you have a real-time clock */
#define CONFIG_RTC APPLICATION
/* The number of bytes reserved for loadable codecs */
#define CODEC_SIZE 0x80000
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x100000
#define HAVE_HEADPHONE_DETECTION
#define HAVE_LINEOUT_DETECTION
/* KeyPad configuration for plugins */
#define CONFIG_KEYPAD EROSQ_PAD
/* define this if the target has volume keys which can be used in the lists */
#define HAVE_VOLUME_IN_LIST
#ifndef SIMULATOR
/* We have usb power and can detect usb but it is handled by Linux */
#define HAVE_USB_POWER
#endif
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
/* Linux controlls charging, we can monitor */
#define CONFIG_CHARGING CHARGING_MONITOR
/* define this if the hardware can be powered off while charging */
#define HAVE_POWEROFF_WHILE_CHARGING
/* same dimensions as gigabeats */
#define CONFIG_LCD LCD_INGENIC_LINUX
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
/* Define this to the CPU frequency */
#define CPU_FREQ 108000000
/* No special storage */
#define CONFIG_STORAGE STORAGE_HOSTFS
#define HAVE_STORAGE_FLUSH
/* Battery */
#define BATTERY_TYPES_COUNT 1
/* Audio codec */
#define HAVE_EROSQ_LINUX_CODEC
/* Rockbox has to handle the volume level */
#define HAVE_SW_VOLUME_CONTROL
/* We don't have hardware controls */
#define HAVE_SW_TONE_CONTROLS
/* HW codec is flexible */
#define HW_SAMPR_CAPS SAMPR_CAP_ALL_192
/* Battery */
#define BATTERY_CAPACITY_DEFAULT 2000 /* default battery capacity */
#define BATTERY_CAPACITY_MIN 2000 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 2000 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 0 /* capacity increment */
/* ROLO */
#define BOOTFILE_EXT "erosq"
#define BOOTFILE "rockbox." BOOTFILE_EXT
#define BOOTDIR "/.rockbox"

View file

@ -17,6 +17,8 @@
#define CONFIG_PLATFORM (PLATFORM_HOSTED) #define CONFIG_PLATFORM (PLATFORM_HOSTED)
#endif #endif
#define HAVE_FPU
#define HW_SAMPR_CAPS (SAMPR_CAP_44 | SAMPR_CAP_48 | SAMPR_CAP_88 | SAMPR_CAP_96 | SAMPR_CAP_176 | SAMPR_CAP_192) #define HW_SAMPR_CAPS (SAMPR_CAP_44 | SAMPR_CAP_48 | SAMPR_CAP_88 | SAMPR_CAP_96 | SAMPR_CAP_176 | SAMPR_CAP_192)
/* define this if you have a bitmap LCD display */ /* define this if you have a bitmap LCD display */

View file

@ -17,6 +17,8 @@
#define CONFIG_PLATFORM (PLATFORM_HOSTED) #define CONFIG_PLATFORM (PLATFORM_HOSTED)
#endif #endif
#define HIBY_LINUX
#define HAVE_FPU #define HAVE_FPU
/* define this if you have a colour LCD */ /* define this if you have a colour LCD */

View file

@ -17,6 +17,7 @@
#define CONFIG_PLATFORM (PLATFORM_HOSTED) #define CONFIG_PLATFORM (PLATFORM_HOSTED)
#endif #endif
#define HIBY_LINUX
#define HAVE_FPU #define HAVE_FPU
/* define this if you have a colour LCD */ /* define this if you have a colour LCD */

View file

@ -0,0 +1,13 @@
#ifndef __EROSQLINUX_CODEC__
#define __EROSQLINUX_CODEC__
#define AUDIOHW_CAPS (LINEOUT_CAP)
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -74, 6, -25)
void audiohw_mute(int mute);
void erosq_set_output(int ps);
int erosq_get_outputs(void);
#endif

View file

@ -42,7 +42,7 @@
#if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ #if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \
defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) defined(HIBY_LINUX) || defined(FIIO_M3K)
#if defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) #if defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1)
#define HOME_DIR "/mnt/media0" #define HOME_DIR "/mnt/media0"
@ -51,7 +51,7 @@
#elif defined(DX50) || defined(DX90) #elif defined(DX50) || defined(DX90)
/* Where to put save files like recordings, playlists, screen dumps ...*/ /* Where to put save files like recordings, playlists, screen dumps ...*/
#define HOME_DIR "/mnt/sdcard" #define HOME_DIR "/mnt/sdcard"
#elif defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) #elif defined(HIBY_LINUX)
#define HOME_DIR "/mnt/sd_0" #define HOME_DIR "/mnt/sd_0"
#elif defined(FIIO_M3K) #elif defined(FIIO_M3K)
#define HOME_DIR "/mnt" #define HOME_DIR "/mnt"
@ -92,7 +92,7 @@
#define VIEWERS_DIR PLUGIN_DIR "/viewers" #define VIEWERS_DIR PLUGIN_DIR "/viewers"
#if defined(APPLICATION) && !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ #if defined(APPLICATION) && !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX))
#define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data" #define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data"
#define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR #define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR
#define PLUGIN_APPS_DATA_DIR PLUGIN_DATA_DIR #define PLUGIN_APPS_DATA_DIR PLUGIN_DATA_DIR

View file

@ -347,7 +347,7 @@ static inline void cpu_boost_unlock(void)
#ifndef SIMULATOR #ifndef SIMULATOR
bool dbg_ports(void); bool dbg_ports(void);
#endif #endif
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20) #if (CONFIG_PLATFORM & PLATFORM_NATIVE) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K)
bool dbg_hw_info(void); bool dbg_hw_info(void);
#endif #endif

View file

@ -85,7 +85,7 @@
/* compiled-in font */ /* compiled-in font */
extern struct font sysfont; extern struct font sysfont;
#if !defined(BOOTLOADER) || defined(SONY_NWZ_LINUX) #if !defined(BOOTLOADER) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K)
struct buflib_alloc_data { struct buflib_alloc_data {
struct font font; /* must be the first member! */ struct font font; /* must be the first member! */

View file

View file

@ -0,0 +1,188 @@
/***************************************************************************
* __________ __ ___
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 Marcin Bukat
* Copyright (C) 2020 Solomon Peachy
*
* 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.
*
****************************************************************************/
#include <poll.h>
//#include <dir.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <linux/input.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include "sysfs.h"
#include "button.h"
#include "button-target.h"
#include "panic.h"
#include "kernel.h"
#include "backlight.h"
#include "backlight-target.h"
#include "erosqlinux_codec.h"
#define NR_POLL_DESC 3
static struct pollfd poll_fds[NR_POLL_DESC];
static int button_map(int keycode)
{
switch(keycode)
{
case KEY_POWER:
return BUTTON_POWER;
case KEY_MENU:
return BUTTON_MENU;
case KEY_BACK:
return BUTTON_BACK;
case KEY_NEXTSONG:
return BUTTON_PREV;
case KEY_PREVIOUSSONG:
return BUTTON_NEXT; // Yes, backwards!
case KEY_PLAYPAUSE:
return BUTTON_PLAY;
case KEY_LEFT:
return BUTTON_SCROLL_BACK;
case KEY_RIGHT:
return BUTTON_SCROLL_FWD;
case KEY_VOLUMEUP:
return BUTTON_VOL_UP;
case KEY_VOLUMEDOWN:
return BUTTON_VOL_DOWN;
default:
return 0;
}
}
void button_init_device(void)
{
const char * const input_devs[] = {
"/dev/input/event0", // Rotary encoder
"/dev/input/event1" // Keys
};
for(int i = 0; i < NR_POLL_DESC; i++)
{
int fd = open(input_devs[i], O_RDWR | O_CLOEXEC);
if(fd < 0)
{
panicf("Cannot open input device: %s\n", input_devs[i]);
}
poll_fds[i].fd = fd;
poll_fds[i].events = POLLIN;
poll_fds[i].revents = 0;
}
}
int button_read_device(void)
{
static int button_bitmap = 0;
struct input_event event;
// FIXME TODO: Make this work via HAVE_SCROLL_WHEEL instead
/* Wheel gives us press+release back to back, clear them after time elapses */
static long last_tick = 0;
if (button_bitmap & (BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD) &&
current_tick - last_tick >= 2)
{
button_bitmap &= ~(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD);
}
/* check if there are any events pending and process them */
while(poll(poll_fds, NR_POLL_DESC, 0))
{
for(int i = 0; i < NR_POLL_DESC; i++)
{
/* read only if non-blocking */
if(poll_fds[i].revents & POLLIN)
{
int size = read(poll_fds[i].fd, &event, sizeof(event));
if(size == (int)sizeof(event))
{
int keycode = event.code;
/* event.value == 1 means press
* event.value == 0 means release
*/
bool press = event.value ? true : false;
/* map linux event code to rockbox button bitmap */
if(press)
{
int bmap = button_map(keycode);
if (bmap & (BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD))
last_tick = current_tick;
button_bitmap |= bmap;
}
else
{
/* Wheel gives us press+release back to back; ignore the release */
int bmap = button_map(keycode) & ~(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD);
button_bitmap &= ~bmap;
}
}
}
}
}
return button_bitmap;
}
bool headphones_inserted(void)
{
#ifdef BOOTLOADER
int ps = 0;
#else
int ps = erosq_get_outputs();
#endif
return (ps == 2);
}
bool lineout_inserted(void)
{
#ifdef BOOTLOADER
int ps = 0;
#else
int ps = erosq_get_outputs();
#endif
return (ps == 1);
}
void button_close_device(void)
{
/* close descriptors */
for(int i = 0; i < NR_POLL_DESC; i++)
{
close(poll_fds[i].fd);
}
}

View file

@ -0,0 +1,45 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2020 Solomon Peachy
*
* 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 _BUTTON_TARGET_H_
#define _BUTTON_TARGET_H_
/* Main unit's buttons */
#define BUTTON_POWER 0x00000001
#define BUTTON_MENU 0x00000002
#define BUTTON_BACK 0x00000004
#define BUTTON_PLAY 0x00000008
#define BUTTON_NEXT 0x00000010
#define BUTTON_PREV 0x00000020
#define BUTTON_VOL_UP 0x00000040
#define BUTTON_VOL_DOWN 0x00000080
#define BUTTON_SCROLL_BACK 0x00000100
#define BUTTON_SCROLL_FWD 0x00000200
#define BUTTON_MAIN (BUTTON_POWER | BUTTON_MENU | BUTTON_BACK | BUTTON_PREV | \
BUTTON_NEXT | BUTTON_PLAY | BUTTON_VOL_UP | BUTTON_VOL_DOWN | BUTTON_SCROLL_BACK | BUTTON_SCROLL_FWD)
#define BUTTON_LEFT BUTTON_PREV
#define BUTTON_RIGHT BUTTON_NEXT
/* Software power-off */
#define POWEROFF_BUTTON BUTTON_POWER
#define POWEROFF_COUNT 25
#endif /* _BUTTON_TARGET_H_ */

View file

@ -0,0 +1 @@
#include "../agptek/debug-agptek.c"

View file

@ -0,0 +1,49 @@
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
# $Id$
#
INCLUDES += -I$(FIRMDIR)/include -I$(FIRMDIR)/export $(TARGET_INC) -I$(BUILDDIR) -I$(APPSDIR)
SIMFLAGS += $(INCLUDES) $(DEFINES) -DHAVE_CONFIG_H $(GCCOPTS)
# bootloader build is sligtly different
ifneq (,$(findstring bootloader,$(APPSDIR)))
SRC += $(call preprocess, $(APPSDIR)/SOURCES)
CLEANOBJS += $(BUILDDIR)/bootloader.*
endif #bootloader
.SECONDEXPANSION: # $$(OBJ) is not populated until after this
ifneq (,$(findstring bootloader,$(APPSDIR)))
# bootloader build
$(BUILDDIR)/bootloader.elf : $$(OBJ) $(FIRMLIB) $(CORE_LIBS)
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -o $@ $(OBJ) \
-L$(BUILDDIR)/firmware -lfirmware \
-L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \
$(LDOPTS) $(GLOBAL_LDOPTS) -Wl,--gc-sections -Wl,-Map,$(BUILDDIR)/bootloader.map
$(BUILDDIR)/$(BINARY): $(BUILDDIR)/bootloader.elf
$(call PRINTS,OC $(@F))$(call objcopy,$^,$@)
else
# rockbox app build
$(BUILDDIR)/rockbox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS)
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -o $@ $(OBJ) \
-L$(BUILDDIR)/firmware -lfirmware \
-L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \
-L$(BUILDDIR)/lib $(call a2lnk,$(CORE_LIBS)) \
$(LDOPTS) $(GLOBAL_LDOPTS) -Wl,-Map,$(BUILDDIR)/rockbox.map
$(BUILDDIR)/$(BINARY): $(BUILDDIR)/rockbox.elf
$(call PRINTS,OC $(@F))$(call objcopy,$^,$@)
endif

View file

@ -0,0 +1,32 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2016 Amaury Pouly
*
* 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 __LCD_TARGET_H__
#define __LCD_TARGET_H__
/* needs special ioctl() to redraw updated framebuffer content */
#define LCD_OPTIMIZED_UPDATE
#define LCD_OPTIMIZED_UPDATE_RECT
extern fb_data *framebuffer; /* see lcd-erosq.c */
#define LCD_FRAMEBUF_ADDR(col, row) (framebuffer + (row)*LCD_WIDTH + (col))
extern void lcd_set_active(bool active);
#endif /* __LCD_TARGET_H__ */

View file

@ -0,0 +1,74 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 by Marcin Bukat
*
* 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.
*
****************************************************************************/
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include "system.h"
#include "power-erosq.h"
#include "power.h"
#include "panic.h"
#include "sysfs.h"
const char * const sysfs_bat_voltage =
"/sys/class/power_supply/battery/voltage_now";
const char * const sysfs_bat_capacity =
"/sys/class/power_supply/battery/capacity";
const char * const sysfs_bat_status =
"/sys/class/power_supply/battery/status";
const char * const sysfs_pow_supply =
"/sys/class/power_supply/usb/present";
unsigned int erosq_power_input_status(void)
{
int present = 0;
sysfs_get_int(sysfs_pow_supply, &present);
return present ? POWER_INPUT_USB_CHARGER : POWER_INPUT_NONE;
}
bool erosq_power_charging_status(void)
{
char buf[12] = {0};
sysfs_get_string(sysfs_bat_status, buf, sizeof(buf));
return (strncmp(buf, "Charging", 8) == 0);
}
unsigned int erosq_power_get_battery_voltage(void)
{
int battery_voltage;
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
return battery_voltage/1000;
}
unsigned int erosq_power_get_battery_capacity(void)
{
int battery_capacity;
sysfs_get_int(sysfs_bat_capacity, &battery_capacity);
return battery_capacity;
}

View file

@ -0,0 +1,31 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 by Marcin Bukat
*
* 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 _POWER_XDUOO_H_
#define _POWER_XDUOO_H_
#include <stdbool.h>
#include "config.h"
unsigned int erosq_power_input_status(void);
bool erosq_power_charging_status(void);
unsigned int erosq_power_get_battery_voltage(void);
unsigned int erosq_power_get_battery_capacity(void);
#endif /* _POWER_XDUOO_H_ */

View file

@ -0,0 +1,61 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 Marcin Bukat
*
* 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.
*
****************************************************************************/
#include "powermgmt.h"
#include "power.h"
#include "power-erosq.h"
const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
{
3470
};
/* the OF shuts down at this voltage */
const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] =
{
3400
};
/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] =
{
{ 3400, 3639, 3697, 3723, 3757, 3786, 3836, 3906, 3980, 4050, 4159 }
};
/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */
const unsigned short const percent_to_volt_charge[11] =
{
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
};
unsigned int power_input_status(void)
{
/* POWER_INPUT_USB_CHARGER, POWER_INPUT_NONE */
return erosq_power_input_status();
}
int _battery_voltage(void)
{
return erosq_power_get_battery_voltage();
}
bool charging_state(void)
{
return erosq_power_charging_status();
}

View file

@ -0,0 +1,28 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2017 Marcin Bukat
* Copyright (C) 2016 Amaury Pouly
*
* 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 __SYSTEM_TARGET_H__
#define __SYSTEM_TARGET_H__
#include "kernel-unix.h"
#include "system-hosted.h"
#define NEED_GENERIC_BYTESWAPS
#endif /* __SYSTEM_TARGET_H__ */

View file

@ -0,0 +1,118 @@
/***************************************************************************
* __________ __ ___
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2018 by Marcin Bukat
*
* 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.
*
****************************************************************************/
#include <stdlib.h>
#include <sys/mount.h>
#include <string.h>
#include "config.h"
#include "disk.h"
#include "usb.h"
#include "sysfs.h"
#include "power.h"
#include "power-erosq.h"
static bool adb_mode = false;
/* TODO: implement usb detection properly */
int usb_detect(void)
{
return power_input_status() == POWER_INPUT_USB_CHARGER ? USB_INSERTED : USB_EXTRACTED;
}
void usb_enable(bool on)
{
/* Ignore usb enable/disable when ADB is enabled so we can fireup adb shell
* without entering ums mode
*/
if (!adb_mode)
{
sysfs_set_int("/sys/class/android_usb/android0/enable", on ? 1 : 0);
}
}
/* This is called by usb thread after usb extract in order to return
* regular FS access
*
* returns the # of successful mounts
*/
int disk_mount_all(void)
{
const char *dev[] = {"/dev/mmcblk0p1", "/dev/mmcblk0"};
const char *fs[] = {"vfat", "exfat"};
sysfs_set_string("/sys/class/android_usb/android0/f_mass_storage/lun/file", "");
for (int i=0; i<2; i++)
{
for (int j=0; j<2; j++)
{
if (mount(dev[i], "/mnt/sd_0", fs[j], 0, NULL) == 0)
{
return 1;
}
}
}
return 0;
}
/* This is called by usb thread after all threads ACKs usb inserted message
*
* returns the # of successful unmounts
*/
int disk_unmount_all(void)
{
if (umount("/mnt/sd_0") == 0)
{
sysfs_set_string("/sys/class/android_usb/android0/f_mass_storage/lun/file", "/dev/mmcblk0");
return 1;
}
return 0;
}
void usb_init_device(void)
{
char functions[32] = {0};
/* Check if ADB was activated in bootloader */
sysfs_get_string("/sys/class/android_usb/android0/functions", functions, sizeof(functions));
adb_mode = (strstr(functions, "adb") == NULL) ? false : true;
usb_enable(false);
if (adb_mode)
{
sysfs_set_string("/sys/class/android_usb/android0/functions", "mass_storage,adb");
sysfs_set_string("/sys/class/android_usb/android0/idVendor", "18D1");
sysfs_set_string("/sys/class/android_usb/android0/idProduct", "D002");
}
else
{
sysfs_set_string("/sys/class/android_usb/android0/functions", "mass_storage");
sysfs_set_string("/sys/class/android_usb/android0/idVendor", "C502");
sysfs_set_string("/sys/class/android_usb/android0/idProduct", "0023");
}
sysfs_set_string("/sys/class/android_usb/android0/iManufacturer", "Rockbox.org");
sysfs_set_string("/sys/class/android_usb/android0/iProduct", "Rockbox media player");
sysfs_set_string("/sys/class/android_usb/android0/iSerial", "0123456789ABCDEF");
sysfs_set_string("/sys/class/android_usb/android0/f_mass_storage/inquiry_string", "ErosQ 0100");
}

View file

@ -37,7 +37,7 @@
#include "logf.h" #include "logf.h"
#if !(defined(BOOTLOADER) || defined(CHECKWPS) || defined(SIMULATOR)) #if !(defined(BOOTLOADER) || defined(CHECKWPS) || defined(SIMULATOR))
#if (defined(AGPTEK_ROCKER) || defined(XDUOO_X3II) || defined(XDUOO_X20)) #if defined(HIBY_LINUX)
#define PIVOT_ROOT "/mnt/sd_0" #define PIVOT_ROOT "/mnt/sd_0"
#elif defined(FIIO_M3K) #elif defined(FIIO_M3K)
#define PIVOT_ROOT "/mnt" // XXX check this! #define PIVOT_ROOT "/mnt" // XXX check this!
@ -56,8 +56,8 @@ static const char rbhome[] = HOME_DIR;
#endif #endif
#if !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || defined(DX50) || \ #if !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || defined(DX50) || \
defined(SONY_NWZ_LINUX) || defined(DX90) || defined(AGPTEK_ROCKER) || \ defined(SONY_NWZ_LINUX) || defined(DX90) || defined(HIBY_LINUX) || \
defined(XDUOO_X3II) || defined(XDUOO_X20) || defined(FIIO_M3K) || defined(FIIO_M3K_PRO)) && \ defined(FIIO_M3K)) && \
!defined(__PCTOOL__) !defined(__PCTOOL__)
/* Special dirs are user-accessible (and user-writable) dirs which take priority /* Special dirs are user-accessible (and user-writable) dirs which take priority
* over the ones where Rockbox is installed to. Classic example would be * over the ones where Rockbox is installed to. Classic example would be

View file

@ -41,4 +41,3 @@
#define POWEROFF_COUNT 25 #define POWEROFF_COUNT 25
#endif /* _BUTTON_TARGET_H_ */ #endif /* _BUTTON_TARGET_H_ */

View file

@ -448,6 +448,10 @@ $releasenotes="/wiki/ReleaseNotes315";
name => 'FiiO M3K', name => 'FiiO M3K',
status => 1, status => 1,
}, },
'erosq' => {
name => 'AIGO EROS Q / K',
status => 1,
},
'ihifi770' => { 'ihifi770' => {
name => 'Xuelin iHIFI 770', name => 'Xuelin iHIFI 770',
status => 2, status => 2,

32
tools/configure vendored
View file

@ -1589,7 +1589,8 @@ cat <<EOF
==AgpTek== 252) 800 227) NW-A20 series ==AgpTek== 252) 800 227) NW-A20 series
240) Rocker 228) NWZ-A860 series 240) Rocker 228) NWZ-A860 series
==FiiO== 229) NWZ-S750 series ==FiiO== 229) NWZ-S750 series
244) M3K ==AIGO== 244) M3K
245) Eros Q / K
EOF EOF
@ -4056,7 +4057,7 @@ fi
t_cpu="hosted" t_cpu="hosted"
t_manufacturer="xduoo" t_manufacturer="xduoo"
t_model="xduoo_x3ii" t_model="xduoo_x3ii"
# sysfont="20-Terminus-Bold" sysfont="16-Terminus"
;; ;;
243|xduoox20) 243|xduoox20)
@ -4079,7 +4080,7 @@ fi
t_cpu="hosted" t_cpu="hosted"
t_manufacturer="xduoo" t_manufacturer="xduoo"
t_model="xduoo_x20" t_model="xduoo_x20"
# sysfont="20-Terminus-Bold" sysfont="16-Terminus"
;; ;;
244|fiiom3k) 244|fiiom3k)
@ -4102,7 +4103,30 @@ fi
t_manufacturer="fiio" t_manufacturer="fiio"
t_model="m3k" t_model="m3k"
mipsellinuxcc mipsellinuxcc
# sysfont="20-Terminus-Bold" sysfont="16-Terminus"
;;
245|erosq)
target_id=113
application=yes
app_type="erosq"
modelname="erosq"
target="EROS_Q"
memory=8
mipsellinuxcc
tool="cp "
boottool="cp "
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
bmp2rb_native="$rootdir/tools/bmp2rb -f 10"
output="rockbox.erosq"
bootoutput="bootloader.erosq"
appextra="recorder:gui:hosted"
plugins="yes"
# architecture, manufacturer and model for the target-tree build
t_cpu="hosted"
t_manufacturer="aigo"
t_model="erosq"
sysfont="16-Terminus"
;; ;;
250|ihifi770c) 250|ihifi770c)

View file

@ -38,6 +38,10 @@ if ($model eq 'rocker') {
@ubiopts = ("-e", "124KiB", "-c", "1024", "-m", "2048", "-j", "8192KiB", "-U"); @ubiopts = ("-e", "124KiB", "-c", "1024", "-m", "2048", "-j", "8192KiB", "-U");
} elsif ($model eq 'x20') { } elsif ($model eq 'x20') {
@ubiopts = ("-e", "124KiB", "-c", "1024", "-m", "2048", "-j", "8192KiB", "-U"); @ubiopts = ("-e", "124KiB", "-c", "1024", "-m", "2048", "-j", "8192KiB", "-U");
} elsif ($model eq 'eros_q') {
@ubiopts = ("-e", "124KiB", "-c", "1024", "-m", "2048", "-j", "8192KiB", "-U");
} elsif ($model eq 'm3k') {
@ubiopts = ("-e", "124KiB", "-c", "2048", "-m", "2048", "-j", "8192KiB", "-U");
} else { } else {
die ("Unknown hiby model: $model\n"); die ("Unknown hiby model: $model\n");
} }
@ -81,7 +85,6 @@ while (<UPDATE>) {
if ($rootfs_found) { if ($rootfs_found) {
if (/file_path=(.*)/) { if (/file_path=(.*)/) {
$ubiname = basename($1); $ubiname = basename($1);
$ubiname =~ tr/[a-z]/[A-Z]/;
last; last;
} }
} else { } else {
@ -92,7 +95,11 @@ while (<UPDATE>) {
} }
close UPDATE; close UPDATE;
die("can't locate rootfs image") if (! -e "$isowork/$ubiname"); if (! -e "$isowork/$ubiname") {
$ubiname =~ tr/[a-z]/[A-Z]/;
die("can't locate rootfs image ($ubiname)") if (! -e "$isowork/$ubiname");
}
$ubiname = "$isowork/$ubiname"; $ubiname = "$isowork/$ubiname";
### Extract RootFS ### Extract RootFS
@ -102,6 +109,7 @@ mkdir($rootfsdir) || die ("Can't create '$rootfsdir'");
@sysargs = ("ubireader_extract_files", "-k", "-o", $rootfsdir, $ubiname); @sysargs = ("ubireader_extract_files", "-k", "-o", $rootfsdir, $ubiname);
system(@sysargs); system(@sysargs);
# exit(0);
### Mangle RootFS ### Mangle RootFS
# Generate rb_bootloader.sh # Generate rb_bootloader.sh
@ -109,19 +117,74 @@ my $rbbasename = basename($rbbname);
my $bootloader_sh = my $bootloader_sh =
"#!/bin/sh "#!/bin/sh
mount /dev/mmcblk0 /mnt/sd_0 &>/dev/null || \ #mkdir -p /mnt/sd_0
mount /dev/mmcblk0p1 /mnt/sd_0 &>/dev/null #
#mount /dev/mmcblk0 /mnt/sd_0 &>/dev/null || \
#mount /dev/mmcblk0p1 /mnt/sd_0 &>/dev/null
killall $rbbasename killall hiby_player &>/dev/null
killall -9 $rbbasename killall -9 hiby_player &>/dev/null
killall $rbbasename &>/dev/null
killall -9 $rbbasename &>/dev/null
# /etc/init.d/K90adb start
# Rockbox launcher!
/usr/bin/$rbbasename /usr/bin/$rbbasename
sleep 1 sleep 1
reboot reboot
"; ";
open FILE, ">$rootfsdir/usr/bin/hiby_player.sh" || die ("can't write bootloader script!"); open FILE, ">$rootfsdir/usr/bin/hiby_player.sh" || die ("can't write bootloader script!");
print FILE $bootloader_sh; print FILE $bootloader_sh;
close FILE; close FILE;
chmod 0755, "$rootfsdir/usr/bin/hiby_player.sh";
# Auto mount/unmount external USB drives
open FILE, ">>$rootfsdir/etc/mdev.conf" || die ("can't access mdev conf!");
print FILE "sd[a-z][0-9]+ 0:0 664 @ /etc/rb_inserting.sh\n";
print FILE "mmcblk[0-9]p[0-9] 0:0 664 @ /etc/rb_inserting.sh\n";
print FILE "mmcblk[0-9] 0:0 664 @ /etc/rb_inserting.sh\n";
print FILE "sd[a-z] 0:0 664 \$ /etc/rb_removing.sh";
print FILE "mmcblk[0-9] 0:0 664 \$ /etc/rb_removing.sh\n";
close FILE;
my $insert_sh = '
#!/bin/sh
# $MDEV is the device
case $MDEV in
mmc*)
MNT_POINT=/mnt/sd_0
;;
sd*)
MNT_POINT=/mnt/sd_0/USB
;;
esac
if [ ! -d $MNT_POINT ];then
mkdir $MNT_POINT
fi
mount $MDEV $MNT_POINT
';
open FILE, ">$rootfsdir/etc/rb_inserting.sh" || die("can't write hotplug helpers!");
print FILE $insert_sh;
close FILE;
chmod 0755, "$rootfsdir/etc/rb_inserting.sh";
my $remove_sh = '
#!/bin/sh
# $MDEV is the device
sync;
unmount -f $MDEV;
';
open FILE, ">$rootfsdir/etc/rb_removing.sh" || die("can't write hotplug helpers!");
print FILE $remove_sh;
close FILE;
chmod 0755, "$rootfsdir/etc/rb_removing.sh";
# Copy bootloader over # Copy bootloader over
@sysargs=("cp", "$rbbname", "$rootfsdir/usr/bin/$rbbasename"); @sysargs=("cp", "$rbbname", "$rootfsdir/usr/bin/$rbbasename");

View file

@ -104,6 +104,8 @@ ifneq (,$(findstring bootloader,$(APPSDIR)))
include $(ROOTDIR)/firmware/target/hosted/agptek/rocker.make include $(ROOTDIR)/firmware/target/hosted/agptek/rocker.make
else ifneq (,$(findstring xduoo,$(APP_TYPE))) else ifneq (,$(findstring xduoo,$(APP_TYPE)))
include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make include $(ROOTDIR)/firmware/target/hosted/xduoo/xduoo.make
else ifneq (,$(findstring erosq,$(APP_TYPE)))
include $(ROOTDIR)/firmware/target/hosted/aigo/erosq.make
else ifneq (,$(findstring fiio,$(APP_TYPE))) else ifneq (,$(findstring fiio,$(APP_TYPE)))
include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make
else else
@ -156,6 +158,10 @@ else # core
include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make include $(ROOTDIR)/firmware/target/hosted/fiio/fiio.make
endif endif
ifneq (,$(findstring erosq,$(APP_TYPE)))
include $(ROOTDIR)/firmware/target/hosted/aigo/erosq.make
endif
ifneq (,$(findstring android_ndk, $(APP_TYPE))) ifneq (,$(findstring android_ndk, $(APP_TYPE)))
include $(ROOTDIR)/firmware/target/hosted/ibasso/android_ndk.make include $(ROOTDIR)/firmware/target/hosted/ibasso/android_ndk.make
else else

View file

@ -83,7 +83,7 @@ wps.800x480x(16|24): cabbiev2.800x480x16.wps
wps.480x800x(16|24): cabbiev2.480x800x16.wps wps.480x800x(16|24): cabbiev2.480x800x16.wps
wps.400x240x(16|24): cabbiev2.400x240x16.wps wps.400x240x(16|24): cabbiev2.400x240x16.wps
wps.320x480x(16|24): cabbiev2.320x480x16.wps wps.320x480x(16|24): cabbiev2.320x480x16.wps
wps.320x240x(16|24): cabbiev2.320x240x16.wps wps.320x240x(16|24|32): cabbiev2.320x240x16.wps
wps.240x400x(16|24): cabbiev2.240x400x16.wps wps.240x400x(16|24): cabbiev2.240x400x16.wps
wps.240x320x(16|24|32): cabbiev2.240x320x16.wps wps.240x320x(16|24|32): cabbiev2.240x320x16.wps
wps.220x176x(16|24): cabbiev2.220x176x16.wps wps.220x176x(16|24): cabbiev2.220x176x16.wps
@ -171,7 +171,7 @@ iconset.800x480x(16|24): icons/tango_icons.32x32.bmp
iconset.480x800x(16|24): icons/tango_icons.32x32.bmp iconset.480x800x(16|24): icons/tango_icons.32x32.bmp
iconset.400x240x(16|24): icons/tango_icons.16x16.bmp iconset.400x240x(16|24): icons/tango_icons.16x16.bmp
iconset.320x480x(16|24): icons/tango_icons.24x24.bmp iconset.320x480x(16|24): icons/tango_icons.24x24.bmp
iconset.320x240x(16|24): icons/tango_icons.16x16.bmp iconset.320x240x(16|24|32): icons/tango_icons.16x16.bmp
iconset.128x128x(16|24): icons/tango_icons.12x12.bmp iconset.128x128x(16|24): icons/tango_icons.12x12.bmp
iconset.128x160x(16|24|32): icons/tango_icons.12x12.bmp iconset.128x160x(16|24|32): icons/tango_icons.12x12.bmp
iconset.132x80x(16|24): icons/tango_icons.12x12.bmp iconset.132x80x(16|24): icons/tango_icons.12x12.bmp