fork
Configure Feed
Select the types of activity you want to include in your feed.
A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
fork
Configure Feed
Select the types of activity you want to include in your feed.
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2020 by William Wilgus
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#ifndef CORE_KEYMAP_H
22#define CORE_KEYMAP_H
23
24#include <stdbool.h>
25#include <inttypes.h>
26#include "config.h"
27#include "action.h"
28#define KEYREMAP_VERSION 1
29#define KEYREMAP_HEADERID (LAST_ACTION_PLACEHOLDER | (TARGET_ID << 8))
30
31/* If exists remap file will be loaded at startup */
32#define CORE_KEYREMAP_FILE ROCKBOX_DIR "/keyremap.kmf"
33
34/* Allocates core buffer, copies keymap to allow buttons for actions to be remapped*/
35int core_set_keyremap(struct button_mapping* core_keymap, int count);
36
37/* load a remap file to allow buttons for actions to be remapped */
38int core_load_key_remap(const char *filename);
39
40/*
41 * entries consist of 3 int [action, button, prebtn]
42 * the header (VERSION, LAST_DEFINED_ACTION, count) is stripped by open_key_remap
43 *
44 * context look up table is at the beginning
45 * action_code contains (context | CONTEXT_REMAPPED)
46 * button_code contains index of first remapped action for the matched context
47 * prebtn_code contains count of actions in this remapped context
48 * [-1] REMAP_VERSION, REMAP_HEADERID, entry count(9) / DISCARDED AFTER LOAD
49 * [0] CORE_CONTEXT_REMAP(ctx1), offset1=(3), count=(1)
50 * [1] CORE_CONTEXT_REMAP(ctx2, offset2=(5), count=(2)
51 * [2] sentinel, 0, 0
52 * [3] act0, btn, 0
53 * [4] sentinel 0, 0
54 * [5] act1, btn, 0
55 * [6] act2, btn1
56 * [7] sentinel, 0, 0
57 *
58 * Note:
59 * last entry of each group is always the sentinel [CONTEXT_STOPSEARCHING, BUTTON_NONE, BUTTON_NONE]
60 * contexts must match exactly -- re-mapped contexts run before the built in w/ fall through contexts
61 * ie. you can't remap std_context and expect it to match std_context actions from the WPS context.
62 */
63
64#endif /* CORE_KEYMAP_H */
65