Sha256: 69fc417f3329a89e42fddb7b6da089ad9eee91fadf765b31c649f1d2cae509e6

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

require File.join( File.dirname( __FILE__ ), "packet" )

module OSC
  class Message < Packet
    attr_accessor :address
    attr_accessor :time 

    
    def self.new_with_time( address, time, tags=nil, *args )
      message = new( address, tags, *args )
      message.time = time
      message
    end
    
    def initialize(address, *args)
      @address = address
      @args = []
      
      args.each_with_index do |arg, i|
        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


    def tags() @args.collect{|x| x.tag}.join end

    def encode
      s = OSCString.new( @address ).encode
      s << OSCString.new( ',' + tags ).encode
      s << @args.collect{|x| x.encode}.join
    end

    def to_a() @args.collect{|x| x.val} end
      
    def eql?( other )
      @address == other.address &&
      to_a == other.to_a
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
aberant-osc-ruby-0.2.0 lib/osc-ruby/message.rb
osc-ruby-0.2.0 lib/osc-ruby/message.rb