diff options
author | Michał Cichoń <michcic@gmail.com> | 2019-05-03 17:02:47 +0200 |
---|---|---|
committer | Michał Cichoń <michcic@gmail.com> | 2019-05-03 17:02:47 +0200 |
commit | eaa10a3950ccd8fa2a5acada4c82d6627b6214f7 (patch) | |
tree | 3012531b45cfbaba4b4c0c66e157ad20795e54ee /src/ui_readline.c | |
parent | cb6789b17f81d29c6884c27715c705083e09a5db (diff) | |
parent | c4b80765185944a5b89f3cc76568ba498bf5f3f4 (diff) | |
download | pianobar-windows-2019.05.03.tar.gz pianobar-windows-2019.05.03.tar.bz2 pianobar-windows-2019.05.03.zip |
Merge branch 'release/2019.05.03'2019.05.03
Add support for hotkeys. #20
Hotkeys can be assigned to action in configuration file ex:
hk_<action_name> = g + shift + alt + ctrl
Diffstat (limited to 'src/ui_readline.c')
-rw-r--r-- | src/ui_readline.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/ui_readline.c b/src/ui_readline.c index 5d6b7a7..687258a 100644 --- a/src/ui_readline.c +++ b/src/ui_readline.c @@ -75,6 +75,8 @@ static inline int BarReadlineEncodeUtf8 (int codePoint, char* utf8) { struct _BarReadline_t { DWORD DefaultAttr; + BarVirtualKeyHandler VirtualKeyHandler; + void *VirtualKeyHandlerUserData; }; void BarReadlineInit(BarReadline_t* rl) { @@ -85,6 +87,11 @@ void BarReadlineInit(BarReadline_t* rl) { void BarReadlineDestroy(BarReadline_t rl) { } +void BarReadlineSetVirtualKeyHandler(BarReadline_t rl, BarVirtualKeyHandler handler, void *ud) { + rl->VirtualKeyHandler = handler; + rl->VirtualKeyHandlerUserData = ud; +} + /* return size of previous UTF-8 character */ static size_t BarReadlinePrevUtf8 (char *ptr) { @@ -248,16 +255,11 @@ size_t BarReadline (char *buf, const size_t bufSize, const char *mask, char encodedCodePoint[5]; int encodedCodePointLength; - /* - if (keyCode == VK_MEDIA_PLAY_PAUSE) { - codePoint = 'p'; - PlaySoundA("SystemNotification", NULL, SND_ASYNC); - } - else if (keyCode == VK_MEDIA_NEXT_TRACK) { - codePoint = 'n'; - PlaySoundA("SystemNotification", NULL, SND_ASYNC); + if (input->VirtualKeyHandler != NULL) { + int newCodePoint = input->VirtualKeyHandler(keyCode, input->VirtualKeyHandlerUserData); + if (newCodePoint != 0) + codePoint = newCodePoint; } - */ if (codePoint <= 0x1F) break; |