A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 65 lines 2.6 kB view raw
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