Async message delivery
Prev | Chapter 3. Multi-/Super-threaded tree | Next

## Async message delivery

AgsMessageDelivery is a singleton. In order to get the instance of it call `AgsMessageDelivery* ags_message_delivery_get_instance()`. The library routines only provide messages until you have added an AgsMessageQueue with the appropriate namespace.

- libags - namespace used by libags.so.3, libags_thread.so.3 and libags_server.so.3
- libags-audio - namespace used by libags_audio.so.3

As you usually have one object or widget mapped to a specific object, you can poll the queue by `guint g_timeout_add(guint, GSourceFunc, gpointer)`. Then forward the event as you like. GSequencer does look for matching messages by sender using following `GList* ags_message_queue_find_sender(AgsMessageQueue*, GObject*)`. This not at least because the recipient is most of the time not defined.

Prev | Up | Next
Launching tasks | Home | Chapter 4. The soundcard and sequencer interface