aboutsummaryrefslogtreecommitdiffstats
path: root/src/port.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/port.h')
-rw-r--r--src/port.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/port.h b/src/port.h
new file mode 100644
index 0000000..5b3e0c9
--- /dev/null
+++ b/src/port.h
@@ -0,0 +1,35 @@
+// Copyright 2007-2022 David Robillard <d@drobilla.net>
+// SPDX-License-Identifier: ISC
+
+#ifndef JALV_PORT_H
+#define JALV_PORT_H
+
+#include "attributes.h"
+#include "lv2_evbuf.h"
+
+#include "lilv/lilv.h"
+
+#include <stddef.h>
+#include <stdint.h>
+
+JALV_BEGIN_DECLS
+
+enum PortFlow { FLOW_UNKNOWN, FLOW_INPUT, FLOW_OUTPUT };
+
+enum PortType { TYPE_UNKNOWN, TYPE_CONTROL, TYPE_AUDIO, TYPE_EVENT, TYPE_CV };
+
+struct Port {
+ const LilvPort* lilv_port; ///< LV2 port
+ enum PortType type; ///< Data type
+ enum PortFlow flow; ///< Data flow direction
+ void* sys_port; ///< For audio/MIDI ports, otherwise NULL
+ LV2_Evbuf* evbuf; ///< For MIDI ports, otherwise NULL
+ void* widget; ///< Control widget, if applicable
+ size_t buf_size; ///< Custom buffer size, or 0
+ uint32_t index; ///< Port index
+ float control; ///< For control ports, otherwise 0.0f
+};
+
+JALV_END_DECLS
+
+#endif // JALV_PORT_H