Allegro 5 api
#include <allegro5/allegro.h> #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d) AL_ID(a, b, c, d)
Make an event type identifier, which is a 32-bit integer. Usually, but not necessarily, this will be made from four 8-bit character codes, for example:
#define MY_EVENT_TYPE ALLEGRO_GET_EVENT_TYPE(\[aq]M\[aq],\[aq]I\[aq],\[aq]N\[aq],\[aq]E\[aq])
IDs less than 1024 are reserved for Allegro or its addons. Don\[aq]t use anything lower than ALLEGRO_GET_EVENT_TYPE(0, 0, 4, 0).
You should try to make your IDs unique so they don\[aq]t clash with any 3rd party code you may be using. Be creative. Numbering from 1024 is not creative.
If you need multiple identifiers, you could define them like this:
#define BASE_EVENT ALLEGRO_GET_EVENT_TYPE(\[aq]M\[aq],\[aq]I\[aq],\[aq]N\[aq],\[aq]E\[aq]) #define BARK_EVENT (BASE_EVENT + 0) #define MEOW_EVENT (BASE_EVENT + 1) #define SQUAWK_EVENT (BASE_EVENT + 2) /* Alternatively */ enum { BARK_EVENT = ALLEGRO_GET_EVENT_TYPE(\[aq]M\[aq],\[aq]I\[aq],\[aq]N\[aq],\[aq]E\[aq]), MEOW_EVENT, SQUAWK_EVENT };
ALLEGRO_EVENT(3alleg5), ALLEGRO_USER_EVENT(3alleg5), ALLEGRO_EVENT_TYPE_IS_USER(3alleg5)