1
0
Fork 0
forked from len0rd/rockbox
foxbox/apps/plugins/SOURCES
William Wilgus f7bb9e2167 Add custom action mapping to core
results of an idea I discussed in IRC

changed the way the lookup in the remap file works..

 entries consist of 3 int [action, button, prebtn]
 context look up table is at the beginning
 action_code contains the (context | CONTEXT_REMAPPED)
 button_code contains the index of the first remapped action for the matched context
 [0] CORE_CONTEXT_REMAP(ctx1) offset1=(3), count=(1)
 [1] CORE_CONTEXT_REMAP(ctx2, offset2=(5), count=(1)
 [2] sentinel, 0, 0
 [3] act0, btn, 0
 [4] sentinel 0, 0
 [5] act1, btn, 0
 [6] sentinel, 0, 0

 Note:
 last entry of each group is always the sentinel [CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE]
 contexts must match exactly -- re-mapped contexts run before the built in w/ fall through contexts
 ie. you can't remap std_context and expect it to match std_context actions from the WPS context.

-- Done --

Code for reading core remap entries

-- Done --

import of core remap entires from disk
-- Done --

plugin to set new key mapping (the hard part)

The plugin is started and FULLY functional
you can add actions and contexts
you can change context, action, button, prebtn
delete keymap files
load keymapfiles
save user keymaps
test keymaps before applying them
loading keymaps to core still requires restart
-----------------------------------------------------------------------------------------------

Change-Id: Ib8b88c5ae91af4d540e1829de5db32669cd68203
2022-02-23 08:47:12 -05:00

223 lines
3.3 KiB
Text

/* plugins common to all models */
#if !defined(SIMULATOR) && (CONFIG_BATTERY_MEASURE != 0)
battery_bench.c
#endif
#ifdef HAVE_TAGCACHE
db_folder_select.c
#endif
chessclock.c
credits.c
cube.c
dict.c
jackpot.c
keybox.c
keyremap.c
logo.c
lrcplayer.c
mosaique.c
main_menu_config.c
properties.c
random_folder_advance_config.c
rb_info.c
rockblox.c
search.c
settings_dumper.c
snow.c
sort.c
stats.c
#ifdef HAVE_TOUCHSCREEN
stopwatch.lua
#else
stopwatch.c
#endif
theme_remove.c
vbrfix.c
md5sum.c
dice.c
disktidy.c
flipit.c
shopper.c
resistor.c
otp.c
windows_lnk.c
#ifdef USB_ENABLE_HID
remote_control.c
#endif
#ifdef HAVE_BACKLIGHT
lamp.c
#endif /* HAVE_BACKLIGHT */
#if defined(HAVE_RECORDING) && (defined(HAVE_LINE_IN) || defined(HAVE_MIC_IN))
pitch_detector.c
#endif
#ifdef HAVE_PITCHCONTROL
pitch_screen.c
#endif
mp3_encoder.c
wav2wv.c
#if CONFIG_RTC
alarmclock.c
#endif /* CONFIG_RTC */
/* Platform-specific */
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
iriverify.c
#endif
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) /* Requires real hardware */
#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
iriver_flash.c
#endif
#if defined(IPOD_NANO2G)
crypt_firmware.c
#endif
#endif
/* Overlays loaders */
#if defined(HAVE_LCD_COLOR) && \
(!defined(LCD_STRIDEFORMAT) || (LCD_STRIDEFORMAT != VERTICAL_STRIDE))
#if (PLUGIN_BUFFER_SIZE > 0x14000) && (CONFIG_PLATFORM & (PLATFORM_NATIVE |PLATFORM_HOSTED)) && (defined(CPU_ARM) || defined(CPU_MIPS))
duke3d.c
quake.c
wolf3d.c
#endif
#endif
#if PLUGIN_BUFFER_SIZE <= 0x20000
#if CONFIG_KEYPAD != SANSA_M200_PAD \
&& CONFIG_KEYPAD != HM60X_PAD
/* not enough buttons for rockboy */
rockboy.c
#endif
zxbox.c
chessbox.c
goban.c
pictureflow.c
#endif /* PLUGIN_BUFFER_SIZE <= 0x20000 */
metronome.c
2048.c
/* Lua needs at least 160 KB to work in */
#if PLUGIN_BUFFER_SIZE >= 0x80000
boomshine.lua
lua_scripts.lua
#ifdef HAVE_LCD_COLOR
pixel-painter.lua
#endif /* HAVE_LCD_COLOR */
#endif /* PLUGIN_BUFFER_SIZE >= 0x80000 */
rockblox1d.c
brickmania.c
calendar.c
maze.c
mazezam.c
text_editor.c
wavview.c
robotfindskitten.c
xobox.c
spacerocks.c
blackjack.c
bounce.c
bubbles.c
calculator.c
chip8.c
chopper.c
demystify.c
jewels.c
minesweeper.c
open_plugins.c
oscilloscope.c
pegbox.c
periodic_table.c
pong.c
sliding_puzzle.c
snake.c
snake2.c
solitaire.c
sokoban.c
star.c
starfield.c
vu_meter.c
wormlet.c
#ifdef HAVE_HOTKEY
announce_status.c
#endif
/* Plugins needing the grayscale lib on low-depth LCDs */
fire.c
plasma.c
#ifdef HAVE_LCD_COLOR
clix.c
codebuster.c
#endif
#if (LCD_WIDTH > 112) && (LCD_HEIGHT > 64)
fireworks.c
#endif
#if LCD_DEPTH == 16
/* FIXME: make it work with 24bit (needs lot of memory) */
rockpaint.c
#endif
rocklife.c
#if LCD_DEPTH > 1 /* non-mono bitmap targets */
matrix.c
speedread.c
#if (LCD_WIDTH > 138)
invadrox.c
superdom.c
#endif
#endif /* LCD_DEPTH > 1 */
#ifdef HAVE_TEST_PLUGINS /* enable in advanced build options */
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
test_boost.c
#endif
test_codec.c
#ifdef HAVE_JPEG
test_core_jpeg.c
#endif
test_disk.c
test_fps.c
test_gfx.c
#if LCD_DEPTH < 4 && !defined(SIMULATOR)
test_scanrate.c
#endif
#ifndef HAVE_LCD_COLOR
test_grey.c
test_greylib_bitmap_scale.c
#endif
test_mem.c
test_mem_jpeg.c
#ifdef HAVE_LCD_COLOR
test_resize.c
#endif
test_sampr.c
#ifdef HAVE_TOUCHSCREEN
test_touchscreen.c
#endif
test_viewports.c
#endif /* HAVE_TEST_PLUGINS */