class OSC::Message

Attributes

address[RW]

Public Class Methods

new(address, tags=nil, *args) click to toggle source
# File lib/osc.rb, line 175
def initialize(address, tags=nil, *args)
  @address = address
  @args = []
  args.each_with_index do |arg, i|
    if tags && tags[i]
      case tags[i]
      when ?i; @args << OSCInt32.new(arg)
      when ?f; @args << OSCFloat32.new(arg)
      when ?s; @args << OSCString.new(arg)
      when ?b; @args << OSCBlob.new(arg)
      when ?*; @args << arg
      else; raise ArgumentError, 'unknown type'
      end
    else
      case arg
      when Integer;     @args << OSCInt32.new(arg)
      when Float;       @args << OSCFloat32.new(arg)
      when String;      @args << OSCString.new(arg)
      when OSCArgument; @args << arg
      end
    end
  end
end

Public Instance Methods

encode() click to toggle source
# File lib/osc.rb, line 203
def encode
  s = OSCString.new(@address).encode
  s << OSCString.new(tags).encode
  s << @args.collect{|x| x.encode}.join
end
tags() click to toggle source
# File lib/osc.rb, line 201
def tags() ',' + @args.collect{|x| x.tag}.join end
to_a() click to toggle source
# File lib/osc.rb, line 209
def to_a() @args.collect{|x| x.val} end