aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/jalv_internal.h')
-rw-r--r--src/jalv_internal.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/jalv_internal.h b/src/jalv_internal.h
index b34df86..c46a2ac 100644
--- a/src/jalv_internal.h
+++ b/src/jalv_internal.h
@@ -101,12 +101,17 @@ int scale_point_cmp(const ScalePoint* a, const ScalePoint* b);
typedef struct {
Jalv* jalv;
ControlType type;
+ LilvNode* node;
+ LilvNode* symbol; ///< Symbol
+ LilvNode* label; ///< Human readable label
LV2_URID property; ///< Iff type == PROPERTY
uint32_t index; ///< Iff type == PORT
+ LilvNode* group; ///< Port/control group, or NULL
void* widget; ///< Control Widget
size_t n_points; ///< Number of scale points
ScalePoint* points; ///< Scale points
LV2_URID value_type; ///< Type of control value
+ LV2_Atom value; ///< Current value
LilvNode* min; ///< Minimum value
LilvNode* max; ///< Maximum value
LilvNode* def; ///< Default value
@@ -114,6 +119,8 @@ typedef struct {
bool is_integer; ///< Integer values only
bool is_enumeration; ///< Point values only
bool is_logarithmic; ///< Logarithmic scale
+ bool is_writable; ///< Writable (input)
+ bool is_readable; ///< Readable (output)
} ControlID;
ControlID*
@@ -316,6 +323,18 @@ jalv_create_ports(Jalv* jalv);
struct Port*
jalv_port_by_symbol(Jalv* jalv, const char* sym);
+void
+jalv_create_controls(Jalv* jalv, bool writable);
+
+ControlID*
+jalv_control_by_symbol(Jalv* jalv, const char* sym);
+
+void
+jalv_set_control(const ControlID* control,
+ uint32_t size,
+ LV2_URID type,
+ const void* body);
+
const char*
jalv_native_ui_type(Jalv* jalv);
@@ -325,6 +344,9 @@ jalv_discover_ui(Jalv* jalv);
int
jalv_open_ui(Jalv* jalv);
+void
+jalv_init_ui(Jalv* jalv);
+
int
jalv_close_ui(Jalv* jalv);