ref: 979ae53cfee913c2d303ab0f95aaa65dace1c7b5
dir: /libnpe_sdl3/gamepad.c/
#include "_sdl.h"
enum{
Dummy,
};
struct SDL_Gamepad{
char *name;
};
static SDL_Gamepad dummy = {
.name "dummy",
};
SDL_JoystickID*
SDL_GetGamepads(int *count)
{
int n;
SDL_JoystickID *js;
//werrstr("SDL_GetGamepads: not implemented");
//return nil; // nil on failure or null terminated array to be freed with SDL_free
n = 1;
if((js = mallocz((n+1) * sizeof *js, 1)) == nil)
sysfatal("SDL_GetGamepads: %r");
js[0] = Dummy;
if(count != nil)
*count = n;
return js;
}
int
SDL_AddGamepadMappingsFromIO(SDL_IOStream *src, bool closeio)
{
return 8;
//return 0; // number of mappings or -1 on fail
}
bool
SDL_IsGamepad(SDL_JoystickID id)
{
if(id == Dummy)
return true;
return false;
}
SDL_Gamepad*
SDL_OpenGamepad(SDL_JoystickID id)
{
if(id != Dummy)
return nil;
return &dummy;
}
const char*
SDL_GetGamepadName(SDL_Gamepad *g)
{
return g->name;
}
const char*
SDL_GetGamepadStringForAxis(SDL_GamepadAxis a)
{
return "";
}
const char*
SDL_GetGamepadStringForButton(SDL_GamepadButton b)
{
return "";
}
SDL_GamepadButtonLabel
SDL_GetGamepadButtonLabelForType(SDL_GamepadType t, SDL_GamepadButton b)
{
return SDL_GAMEPAD_BUTTON_LABEL_UNKNOWN;
}
SDL_GamepadButtonLabel
SDL_GetGamepadButtonLabel(SDL_Gamepad *g, SDL_GamepadButton b)
{
return SDL_GAMEPAD_BUTTON_LABEL_UNKNOWN;
}
void
SDL_CloseGamepad(SDL_Gamepad *g)
{
USED(g);
}
void
npe_sdl_kill_gamepad(void)
{
}
int
npe_sdl_init_gamepad(void)
{
return 0;
}