logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

al_init_user_event_source - Allegro 5 API

Description

       Initialise  an  event  source for emitting user events.  The space for the event source must already have
       been allocated.

       One possible way of creating custom event sources is to derive other structures with ALLEGRO_EVENT_SOURCE
       at the head, e.g.

              typedef struct THING THING;

              struct THING {
                  ALLEGRO_EVENT_SOURCE event_source;
                  int field1;
                  int field2;
                  /* etc. */
              };

              THING *create_thing(void)
              {
                  THING *thing = malloc(sizeof(THING));

                  if (thing) {
                      al_init_user_event_source(&thing->event_source);
                      thing->field1 = 0;
                      thing->field2 = 0;
                  }

                  return thing;
              }

       The advantage here is that the THING pointer will  be  the  same  as  the  ALLEGRO_EVENT_SOURCE  pointer.
       Events emitted by the event source will have the event source pointer as the source field, from which you
       can get a pointer to a THING by a simple cast (after ensuring checking the event is of the correct type).

       However, it is only one technique and you are not obliged to use it.

       The  user  event  source  will  never  be  destroyed  automatically.   You  must destroy it manually with
       al_destroy_user_event_source(3alleg5).

Name

       al_init_user_event_source - Allegro 5 API

See Also

ALLEGRO_EVENT_SOURCE(3alleg5),    al_destroy_user_event_source(3alleg5),     al_emit_user_event(3alleg5),
       ALLEGRO_USER_EVENT(3alleg5)

Allegro reference manual                                                      al_init_user_event_source(3alleg5)

Synopsis

              #include <allegro5/allegro.h>

              void al_init_user_event_source(ALLEGRO_EVENT_SOURCE *src)

See Also