[client] spice: allow volume control keys to be sent to the guest

These are implemented as ScrollLock+Up/Down for volume up and down, and
ScrollLock+M to toggle audio mute. These should prove useful especially
when Looking Glass now supports streaming audio, and the volume is
defined in the guest and set on the output stream.
This commit is contained in:
Quantum 2022-01-15 00:14:47 -05:00 committed by Geoffrey McRae
parent 7c91c922e6
commit 5fe529f213
2 changed files with 14 additions and 0 deletions

View File

@ -24,6 +24,10 @@
#include <linux/input.h>
#include <stdint.h>
#define PS2_MUTE 0xE020
#define PS2_VOLUME_UP 0xE030
#define PS2_VOLUME_DOWN 0xE02E
extern const uint32_t linux_to_ps2[KEY_MAX];
extern const char * linux_to_str[KEY_MAX];
extern const char * linux_to_display[KEY_MAX];

View File

@ -133,6 +133,12 @@ static void bind_toggleOverlay(int sc, void * opaque)
app_setOverlay(!g_state.overlayInput);
}
static void bind_toggleKey(int sc, void * opaque)
{
purespice_keyDown((uintptr_t) opaque);
purespice_keyUp((uintptr_t) opaque);
}
void keybind_register(void)
{
app_registerKeybind(KEY_F, bind_fullscreen , NULL, "Full screen toggle");
@ -162,5 +168,9 @@ void keybind_register(void)
app_registerKeybind(KEY_LEFTMETA , bind_passthrough, NULL, "Send LWin to the guest");
app_registerKeybind(KEY_RIGHTMETA, bind_passthrough, NULL, "Send RWin to the guest");
app_registerKeybind(KEY_UP , bind_toggleKey, (void *) PS2_VOLUME_UP , "Send volume up to the guest");
app_registerKeybind(KEY_DOWN, bind_toggleKey, (void *) PS2_VOLUME_DOWN, "Send volume down to the guest");
app_registerKeybind(KEY_M , bind_toggleKey, (void *) PS2_MUTE , "Send mute to the guest");
}
}