aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--alv-lib/osc.moon20
1 files changed, 20 insertions, 0 deletions
diff --git a/alv-lib/osc.moon b/alv-lib/osc.moon
index d54b1b1..bce568f 100644
--- a/alv-lib/osc.moon
+++ b/alv-lib/osc.moon
@@ -72,6 +72,25 @@ listen = Constant.meta
if msgs = @inputs.io!
@out\set msgs
+dump = Constant.meta
+ meta:
+ name: 'recv!'
+ summary: "Receive OSC messages."
+ examples: { '(osc/recv! [socket] path [type-str])' }
+
+ value: class extends Op
+ pattern: any!^0
+
+ full_pattern = -sig['osc/in']
+ setup: (inputs, scope) =>
+ messages = full_pattern\match inputs
+ super Input.hot messages or scope\get '*oscin*'
+
+ tick: =>
+ messages = @unwrap_all!
+ for msg in *(messages or {})
+ print msg.address, msg.types, table.unpack msg
+
recv_evt = Constant.meta
meta:
name: 'recv!'
@@ -213,4 +232,5 @@ Constant.meta
:listen
:send
:sync
+ :dump
'recv!': recv_evt