SYNOPSIS

  • #include <allegro5/allegro.h>
    
    #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d)   AL_ID(a, b, c, d)
    
    

DESCRIPTION

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
    };
    
    

RELATED TO ALLEGRO_GET_EVENT_TYPE…

ALLEGRO_EVENT(3alleg5), ALLEGRO_USER_EVENT(3alleg5), ALLEGRO_EVENT_TYPE_IS_USER(3alleg5)