From 27a8610c560b07b04ca3a4ee3ed0bdb8d1daa672 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 24 Aug 2012 13:29:28 +0200 Subject: input: add ability to disable all default bindings for an input section Add a flags parameter to mp_input_set_section(). Add a flag that defines whether bindings in the default section are used or not. This is useful for special functionality, where the normal key bindings may have unwanted effects. For example, it shouldn't be possible to seek during encoding. However, you want to be able to cancel the encoding process gracefully. For that purpose, the "encode" section of input.conf could be made exclusive: mp_input_set_section(mpctx->input, "encode", MP_INPUT_NO_DEFAULT_SECTION); And input.conf could contain this definition: RIGHT seek 10 q {encode} quit Then only the key "q" would be bound during encoding. --- input/input.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'input/input.h') diff --git a/input/input.h b/input/input.h index 04cefab46e..910561fa9f 100644 --- a/input/input.h +++ b/input/input.h @@ -166,6 +166,12 @@ enum mp_command_type { // Key FIFO was full - release events may be lost, zero button-down status #define MP_INPUT_RELEASE_ALL -5 +enum mp_input_section_flags { + // If a key binding is not defined in the current section, search the + // default section for it ("default" refers to bindings with no section + // specified, not to the default input.conf aka builtin key bindings) + MP_INPUT_NO_DEFAULT_SECTION = 1, +}; struct input_ctx; @@ -246,7 +252,8 @@ void mp_cmd_free(struct mp_cmd *cmd); struct mp_cmd *mp_cmd_clone(struct mp_cmd *cmd); // Set current input section -void mp_input_set_section(struct input_ctx *ictx, char *name); +// flags is a bitfield of enum mp_input_section_flags values +void mp_input_set_section(struct input_ctx *ictx, char *name, int flags); // Get current input section char *mp_input_get_section(struct input_ctx *ictx); -- cgit v1.2.3