Skip to content

Commit

Permalink
libobs: Add media key support for linux
Browse files Browse the repository at this point in the history
Links up the xkb keysyms with the obs vk codes.

Fixes #7649
  • Loading branch information
kkartaltepe authored and jp9000 committed Oct 29, 2022
1 parent ec3ea1f commit a964194
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
30 changes: 30 additions & 0 deletions libobs/obs-nix-wayland.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down
15 changes: 15 additions & 0 deletions libobs/obs-nix-x11.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:;
}
Expand Down

0 comments on commit a964194

Please sign in to comment.