New port: Anbernic RG Nano
A bit of context, this device is a clone of the FunKey-S with a different form factor, hardware is mostly identical, the relevant difference is it has audio out (via usb-c, adapter to 3.5mm is included), this is the reason why the FunKey-SDK is needed for bulding. This port is based on the old SDL 1.2 code because the device doesn't have SDL2 support. Alongside what was supported in the SDL 1.2 builds this port supports battery level, charging status and backlight control. Change-Id: I7fcb85be62748644b667c0efebabf59d6e9c5ade
|
@ -303,4 +303,6 @@ keymaps/keymap-shanlingq1.c
|
|||
keymaps/keymap-echor1.c
|
||||
#elif CONFIG_KEYPAD == SURFANS_F28_PAD
|
||||
keymaps/keymap-surfansf28.c
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
keymaps/keymap-rgnano.c
|
||||
#endif
|
||||
|
|
260
apps/keymaps/keymap-rgnano.c
Normal file
|
@ -0,0 +1,260 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Button Code Definitions for Android targets */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "action.h"
|
||||
#include "button.h"
|
||||
#include "settings.h"
|
||||
|
||||
/*
|
||||
* 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_UP, BUTTON_NONE },
|
||||
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_CANCEL, BUTTON_B, BUTTON_NONE },
|
||||
{ ACTION_STD_OK, BUTTON_A, BUTTON_NONE },
|
||||
{ ACTION_STD_MENU, BUTTON_Y|BUTTON_REL, BUTTON_Y },
|
||||
{ ACTION_STD_CONTEXT, BUTTON_START|BUTTON_REL, BUTTON_START },
|
||||
{ ACTION_STD_QUICKSCREEN, BUTTON_R|BUTTON_REL, BUTTON_R },
|
||||
|
||||
LAST_ITEM_IN_LIST
|
||||
}; /* button_context_standard */
|
||||
|
||||
static const struct button_mapping button_context_wps[] = {
|
||||
{ ACTION_WPS_PLAY, BUTTON_A|BUTTON_REL, BUTTON_A },
|
||||
{ ACTION_WPS_STOP, BUTTON_A|BUTTON_REPEAT, BUTTON_A },
|
||||
{ ACTION_WPS_STOP, BUTTON_L|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_WPS_SKIPPREV, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT },
|
||||
{ ACTION_WPS_SKIPNEXT, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT },
|
||||
{ ACTION_WPS_SEEKBACK, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_WPS_SEEKFWD, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_WPS_STOPSEEK, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT|BUTTON_REPEAT },
|
||||
{ ACTION_WPS_STOPSEEK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT|BUTTON_REPEAT },
|
||||
{ ACTION_WPS_VOLDOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_WPS_VOLDOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_WPS_VOLUP, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_WPS_VOLUP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_WPS_MENU, BUTTON_B|BUTTON_REL, BUTTON_B },
|
||||
{ ACTION_WPS_CONTEXT, BUTTON_START|BUTTON_REL, BUTTON_START },
|
||||
{ ACTION_WPS_HOTKEY, BUTTON_L|BUTTON_REL, BUTTON_L },
|
||||
{ ACTION_WPS_QUICKSCREEN, BUTTON_R|BUTTON_REL, BUTTON_R },
|
||||
{ ACTION_WPS_BROWSE, BUTTON_Y|BUTTON_REL, BUTTON_Y },
|
||||
{ ACTION_WPS_ABSETA_PREVDIR, BUTTON_A|BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_WPS_ABSETB_NEXTDIR, BUTTON_A|BUTTON_RIGHT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST
|
||||
}; /* button_context_wps */
|
||||
|
||||
static const struct button_mapping button_context_list[] = {
|
||||
{ ACTION_LIST_VOLUP, BUTTON_FN|BUTTON_A, BUTTON_NONE },
|
||||
{ ACTION_LIST_VOLUP, BUTTON_FN|BUTTON_A|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_LIST_VOLDOWN, BUTTON_FN|BUTTON_Y, BUTTON_NONE },
|
||||
{ ACTION_LIST_VOLDOWN, BUTTON_FN|BUTTON_Y|BUTTON_REPEAT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_list */
|
||||
|
||||
static const struct button_mapping button_context_tree[] = {
|
||||
{ ACTION_TREE_WPS, BUTTON_X|BUTTON_REL, BUTTON_X },
|
||||
{ ACTION_TREE_HOTKEY, BUTTON_L|BUTTON_REL, BUTTON_L },
|
||||
{ ACTION_TREE_STOP, BUTTON_L|BUTTON_REPEAT, BUTTON_NONE},
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST)
|
||||
}; /* button_context_tree */
|
||||
|
||||
static const struct button_mapping button_context_listtree_scroll_with_combo[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
|
||||
};
|
||||
|
||||
static const struct button_mapping button_context_listtree_scroll_without_combo[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_TREE),
|
||||
};
|
||||
|
||||
static const struct button_mapping button_context_settings[] = {
|
||||
{ ACTION_SETTINGS_INC, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_INCREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_DEC, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_DECREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_PREV, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_STD_PREVREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXT, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXTREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_settings */
|
||||
|
||||
static const struct button_mapping button_context_settings_right_is_inc[] = {
|
||||
{ ACTION_SETTINGS_INC, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_INCREPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_DEC, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_SETTINGS_DECREPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_PREV, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_STD_PREVREPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXT, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_STD_NEXTREPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_settingsgraphical */
|
||||
|
||||
static const struct button_mapping button_context_yesno[] = {
|
||||
{ ACTION_YESNO_ACCEPT, BUTTON_A, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_settings_yesno */
|
||||
|
||||
static const struct button_mapping button_context_colorchooser[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
|
||||
}; /* button_context_colorchooser */
|
||||
|
||||
static const struct button_mapping button_context_eq[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_CUSTOM|CONTEXT_SETTINGS),
|
||||
}; /* button_context_eq */
|
||||
|
||||
/** Bookmark Screen **/
|
||||
static const struct button_mapping button_context_bmark[] = {
|
||||
{ ACTION_BMS_DELETE, BUTTON_Y, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_LIST),
|
||||
}; /* button_context_bmark */
|
||||
|
||||
static const struct button_mapping button_context_time[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS),
|
||||
}; /* button_context_time */
|
||||
|
||||
static const struct button_mapping button_context_quickscreen[] = {
|
||||
{ ACTION_QS_TOP, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_QS_TOP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_QS_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_QS_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_QS_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_QS_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_QS_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ ACTION_QS_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_quickscreen */
|
||||
|
||||
static const struct button_mapping button_context_pitchscreen[] = {
|
||||
{ ACTION_PS_INC_SMALL, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_PS_INC_BIG, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_PS_DEC_SMALL, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_PS_DEC_BIG, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_PS_NUDGE_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_PS_NUDGE_LEFTOFF, BUTTON_LEFT|BUTTON_REL, BUTTON_NONE },
|
||||
{ ACTION_PS_NUDGE_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ ACTION_PS_NUDGE_RIGHTOFF, BUTTON_RIGHT|BUTTON_REL, BUTTON_NONE },
|
||||
{ ACTION_PS_TOGGLE_MODE, BUTTON_A, BUTTON_NONE },
|
||||
{ ACTION_PS_RESET, BUTTON_Y, BUTTON_NONE },
|
||||
{ ACTION_PS_EXIT, BUTTON_B, BUTTON_NONE },
|
||||
{ ACTION_PS_SLOWER, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_PS_FASTER, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_pitchcreen */
|
||||
|
||||
static const struct button_mapping button_context_keyboard[] = {
|
||||
{ ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE },
|
||||
{ ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_CURSOR_LEFT, BUTTON_L, BUTTON_NONE },
|
||||
{ ACTION_KBD_CURSOR_LEFT, BUTTON_L|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_R, BUTTON_NONE },
|
||||
{ ACTION_KBD_CURSOR_RIGHT, BUTTON_R|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ ACTION_KBD_SELECT, BUTTON_A, BUTTON_NONE },
|
||||
{ ACTION_KBD_BACKSPACE, BUTTON_Y|BUTTON_REL, BUTTON_Y },
|
||||
{ ACTION_KBD_PAGE_FLIP, BUTTON_X, BUTTON_NONE },
|
||||
{ ACTION_KBD_DONE, BUTTON_START|BUTTON_REL, BUTTON_START },
|
||||
{ ACTION_KBD_ABORT, BUTTON_B|BUTTON_REL, BUTTON_B },
|
||||
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_STD)
|
||||
}; /* button_context_keyboard */
|
||||
|
||||
static const struct button_mapping button_context_radio[] = {
|
||||
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
|
||||
}; /* button_context_radio */
|
||||
|
||||
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_LIST:
|
||||
return button_context_list;
|
||||
case CONTEXT_MAINMENU:
|
||||
case CONTEXT_TREE:
|
||||
if (global_settings.hold_lr_for_scroll_in_list)
|
||||
return button_context_listtree_scroll_without_combo;
|
||||
else
|
||||
return button_context_listtree_scroll_with_combo;
|
||||
case CONTEXT_CUSTOM|CONTEXT_TREE:
|
||||
return button_context_tree;
|
||||
|
||||
case CONTEXT_SETTINGS:
|
||||
return button_context_settings;
|
||||
case CONTEXT_CUSTOM|CONTEXT_SETTINGS:
|
||||
case CONTEXT_SETTINGS_RECTRIGGER:
|
||||
return button_context_settings_right_is_inc;
|
||||
|
||||
case CONTEXT_SETTINGS_COLOURCHOOSER:
|
||||
return button_context_colorchooser;
|
||||
case CONTEXT_SETTINGS_EQ:
|
||||
return button_context_eq;
|
||||
|
||||
case CONTEXT_SETTINGS_TIME:
|
||||
return button_context_time;
|
||||
|
||||
case CONTEXT_YESNOSCREEN:
|
||||
return button_context_yesno;
|
||||
case CONTEXT_FM:
|
||||
return button_context_radio;
|
||||
case CONTEXT_BOOKMARKSCREEN:
|
||||
return button_context_bmark;
|
||||
case CONTEXT_QUICKSCREEN:
|
||||
return button_context_quickscreen;
|
||||
case CONTEXT_PITCHSCREEN:
|
||||
return button_context_pitchscreen;
|
||||
case CONTEXT_KEYBOARD:
|
||||
return button_context_keyboard;
|
||||
}
|
||||
return button_context_standard;
|
||||
}
|
|
@ -26,7 +26,6 @@ playing_time.c
|
|||
properties.c
|
||||
random_folder_advance_config.c
|
||||
rb_info.c
|
||||
rockblox.c
|
||||
search.c
|
||||
settings_dumper.c
|
||||
snow.c
|
||||
|
@ -89,7 +88,7 @@ crypt_firmware.c
|
|||
|
||||
/* Overlays loaders */
|
||||
|
||||
#if defined(HAVE_LCD_COLOR) && (LCD_STRIDEFORMAT == HORIZONTAL_STRIDE)
|
||||
#if defined(HAVE_LCD_COLOR) && (LCD_STRIDEFORMAT == HORIZONTAL_STRIDE) && !defined(RG_NANO) /* Build issues */
|
||||
#if (PLUGIN_BUFFER_SIZE > 0x14000) && (CONFIG_PLATFORM & (PLATFORM_NATIVE |PLATFORM_HOSTED)) && (defined(CPU_ARM) || defined(CPU_MIPS))
|
||||
duke3d.c
|
||||
quake.c
|
||||
|
@ -140,9 +139,15 @@ robotfindskitten.c
|
|||
xobox.c
|
||||
spacerocks.c
|
||||
|
||||
#if (LCD_WIDTH != 240) && (LCD_HEIGHT != 240)
|
||||
/* No 240x240 support */
|
||||
rockblox.c
|
||||
bubbles.c
|
||||
wormlet.c
|
||||
#endif
|
||||
|
||||
blackjack.c
|
||||
bounce.c
|
||||
bubbles.c
|
||||
calculator.c
|
||||
chip8.c
|
||||
chopper.c
|
||||
|
@ -162,7 +167,6 @@ sokoban.c
|
|||
star.c
|
||||
starfield.c
|
||||
vu_meter.c
|
||||
wormlet.c
|
||||
|
||||
#ifdef HAVE_HOTKEY
|
||||
announce_status.c
|
||||
|
@ -199,7 +203,7 @@ rocklife.c
|
|||
matrix.c
|
||||
speedread.c
|
||||
|
||||
#if (LCD_WIDTH > 138)
|
||||
#if (LCD_WIDTH > 138) && ((LCD_WIDTH != 240) && (LCD_HEIGHT != 240))
|
||||
invadrox.c
|
||||
superdom.c
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,7 @@ clock
|
|||
xworld
|
||||
|
||||
/* for duke3d, wolf3d and quake */
|
||||
#if (PLUGIN_BUFFER_SIZE > 0x14000) && (CONFIG_PLATFORM & (PLATFORM_NATIVE|PLATFORM_HOSTED)) && (defined(CPU_ARM) || defined(CPU_MIPS))
|
||||
#if (PLUGIN_BUFFER_SIZE > 0x14000) && (CONFIG_PLATFORM & (PLATFORM_NATIVE|PLATFORM_HOSTED)) && (defined(CPU_ARM) || defined(CPU_MIPS)) && !defined(RG_NANO)
|
||||
sdl
|
||||
#endif
|
||||
|
||||
|
@ -41,7 +41,10 @@ fft
|
|||
chessbox
|
||||
fractals
|
||||
imageviewer
|
||||
#if (LCD_WIDTH != 240) && (LCD_HEIGHT != 240)
|
||||
/* No 240x240 support */
|
||||
sudoku
|
||||
#endif
|
||||
reversi
|
||||
goban
|
||||
frotz
|
||||
|
|
|
@ -259,6 +259,12 @@ struct battery_tables_t {
|
|||
#define BATTERY_ON_TXT "Play"
|
||||
#define BATTERY_OFF_TXT "Back"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define BATTERY_ON BUTTON_A
|
||||
#define BATTERY_OFF BUTTON_X
|
||||
#define BATTERY_ON_TXT "A"
|
||||
#define BATTERY_OFF_TXT "X"
|
||||
|
||||
#else
|
||||
#error "No keymap defined!"
|
||||
#endif
|
||||
|
|
|
@ -500,6 +500,8 @@ jewels.160x128x16.bmp
|
|||
jewels.220x176x16.bmp
|
||||
#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 220)
|
||||
jewels.220x176x16.bmp
|
||||
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 240)
|
||||
jewels.240x240x16.bmp
|
||||
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 320)
|
||||
jewels.320x240x16.bmp
|
||||
#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240)
|
||||
|
|
BIN
apps/plugins/bitmaps/native/jewels.240x240x16.bmp
Normal file
After Width: | Height: | Size: 53 KiB |
|
@ -612,6 +612,22 @@ enum {
|
|||
#define BJACK_QUIT BUTTON_POWER
|
||||
#define BJACK_QUIT_NAME "QUIT"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define BJACK_SELECT_NAME "A"
|
||||
#define BJACK_STAY_NAME "Y"
|
||||
#define BJACK_QUIT_NAME "START"
|
||||
#define BJACK_DOUBLE_NAME "R"
|
||||
#define BJACK_SELECT BUTTON_A
|
||||
#define BJACK_QUIT BUTTON_START
|
||||
#define BJACK_MAX BUTTON_X
|
||||
#define BJACK_MIN BUTTON_B
|
||||
#define BJACK_STAY BUTTON_Y
|
||||
#define BJACK_DOUBLEDOWN BUTTON_R
|
||||
#define BJACK_UP BUTTON_UP
|
||||
#define BJACK_DOWN BUTTON_DOWN
|
||||
#define BJACK_RIGHT BUTTON_RIGHT
|
||||
#define BJACK_LEFT BUTTON_LEFT
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -373,6 +373,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
|
|||
#define UP BUTTON_UP
|
||||
#define DOWN BUTTON_DOWN
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CONTINUE_TEXT "A To Continue"
|
||||
#define QUIT BUTTON_START
|
||||
#define LEFT BUTTON_LEFT
|
||||
#define RIGHT BUTTON_RIGHT
|
||||
#define SELECT BUTTON_A
|
||||
#define UP BUTTON_UP
|
||||
#define DOWN BUTTON_DOWN
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -546,6 +546,17 @@ F3: equal to "="
|
|||
#define CALCULATOR_CALC BUTTON_MENU
|
||||
#define CALCULATOR_CLEAR BUTTON_BACK
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define CALCULATOR_LEFT BUTTON_LEFT
|
||||
#define CALCULATOR_RIGHT BUTTON_RIGHT
|
||||
#define CALCULATOR_UP BUTTON_UP
|
||||
#define CALCULATOR_DOWN BUTTON_DOWN
|
||||
#define CALCULATOR_QUIT BUTTON_START
|
||||
#define CALCULATOR_INPUT BUTTON_A
|
||||
#define CALCULATOR_CALC BUTTON_X
|
||||
#define CALCULATOR_CLEAR BUTTON_B
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -432,6 +432,17 @@
|
|||
#define CALENDAR_NEXT_MONTH BUTTON_MENU
|
||||
#define CALENDAR_PREV_MONTH BUTTON_BACK
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CALENDAR_QUIT BUTTON_START
|
||||
#define CALENDAR_SELECT BUTTON_A
|
||||
#define CALENDAR_NEXT_WEEK BUTTON_DOWN
|
||||
#define CALENDAR_PREV_WEEK BUTTON_UP
|
||||
#define CALENDAR_NEXT_DAY BUTTON_RIGHT
|
||||
#define CALENDAR_PREV_DAY BUTTON_LEFT
|
||||
#define CALENDAR_NEXT_MONTH BUTTON_R
|
||||
#define CALENDAR_PREV_MONTH BUTTON_L
|
||||
#define CALENDAR_EVENT_MENU_NAME "A"
|
||||
|
||||
#else
|
||||
#error "No keypad setting."
|
||||
#endif
|
||||
|
|
|
@ -598,6 +598,21 @@
|
|||
#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
|
||||
#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CB_SELECT BUTTON_A
|
||||
#define CB_UP BUTTON_UP
|
||||
#define CB_DOWN BUTTON_DOWN
|
||||
#define CB_LEFT BUTTON_LEFT
|
||||
#define CB_RIGHT BUTTON_RIGHT
|
||||
#define CB_PLAY BUTTON_X
|
||||
#define CB_LEVEL BUTTON_Y
|
||||
#define CB_MENU BUTTON_B
|
||||
#define CB_RESTART BUTTON_R
|
||||
#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
|
||||
#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
|
||||
#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
|
||||
#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
|
||||
#define CB_RC_QUIT BUTTON_START
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
|
|
|
@ -408,6 +408,16 @@
|
|||
#define CHC_SETTINGS_OK BUTTON_PLAY
|
||||
#define CHC_SETTINGS_CANCEL BUTTON_BACK
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CHC_QUIT BUTTON_START
|
||||
#define CHC_STARTSTOP BUTTON_A
|
||||
#define CHC_RESET BUTTON_X
|
||||
#define CHC_MENU BUTTON_B
|
||||
#define CHC_SETTINGS_INC BUTTON_UP
|
||||
#define CHC_SETTINGS_DEC BUTTON_DOWN
|
||||
#define CHC_SETTINGS_OK BUTTON_A
|
||||
#define CHC_SETTINGS_CANCEL BUTTON_B
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -1299,6 +1299,18 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define CHIP8_KEY6 BUTTON_RIGHT
|
||||
#define CHIP8_KEY8 BUTTON_LEFT
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CHIP8_OFF BUTTON_START
|
||||
#define CHIP8_KEY1 BUTTON_Y
|
||||
#define CHIP8_KEY2 BUTTON_A
|
||||
#define CHIP8_KEY3 BUTTON_X
|
||||
#define CHIP8_KEY4 BUTTON_LEFT
|
||||
#define CHIP8_KEY5 BUTTON_UP
|
||||
#define CHIP8_KEY6 BUTTON_RIGHT
|
||||
#define CHIP8_KEY7 BUTTON_B
|
||||
#define CHIP8_KEY8 BUTTON_DOWN
|
||||
#define CHIP8_KEY9 BUTTON_R
|
||||
#define CHIP8_KEY0 BUTTON_L
|
||||
|
||||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
|
|
@ -207,6 +207,12 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define ACTION BUTTON_PLAY
|
||||
#define ACTIONTEXT "PLAY"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define QUIT BUTTON_START
|
||||
#define ACTION BUTTON_A
|
||||
#define ACTION2 BUTTON_B
|
||||
#define ACTIONTEXT "A"
|
||||
|
||||
#elif !defined(HAVE_TOUCHSCREEN)
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -325,6 +325,14 @@
|
|||
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define CLIX_BUTTON_CLICK BUTTON_PLAY
|
||||
|
||||
#elif (CONFIG_KEYPAD == RG_NANO_PAD)
|
||||
#define CLIX_BUTTON_QUIT BUTTON_START
|
||||
#define CLIX_BUTTON_LEFT BUTTON_LEFT
|
||||
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define CLIX_BUTTON_CLICK BUTTON_A
|
||||
#define CLIX_BUTTON_UP BUTTON_UP
|
||||
#define CLIX_BUTTON_DOWN BUTTON_DOWN
|
||||
|
||||
#else
|
||||
#error "no keymap"
|
||||
#endif
|
||||
|
|
|
@ -415,6 +415,16 @@
|
|||
#define CUBE_PAUSE BUTTON_PLAY
|
||||
#define CUBE_HIGHSPEED (BUTTON_PLAY|BUTTON_REPEAT)
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define CUBE_QUIT BUTTON_START
|
||||
#define CUBE_NEXT BUTTON_RIGHT
|
||||
#define CUBE_PREV BUTTON_LEFT
|
||||
#define CUBE_INC BUTTON_UP
|
||||
#define CUBE_DEC BUTTON_DOWN
|
||||
#define CUBE_MODE BUTTON_X
|
||||
#define CUBE_PAUSE BUTTON_A
|
||||
#define CUBE_HIGHSPEED BUTTON_Y
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -633,6 +633,18 @@ void I_ShutdownGraphics(void)
|
|||
#define DOOMBUTTON_ESC BUTTON_POWER
|
||||
#define DOOMBUTTON_MAP BUTTON_PREV
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define DOOMBUTTON_UP BUTTON_UP
|
||||
#define DOOMBUTTON_DOWN BUTTON_DOWN
|
||||
#define DOOMBUTTON_LEFT BUTTON_LEFT
|
||||
#define DOOMBUTTON_RIGHT BUTTON_RIGHT
|
||||
#define DOOMBUTTON_SHOOT BUTTON_R
|
||||
#define DOOMBUTTON_OPEN BUTTON_B
|
||||
#define DOOMBUTTON_ESC BUTTON_START
|
||||
#define DOOMBUTTON_ENTER BUTTON_A
|
||||
#define DOOMBUTTON_WEAPON BUTTON_X
|
||||
#define DOOMBUTTON_MAP BUTTON_Y
|
||||
|
||||
#else
|
||||
#error Keymap not defined!
|
||||
#endif
|
||||
|
|
|
@ -202,7 +202,11 @@ const unsigned char versions_builtin[7][20] =
|
|||
"TNT"
|
||||
};
|
||||
|
||||
#ifdef RG_NANO /* Path is a bit longer */
|
||||
const unsigned char wads_builtin[7][34] =
|
||||
#else
|
||||
const unsigned char wads_builtin[7][30] =
|
||||
#endif
|
||||
{
|
||||
GAMEBASE"doom1.wad",
|
||||
GAMEBASE"doom.wad",
|
||||
|
|
|
@ -509,6 +509,20 @@
|
|||
#define FLIPIT_STEP_BY_STEP (BUTTON_PLAY|BUTTON_REPEAT)
|
||||
#define FLIPIT_TOGGLE BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define FLIPIT_LEFT BUTTON_LEFT
|
||||
#define FLIPIT_RIGHT BUTTON_RIGHT
|
||||
#define FLIPIT_UP BUTTON_UP
|
||||
#define FLIPIT_DOWN BUTTON_DOWN
|
||||
#define FLIPIT_NEXT BUTTON_R
|
||||
#define FLIPIT_PREV BUTTON_L
|
||||
#define FLIPIT_QUIT BUTTON_START
|
||||
#define FLIPIT_SHUFFLE BUTTON_B
|
||||
#define FLIPIT_SOLVE BUTTON_X
|
||||
#define FLIPIT_STEP_BY_STEP BUTTON_Y
|
||||
#define FLIPIT_TOGGLE BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -519,6 +519,18 @@
|
|||
#define FRACTAL_PRECISION_DEC (BUTTON_BACK | BUTTON_DOWN)
|
||||
#define FRACTAL_RESET BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define FRACTAL_QUIT BUTTON_START
|
||||
#define FRACTAL_UP BUTTON_UP
|
||||
#define FRACTAL_DOWN BUTTON_DOWN
|
||||
#define FRACTAL_LEFT BUTTON_LEFT
|
||||
#define FRACTAL_RIGHT BUTTON_RIGHT
|
||||
#define FRACTAL_ZOOM_IN BUTTON_X
|
||||
#define FRACTAL_ZOOM_OUT BUTTON_B
|
||||
#define FRACTAL_PRECISION_INC BUTTON_R
|
||||
#define FRACTAL_PRECISION_DEC BUTTON_L
|
||||
#define FRACTAL_RESET BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -512,6 +512,18 @@
|
|||
#define GBN_BUTTON_MENU BUTTON_MENU
|
||||
#define GBN_BUTTON_PLAY BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define GBN_BUTTON_UP BUTTON_UP
|
||||
#define GBN_BUTTON_DOWN BUTTON_DOWN
|
||||
#define GBN_BUTTON_LEFT BUTTON_LEFT
|
||||
#define GBN_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define GBN_BUTTON_RETREAT BUTTON_L
|
||||
#define GBN_BUTTON_ADVANCE BUTTON_R
|
||||
#define GBN_BUTTON_MENU BUTTON_B
|
||||
#define GBN_BUTTON_PLAY BUTTON_A
|
||||
#define GBN_BUTTON_CONTEXT BUTTON_X
|
||||
#define GBN_BUTTON_NEXT_VAR BUTTON_Y
|
||||
|
||||
#else
|
||||
#error Unsupported keypad
|
||||
#endif
|
||||
|
|
|
@ -557,11 +557,21 @@
|
|||
#define IMGVIEW_MENU (BUTTON_PLAY|BUTTON_REPEAT)
|
||||
#define IMGVIEW_SLIDE_SHOW BUTTON_PLAY
|
||||
|
||||
|
||||
|
||||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define IMGVIEW_ZOOM_IN BUTTON_X
|
||||
#define IMGVIEW_ZOOM_OUT BUTTON_Y
|
||||
#define IMGVIEW_UP BUTTON_UP
|
||||
#define IMGVIEW_DOWN BUTTON_DOWN
|
||||
#define IMGVIEW_LEFT BUTTON_LEFT
|
||||
#define IMGVIEW_RIGHT BUTTON_RIGHT
|
||||
#define IMGVIEW_NEXT BUTTON_R
|
||||
#define IMGVIEW_PREVIOUS BUTTON_L
|
||||
#define IMGVIEW_MENU BUTTON_B
|
||||
#define IMGVIEW_QUIT BUTTON_START
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -390,6 +390,16 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define HK_SELECT "PLAY"
|
||||
#define HK_CANCEL "BACK"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define JEWELS_UP BUTTON_UP
|
||||
#define JEWELS_DOWN BUTTON_DOWN
|
||||
#define JEWELS_LEFT BUTTON_LEFT
|
||||
#define JEWELS_RIGHT BUTTON_RIGHT
|
||||
#define JEWELS_SELECT BUTTON_A
|
||||
#define JEWELS_CANCEL BUTTON_START
|
||||
#define HK_SELECT "A"
|
||||
#define HK_CANCEL "START"
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -272,6 +272,14 @@
|
|||
#define BTN_FIRE BUTTON_PLAY
|
||||
#define BTN_PAUSE BUTTON_MENU
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define BTN_UP BUTTON_UP
|
||||
#define BTN_DOWN BUTTON_DOWN
|
||||
#define BTN_LEFT BUTTON_LEFT
|
||||
#define BTN_RIGHT BUTTON_RIGHT
|
||||
#define BTN_FIRE BUTTON_A
|
||||
#define BTN_PAUSE BUTTON_START
|
||||
|
||||
#else
|
||||
#error Unsupported keypad
|
||||
#endif
|
||||
|
|
|
@ -277,6 +277,15 @@ const struct button_mapping pla_main_ctx[] =
|
|||
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
#elif (CONFIG_KEYPAD == RG_NANO_PAD)
|
||||
{ PLA_UP, BUTTON_UP, BUTTON_NONE },
|
||||
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
|
||||
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
|
||||
{ PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
|
||||
{ PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
|
||||
#else
|
||||
# ifndef HAVE_TOUCHSCREEN
|
||||
# error pluginlib_actions: No directions defined
|
||||
|
@ -516,6 +525,12 @@ const struct button_mapping pla_main_ctx[] =
|
|||
{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 == RG_NANO_PAD)
|
||||
{PLA_EXIT, BUTTON_START, BUTTON_NONE},
|
||||
{PLA_CANCEL, BUTTON_B, BUTTON_NONE},
|
||||
{PLA_SELECT, BUTTON_A, BUTTON_NONE},
|
||||
{PLA_SELECT_REL, BUTTON_A|BUTTON_REL, BUTTON_A},
|
||||
{PLA_SELECT_REPEAT, BUTTON_A|BUTTON_REPEAT, BUTTON_NONE},
|
||||
#else
|
||||
# ifndef HAVE_TOUCHSCREEN
|
||||
# error pluginlib_actions: No actions defined
|
||||
|
|
|
@ -336,6 +336,14 @@
|
|||
#define MIDI_VOL_DOWN BUTTON_DOWN
|
||||
#define MIDI_PLAYPAUSE BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define MIDI_QUIT BUTTON_START
|
||||
#define MIDI_FFWD BUTTON_RIGHT
|
||||
#define MIDI_REWIND BUTTON_LEFT
|
||||
#define MIDI_VOL_UP BUTTON_UP
|
||||
#define MIDI_VOL_DOWN BUTTON_DOWN
|
||||
#define MIDI_PLAYPAUSE BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -455,6 +455,16 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
# define MINESWP_LEFT BUTTON_LEFT
|
||||
# define MINESWP_RIGHT BUTTON_RIGHT
|
||||
# define MINESWP_UP BUTTON_UP
|
||||
# define MINESWP_DOWN BUTTON_DOWN
|
||||
# define MINESWP_QUIT BUTTON_START
|
||||
# define MINESWP_TOGGLE BUTTON_X
|
||||
# define MINESWP_DISCOVER BUTTON_A
|
||||
# define MINESWP_INFO BUTTON_Y
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -2592,6 +2592,12 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define MP3ENC_DONE BUTTON_BACK
|
||||
#define MP3ENC_SELECT BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define MP3ENC_PREV BUTTON_UP
|
||||
#define MP3ENC_NEXT BUTTON_DOWN
|
||||
#define MP3ENC_DONE BUTTON_START
|
||||
#define MP3ENC_SELECT BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -365,6 +365,16 @@ struct mpeg_settings settings;
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
#define MPEG_START_TIME_EXIT BUTTON_POWER
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define MPEG_START_TIME_SELECT BUTTON_A
|
||||
#define MPEG_START_TIME_LEFT BUTTON_LEFT
|
||||
#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
|
||||
#define MPEG_START_TIME_LEFT2 BUTTON_L
|
||||
#define MPEG_START_TIME_RIGHT2 BUTTON_R
|
||||
#define MPEG_START_TIME_UP BUTTON_UP
|
||||
#define MPEG_START_TIME_DOWN BUTTON_DOWN
|
||||
#define MPEG_START_TIME_EXIT BUTTON_START
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -498,6 +498,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define MPEG_MENU BUTTON_START
|
||||
#define MPEG_STOP BUTTON_X
|
||||
#define MPEG_PAUSE BUTTON_A
|
||||
#define MPEG_VOLDOWN BUTTON_DOWN
|
||||
#define MPEG_VOLUP BUTTON_UP
|
||||
#define MPEG_RW BUTTON_LEFT
|
||||
#define MPEG_FF BUTTON_RIGHT
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -564,6 +564,18 @@
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define OSCILLOSCOPE_QUIT BUTTON_START
|
||||
#define OSCILLOSCOPE_DRAWMODE BUTTON_X
|
||||
#define OSCILLOSCOPE_ADVMODE BUTTON_Y
|
||||
#define OSCILLOSCOPE_ORIENTATION BUTTON_R
|
||||
#define OSCILLOSCOPE_GRAPHMODE BUTTON_B
|
||||
#define OSCILLOSCOPE_PAUSE BUTTON_A
|
||||
#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
|
||||
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
|
||||
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
|
||||
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -418,6 +418,17 @@
|
|||
#define PACMAN_COIN BUTTON_PLAY
|
||||
#define PACMAN_MENU BUTTON_MENU
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define PACMAN_UP BUTTON_UP
|
||||
#define PACMAN_DOWN BUTTON_DOWN
|
||||
#define PACMAN_LEFT BUTTON_LEFT
|
||||
#define PACMAN_RIGHT BUTTON_RIGHT
|
||||
#define PACMAN_1UP BUTTON_L
|
||||
#define PACMAN_2UP BUTTON_R
|
||||
#define PACMAN_COIN BUTTON_A
|
||||
#define PACMAN_MENU BUTTON_START
|
||||
|
||||
#else
|
||||
|
||||
#error Keymap not defined!
|
||||
|
|
|
@ -731,6 +731,23 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define PEGBOX_SELECT BUTTON_A
|
||||
#define PEGBOX_QUIT BUTTON_START
|
||||
#define PEGBOX_RESTART BUTTON_B
|
||||
#define PEGBOX_LVL_UP BUTTON_R
|
||||
#define PEGBOX_LVL_DOWN BUTTON_L
|
||||
#define PEGBOX_UP BUTTON_UP
|
||||
#define PEGBOX_DOWN BUTTON_DOWN
|
||||
#define PEGBOX_RIGHT BUTTON_RIGHT
|
||||
#define PEGBOX_LEFT BUTTON_LEFT
|
||||
|
||||
#define SELECT_TEXT "A"
|
||||
#define QUIT_TEXT "START"
|
||||
#define RESTART_TEXT "B"
|
||||
#define LVL_UP_TEXT "R"
|
||||
#define LVL_DOWN_TEXT "L"
|
||||
|
||||
#else
|
||||
#error "Unsupported keymap!"
|
||||
#endif
|
||||
|
|
|
@ -336,6 +336,14 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define PONG_RIGHT_UP BUTTON_BACK
|
||||
#define PONG_RIGHT_DOWN BUTTON_RIGHT
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define PONG_QUIT BUTTON_START
|
||||
#define PONG_PAUSE BUTTON_A
|
||||
#define PONG_LEFT_UP BUTTON_UP
|
||||
#define PONG_LEFT_DOWN BUTTON_DOWN
|
||||
#define PONG_RIGHT_UP BUTTON_X
|
||||
#define PONG_RIGHT_DOWN BUTTON_Y
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -373,6 +373,15 @@
|
|||
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_PLAY
|
||||
#define REVERSI_BUTTON_MENU BUTTON_MENU
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define REVERSI_BUTTON_QUIT BUTTON_START
|
||||
#define REVERSI_BUTTON_UP BUTTON_UP
|
||||
#define REVERSI_BUTTON_DOWN BUTTON_DOWN
|
||||
#define REVERSI_BUTTON_LEFT BUTTON_LEFT
|
||||
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
|
||||
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_A
|
||||
#define REVERSI_BUTTON_MENU BUTTON_B
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -484,6 +484,14 @@ static void setoptions (void)
|
|||
options.SELECT = (BUTTON_PLAY|BUTTON_MENU);
|
||||
options.MENU = BUTTON_MENU;
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
options.UP = BUTTON_UP;
|
||||
options.DOWN = BUTTON_DOWN;
|
||||
options.A = BUTTON_A;
|
||||
options.B = BUTTON_B;
|
||||
options.START = BUTTON_START;
|
||||
options.SELECT = BUTTON_FN;
|
||||
options.MENU = BUTTON_X;
|
||||
|
||||
#else
|
||||
#error No Keymap Defined!
|
||||
|
|
|
@ -369,6 +369,15 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define PUZZLE_SHUFFLE BUTTON_MENU
|
||||
#define PUZZLE_PICTURE BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define PUZZLE_QUIT BUTTON_START
|
||||
#define PUZZLE_LEFT BUTTON_LEFT
|
||||
#define PUZZLE_RIGHT BUTTON_RIGHT
|
||||
#define PUZZLE_UP BUTTON_UP
|
||||
#define PUZZLE_DOWN BUTTON_DOWN
|
||||
#define PUZZLE_SHUFFLE BUTTON_B
|
||||
#define PUZZLE_PICTURE BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -324,6 +324,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
|
|||
#define SNAKE_DOWN BUTTON_DOWN
|
||||
#define SNAKE_PLAYPAUSE BUTTON_PLAY
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define SNAKE_QUIT BUTTON_START
|
||||
#define SNAKE_LEFT BUTTON_LEFT
|
||||
#define SNAKE_RIGHT BUTTON_RIGHT
|
||||
#define SNAKE_UP BUTTON_UP
|
||||
#define SNAKE_DOWN BUTTON_DOWN
|
||||
#define SNAKE_PLAYPAUSE BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -470,6 +470,15 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#define SNAKE2_PLAYPAUSE BUTTON_PLAY
|
||||
#define SNAKE2_PLAYPAUSE_TEXT "PLAY"
|
||||
|
||||
#elif (CONFIG_KEYPAD == RG_NANO_PAD)
|
||||
#define SNAKE2_LEFT BUTTON_LEFT
|
||||
#define SNAKE2_RIGHT BUTTON_RIGHT
|
||||
#define SNAKE2_UP BUTTON_UP
|
||||
#define SNAKE2_DOWN BUTTON_DOWN
|
||||
#define SNAKE2_QUIT BUTTON_START
|
||||
#define SNAKE2_PLAYPAUSE BUTTON_A
|
||||
#define SNAKE2_PLAYPAUSE_TEXT "A"
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -714,6 +714,20 @@
|
|||
#define BUTTON_SAVE (BUTTON_MENU|BUTTON_BACK)
|
||||
#define BUTTON_SAVE_NAME "BACK"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define SOKOBAN_LEFT BUTTON_LEFT
|
||||
#define SOKOBAN_RIGHT BUTTON_RIGHT
|
||||
#define SOKOBAN_UP BUTTON_UP
|
||||
#define SOKOBAN_DOWN BUTTON_DOWN
|
||||
#define SOKOBAN_MENU BUTTON_START
|
||||
#define SOKOBAN_UNDO BUTTON_B
|
||||
#define SOKOBAN_REDO BUTTON_Y
|
||||
#define SOKOBAN_LEVEL_REPEAT BUTTON_R
|
||||
#define SOKOBAN_QUIT_REPLAY BUTTON_X
|
||||
#define SOKOBAN_PAUSE BUTTON_L
|
||||
#define BUTTON_SAVE BUTTON_A
|
||||
#define BUTTON_SAVE_NAME "A"
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -744,6 +744,23 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
# define SOL_QUIT BUTTON_POWER
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
# define SOL_QUIT BUTTON_START
|
||||
# define SOL_UP BUTTON_UP
|
||||
# define SOL_DOWN BUTTON_DOWN
|
||||
# define SOL_LEFT BUTTON_LEFT
|
||||
# define SOL_RIGHT BUTTON_RIGHT
|
||||
# define SOL_MOVE BUTTON_A
|
||||
# define SOL_DRAW BUTTON_X
|
||||
# define SOL_REM2CUR BUTTON_L
|
||||
# define SOL_CUR2STACK BUTTON_B
|
||||
# define SOL_REM2STACK BUTTON_R
|
||||
# define HK_MOVE "A"
|
||||
# define HK_DRAW "X"
|
||||
# define HK_REM2CUR "L"
|
||||
# define HK_CUR2STACK "B"
|
||||
# define HK_REM2STACK "R"
|
||||
|
||||
#elif CONFIG_KEYPAD == MA_PAD
|
||||
# define SOL_QUIT (BUTTON_LEFT|BUTTON_REPEAT)
|
||||
# define SOL_UP BUTTON_UP
|
||||
|
|
|
@ -384,6 +384,15 @@
|
|||
#define AST_RIGHT BUTTON_RIGHT
|
||||
#define AST_FIRE BUTTON_DOWN
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define AST_PAUSE BUTTON_X
|
||||
#define AST_QUIT BUTTON_START
|
||||
#define AST_THRUST BUTTON_UP
|
||||
#define AST_HYPERSPACE BUTTON_DOWN
|
||||
#define AST_LEFT BUTTON_LEFT
|
||||
#define AST_RIGHT BUTTON_RIGHT
|
||||
#define AST_FIRE BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -688,6 +688,22 @@
|
|||
#define STAR_LEVEL_DOWN_NAME "MENU+DOWN"
|
||||
#define STAR_LEVEL_REPEAT_NAME "MENU"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define STAR_QUIT BUTTON_START
|
||||
#define STAR_LEFT BUTTON_LEFT
|
||||
#define STAR_RIGHT BUTTON_RIGHT
|
||||
#define STAR_UP BUTTON_UP
|
||||
#define STAR_DOWN BUTTON_DOWN
|
||||
#define STAR_TOGGLE_CONTROL BUTTON_A
|
||||
#define STAR_LEVEL_UP BUTTON_R
|
||||
#define STAR_LEVEL_DOWN BUTTON_L
|
||||
#define STAR_LEVEL_REPEAT BUTTON_B
|
||||
#define STAR_TOGGLE_CONTROL_NAME "A"
|
||||
#define STAR_QUIT_NAME "START"
|
||||
#define STAR_LEVEL_UP_NAME "R"
|
||||
#define STAR_LEVEL_DOWN_NAME "L"
|
||||
#define STAR_LEVEL_REPEAT_NAME "B"
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
|
|
|
@ -306,6 +306,14 @@
|
|||
#define STOPWATCH_SCROLL_UP BUTTON_UP
|
||||
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define STOPWATCH_QUIT BUTTON_START
|
||||
#define STOPWATCH_START_STOP BUTTON_A
|
||||
#define STOPWATCH_RESET_TIMER BUTTON_X
|
||||
#define STOPWATCH_LAP_TIMER BUTTON_Y
|
||||
#define STOPWATCH_SCROLL_UP BUTTON_UP
|
||||
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -587,6 +587,18 @@
|
|||
#define TV_LINE_DOWN BUTTON_DOWN
|
||||
#define TV_BOOKMARK (BUTTON_MENU|BUTTON_PLAY)
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define TV_QUIT BUTTON_START
|
||||
#define TV_SCROLL_UP BUTTON_UP
|
||||
#define TV_SCROLL_DOWN BUTTON_DOWN
|
||||
#define TV_SCREEN_LEFT BUTTON_LEFT
|
||||
#define TV_SCREEN_RIGHT BUTTON_RIGHT
|
||||
#define TV_MENU BUTTON_B
|
||||
#define TV_AUTOSCROLL BUTTON_X
|
||||
#define TV_LINE_UP BUTTON_R
|
||||
#define TV_LINE_DOWN BUTTON_L
|
||||
#define TV_BOOKMARK BUTTON_A
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -468,6 +468,17 @@
|
|||
#define LABEL_MENU "MENU"
|
||||
#define LABEL_VOLUME "UP/DOWN"
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define VUMETER_QUIT BUTTON_START
|
||||
#define VUMETER_HELP BUTTON_A
|
||||
#define VUMETER_MENU BUTTON_B
|
||||
#define VUMETER_UP BUTTON_UP
|
||||
#define VUMETER_DOWN BUTTON_DOWN
|
||||
#define LABEL_HELP "A"
|
||||
#define LABEL_QUIT "START"
|
||||
#define LABEL_MENU "B"
|
||||
#define LABEL_VOLUME "UP/DOWN"
|
||||
|
||||
#else
|
||||
#error No keymap defined!
|
||||
#endif
|
||||
|
|
|
@ -363,6 +363,15 @@ CONFIG_KEYPAD == MROBE500_PAD
|
|||
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
|
||||
/* use touchscreen */
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define QUIT BUTTON_START
|
||||
#define LEFT BUTTON_LEFT
|
||||
#define RIGHT BUTTON_RIGHT
|
||||
#define UP BUTTON_UP
|
||||
#define DOWN BUTTON_DOWN
|
||||
#define PAUSE BUTTON_A
|
||||
|
||||
#else
|
||||
#error "No keymap defined!"
|
||||
#endif
|
||||
|
|
|
@ -301,6 +301,14 @@
|
|||
#define ZX_UP BUTTON_UP
|
||||
#define ZX_DOWN BUTTON_DOWN
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
#define ZX_UP BUTTON_UP
|
||||
#define ZX_DOWN BUTTON_DOWN
|
||||
#define ZX_LEFT BUTTON_LEFT
|
||||
#define ZX_RIGHT BUTTON_RIGHT
|
||||
#define ZX_SELECT BUTTON_A
|
||||
#define ZX_MENU BUTTON_START
|
||||
|
||||
#else
|
||||
#error Keymap not defined!
|
||||
|
||||
|
|
|
@ -291,6 +291,15 @@
|
|||
#define KBD_UP BUTTON_UP
|
||||
#define KBD_DOWN BUTTON_DOWN
|
||||
|
||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||
|
||||
#define KBD_SELECT BUTTON_A
|
||||
#define KBD_ABORT BUTTON_B
|
||||
#define KBD_LEFT BUTTON_LEFT
|
||||
#define KBD_RIGHT BUTTON_RIGHT
|
||||
#define KBD_UP BUTTON_UP
|
||||
#define KBD_DOWN BUTTON_DOWN
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
|
|
BIN
backdrops/cabbiev2.240x240x16.bmp
Normal file
After Width: | Height: | Size: 225 KiB |
|
@ -741,6 +741,7 @@ Mihai Alexandru Vasiliu
|
|||
Wilton Millfjord
|
||||
Pavlo Rudy
|
||||
Yannic Schmidt
|
||||
Hairo R. Carela
|
||||
|
||||
The libmad team
|
||||
The wavpack team
|
||||
|
|
|
@ -74,7 +74,9 @@ target/hosted/sdl/lcd-bitmap.c
|
|||
target/hosted/sdl/lcd-remote-bitmap.c
|
||||
#endif
|
||||
target/hosted/sdl/lcd-sdl.c
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
target/hosted/sdl/window-sdl.c
|
||||
#endif
|
||||
target/hosted/sdl/system-sdl.c
|
||||
#ifdef HAVE_SDL_THREADS
|
||||
target/hosted/sdl/filesystem-sdl.c
|
||||
|
@ -86,7 +88,9 @@ target/hosted/sdl/key_to_touch-sdl.c
|
|||
#endif
|
||||
#ifdef APPLICATION
|
||||
target/hosted/sdl/app/load_code-sdl-app.c
|
||||
#ifndef RG_NANO
|
||||
target/hosted/sdl/app/button-application.c
|
||||
#endif
|
||||
#ifdef WIN32
|
||||
target/hosted/filesystem-win32.c
|
||||
#else /* !WIN32 */
|
||||
|
@ -222,6 +226,15 @@ target/hosted/samsungypr/ypr1/wmcodec-ypr1.c
|
|||
target/hosted/maemo/maemo-thread.c
|
||||
#endif
|
||||
|
||||
#ifdef RG_NANO
|
||||
target/hosted/sysfs.c
|
||||
target/hosted/power-linux.c
|
||||
target/hosted/backlight-unix.c
|
||||
target/hosted/anbernic/power-rgnano.c
|
||||
target/hosted/anbernic/button-rgnano.c
|
||||
target/hosted/anbernic/powermgmt-rgnano.c
|
||||
#endif /* RG_NANO */
|
||||
|
||||
/* Common */
|
||||
#ifndef BOOTLOADER
|
||||
chunk_alloc.c
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include "serial.h"
|
||||
#include "power.h"
|
||||
#include "powermgmt.h"
|
||||
#ifdef HAVE_SDL
|
||||
#if defined(HAVE_SDL) && (SDL_MAJOR_VERSION > 1)
|
||||
#include "button-sdl.h"
|
||||
#else
|
||||
#include "button-target.h"
|
||||
|
|
|
@ -24,8 +24,10 @@
|
|||
#include "button.h"
|
||||
#ifdef HAVE_SDL
|
||||
#include "SDL.h"
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
#include "window-sdl.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static struct event_queue button_queue SHAREDBSS_ATTR;
|
||||
static intptr_t button_data; /* data value from last message dequeued */
|
||||
|
@ -118,7 +120,7 @@ static inline void button_queue_wait(struct queue_event *evp, int timeout)
|
|||
}
|
||||
#else
|
||||
queue_wait_w_tmo(&button_queue, evp, timeout);
|
||||
#ifdef HAVE_SDL
|
||||
#if defined(HAVE_SDL) && (SDL_MAJOR_VERSION > 1)
|
||||
sdl_window_adjust(); /* Window may have been resized */
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -223,8 +223,8 @@ struct sound_settings_info
|
|||
#include "es9018.h"
|
||||
#elif defined(HAVE_ES9218)
|
||||
#include "es9218.h"
|
||||
#elif (CONFIG_PLATFORM & (PLATFORM_ANDROID | PLATFORM_MAEMO \
|
||||
| PLATFORM_PANDORA | PLATFORM_SDL))
|
||||
#elif ((CONFIG_PLATFORM & (PLATFORM_ANDROID | PLATFORM_MAEMO \
|
||||
| PLATFORM_PANDORA | PLATFORM_SDL )) | defined(RG_NANO))
|
||||
#include "hosted_codec.h"
|
||||
#elif defined(DX50)
|
||||
#include "codec-dx50.h"
|
||||
|
|
|
@ -166,6 +166,7 @@
|
|||
#define SHANLING_Q1_PAD 74
|
||||
#define ECHO_R1_PAD 75
|
||||
#define SURFANS_F28_PAD 76
|
||||
#define RG_NANO_PAD 77
|
||||
|
||||
/* CONFIG_REMOTE_KEYPAD */
|
||||
#define H100_REMOTE 1
|
||||
|
@ -619,6 +620,8 @@ Lyre prototype 1 */
|
|||
#include "config/echor1.h"
|
||||
#elif defined(SURFANS_F28)
|
||||
#include "config/surfansf28.h"
|
||||
#elif defined(RG_NANO)
|
||||
#include "config/rgnano.h"
|
||||
#else
|
||||
//#error "unknown hwardware platform!"
|
||||
#endif
|
||||
|
|
97
firmware/export/config/rgnano.h
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* This config file is for the Anbernic RG Nano
|
||||
*/
|
||||
|
||||
/* We don't run on hardware directly */
|
||||
#define CONFIG_PLATFORM (PLATFORM_HOSTED)
|
||||
#define PIVOT_ROOT "/mnt"
|
||||
#define HAVE_FPU
|
||||
|
||||
/* For Rolo and boot loader */
|
||||
#define MODEL_NUMBER 100
|
||||
|
||||
#define MODEL_NAME "RG Nano"
|
||||
|
||||
#define USB_NONE
|
||||
|
||||
/* define this if you have a colour LCD */
|
||||
#define HAVE_LCD_COLOR
|
||||
|
||||
/* 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
|
||||
|
||||
/* LCD dimensions */
|
||||
#define LCD_WIDTH 240
|
||||
#define LCD_HEIGHT 240
|
||||
#define LCD_DEPTH 24
|
||||
#define LCD_PIXELFORMAT RGB888
|
||||
|
||||
/* define this to indicate your device's keypad */
|
||||
#define HAVE_BUTTON_DATA
|
||||
#define HAS_BUTTON_HOLD
|
||||
#define HAVE_VOLUME_IN_LIST
|
||||
|
||||
/* define this if you have a real-time clock */
|
||||
#define CONFIG_RTC APPLICATION
|
||||
|
||||
/* The number of bytes reserved for loadable codecs */
|
||||
#define CODEC_SIZE 0x400000
|
||||
|
||||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x800000
|
||||
|
||||
#define AB_REPEAT_ENABLE
|
||||
|
||||
/* Battery stuff */
|
||||
#define CONFIG_BATTERY_MEASURE PERCENTAGE_MEASURE
|
||||
#define CONFIG_CHARGING CHARGING_MONITOR
|
||||
#define HAVE_POWEROFF_WHILE_CHARGING
|
||||
#define BATTERY_DEV_NAME "axp20x-battery"
|
||||
#define POWER_DEV_NAME "axp20x-usb"
|
||||
|
||||
/* Define this for LCD backlight available */
|
||||
#define BACKLIGHT_RG_NANO
|
||||
#define HAVE_BACKLIGHT
|
||||
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
|
||||
|
||||
/* Main LCD backlight brightness range and defaults */
|
||||
#define MIN_BRIGHTNESS_SETTING 0
|
||||
#define MAX_BRIGHTNESS_SETTING 11
|
||||
#define DEFAULT_BRIGHTNESS_SETTING 4
|
||||
|
||||
#define CONFIG_KEYPAD RG_NANO_PAD
|
||||
|
||||
/* Use SDL audio/pcm in a SDL app build */
|
||||
#define HAVE_SDL
|
||||
#define HAVE_SDL_AUDIO
|
||||
|
||||
#define HAVE_SW_TONE_CONTROLS
|
||||
|
||||
/* Define this to the CPU frequency */
|
||||
/*
|
||||
#define CPU_FREQ 48000000
|
||||
*/
|
||||
|
||||
#define CONFIG_LCD LCD_COWOND2
|
||||
|
||||
/* Define this if a programmable hotkey is mapped */
|
||||
#define HAVE_HOTKEY
|
||||
|
||||
#define BOOTDIR "/.rockbox"
|
||||
|
||||
/* No special storage */
|
||||
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||
#define HAVE_STORAGE_FLUSH
|
|
@ -57,6 +57,12 @@
|
|||
#define REC_BASE_DIR HOME_DIR "Recordings"
|
||||
#define PLAYLIST_CATALOG_DEFAULT_DIR HOME_DIR "Playlists"
|
||||
|
||||
#elif RG_NANO
|
||||
#define HOME_DIR ROCKBOX_DIR
|
||||
#define PLUGIN_DIR ROCKBOX_DIR "/rocks"
|
||||
#define CODECS_DIR ROCKBOX_DIR "/codecs"
|
||||
#define REC_BASE_DIR ROCKBOX_DIR "/Recordings"
|
||||
#define PLAYLIST_CATALOG_DEFAULT_DIR ROCKBOX_DIR "/Playlists"
|
||||
#else /* APPLICATION */
|
||||
|
||||
#define HOME_DIR "<HOME>" /* replaced at runtime */
|
||||
|
|
0
firmware/target/hosted/anbernic/adc-target.h
Normal file
39
firmware/target/hosted/anbernic/backlight-target.h
Normal file
|
@ -0,0 +1,39 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2014 by Ilia Sergachev: Initial Rockbox port to iBasso DX50
|
||||
* Copyright (C) 2014 by Mario Basister: iBasso DX90 port
|
||||
* Copyright (C) 2014 by Simon Rothen: Initial Rockbox repository submission, additional features
|
||||
* Copyright (C) 2014 by Udo Schläpfer: Code clean up, additional features
|
||||
*
|
||||
* 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 _BACKLIGHT_TARGET_H_
|
||||
#define _BACKLIGHT_TARGET_H_
|
||||
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
/* See backlight.c */
|
||||
bool backlight_hw_init(void);
|
||||
void backlight_hw_on(void);
|
||||
void backlight_hw_off(void);
|
||||
void backlight_hw_brightness(int brightness);
|
||||
|
||||
|
||||
#endif
|
73
firmware/target/hosted/anbernic/button-rgnano.c
Normal file
|
@ -0,0 +1,73 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
***************************************************9*************************/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <SDL.h>
|
||||
#include "button.h"
|
||||
#include "button-target.h"
|
||||
|
||||
int key_to_button(int keyboard_key)
|
||||
{
|
||||
int new_btn = BUTTON_NONE;
|
||||
switch (keyboard_key)
|
||||
{
|
||||
case SDLK_s:
|
||||
new_btn = BUTTON_START;
|
||||
break;
|
||||
case SDLK_k:
|
||||
new_btn = BUTTON_FN;
|
||||
break;
|
||||
case SDLK_a:
|
||||
new_btn = BUTTON_A;
|
||||
break;
|
||||
case SDLK_b:
|
||||
new_btn = BUTTON_B;
|
||||
break;
|
||||
case SDLK_x:
|
||||
new_btn = BUTTON_X;
|
||||
break;
|
||||
case SDLK_y:
|
||||
new_btn = BUTTON_Y;
|
||||
break;
|
||||
case SDLK_m:
|
||||
new_btn = BUTTON_L;
|
||||
break;
|
||||
case SDLK_n:
|
||||
new_btn = BUTTON_R;
|
||||
break;
|
||||
case SDLK_u:
|
||||
new_btn = BUTTON_UP;
|
||||
break;
|
||||
case SDLK_d:
|
||||
new_btn = BUTTON_DOWN;
|
||||
break;
|
||||
case SDLK_l:
|
||||
new_btn = BUTTON_LEFT;
|
||||
break;
|
||||
case SDLK_r:
|
||||
new_btn = BUTTON_RIGHT;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return new_btn;
|
||||
}
|
47
firmware/target/hosted/anbernic/button-target.h
Normal file
|
@ -0,0 +1,47 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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_START 0x00000001
|
||||
#define BUTTON_FN 0x00000002
|
||||
#define BUTTON_A 0x00000004
|
||||
#define BUTTON_B 0x00000008
|
||||
#define BUTTON_X 0x00000010
|
||||
#define BUTTON_Y 0x00000020
|
||||
#define BUTTON_L 0x00000040
|
||||
#define BUTTON_R 0x00000080
|
||||
#define BUTTON_UP 0x00000100
|
||||
#define BUTTON_DOWN 0x00000200
|
||||
#define BUTTON_LEFT 0x00000400
|
||||
#define BUTTON_RIGHT 0x00000800
|
||||
|
||||
#define BUTTON_MAIN 0x1FFF
|
||||
|
||||
/* Software power-off */
|
||||
#define POWEROFF_BUTTON BUTTON_POWER
|
||||
#define POWEROFF_COUNT 10
|
||||
|
||||
int key_to_button(int keyboard_key);
|
||||
|
||||
#endif /* _BUTTON_TARGET_H_ */
|
41
firmware/target/hosted/anbernic/power-rgnano.c
Normal file
|
@ -0,0 +1,41 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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-rgnano.h"
|
||||
#include "power.h"
|
||||
#include "panic.h"
|
||||
#include "sysfs.h"
|
||||
|
||||
const char * const sysfs_bat_level =
|
||||
"/sys/class/power_supply/axp20x-battery/capacity";
|
||||
|
||||
unsigned int rgnano_power_get_battery_capacity(void)
|
||||
{
|
||||
int battery_level;
|
||||
sysfs_get_int(sysfs_bat_level, &battery_level);
|
||||
|
||||
return battery_level;
|
||||
}
|
27
firmware/target/hosted/anbernic/power-rgnano.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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_RGNANO_H_
|
||||
#define _POWER_RGNANO_H_
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "config.h"
|
||||
|
||||
unsigned int rgnano_power_get_battery_capacity(void);
|
||||
#endif /* _POWER_RGNANO_H_ */
|
28
firmware/target/hosted/anbernic/powermgmt-rgnano.c
Normal file
|
@ -0,0 +1,28 @@
|
|||
/***************************************************************************
|
||||
* __________ __ ___.
|
||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
* \/ \/ \/ \/ \/
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2025 Hairo R. Carela
|
||||
*
|
||||
* 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-rgnano.h"
|
||||
|
||||
int _battery_level(void)
|
||||
{
|
||||
return rgnano_power_get_battery_capacity();
|
||||
}
|
7
firmware/target/hosted/anbernic/system-target.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef __SYSTEM_TARGET_H__
|
||||
#define __SYSTEM_TARGET_H__
|
||||
|
||||
#include "../sdl/system-sdl.h"
|
||||
|
||||
#define NEED_GENERIC_BYTESWAPS
|
||||
#endif /* __SYSTEM_TARGET_H__ */
|
|
@ -31,11 +31,19 @@
|
|||
#include "panic.h"
|
||||
#include "lcd.h"
|
||||
|
||||
#ifdef BACKLIGHT_RG_NANO
|
||||
static const char * const sysfs_bl_brightness =
|
||||
"/sys/class/backlight/backlight/brightness";
|
||||
|
||||
static const char * const sysfs_bl_power =
|
||||
"/sys/class/backlight/backlight/bl_power";
|
||||
#else
|
||||
static const char * const sysfs_bl_brightness =
|
||||
"/sys/class/backlight/pwm-backlight.0/brightness";
|
||||
|
||||
static const char * const sysfs_bl_power =
|
||||
"/sys/class/backlight/pwm-backlight.0/bl_power";
|
||||
#endif
|
||||
|
||||
bool backlight_hw_init(void)
|
||||
{
|
||||
|
|
|
@ -49,7 +49,11 @@ const char * handle_special_dirs(const char *dir, unsigned flags,
|
|||
#endif /* _FILESYSTEM_APP_H_ */
|
||||
|
||||
#ifdef HAVE_SDL
|
||||
#ifdef RG_NANO
|
||||
#include "../sdl/filesystem-sdl.h"
|
||||
#else
|
||||
#include "filesystem-sdl.h"
|
||||
#endif /* RG_NANO */
|
||||
#endif /* HAVE_SDL */
|
||||
#ifdef WIN32
|
||||
#include "filesystem-win32.h"
|
||||
|
|
|
@ -32,7 +32,9 @@
|
|||
#include "backlight.h"
|
||||
#include "system.h"
|
||||
#include "button-sdl.h"
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
#include "window-sdl.h"
|
||||
#endif
|
||||
#include "sim_tasks.h"
|
||||
#include "buttonmap.h"
|
||||
#include "debug.h"
|
||||
|
@ -241,10 +243,15 @@ static void mouse_event(SDL_MouseButtonEvent *event, bool button_up)
|
|||
|
||||
static bool event_handler(SDL_Event *event)
|
||||
{
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_Keycode ev_key;
|
||||
#else
|
||||
SDLKey ev_key;
|
||||
#endif
|
||||
|
||||
switch(event->type)
|
||||
{
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
case SDL_WINDOWEVENT:
|
||||
if (event->window.event == SDL_WINDOWEVENT_FOCUS_GAINED)
|
||||
sdl_app_has_input_focus = 1;
|
||||
|
@ -263,6 +270,7 @@ static bool event_handler(SDL_Event *event)
|
|||
last_tick = current_tick;
|
||||
#endif
|
||||
}
|
||||
#endif /* SDL_MAJOR_VERSION */
|
||||
#ifdef SIMULATOR
|
||||
if (event->window.event == SDL_WINDOWEVENT_FOCUS_LOST
|
||||
|| event->window.event == SDL_WINDOWEVENT_LEAVE
|
||||
|
@ -578,8 +586,12 @@ static void button_event(int key, bool pressed)
|
|||
return;
|
||||
#endif
|
||||
#endif
|
||||
#if (CONFIG_PLATFORM & PLATFORM_PANDORA)
|
||||
#if (CONFIG_PLATFORM & PLATFORM_PANDORA) || defined(RG_NANO)
|
||||
#ifdef RG_NANO
|
||||
case SDLK_q:
|
||||
#else
|
||||
case SDLK_LCTRL:
|
||||
#endif
|
||||
/* Will post SDL_USEREVENT in shutdown_hw() if successful. */
|
||||
sys_poweroff();
|
||||
break;
|
||||
|
|
|
@ -142,7 +142,7 @@ void lcd_update_rect(int x_start, int y_start, int width, int height)
|
|||
background ? UI_LCD_POSX : 0, background? UI_LCD_POSY : 0);
|
||||
}
|
||||
|
||||
#ifdef HAVE_BACKLIGHT
|
||||
#if defined(HAVE_BACKLIGHT) && (SDL_MAJOR_VERSION > 1)
|
||||
void sim_backlight(int value)
|
||||
{
|
||||
#if LCD_DEPTH <= 8
|
||||
|
@ -185,7 +185,9 @@ void lcd_init_device(void)
|
|||
#if LCD_DEPTH >= 16
|
||||
lcd_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, SIM_LCD_WIDTH, SIM_LCD_HEIGHT,
|
||||
LCD_DEPTH, 0, 0, 0, 0);
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_SetSurfaceBlendMode(lcd_surface, SDL_BLENDMODE_BLEND);
|
||||
#endif
|
||||
#elif LCD_DEPTH <= 8
|
||||
lcd_surface = SDL_CreateRGBSurface(SDL_SWSURFACE, SIM_LCD_WIDTH, SIM_LCD_HEIGHT,
|
||||
8, 0, 0, 0, 0);
|
||||
|
|
|
@ -23,7 +23,9 @@
|
|||
#include "lcd-sdl.h"
|
||||
#include "sim-ui-defines.h"
|
||||
#include "system.h" /* for MIN() and MAX() */
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
#include "window-sdl.h"
|
||||
#endif
|
||||
|
||||
void sdl_update_rect(SDL_Surface *surface, int x_start, int y_start, int width,
|
||||
int height, int max_x, int max_y,
|
||||
|
@ -101,6 +103,8 @@ void sdl_gui_update(SDL_Surface *surface, int x_start, int y_start, int width,
|
|||
SDL_Rect src = {x_start, y_start, width, height};
|
||||
SDL_Rect dest= {ui_x + x_start, ui_y + y_start, width, height};
|
||||
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
uint8_t alpha;
|
||||
|
||||
SDL_LockMutex(window_mutex);
|
||||
|
@ -115,6 +119,14 @@ void sdl_gui_update(SDL_Surface *surface, int x_start, int y_start, int width,
|
|||
if (!sdl_window_adjust()) /* already calls sdl_window_render itself */
|
||||
sdl_window_render();
|
||||
SDL_UnlockMutex(window_mutex);
|
||||
#else
|
||||
if (surface->flags & SDL_SRCALPHA) /* alpha needs a black background */
|
||||
SDL_FillRect(gui_surface, &dest, 0);
|
||||
|
||||
SDL_BlitSurface(surface, &src, gui_surface, &dest);
|
||||
|
||||
SDL_Flip(gui_surface);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* set a range of bitmap indices to a gradient from startcolour to endcolour */
|
||||
|
@ -130,7 +142,11 @@ void sdl_set_gradient(SDL_Surface *surface, SDL_Color *start, SDL_Color *end,
|
|||
palette[i].b = start->b + (end->b - start->b) * i / (steps - 1);
|
||||
}
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_SetPaletteColors(surface->format->palette, palette, first , steps);
|
||||
#else
|
||||
SDL_SetPalette(surface, SDL_LOGPAL|SDL_PHYSPAL, palette, first, steps);
|
||||
#endif
|
||||
}
|
||||
|
||||
int lcd_get_dpi(void)
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
#include "lcd.h"
|
||||
#include "SDL.h"
|
||||
|
||||
#if SDL_MAJOR_VERSION == 1
|
||||
extern SDL_Surface *gui_surface;
|
||||
#endif
|
||||
|
||||
void sdl_update_rect(SDL_Surface *surface, int x_start, int y_start, int width,
|
||||
int height, int max_x, int max_y,
|
||||
unsigned long (*getpixel)(int, int));
|
||||
|
|
|
@ -61,7 +61,9 @@ static const void *pcm_data;
|
|||
static size_t pcm_data_size;
|
||||
static size_t pcm_sample_bytes;
|
||||
static size_t pcm_channel_bytes;
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
static SDL_AudioDeviceID pcm_devid = 0;
|
||||
#endif
|
||||
|
||||
static struct pcm_udata
|
||||
{
|
||||
|
@ -104,18 +106,26 @@ static void pcm_dma_apply_settings_nolock(void)
|
|||
wanted_spec.samples = MIX_FRAME_SAMPLES * 2; /* Should be 2048, ie ~5ms @44KHz */
|
||||
wanted_spec.callback = sdl_audio_callback;
|
||||
wanted_spec.userdata = &udata;
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
if (pcm_devid)
|
||||
SDL_CloseAudioDevice(pcm_devid);
|
||||
|
||||
/* pulseaudio seems to be happier with smaller buffers */
|
||||
if (!strcmp("pulseaudio", SDL_GetCurrentAudioDriver()))
|
||||
wanted_spec.samples = MIX_FRAME_SAMPLES;
|
||||
#endif
|
||||
|
||||
/* Open the audio device and start playing sound! */
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
if((pcm_devid = SDL_OpenAudioDevice(audiodev, 0, &wanted_spec, &obtained, SDL_AUDIO_ALLOW_SAMPLES_CHANGE)) == 0) {
|
||||
#else
|
||||
if(SDL_OpenAudio(&wanted_spec, &obtained) < 0) {
|
||||
#endif
|
||||
panicf("Unable to open audio: %s", SDL_GetError());
|
||||
return;
|
||||
}
|
||||
|
||||
switch (obtained.format)
|
||||
{
|
||||
case AUDIO_U8:
|
||||
|
@ -128,12 +138,14 @@ static void pcm_dma_apply_settings_nolock(void)
|
|||
case AUDIO_S16MSB:
|
||||
pcm_channel_bytes = 2;
|
||||
break;
|
||||
#if SDL_MAJOR_VERSION > 1 /* Not supported by SDL 1.2 */
|
||||
case AUDIO_S32MSB:
|
||||
case AUDIO_S32LSB:
|
||||
case AUDIO_F32MSB:
|
||||
case AUDIO_F32LSB:
|
||||
pcm_channel_bytes = 4;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
panicf("Unknown sample format obtained: %u",
|
||||
(unsigned)obtained.format);
|
||||
|
@ -161,12 +173,21 @@ void pcm_play_dma_start(const void *addr, size_t size)
|
|||
pcm_data = addr;
|
||||
pcm_data_size = size;
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_PauseAudioDevice(pcm_devid, 0);
|
||||
#else
|
||||
SDL_PauseAudio(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void pcm_play_dma_stop(void)
|
||||
{
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_PauseAudioDevice(pcm_devid, 1);
|
||||
#else
|
||||
SDL_PauseAudio(1);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
if (udata.debug != NULL) {
|
||||
fclose(udata.debug);
|
||||
|
|
|
@ -33,7 +33,9 @@
|
|||
#include "thread-sdl.h"
|
||||
#include "system-sdl.h"
|
||||
#include "sim-ui-defines.h"
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
#include "window-sdl.h"
|
||||
#endif
|
||||
#include "button-sdl.h"
|
||||
#include "lcd-bitmap.h"
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
|
@ -50,6 +52,10 @@
|
|||
|
||||
#define SIMULATOR_DEFAULT_ROOT "simdisk"
|
||||
|
||||
#if SDL_MAJOR_VERSION == 1
|
||||
SDL_Surface *gui_surface;
|
||||
#endif
|
||||
|
||||
bool background = true; /* use backgrounds by default */
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
bool showremote = true; /* include remote by default */
|
||||
|
@ -92,7 +98,7 @@ static int sdl_event_thread(void * param)
|
|||
SDL_sem *wait_for_maemo_startup;
|
||||
#endif
|
||||
|
||||
#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA))
|
||||
#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA)) || defined(RG_NANO)
|
||||
/* SDL touch screen fix: Work around a SDL assumption that returns
|
||||
relative mouse coordinates when you get to the screen edges
|
||||
using the touchscreen and a disabled mouse cursor.
|
||||
|
@ -112,6 +118,27 @@ static int sdl_event_thread(void * param)
|
|||
SDL_DestroySemaphore(wait_for_maemo_startup);
|
||||
#endif
|
||||
|
||||
#if SDL_MAJOR_VERSION == 1
|
||||
SDL_InitSubSystem(SDL_INIT_VIDEO);
|
||||
|
||||
SDL_Surface *picture_surface = NULL;
|
||||
int depth;
|
||||
Uint32 flags;
|
||||
|
||||
depth = LCD_DEPTH;
|
||||
if (depth < 8)
|
||||
depth = 16;
|
||||
|
||||
flags = SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN;
|
||||
|
||||
if ((gui_surface = SDL_SetVideoMode(LCD_WIDTH, LCD_HEIGHT, depth, flags)) == NULL) {
|
||||
panicf("%s", SDL_GetError());
|
||||
}
|
||||
|
||||
if (background && picture_surface != NULL)
|
||||
SDL_BlitSurface(picture_surface, NULL, gui_surface, NULL);
|
||||
#endif
|
||||
|
||||
/* let system_init proceed */
|
||||
SDL_SemPost((SDL_sem *)param);
|
||||
|
||||
|
@ -189,8 +216,11 @@ void sim_do_exit()
|
|||
#endif
|
||||
|
||||
sim_kernel_shutdown();
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_UnlockMutex(window_mutex);
|
||||
SDL_DestroyMutex(window_mutex);
|
||||
#endif
|
||||
|
||||
SDL_Quit();
|
||||
exit(EXIT_SUCCESS);
|
||||
|
@ -228,12 +258,21 @@ void system_init(void)
|
|||
|
||||
#ifndef __WIN32 /* Fails on Windows */
|
||||
SDL_InitSubSystem(SDL_INIT_VIDEO);
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
sdl_window_setup();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __APPLE__ /* MacOS requires events to be handled on main thread */
|
||||
s = SDL_CreateSemaphore(0); /* 0-count so it blocks */
|
||||
evt_thread = SDL_CreateThread(sdl_event_thread, NULL, s);
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
evt_thread = SDL_CreateThread(sdl_event_thread, NULL, s);
|
||||
#else
|
||||
evt_thread = SDL_CreateThread(sdl_event_thread, s);
|
||||
#endif /* SDL_MAJOR_VERSION */
|
||||
|
||||
SDL_SemWait(s);
|
||||
/* cleanup */
|
||||
SDL_DestroySemaphore(s);
|
||||
|
@ -311,6 +350,7 @@ void sys_handle_argv(int argc, char *argv[])
|
|||
printf("Disabling remote image.\n");
|
||||
}
|
||||
#endif
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
else if (!strcmp("--zoom", argv[x]))
|
||||
{
|
||||
x++;
|
||||
|
@ -320,6 +360,7 @@ void sys_handle_argv(int argc, char *argv[])
|
|||
display_zoom = 2;
|
||||
printf("Window zoom is %f\n", display_zoom);
|
||||
}
|
||||
#endif
|
||||
else if (!strcmp("--alarm", argv[x]))
|
||||
{
|
||||
sim_alarm_wakeup = true;
|
||||
|
@ -374,7 +415,9 @@ void sys_handle_argv(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
if (display_zoom != 1) {
|
||||
background = false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -340,7 +340,12 @@ unsigned int create_thread(void (*function)(void),
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if SDL_MAJOR_VERSION > 1
|
||||
SDL_Thread *t = SDL_CreateThread(runthread, NULL, thread);
|
||||
#else
|
||||
SDL_Thread *t = SDL_CreateThread(runthread, thread);
|
||||
#endif
|
||||
|
||||
if (t == NULL)
|
||||
{
|
||||
DEBUGF("Failed to create SDL thread\n");
|
||||
|
|
7
packaging/rgnano/config.cfg
Normal file
|
@ -0,0 +1,7 @@
|
|||
# .cfg file created by rockbox c145f41658-250621 - http://www.rockbox.org
|
||||
|
||||
idle poweroff: 0
|
||||
font: /FunKey/rockbox/fonts/16-WenQangYi-Unibit.fnt
|
||||
database scan paths: /Music
|
||||
qs top: brightness
|
||||
qs bottom: brightness
|
BIN
packaging/rgnano/icon.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
5
packaging/rgnano/mapping.key
Normal file
|
@ -0,0 +1,5 @@
|
|||
UNMAP FN+Y
|
||||
UNMAP FN+A
|
||||
UNMAP FN+B
|
||||
UNMAP FN+X
|
||||
MAP START+FN TO KEY KEY_H
|
40
packaging/rgnano/rgnano.make
Normal file
|
@ -0,0 +1,40 @@
|
|||
RG_NANO_DIR=$(ROOTDIR)/packaging/rgnano
|
||||
MKSQUASHFS=$(dir $(CPP))mksquashfs
|
||||
INSTALL_DIR=$(OPK_BUILD_DIR)/install
|
||||
OPK_BUILD_DIR=opkdir
|
||||
|
||||
opkdir:
|
||||
mkdir $(OPK_BUILD_DIR)
|
||||
|
||||
opkclean:
|
||||
rm -rf $(OPK_BUILD_DIR)
|
||||
|
||||
opk: opkclean opkdir $(MKSQUASHFS) build
|
||||
make PREFIX=$(OPK_BUILD_DIR)/rockbox fullinstall
|
||||
|
||||
# Install opk files
|
||||
cp $(RG_NANO_DIR)/icon.png $(OPK_BUILD_DIR)
|
||||
cp $(RG_NANO_DIR)/mapping.key $(OPK_BUILD_DIR)
|
||||
cp $(RG_NANO_DIR)/rockbox.funkey-s.desktop $(OPK_BUILD_DIR)
|
||||
cp $(RG_NANO_DIR)/config.cfg $(OPK_BUILD_DIR)
|
||||
cp $(RG_NANO_DIR)/run.sh $(OPK_BUILD_DIR)
|
||||
|
||||
# Organize files
|
||||
mkdir $(INSTALL_DIR)
|
||||
mv $(OPK_BUILD_DIR)/rockbox/bin/rockbox $(INSTALL_DIR)
|
||||
mv $(OPK_BUILD_DIR)/rockbox/lib/rockbox/* $(INSTALL_DIR)
|
||||
mv $(OPK_BUILD_DIR)/rockbox/share/rockbox/* $(INSTALL_DIR)
|
||||
|
||||
rm -rf $(OPK_BUILD_DIR)/rockbox
|
||||
mv $(INSTALL_DIR)/rockbox $(OPK_BUILD_DIR)
|
||||
|
||||
# Plugin workarounds
|
||||
mkdir $(INSTALL_DIR)/rocks.data
|
||||
mv $(INSTALL_DIR)/rocks/games/.picross $(INSTALL_DIR)/rocks.data/.picross
|
||||
|
||||
# Permissions
|
||||
chmod +x $(OPK_BUILD_DIR)/rockbox
|
||||
chmod +x $(OPK_BUILD_DIR)/run.sh
|
||||
|
||||
# Make opk
|
||||
$(MKSQUASHFS) $(OPK_BUILD_DIR) rockbox_funkey-s.opk -all-root -noappend -no-exports -no-xattrs
|
9
packaging/rgnano/rockbox.funkey-s.desktop
Normal file
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=Rockbox
|
||||
Comment=Open source jukebox firmware
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Exec=run.sh
|
||||
Icon=icon
|
||||
Categories=applications
|
||||
FK-Keymap=mapping.key
|
38
packaging/rgnano/run.sh
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh
|
||||
|
||||
RBDIR=/mnt/FunKey/rockbox
|
||||
CFGFILE=$RBDIR/config.cfg
|
||||
BLPATH=/sys/class/backlight/backlight/brightness
|
||||
|
||||
# Install the rockbox folder
|
||||
if [ ! -d $RBDIR ]; then
|
||||
notif set 0 " Installing rockbox..."
|
||||
mkdir -p $RBDIR
|
||||
cp -r ./install/* $RBDIR
|
||||
notif clear
|
||||
else
|
||||
OPKV=$(cat ./install/rockbox-info.txt | grep Version: | cut -d'-' -f2)
|
||||
SDV=$(cat $RBDIR/rockbox-info.txt | grep Version: | cut -d'-' -f2)
|
||||
|
||||
if [[ $OPKV -gt $SDV ]]; then
|
||||
notif set 0 " Updating rockbox..."
|
||||
cp -r -f -u ./install/* $RBDIR
|
||||
notif clear
|
||||
fi
|
||||
fi
|
||||
|
||||
# Copy default config
|
||||
if [ ! -f $CFGFILE ]; then
|
||||
mkdir -p $(dirname $CFGFILE)
|
||||
cp ./config.cfg $CFGFILE
|
||||
fi
|
||||
|
||||
# Get current volume/brightness -> launch rockbox -> restore previous values
|
||||
CUR_VOL=$(volume get)
|
||||
CUR_BL=$(cat $BLPATH)
|
||||
volume set 100
|
||||
|
||||
./rockbox
|
||||
|
||||
volume set $CUR_VOL
|
||||
echo $CUR_BL > $BLPATH
|
96
tools/configure
vendored
|
@ -964,6 +964,53 @@ mipsellinuxcc () {
|
|||
prefixtools "mipsel-rockbox-linux-gnu-"
|
||||
}
|
||||
|
||||
rgnanocc () {
|
||||
if [ -z "$FUNKEY_SDK_PATH" ]; then
|
||||
echo "ERROR: You need the FunKey-SDK installed and have the FUNKEY_SDK_PATH"
|
||||
echo "environment variable point to the root directory of the FunKey-SDK."
|
||||
echo "More info at https://wiki.funkey-project.com/wiki/Setting_up_the_SDK"
|
||||
exit
|
||||
fi
|
||||
|
||||
$FUNKEY_SDK_PATH/relocate-sdk.sh
|
||||
|
||||
arch="arm"
|
||||
arch_version="7"
|
||||
arch_profile="classic"
|
||||
|
||||
CC=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-gcc
|
||||
CPP=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-cpp
|
||||
LD=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-ld
|
||||
AR=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-gcc-ar
|
||||
AS=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-as
|
||||
OC=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-objcopy
|
||||
WINDRES=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-windres
|
||||
DLLTOOL=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-dlltool
|
||||
DLLWRAP=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-dllwrap
|
||||
RANLIB=$FUNKEY_SDK_PATH/bin/arm-funkey-linux-musleabihf-gcc-ranlib
|
||||
|
||||
GCCOPTS=`echo $CCOPTS | sed -e s/\ -ffreestanding// -e s/\ -nostdlib// -e s/\ -Wundef//`
|
||||
|
||||
if [ "yes" = "$use_debug" ]; then
|
||||
GCCOPTS=`echo $GCCOPTS | sed -e s/\ -Os/\ -Og/`
|
||||
fi
|
||||
|
||||
GCCOPTS="$GCCOPTS -fno-builtin -g -Wno-unused-result"
|
||||
GCCOPTS="$GCCOPTS -I$FUNKEY_SDK_PATH/arm-funkey-linux-musleabihf/sysroot/usr/include/SDL"
|
||||
GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -D_REENTRANT -masm-syntax-unified"
|
||||
|
||||
SHARED_LDFLAGS="-shared"
|
||||
SHARED_CFLAGS="-fPIC -fvisibility=hidden"
|
||||
|
||||
LDOPTS="-lm -ldl $LDOPTS -L$FUNKEY_SDK_PATH/arm-funkey-linux-musleabihf/sysroot/usr/lib -lSDL -lpthread"
|
||||
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs"
|
||||
|
||||
thread_support="HAVE_SDL_THREADS"
|
||||
sdl="$FUNKEY_SDK_PATH/arm-funkey-linux-musleabihf/sysroot/usr/bin/sdl-config"
|
||||
rbdir="/FunKey/rockbox"
|
||||
}
|
||||
|
||||
|
||||
do_bootloader() {
|
||||
appsdir='$(ROOTDIR)/bootloader'
|
||||
apps="bootloader"
|
||||
|
@ -1720,19 +1767,19 @@ cat <<EOF
|
|||
225) NWZ-E580 series 206) Android MIPS 251) 770
|
||||
226) NWZ-A10 series 207) Android x86 252) 800
|
||||
227) NW-A20 series 208) Samsung YP-R1
|
||||
228) NWZ-A860 series ==AgpTek==
|
||||
229) NWZ-S750 series ==iBasso== 240) Rocker
|
||||
232) DX50
|
||||
==FiiO== 233) DX90 ==AIGO==
|
||||
244) M3K Linux 245) Eros Q / K
|
||||
246) M3K baremetal ==xDuoo== 247) Eros Q / K native
|
||||
241) X3 (hw1/hw2 bl, all hw rb)
|
||||
==Shanling== 242) X3II 248) Eros Q / K native
|
||||
260) Q1 243) X20 (hw3 bl only)
|
||||
249) Eros Q / K native
|
||||
==Surfans== (hw4 bl only)
|
||||
==Echo project== 280) F28 (WIP)
|
||||
270) Echo R1 (WIP)
|
||||
228) NWZ-A860 series 209) Anbernic RG Nano ==AgpTek==
|
||||
229) NWZ-S750 series 240) Rocker
|
||||
==iBasso==
|
||||
==FiiO== 232) DX50 ==AIGO==
|
||||
244) M3K Linux 233) DX90 245) Eros Q / K
|
||||
246) M3K baremetal 247) Eros Q / K native
|
||||
==xDuoo== (hw1/hw2 bl, all hw rb)
|
||||
==Shanling== 241) X3 248) Eros Q / K native
|
||||
260) Q1 242) X3II (hw3 bl only)
|
||||
243) X20 249) Eros Q / K native
|
||||
(hw4 bl only)
|
||||
==Echo project== ==Surfans==
|
||||
270) Echo R1 (WIP) 280) F28 (WIP)
|
||||
EOF
|
||||
|
||||
buildfor=`input`;
|
||||
|
@ -3600,6 +3647,29 @@ fi
|
|||
t_model="ypr1"
|
||||
;;
|
||||
|
||||
209|rgnano)
|
||||
target_id=120
|
||||
application="yes"
|
||||
modelname="rgnano"
|
||||
app_type="sdl-app"
|
||||
target="RG_NANO"
|
||||
memory=32
|
||||
uname=`uname`
|
||||
rgnanocc
|
||||
tool="cp "
|
||||
boottool="cp "
|
||||
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
|
||||
bmp2rb_native="$rootdir/tools/bmp2rb -f 9"
|
||||
output="rockbox"
|
||||
bootoutput="rockbox"
|
||||
appextra="recorder:gui"
|
||||
plugins="yes"
|
||||
t_cpu="hosted"
|
||||
t_manufacturer="anbernic"
|
||||
t_model="rgnano"
|
||||
extradefines="$extradefines -DOS_USE_BYTESWAP_H"
|
||||
;;
|
||||
|
||||
210|hifietma9)
|
||||
target_id=83
|
||||
modelname="hifietma9"
|
||||
|
|
|
@ -168,6 +168,9 @@ else # core
|
|||
ifneq (,$(findstring pandora, $(MODELNAME)))
|
||||
include $(ROOTDIR)/packaging/pandora/pandora.make
|
||||
endif
|
||||
ifneq (,$(findstring rgnano, $(MODELNAME)))
|
||||
include $(ROOTDIR)/packaging/rgnano/rgnano.make
|
||||
endif
|
||||
|
||||
endif # bootloader
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ wps.320x480x(16|24|32): cabbiev2.320x480x16.wps
|
|||
wps.320x240x(16|24|32): cabbiev2.320x240x16.wps
|
||||
wps.240x400x(16|24|32): cabbiev2.240x400x16.wps
|
||||
wps.240x320x(16|24|32): cabbiev2.240x320x16.wps
|
||||
wps.240x240x(16|24|32): cabbiev2.240x240x16.wps
|
||||
wps.220x176x(16|24|32): cabbiev2.220x176x16.wps
|
||||
wps.176x220x(16|24|32): cabbiev2.176x220x16.wps
|
||||
wps.176x132x(16|24|32): cabbiev2.176x132x16.wps
|
||||
|
@ -117,6 +118,7 @@ Font.320x480x(16|24|32): 27-Adobe-Helvetica.fnt
|
|||
Font.320x240x(16|24|32): 15-Adobe-Helvetica.fnt
|
||||
Font.240x400x(16|24|32): 16-Adobe-Helvetica.fnt
|
||||
Font.240x320x(16|24|32): 18-Adobe-Helvetica.fnt
|
||||
Font.240x240x(16|24|32): 16-WenQangYi-Unibit.fnt
|
||||
Font.220x176x(16|24|32): 12-Adobe-Helvetica.fnt
|
||||
Font.176x220x(16|24|32): 12-Adobe-Helvetica.fnt
|
||||
Font.176x132x(16|24|32): 12-Adobe-Helvetica.fnt
|
||||
|
@ -149,6 +151,7 @@ backdrop.400x240x(16|24|32): backdrops/cabbiev2.400x240x16.bmp
|
|||
backdrop.360x400x(16|24|32): backdrops/cabbiev2.360x400x16.bmp
|
||||
backdrop.320x480x(16|24|32): backdrops/cabbiev2.320x480x16.bmp
|
||||
backdrop.320x240x(16|24|32): backdrops/cabbiev2.320x240x16.bmp
|
||||
backdrop.240x240x(16|24|32): backdrops/cabbiev2.240x240x16.bmp
|
||||
backdrop.128x128x(16|24|32): backdrops/cabbiev2.128x128x16.bmp
|
||||
backdrop.128x128x2: backdrops/cabbiev2.128x128x2.bmp
|
||||
backdrop.128x160x(16|24|32): backdrops/cabbiev2.128x160x16.bmp
|
||||
|
@ -176,6 +179,7 @@ iconset.400x240x(16|24|32): icons/tango_icons.16x16.bmp
|
|||
iconset.360x400x(16|24|32): icons/tango_icons.32x32.bmp
|
||||
iconset.320x480x(16|24|32): icons/tango_icons.24x24.bmp
|
||||
iconset.320x240x(16|24|32): icons/tango_icons.16x16.bmp
|
||||
iconset.240x240x(16|24|32): icons/tango_icons.16x16.bmp
|
||||
iconset.128x128x(16|24|32): icons/tango_icons.12x12.bmp
|
||||
iconset.128x160x(16|24|32): icons/tango_icons.12x12.bmp
|
||||
iconset.132x80x(16|24|32): icons/tango_icons.12x12.bmp
|
||||
|
@ -196,6 +200,7 @@ viewers iconset.400x240x(16|24|32): icons/tango_icons_viewers.16x16.bmp
|
|||
viewers iconset.360x400x(16|24|32): icons/tango_icons_viewers.32x32.bmp
|
||||
viewers iconset.320x480x(16|24|32): icons/tango_icons_viewers.24x24.bmp
|
||||
viewers iconset.320x240x(16|24|32): icons/tango_icons_viewers.16x16.bmp
|
||||
viewers iconset.240x240x(16|24|32): icons/tango_icons_viewers.16x16.bmp
|
||||
viewers iconset.128x128x(16|24|32): icons/tango_icons_viewers.12x12.bmp
|
||||
viewers iconset.128x160x(16|24|32): icons/tango_icons_viewers.12x12.bmp
|
||||
viewers iconset.132x80x(16|24|32): icons/tango_icons_viewers.12x12.bmp
|
||||
|
|
83
wps/cabbiev2.240x240x16.wps
Normal file
|
@ -0,0 +1,83 @@
|
|||
# Cabbie v2.0
|
||||
# (C) 2007-2012 The Authors (see /rockbox/wps/AUTHORS)
|
||||
# Derived from "cabbie" (C) Yohann Misquitta
|
||||
#
|
||||
# Disable Status Bar
|
||||
%wd
|
||||
#
|
||||
#
|
||||
# Preload Fonts
|
||||
%Fl(3,14-Rockbox-Mix.fnt)
|
||||
#
|
||||
# Load Backdrop
|
||||
%X(wpsbackdrop-240x240x16.bmp)
|
||||
#
|
||||
# Preload Images
|
||||
%xl(A,lock-240x240x16.bmp,0,0,2)
|
||||
%xl(B,battery-240x240x16.bmp,0,0,10)
|
||||
%xl(C,volume-240x240x16.bmp,0,0,10)
|
||||
%xl(D,shuffle-240x240x16.bmp,0,0)
|
||||
%xl(E,repeat-240x240x16.bmp,0,0,4)
|
||||
%xl(F,playmode-240x240x16.bmp,0,0,5)
|
||||
#
|
||||
# Album Art/Info Viewport Conditional
|
||||
%?C<%Vd(a)|%Vd(b)>
|
||||
#
|
||||
# Progress Bar
|
||||
%V(10,162,220,15,-)
|
||||
%pb(0,0,220,15,pb-240x240x16.bmp)
|
||||
#
|
||||
# Hold
|
||||
%V(10,207,30,23,-)
|
||||
%?mh<%xd(Aa)|%xd(Ab)>
|
||||
#
|
||||
# Battery
|
||||
%V(47,207,44,23,-)
|
||||
%?bp<%?bc<%xd(Ba)|%xd(Bb)>|%?bl<|%xd(Bc)|%xd(Bd)|%xd(Be)|%xd(Bf)|%xd(Bg)|%xd(Bh)|%xd(Bi)|%xd(Bj)>>
|
||||
#
|
||||
# Volume
|
||||
%V(96,207,34,23,-)
|
||||
%?pv<%xd(Ca)|%xd(Cb)|%xd(Cc)|%xd(Cd)|%xd(Ce)|%xd(Cf)|%xd(Cg)|%xd(Ch)|%xd(Ci)|%xd(Cj)>
|
||||
#
|
||||
# Shuffle
|
||||
%V(137,211,37,16,-)
|
||||
%?ps<%xd(D)>
|
||||
#
|
||||
# Repeat
|
||||
%V(181,207,18,23,-)
|
||||
%?mm<|%xd(Ea)|%xd(Eb)|%xd(Ec)|%xd(Ed)>
|
||||
#
|
||||
# Playmode
|
||||
%V(206,207,24,23,-)
|
||||
%?mp<%xd(Fa)|%xd(Fb)|%xd(Fc)|%xd(Fd)|%xd(Fe)>
|
||||
#
|
||||
# Time Elapsed/Remaining
|
||||
%V(10,180,220,20,3)
|
||||
%al%pc%ac%?Sr<%pe %Sx(of) %pp|%pp %Sx(of) %pe>%ar%pr
|
||||
#
|
||||
# Album Art
|
||||
%ax%Vl(a,10,42,100,100,-)
|
||||
%Cl(0,0,100,100,c,c)
|
||||
%Cd
|
||||
#
|
||||
# Track Info - Album Art
|
||||
%ax%Vl(a,113,40,-,130,3)
|
||||
%s%al%?id<%id|%?d(1)<%d(1)|%(root%)>>
|
||||
%s%al%?it<%it|%fn>
|
||||
%s%al%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
|
||||
%s%al%?iy<%iy>
|
||||
|
||||
%s%al%Sx(Next Track:)
|
||||
%s%al%?It<%It|%Fn>
|
||||
%s%al%?Ia<%Ia|%?IA<%IA>>
|
||||
#
|
||||
# Track Info - No Album Art
|
||||
%ax%Vl(b,0,30,-,130,3)
|
||||
%s%ac%?id<%id|%?d(1)<%d(1)|%(root%)>>
|
||||
%s%ac%?it<%it|%fn>
|
||||
%s%ac%?ia<%ia|%?iA<%iA|%?d(2)<%d(2)|%(root%)>>>
|
||||
%s%ac%?iy<%iy>
|
||||
|
||||
%ac%Sx(Next Track:)
|
||||
%s%ac%?It<%It|%Fn>
|
||||
%s%ac%?Ia<%Ia|%?IA<%IA>>
|
BIN
wps/cabbiev2/battery-240x240x16.bmp
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
wps/cabbiev2/lock-240x240x16.bmp
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
wps/cabbiev2/pb-240x240x16.bmp
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
wps/cabbiev2/playmode-240x240x16.bmp
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
wps/cabbiev2/repeat-240x240x16.bmp
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
wps/cabbiev2/shuffle-240x240x16.bmp
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
wps/cabbiev2/volume-240x240x16.bmp
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
wps/cabbiev2/wpsbackdrop-240x240x16.bmp
Normal file
After Width: | Height: | Size: 225 KiB |