diff options
Diffstat (limited to 'ext/lv2/gstlv2.h')
-rw-r--r-- | ext/lv2/gstlv2.h | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/ext/lv2/gstlv2.h b/ext/lv2/gstlv2.h index 389c03d1..85e4532e 100644 --- a/ext/lv2/gstlv2.h +++ b/ext/lv2/gstlv2.h @@ -46,16 +46,32 @@ typedef struct _lv2_control_info { typedef struct _GstLV2 GstLV2; typedef struct _GstLV2Class GstLV2Class; +typedef struct _GstLV2Group GstLV2Group; +typedef struct _GstLV2Port GstLV2Port; struct _GstLV2 { GstSignalProcessor parent; - SLV2Plugin *plugin; - SLV2Instance *instance; + SLV2Plugin plugin; + SLV2Instance instance; gboolean activated; - gboolean inplace_broken; +}; + +struct _GstLV2Group { + SLV2Value uri; /**< RDF resource (URI or blank node) */ + guint pad; /**< Gst pad index */ + SLV2Value symbol; /**< Gst pad name / LV2 group symbol */ + GArray *ports; /**< Array of GstLV2Port */ + gboolean has_roles; /**< TRUE iff all ports have a known role */ +}; + +struct _GstLV2Port { + gint index; /**< LV2 port index (on LV2 plugin) */ + gint pad; /**< Gst pad index (iff not part of a group) */ + SLV2Value role; /**< Channel position / port role */ + GstAudioChannelPosition position; /**< Channel position */ }; struct _GstLV2Class { @@ -63,10 +79,13 @@ struct _GstLV2Class { SLV2Plugin plugin; - gint *audio_in_portnums; - gint *audio_out_portnums; - gint *control_in_portnums; - gint *control_out_portnums; + GArray *in_groups; /**< Array of GstLV2Group */ + GArray *out_groups; /**< Array of GstLV2Group */ + GArray *audio_in_ports; /**< Array of GstLV2Port */ + GArray *audio_out_ports; /**< Array of GstLV2Port */ + GArray *control_in_ports; /**< Array of GstLV2Port */ + GArray *control_out_ports; /**< Array of GstLV2Port */ + }; |