summaryrefslogtreecommitdiffstats
path: root/ext/lv2/gstlv2.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/lv2/gstlv2.h')
-rw-r--r--ext/lv2/gstlv2.h33
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 */
+
};