Added effects support for virtual controllers

This commit is contained in:
Sam Lantinga
2022-05-16 07:21:28 -07:00
parent b3a18706ee
commit f0bc5c9cbf
3 changed files with 73 additions and 1 deletions

View File

@@ -312,6 +312,29 @@ static SDL_bool ShowingFront()
return showing_front;
}
static void VirtualControllerSetPlayerIndex(void *userdata, int player_index)
{
SDL_Log("Virtual Controller: player index set to %d\n", player_index);
}
static int VirtualControllerRumble(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble)
{
SDL_Log("Virtual Controller: rumble set to %d/%d\n", low_frequency_rumble, high_frequency_rumble);
return 0;
}
static int VirtualControllerRumbleTriggers(void *userdata, Uint16 left_rumble, Uint16 right_rumble)
{
SDL_Log("Virtual Controller: trigger rumble set to %d/%d\n", left_rumble, right_rumble);
return 0;
}
static int VirtualControllerSetLED(void *userdata, Uint8 red, Uint8 green, Uint8 blue)
{
SDL_Log("Virtual Controller: LED set to RGB %d,%d,%d\n", red, green, blue);
return 0;
}
static int OpenVirtualController()
{
SDL_VirtualJoystickDesc desc;
@@ -321,6 +344,10 @@ static int OpenVirtualController()
desc.type = SDL_JOYSTICK_TYPE_GAMECONTROLLER;
desc.naxes = SDL_CONTROLLER_AXIS_MAX;
desc.nbuttons = SDL_CONTROLLER_BUTTON_MAX;
desc.SetPlayerIndex = VirtualControllerSetPlayerIndex;
desc.Rumble = VirtualControllerRumble;
desc.RumbleTriggers = VirtualControllerRumbleTriggers;
desc.SetLED = VirtualControllerSetLED;
return SDL_JoystickAttachVirtualEx(&desc);
}