Module: OSC::Transport

Included in:
UDPSocket
Defined in:
lib/osc/transport.rb

Overview

Mixin for OSC transports. You implement (or in many cases just alias) send_raw, recvfrom_raw, and recv_raw, which have the semantics of send, recvfrom, and recv in e.g. UDPSocket

Instance Method Summary collapse

Instance Method Details

#recv(*args) ⇒ Object

Receive a Message, Bundle, or raw data.



29
30
31
32
33
# File 'lib/osc/transport.rb', line 29

def recv(*args)
  data = recv_raw(*args)
  Packet.decode(data)
rescue
end

#recvfrom(*args) ⇒ Object

Receive a Message, Bundle, or raw data and the sender. The source attribute of the Message or Bundle is also set to sender. e.g.

packet, sender = udp_osc_client.recvfrom(32768)


19
20
21
22
23
24
25
26
# File 'lib/osc/transport.rb', line 19

def recvfrom(*args)
  data, sender = recvfrom_raw(*args)
  m = Packet.decode(data)
  m.source = sender
  [m, sender]
rescue
  [data, sender]
end

#send(msg, *args) ⇒ Object

Send a Message, Bundle, or even raw data



7
8
9
10
11
12
13
14
# File 'lib/osc/transport.rb', line 7

def send(msg, *args)
  case msg
  when Message,Bundle
    send_raw(msg.encode, *args)
  else
    send_raw(msg, *args)
  end
end

#send_timestamped(msg, ts, *args) ⇒ Object Also known as: send_ts

Send a Message/Bundle with a timestamp (a Time or TimeTag object).



36
37
38
39
# File 'lib/osc/transport.rb', line 36

def send_timestamped(msg, ts, *args)
  m = Bundle.new(ts, msg)
  send(m, *args)
end