#ifndef _CJOYSTICK_HPP_
#define _CJOYSTICK_HPP_

/*** SDL Header Files ***/
#include <SDL.h>    

/*** Custom Header Files ***/
#include "../EventEngine/cEvent.hpp"

/*** DLL Header File ***/
#include "dllExport.h"

namespace InputEngine {
	class EXPORT_FROM_MYDLL cJoystick : public EventEngine::cEvent
	{
	public:
		cJoystick();
		virtual ~cJoystick();

		///Functions
		virtual void OnEvent(const SDL_Event& event);

		virtual void OnJoyAxis(SDL_JoystickID which, Uint8 axis, Sint16 value);

		virtual void OnJoyButtonDown(SDL_JoystickID which, Uint8 button);

		virtual void OnJoyButtonUp(SDL_JoystickID which, Uint8 button);

		virtual void OnJoyHat(SDL_JoystickID which, Uint8 hat, Uint8 value);

		virtual void OnJoyBall(SDL_JoystickID which, Uint8 ball, Sint16 xrel, Sint16 yrel);

		//Used when looking for keys that have been add to the check list
		void JoystickCheck();

	};/// END CLASS DEFINITION cJoystick
}/// END NAMESPACE DEFINITION InputEngine
#endif/// END IFNDEF _CJOYSTICK_HPP_
