#ifndef _KEYBOARD_H
#define _KEYBOARD_H

#include <string>

namespace Keyboard{

	const bool getAnyKey( int k1, int k2, int k3, int k4 );
	const bool getAnyKey( int k1, int k2, int k3 );
	const bool getAnyKey( int k1, int k2 );
	const bool getAnyKey( int k1 );

	const int readKey();
	const bool keyPressed();

	void clear();

	std::string keyToString( int key );

	extern const int A;
	extern const int B;
	extern const int C;
	extern const int D;
	extern const int E;
	extern const int F;
	extern const int G;
	extern const int H;
	extern const int I;
	extern const int J;
	extern const int K;
	extern const int L;
	extern const int M;
	extern const int N;
	extern const int O;
	extern const int P;
	extern const int Q;
	extern const int R;
	extern const int S;
	extern const int T;
	extern const int U;
	extern const int V;
	extern const int W;
	extern const int X;
	extern const int Y;
	extern const int Z;
	extern const int N0;
	extern const int N1;
	extern const int N2;
	extern const int N3;
	extern const int N4;
	extern const int N5;
	extern const int N6;
	extern const int N7;
	extern const int N8;
	extern const int N9;
	extern const int PAD_0;
	extern const int PAD_1;
	extern const int PAD_2;
	extern const int PAD_3;
	extern const int PAD_4;
	extern const int PAD_5;
	extern const int PAD_6;
	extern const int PAD_7;
	extern const int PAD_8;
	extern const int PAD_9;
	extern const int F1;
	extern const int F2;
	extern const int F3;
	extern const int F4;
	extern const int F5;
	extern const int F6;
	extern const int F7;
	extern const int F8;
	extern const int F9;
	extern const int F10;
	extern const int F11;
	extern const int F12;
	extern const int ESC;
	extern const int TILDE;
	extern const int MINUS;
	extern const int EQUALS;
	extern const int BACKSPACE;
	extern const int TAB;
	extern const int OPENBRACE;
	extern const int CLOSEBRACE;
	extern const int ENTER;
	extern const int COLON;
	extern const int QUOTE;
	extern const int BACKSLASH;
	extern const int BACKSLASH2;
	extern const int COMMA;
	extern const int STOP;
	extern const int SLASH;
	extern const int SPACE;
	extern const int INSERT;
	extern const int DEL;
	extern const int HOME;
	extern const int END;
	extern const int PGUP;
	extern const int PGDN;
	extern const int LEFT;
	extern const int RIGHT;
	extern const int UP;
	extern const int DOWN;
	extern const int SLASH_PAD;
	extern const int ASTERISK;
	extern const int MINUS_PAD;
	extern const int PLUS_PAD;
	extern const int DEL_PAD;
	extern const int ENTER_PAD;
	extern const int PRTSCR;
	extern const int PAUSE;
	extern const int C1;
	extern const int YEN;
	extern const int KANA;
	extern const int CONVERT;
	extern const int NOCONVERT;
	extern const int AT;
	extern const int CIRCUMFLEX;
	extern const int COLON2;
	extern const int KANJI;
	extern const int EQUALS_PAD;
	extern const int BACKQUOTE;
	extern const int SEMICOLON;
	extern const int COMMAND;
	extern const int UNKNOWN1;
	extern const int UNKNOWN2;
	extern const int UNKNOWN3;
	extern const int UNKNOWN4;
	extern const int UNKNOWN5;
	extern const int UNKNOWN6;
	extern const int UNKNOWN7;
	extern const int UNKNOWN8;
	extern const int MODIFIERS;
	extern const int LSHIFT;
	extern const int RSHIFT;
	extern const int LCONTROL;
	extern const int RCONTROL;
	extern const int ALT;
	extern const int ALTGR;
	extern const int LWIN;
	extern const int RWIN;
	extern const int MENU;
	extern const int SCRLOCK;
	extern const int NUMLOCK;
	extern const int CAPSLOCK;
	extern const int MAX;
}

#endif
