/* gamepad-mapped-event.c generated by valac 0.35.5, the Vala compiler
 * generated from gamepad-mapped-event.vala, do not modify */

/* This file is part of GNOME Games. License: GPLv3*/

#include <glib.h>
#include <glib-object.h>
#include <string.h>


#define GAMES_TYPE_GAMEPAD_MAPPED_EVENT (games_gamepad_mapped_event_get_type ())

#define GAMES_TYPE_GAMEPAD_INPUT_TYPE (games_gamepad_input_type_get_type ())

#define GAMES_TYPE_STANDARD_GAMEPAD_AXIS (games_standard_gamepad_axis_get_type ())

#define GAMES_TYPE_STANDARD_GAMEPAD_BUTTON (games_standard_gamepad_button_get_type ())
typedef struct _GamesGamepadMappedEvent GamesGamepadMappedEvent;

typedef enum  {
	GAMES_GAMEPAD_INPUT_TYPE_AXIS,
	GAMES_GAMEPAD_INPUT_TYPE_BUTTON,
	GAMES_GAMEPAD_INPUT_TYPE_INVALID
} GamesGamepadInputType;

typedef enum  {
	GAMES_STANDARD_GAMEPAD_AXIS_UNKNOWN,
	GAMES_STANDARD_GAMEPAD_AXIS_LEFT_X,
	GAMES_STANDARD_GAMEPAD_AXIS_LEFT_Y,
	GAMES_STANDARD_GAMEPAD_AXIS_RIGHT_X,
	GAMES_STANDARD_GAMEPAD_AXIS_RIGHT_Y
} GamesStandardGamepadAxis;

typedef enum  {
	GAMES_STANDARD_GAMEPAD_BUTTON_UNKNOWN,
	GAMES_STANDARD_GAMEPAD_BUTTON_A,
	GAMES_STANDARD_GAMEPAD_BUTTON_B,
	GAMES_STANDARD_GAMEPAD_BUTTON_X,
	GAMES_STANDARD_GAMEPAD_BUTTON_Y,
	GAMES_STANDARD_GAMEPAD_BUTTON_SHOULDER_L,
	GAMES_STANDARD_GAMEPAD_BUTTON_SHOULDER_R,
	GAMES_STANDARD_GAMEPAD_BUTTON_TRIGGER_L,
	GAMES_STANDARD_GAMEPAD_BUTTON_TRIGGER_R,
	GAMES_STANDARD_GAMEPAD_BUTTON_SELECT,
	GAMES_STANDARD_GAMEPAD_BUTTON_START,
	GAMES_STANDARD_GAMEPAD_BUTTON_STICK_L,
	GAMES_STANDARD_GAMEPAD_BUTTON_STICK_R,
	GAMES_STANDARD_GAMEPAD_BUTTON_DPAD_UP,
	GAMES_STANDARD_GAMEPAD_BUTTON_DPAD_DOWN,
	GAMES_STANDARD_GAMEPAD_BUTTON_DPAD_LEFT,
	GAMES_STANDARD_GAMEPAD_BUTTON_DPAD_RIGHT,
	GAMES_STANDARD_GAMEPAD_BUTTON_HOME
} GamesStandardGamepadButton;

struct _GamesGamepadMappedEvent {
	GamesGamepadInputType type;
	GamesStandardGamepadAxis axis;
	GamesStandardGamepadButton button;
};



GType games_gamepad_mapped_event_get_type (void) G_GNUC_CONST;
GType games_gamepad_input_type_get_type (void) G_GNUC_CONST;
GType games_standard_gamepad_axis_get_type (void) G_GNUC_CONST;
GType games_standard_gamepad_button_get_type (void) G_GNUC_CONST;
GamesGamepadMappedEvent* games_gamepad_mapped_event_dup (const GamesGamepadMappedEvent* self);
void games_gamepad_mapped_event_free (GamesGamepadMappedEvent* self);


GamesGamepadMappedEvent* games_gamepad_mapped_event_dup (const GamesGamepadMappedEvent* self) {
	GamesGamepadMappedEvent* dup;
	dup = g_new0 (GamesGamepadMappedEvent, 1);
	memcpy (dup, self, sizeof (GamesGamepadMappedEvent));
	return dup;
}


void games_gamepad_mapped_event_free (GamesGamepadMappedEvent* self) {
	g_free (self);
}


GType games_gamepad_mapped_event_get_type (void) {
	static volatile gsize games_gamepad_mapped_event_type_id__volatile = 0;
	if (g_once_init_enter (&games_gamepad_mapped_event_type_id__volatile)) {
		GType games_gamepad_mapped_event_type_id;
		games_gamepad_mapped_event_type_id = g_boxed_type_register_static ("GamesGamepadMappedEvent", (GBoxedCopyFunc) games_gamepad_mapped_event_dup, (GBoxedFreeFunc) games_gamepad_mapped_event_free);
		g_once_init_leave (&games_gamepad_mapped_event_type_id__volatile, games_gamepad_mapped_event_type_id);
	}
	return games_gamepad_mapped_event_type_id__volatile;
}



