41 return source == other.source
43 &&
depth == other.depth
45 &&
curve == other.curve;
69 std::size_t
size()
const {
return routes_.size(); }
70 bool empty()
const {
return routes_.empty(); }
71 void clear() { routes_.clear(); }
73 const std::vector<ModRoute>&
routes()
const {
return routes_; }
85 std::vector<ModRoute> routes_;
Definition modulation_matrix.hpp:49
void remove(std::size_t index)
Remove a route by index. No-op if out of range.
std::optional< std::size_t > find(ModSourceId source, ModDestinationId destination) const
Look up a route by (source, destination).
const std::vector< ModRoute > & routes() const
Definition modulation_matrix.hpp:73
bool empty() const
Definition modulation_matrix.hpp:70
bool deserialize(const uint8_t *data, std::size_t size)
Restore from a blob produced by serialize().
void remove_by_destination(ModDestinationId destination)
Remove all routes touching destination.
std::vector< uint8_t > serialize() const
Serialize to a compact binary blob (route count + routes in order).
void clear()
Definition modulation_matrix.hpp:71
std::size_t add(const ModRoute &route)
Add a route.
std::size_t size() const
Definition modulation_matrix.hpp:69
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
ModCurve
Definition modulation_matrix.hpp:25
@ Logarithmic
Definition modulation_matrix.hpp:28
@ Linear
Definition modulation_matrix.hpp:26
@ Quadratic
Definition modulation_matrix.hpp:29
@ SCurve
Definition modulation_matrix.hpp:30
@ Exponential
Definition modulation_matrix.hpp:27
uint32_t ModSourceId
Definition modulation_matrix.hpp:22
uint32_t ModDestinationId
Definition modulation_matrix.hpp:23
Definition modulation_matrix.hpp:33
ModDestinationId destination
Definition modulation_matrix.hpp:35
bool operator==(const ModRoute &other) const
Definition modulation_matrix.hpp:40
float depth
-1.0 .. 1.0 (bipolar sources) or 0.0..1.0
Definition modulation_matrix.hpp:36
bool bipolar
true: source is interpreted as -1..+1
Definition modulation_matrix.hpp:37
ModSourceId source
Definition modulation_matrix.hpp:34
ModCurve curve
Definition modulation_matrix.hpp:38