Table of Contents
The AgsPort object provides you a well defined API to safe read or write data to the AgsPort. Its access is protected by mutices. All actions on ports shall happen through ::safe-read, ::safe-write, ::safe-get-property or ::safe-set-property.
AgsPort can contain various data types. But of only one type at the time. Automation happens by adjusting ports and perhaps even applying an AgsConversion. Further it contains some meta-information about plugin name and port specifier.
You can achieve this by using GValue like:
#include <glib.h> #include <glib-object.h> #include <ags/libags.h> #include <ags/libags-audio.h> AgsPort *port; GValue value = {0,}; /* create port */ port = ags_port_new(); /* initialize and set value */ g_value_init(&value, G_TYPE_FLOAT); g_value_set_float(&value, 0.0); /* perform thread-safe operation */ ags_port_safe_write(port, &value);