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
This commit is contained in:
Hairo R. Carela 2025-07-14 23:04:37 -04:00 committed by Solomon Peachy
parent 9d3e286454
commit 48392bab94
94 changed files with 1517 additions and 29 deletions

View file

@ -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

View 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;
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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!

View file

@ -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

View file

@ -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 */

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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",

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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!

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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!

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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!

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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!

View file

@ -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