module MIDIInstrument::Device

Manage MIDI Devices

Public Instance Methods

partition(devices) click to toggle source

Partition UniMIDI devices into a hash of inputs and outputs @param [Array<UniMIDI::Input, UniMIDI::Output>, UniMIDI::Input, UniMIDI::Output] devices Input or output device(s). @return [Hash] Partitioned arrays of inputs and outputs.

# File lib/midi-instrument/device.rb, line 11
def partition(devices)
  devices = [(devices || [])].flatten
  outputs = devices.select { |device| output?(device) }
  inputs = devices.select { |device| input?(device) }
  {
    :input => inputs,
    :output => outputs
  }
end

Private Instance Methods

input?(device) click to toggle source

Is this device an input? @param [UniMIDI::Input, Object] device @return [Boolean]

# File lib/midi-instrument/device.rb, line 33
def input?(device)
  device.respond_to?(:type) && device.type == :input && device.respond_to?(:gets)
end
output?(device) click to toggle source

Is this device an output? @param [UniMIDI::Output, Object] device @return [Boolean]

# File lib/midi-instrument/device.rb, line 26
def output?(device)
  device.respond_to?(:puts)
end