aboutsummaryrefslogtreecommitdiffhomepage
path: root/backends/osc.h
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2019-07-27 19:31:21 +0200
committercbdev <cb@cbcdn.com>2019-07-27 19:31:21 +0200
commit26ee2eacc7d60aa379c9e4b9b9c6b8bcdcd4bc6b (patch)
tree097eb74dfd8b0b01553a87f5b21e94ea825b1a17 /backends/osc.h
parent8d7fb5b7cb2f1deb6600f8cebfff27dba70193b1 (diff)
downloadmidimonster-26ee2eacc7d60aa379c9e4b9b9c6b8bcdcd4bc6b.tar.gz
midimonster-26ee2eacc7d60aa379c9e4b9b9c6b8bcdcd4bc6b.tar.bz2
midimonster-26ee2eacc7d60aa379c9e4b9b9c6b8bcdcd4bc6b.zip
Refactor OSC backend, implement pattern matching
Diffstat (limited to 'backends/osc.h')
-rw-r--r--backends/osc.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/backends/osc.h b/backends/osc.h
index dc6cb3a..4e9dec5 100644
--- a/backends/osc.h
+++ b/backends/osc.h
@@ -34,22 +34,33 @@ typedef union {
typedef struct /*_osc_channel*/ {
char* path;
size_t params;
- size_t param_index;
uint8_t mark;
- osc_parameter_type type;
- osc_parameter_value max;
- osc_parameter_value min;
- osc_parameter_value current;
+ osc_parameter_type* type;
+ osc_parameter_value* max;
+ osc_parameter_value* min;
+ osc_parameter_value* in;
+ osc_parameter_value* out;
} osc_channel;
typedef struct /*_osc_instance_data*/ {
+ //pre-configured channel patterns
+ size_t patterns;
+ osc_channel* pattern;
+
+ //actual channel registry
size_t channels;
osc_channel* channel;
+
+ //instance config
char* root;
+ uint8_t learn;
+
+ //peer addressing
socklen_t dest_len;
struct sockaddr_storage dest;
- int fd;
- uint8_t learn;
uint16_t forced_rport;
+
+ //peer fd
+ int fd;
} osc_instance_data;