diff options
Diffstat (limited to 'ext/lv2/gstlv2.h')
-rw-r--r-- | ext/lv2/gstlv2.h | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/ext/lv2/gstlv2.h b/ext/lv2/gstlv2.h index 389c03d1..fb384cce 100644 --- a/ext/lv2/gstlv2.h +++ b/ext/lv2/gstlv2.h @@ -46,16 +46,29 @@ 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 */ +}; + +struct _GstLV2Port { + gint index; /**< LV2 port index (on LV2 plugin) */ + gint pad; /**< Gst pad index (iff not part of a group) */ }; struct _GstLV2Class { @@ -63,10 +76,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 */ + }; |