shithub: npe

ref: 979ae53cfee913c2d303ab0f95aaa65dace1c7b5
dir: /libnpe_sdl3/gamepad.c/

View raw version
#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;
}