#ifndef IE_IFACE_H
#define IE_IFACE_H

/*
	Ripatti Artem (c) 2011

	Этот заголовочный файл содержит описание интерфейса XInputEngine.
	Этот интерфейс пока сыроват, возможно похже будет изменяться.
*/

namespace ie
{
	class XInputEngine
	{
	public:
		// обновить информацию из ввода
		virtual void read_states()=0;

		// верно ли, что клавиша key в предыдущем фрейме
		// была в состоянии before, а в текущем - в состоянии now
		virtual bool pressed(int key, bool before, bool now)=0;

		virtual bool pressed_before(int key)=0;
		virtual bool pressed_now(int key)=0;

		// тут работа с мшой
		virtual int get_mouse_x()=0;
		virtual int get_mouse_y()=0;
		virtual bool mouse_pressed(int button, bool before, bool now)=0;
		virtual bool mouse_pressed_before(int key)=0;
		virtual bool mouse_pressed_now(int key)=0;
	};
}

#endif