//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: inputDriver.hpp
//      Краткое описание: драйвер системы ввода
//

#ifndef DSE_INPUT_INPUTDRIVER_HPP
#define DSE_INPUT_INPUTDRIVER_HPP

#include <Darkstar/Kernel/Misc/singleton.hpp>

#ifndef DIRECTINPUT_VERSION
#define DIRECTINPUT_VERSION 0x0800
#endif

#include <dinput.h>

#pragma comment(lib, "dinput8.lib")
#pragma comment(lib, "dxguid.lib")

namespace input
{
	class InputDriver : public ker::SingletonHolder<InputDriver>
	{
	private:
		LPDIRECTINPUT8 di;
		std::vector<LPDIRECTINPUTDEVICE8> devices;
	public:
		InputDriver();
		~InputDriver();

		bool init();

		LPDIRECTINPUT8 getDevice() const;
		LPDIRECTINPUTDEVICE8 createDevice(REFGUID guid);
	};
};

#endif
