#include <string.h>
#include "sdlhelper.h"

void SDLHelper_JoystickGetDeviceGUID(int device_index, SDL_JoystickGUID *guid)
{
	SDL_JoystickGUID t = SDL_JoystickGetDeviceGUID(device_index);
	memcpy(guid, &t, sizeof(*guid));
}

void SDLHelper_JoystickGetGUID(SDL_Joystick *joystick, SDL_JoystickGUID *guid)
{
	SDL_JoystickGUID t = SDL_JoystickGetGUID(joystick);
	memcpy(guid, &t, sizeof(*guid));
}

void SDLHelper_JoystickGetGUIDFromString(const char *pchGUID, SDL_JoystickGUID *guid)
{
	SDL_JoystickGUID t = SDL_JoystickGetGUIDFromString(pchGUID);
	memcpy(guid, &t, sizeof(*guid));
}

void SDLHelper_JoystickGetGUIDString(const SDL_JoystickGUID *guid, char *gszGUID, int cbGUID)
{
	SDL_JoystickGetGUIDString(*guid, gszGUID, cbGUID);
}

void SDLHelper_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis, SDL_GameControllerButtonBind *bind)
{
	SDL_GameControllerButtonBind t = SDL_GameControllerGetBindForAxis(gamecontroller, axis);
	memcpy(bind, &t, sizeof(*bind));
}

void SDLHelper_GameControllerGetBindForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button, SDL_GameControllerButtonBind *bind)
{
	SDL_GameControllerButtonBind t = SDL_GameControllerGetBindForButton(gamecontroller, button);
	memcpy(bind, &t, sizeof(*bind));
}

char *SDLHelper_GameControllerMappingForGUID(const SDL_JoystickGUID *guid)
{
	return SDL_GameControllerMappingForGUID(*guid);
}

int SDLHelper_RWclose(SDL_RWops *ctx)
{
	return SDL_RWclose(ctx);
}

size_t SDLHelper_RWread(SDL_RWops *ctx, void *ptr, size_t size, size_t maxnum)
{
	return SDL_RWread(ctx, ptr, size, maxnum);
}

Sint64 SDLHelper_RWseek(SDL_RWops *ctx, Sint64 offset, int whence)
{
	return SDL_RWseek(ctx, offset, whence);
}

Sint64 SDLHelper_RWtell(SDL_RWops *ctx)
{
	return SDL_RWtell(ctx);
}

size_t SDLHelper_RWwrite(SDL_RWops *ctx, const void *ptr, size_t size, size_t num)
{
	return SDL_RWwrite(ctx, ptr, size, num);
}