libobs: Add media key support for linux

Links up the xkb keysyms with the obs vk codes.

Fixes #7649
This commit is contained in:
Kurt Kartaltepe 2022-10-23 20:05:00 -07:00 committed by Jim
parent ec3ea1f8a0
commit a9641940cb
2 changed files with 45 additions and 0 deletions

View file

@ -1061,6 +1061,21 @@ static obs_key_t obs_nix_wayland_key_from_virtual_key(int sym)
return OBS_KEY_NUM8;
case XKB_KEY_KP_9:
return OBS_KEY_NUM9;
case XKB_KEY_XF86AudioPlay:
return OBS_KEY_VK_MEDIA_PLAY_PAUSE;
case XKB_KEY_XF86AudioStop:
return OBS_KEY_VK_MEDIA_STOP;
case XKB_KEY_XF86AudioPrev:
return OBS_KEY_VK_MEDIA_PREV_TRACK;
case XKB_KEY_XF86AudioNext:
return OBS_KEY_VK_MEDIA_NEXT_TRACK;
case XKB_KEY_XF86AudioMute:
return OBS_KEY_VK_VOLUME_MUTE;
case XKB_KEY_XF86AudioRaiseVolume:
return OBS_KEY_VK_VOLUME_DOWN;
case XKB_KEY_XF86AudioLowerVolume:
return OBS_KEY_VK_VOLUME_UP;
}
return OBS_KEY_NONE;
}
@ -1607,6 +1622,21 @@ static int obs_nix_wayland_key_to_virtual_key(obs_key_t key)
return XKB_KEY_KP_8;
case OBS_KEY_NUM9:
return XKB_KEY_KP_9;
case OBS_KEY_VK_MEDIA_PLAY_PAUSE:
return XKB_KEY_XF86AudioPlay;
case OBS_KEY_VK_MEDIA_STOP:
return XKB_KEY_XF86AudioStop;
case OBS_KEY_VK_MEDIA_PREV_TRACK:
return XKB_KEY_XF86AudioPrev;
case OBS_KEY_VK_MEDIA_NEXT_TRACK:
return XKB_KEY_XF86AudioNext;
case OBS_KEY_VK_VOLUME_MUTE:
return XKB_KEY_XF86AudioMute;
case OBS_KEY_VK_VOLUME_DOWN:
return XKB_KEY_XF86AudioRaiseVolume;
case OBS_KEY_VK_VOLUME_UP:
return XKB_KEY_XF86AudioLowerVolume;
default:
break;
}

View file

@ -673,6 +673,21 @@ static int get_keysym(obs_key_t key)
case OBS_KEY_MOUSE5:
return MOUSE_5;
case OBS_KEY_VK_MEDIA_PLAY_PAUSE:
return XF86XK_AudioPlay;
case OBS_KEY_VK_MEDIA_STOP:
return XF86XK_AudioStop;
case OBS_KEY_VK_MEDIA_PREV_TRACK:
return XF86XK_AudioPrev;
case OBS_KEY_VK_MEDIA_NEXT_TRACK:
return XF86XK_AudioNext;
case OBS_KEY_VK_VOLUME_MUTE:
return XF86XK_AudioMute;
case OBS_KEY_VK_VOLUME_DOWN:
return XF86XK_AudioRaiseVolume;
case OBS_KEY_VK_VOLUME_UP:
return XF86XK_AudioLowerVolume;
/* TODO: Implement keys for non-US keyboards */
default:;
}