#include "allegro5/allegro5.h"
#include <allegro5/allegro_opengl.h>
#include "allegro5/allegro_image.h"
#include <allegro5/allegro_direct3d.h>
#include <allegro5/allegro_native_dialog.h>
#include <allegro5/allegro_primitives.h>
#include <allegro5/allegro_font.h>
#include <allegro5/allegro_ttf.h>
#include "allegro5/allegro_audio.h"


#ifndef MYKEYBOARD_H_INCLUDED
#define MYKEYBOARD_H_INCLUDED

#define ALLEGRO_KEY_MOUSE_LCLICK    256
#define ALLEGRO_KEY_MOUSE_RCLICK    257
#define ALLEGRO_KEY_MOUSE_MCLICK    258

#define ALLEGRO_KEY_JOYSTICK_UP           259
#define ALLEGRO_KEY_JOYSTICK_LEFT         260
#define ALLEGRO_KEY_JOYSTICK_RIGHT        261
#define ALLEGRO_KEY_JOYSTICK_DOWN         262
#define ALLEGRO_KEY_JOYSTICK_BUTTON_1     263
#define ALLEGRO_KEY_JOYSTICK_BUTTON_2     264
#define ALLEGRO_KEY_JOYSTICK_BUTTON_3     265
#define ALLEGRO_KEY_JOYSTICK_BUTTON_4     266
#define ALLEGRO_KEY_JOYSTICK_BUTTON_5     267
#define ALLEGRO_KEY_JOYSTICK_BUTTON_6     268
#define ALLEGRO_KEY_JOYSTICK_BUTTON_7     269
#define ALLEGRO_KEY_JOYSTICK_BUTTON_8     270
#define ALLEGRO_KEY_JOYSTICK_BUTTON_9     271
#define ALLEGRO_KEY_JOYSTICK_BUTTON_10    272
#define ALLEGRO_KEY_JOYSTICK_BUTTON_11    273
#define ALLEGRO_KEY_JOYSTICK_BUTTON_12    274

#define KEY_TO_CHAR_MODE_ALL           0
#define KEY_TO_CHAR_MODE_FILE_NAME     1
#define KEY_TO_CHAR_MODE_NUMBERS       2

void init_mapping();
void poll_my_keyboard();
void clear_my_keyboard();
char key_to_char(int ind, int mode);

extern char Keyboard_Recently_Input[];
extern char Keyboard_Recently_Released[];
extern char Keyboard_Double_Pressed[];
extern char Keyboard_Active[];

extern int Keyboard_Time_Pressed[];
extern char Keys_To_Check[];

extern ALLEGRO_MOUSE_STATE mous;
extern ALLEGRO_KEYBOARD_STATE keyb;

extern int mouse_x, mouse_y, mouse_z, mick_x, mick_y;

#endif
