krähemann.com

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.