aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv_internal.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-05-30 18:34:07 -0400
committerDavid Robillard <d@drobilla.net>2022-08-17 13:50:22 -0400
commit0133dc3e000496fb0667c7548f1404958b6eeca5 (patch)
tree379d82ee876fd8192bf96add8a84ebe67443a130 /src/jalv_internal.h
parentb58430c852867ab546cd3644765e33813e1aa5bb (diff)
downloadjalv-0133dc3e000496fb0667c7548f1404958b6eeca5.tar.gz
jalv-0133dc3e000496fb0667c7548f1404958b6eeca5.tar.bz2
jalv-0133dc3e000496fb0667c7548f1404958b6eeca5.zip
Remove Jalv back pointer from ControlID
Bit of a kludge, but this unblocks further cleanup and modularization. The Gtk static data / signal issues can be addressed later.
Diffstat (limited to 'src/jalv_internal.h')
-rw-r--r--src/jalv_internal.h45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/jalv_internal.h b/src/jalv_internal.h
index 800f88a..d186679 100644
--- a/src/jalv_internal.h
+++ b/src/jalv_internal.h
@@ -80,27 +80,27 @@ typedef struct {
/// Plugin control
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
- LilvNode* min; ///< Minimum value
- LilvNode* max; ///< Maximum value
- LilvNode* def; ///< Default value
- bool is_toggle; ///< Boolean (0 and 1 only)
- 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)
+ ControlType type; ///< Type of control
+ LilvNode* node; ///< Port or property
+ LilvNode* symbol; ///< Symbol
+ LilvNode* label; ///< Human readable label
+ LV2_Atom_Forge* forge; ///< Forge (for URIDs)
+ 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
+ LilvNode* min; ///< Minimum value
+ LilvNode* max; ///< Maximum value
+ LilvNode* def; ///< Default value
+ bool is_toggle; ///< Boolean (0 and 1 only)
+ 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;
typedef struct {
@@ -325,7 +325,8 @@ ControlID*
jalv_control_by_symbol(Jalv* jalv, const char* sym);
void
-jalv_set_control(const ControlID* control,
+jalv_set_control(Jalv* jalv,
+ const ControlID* control,
uint32_t size,
LV2_URID type,
const void* body);