diff options
Diffstat (limited to 'src/port.h')
-rw-r--r-- | src/port.h | 35 |
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 |