diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-02-19 21:17:46 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-02-19 21:17:53 +0000 |
| commit | e62ef99244bb3aa906810a5cfd53c0dac68b0f37 (patch) | |
| tree | e7379e2add7014e7124f678f4a7a8edc699fe914 /lib/osc.moon | |
| parent | major refactoring: Const, Stream + ResultNode (diff) | |
| download | alive-e62ef99244bb3aa906810a5cfd53c0dac68b0f37.tar.gz alive-e62ef99244bb3aa906810a5cfd53c0dac68b0f37.zip | |
merge Const and Stream into Value; Dataflow logic
lib not fully ported / functonial
Diffstat (limited to 'lib/osc.moon')
| -rw-r--r-- | lib/osc.moon | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/lib/osc.moon b/lib/osc.moon index fed1697..3bac3f1 100644 --- a/lib/osc.moon +++ b/lib/osc.moon @@ -2,22 +2,39 @@ import Stream, Op from require 'core' import pack, unpack from require 'osc' import dns, udp from require 'socket' +class addr extends Op + @doc: "(remote host port) - UDP remote definition" + + new: => + super 'udp/remote' + @@udp or= udp! + + setup: (params) => + super params + @assert_types 'str', 'num' + + tick: => + host, port = @unwrap_inputs! + ip = dns.toip host + @out\set { :ip, :port } + class out extends Op @doc: "(out host port path val) - send a value via OSC" new: (...) => - super ... - @@udp or= udp! - setup: (@host, @port, @path, @value) => + setup: (params) => + super params + assert @inputs[3], "need a value" + @assert_types 'udp/remote', 'str', @inputs[3].type update: (dt) => - ip = dns.toip @host\unwrap 'str' - port = @port\unwrap 'num' - msg = pack (@path\unwrap 'str'), @value\unwrap! + remote, path, value = @unwrap_inputs! + msg = pack path, value @@udp\sendto msg, ip, port { + :addr :out } |
