/*
File Name: InputEngine.h
Created By: Andy Odle
Date: Jan 28, 2010

Description: 
    
*/

#ifndef InputEngine_h
#define InputEngine_h

#include "./source/PlatformSpecific/inc/DeviceInput.h"
#include <map>
using namespace std;

class InputEngine
{
    public:

        InputEngine();
        ~InputEngine();
        
        bool IsKeyOrButtonPressed(unsigned int keyOrButton_p, bool repeatKeyOrButton_p = true);
        int XCordinate(){return xCordinate_m;}
        int YCordinate(){return yCordinate_m;}

        // These functions are called automatically by the GOC library.
        void KeyOrButtonPressed(unsigned int keyOrButtonPressed_p);
        void KeyOrButtonReleased(unsigned int keyOrButtonReleased_p);
        void SetXandYCordinate(int xCor_p, int yCor_p);

    private:

        map<unsigned int, bool> keyOrButtonPressed_m;
        map<unsigned int, bool> repeatKeyOrButton_m;
        int xCordinate_m;
        int yCordinate_m;
};

#endif
