class Patch::IO::OSC::Client

OSC Client

Attributes

id[R]

Public Class Methods

new(host, port, options = {}) click to toggle source

@param [String] host @param [Fixnum] port @param [Hash] options @option options [Fixnum] :id @option options [Log] :log

# File lib/patch/io/osc/client.rb, line 17
def initialize(host, port, options = {})
  @id = options[:id]
  @log = options[:log]
  @client = ::OSC::Client.new(host, port)
end

Public Instance Methods

puts(patch, messages) click to toggle source

Convert message objects to OSC and send @param [Patch::Patch] patch Context @param [Array<Patch::Message, ::OSC::Message>, ::OSC::Message, Patch::Message] messages Message(s) to send @return [Array<::OSC::Message>]]

# File lib/patch/io/osc/client.rb, line 27
def puts(patch, messages)
  osc_messages = get_osc_messages(patch, messages)
  osc_messages.each { |osc_message| @client.send(osc_message) }
  osc_messages
end

Private Instance Methods

ensure_osc_message(patch, message) click to toggle source

@param [::Patch::Patch] patch @param [::OSC::Message, Patch::Message] message @return [::OSC::Message]

# File lib/patch/io/osc/client.rb, line 46
def ensure_osc_message(patch, message)
  unless message.kind_of?(::OSC::Message)
    osc_message = ::Patch::IO::OSC::Message.to_osc_messages(patch, message)
  end
  osc_message ||= message
  osc_message
end
get_osc_messages(patch, messages) click to toggle source

@param [::Patch::Patch] patch @param [Array<Patch::Message, ::OSC::Message>, ::OSC::Message, Patch::Message] messages Message(s) to send @return [Array<::OSC::Message>]]

# File lib/patch/io/osc/client.rb, line 38
def get_osc_messages(patch, messages)
  messages = [messages].flatten
  messages.map { |message| ensure_osc_message(patch, message) }
end