//------------------------------------------------------------------------------------
// irr::SJoystickInfo wrappers
//------------------------------------------------------------------------------------
extern "C" {
	
	SJoystickInfo* Irr_SJoystickInfo_new()
	{
		return new SJoystickInfo();
	}
	
	void Irr_SJoystickInfo_del(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			delete joyinfo;
			
		joyinfo=0;
	}
	
	
	u8 Irr_SJoystickInfo_getJoystick(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			return joyinfo->Joystick;
		else return 0;
	}
	
	void Irr_SJoystickInfo_setJoystick(SJoystickInfo* joyinfo, u8 joystick)
	{
		if (joyinfo)
			joyinfo->Joystick = joystick;
	}
	
	const c8* Irr_SJoystickInfo_getName(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			return joyinfo->Name.c_str();
		else return "";
	}
	
	void Irr_SJoystickInfo_setName(SJoystickInfo* joyinfo, const c8* name)
	{
		if (joyinfo)
			joyinfo->Name = stringc(name);
	}

	u32 Irr_SJoystickInfo_getButtons(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			return joyinfo->Buttons;
		else return 0;
	}
	
	void Irr_SJoystickInfo_setButtons(SJoystickInfo* joyinfo, u32 buttons)
	{
		if (joyinfo)
			joyinfo->Buttons = buttons;
	}

	u32 Irr_SJoystickInfo_getAxes(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			return joyinfo->Axes;
		else return 0;
	}
	
	void Irr_SJoystickInfo_setAxes(SJoystickInfo* joyinfo, u32 axes)
	{
		if (joyinfo)
			joyinfo->Axes = axes;
	}

	u32 Irr_SJoystickInfo_getPovHat(SJoystickInfo* joyinfo)
	{
		if (joyinfo)
			return joyinfo->PovHat;
		else return 0;
	}
	
	void Irr_SJoystickInfo_setPovHat(SJoystickInfo* joyinfo, u32 povhat)
	{
		if (joyinfo)
			joyinfo->PovHat = (povhat == 0 ? SJoystickInfo::POV_HAT_PRESENT : (povhat == 1 ? SJoystickInfo::POV_HAT_ABSENT : SJoystickInfo::POV_HAT_UNKNOWN));
	}
	
}