/* manette-0.2.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Manette", gir_namespace = "Manette", gir_version = "0.2", lower_case_cprefix = "manette_")]
namespace Manette {
	[CCode (cheader_filename = "libmanette.h", type_id = "manette_device_get_type ()")]
	public class Device : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Device ();
		public unowned string get_name ();
		public bool has_input (uint type, uint code);
		public bool has_rumble ();
		public bool has_user_mapping ();
		public void remove_user_mapping ();
		public bool rumble (uint16 strong_magnitude, uint16 weak_magnitude, uint16 milliseconds);
		public void save_user_mapping (string mapping_string);
		public signal void absolute_axis_event (Manette.Event event);
		public signal void button_press_event (Manette.Event event);
		public signal void button_release_event (Manette.Event event);
		public signal void disconnected ();
		public signal void event (Manette.Event event);
		public signal void hat_axis_event (Manette.Event event);
	}
	[CCode (cheader_filename = "libmanette.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "manette_event_get_type ()")]
	[Compact]
	public class Event {
		public bool get_absolute (out uint16 axis, out double value);
		public bool get_button (out uint16 button);
		public unowned Manette.Device get_device ();
		public Manette.EventType get_event_type ();
		public uint16 get_hardware_code ();
		public uint16 get_hardware_index ();
		public uint16 get_hardware_type ();
		public uint16 get_hardware_value ();
		public bool get_hat (out uint16 axis, out int8 value);
		public uint32 get_time ();
	}
	[CCode (cheader_filename = "libmanette.h", type_id = "manette_monitor_get_type ()")]
	public class Monitor : GLib.Object {
		[CCode (has_construct_function = false)]
		public Monitor ();
		public Manette.MonitorIter iterate ();
		public signal void device_connected (Manette.Device device);
		public signal void device_disconnected (Manette.Device device);
	}
	[CCode (cheader_filename = "libmanette.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "manette_monitor_iter_get_type ()")]
	[Compact]
	public class MonitorIter {
		public bool next (out unowned Manette.Device? device);
	}
	[CCode (cheader_filename = "libmanette.h", cprefix = "MANETTE_EVENT_", type_id = "manette_event_type_get_type ()")]
	public enum EventType {
		[CCode (cname = "MANETTE_EVENT_NOTHING")]
		EVENT_NOTHING,
		[CCode (cname = "MANETTE_EVENT_BUTTON_PRESS")]
		EVENT_BUTTON_PRESS,
		[CCode (cname = "MANETTE_EVENT_BUTTON_RELEASE")]
		EVENT_BUTTON_RELEASE,
		[CCode (cname = "MANETTE_EVENT_ABSOLUTE")]
		EVENT_ABSOLUTE,
		[CCode (cname = "MANETTE_EVENT_HAT")]
		EVENT_HAT
	}
	[CCode (cheader_filename = "libmanette.h")]
	public static GLib.Resource get_resource ();
}
