module RawMIDI::Device
Attributes
card[R]
id[R]
name[R]
Public Class Methods
new(card_or_id, id, **info)
click to toggle source
# File lib/rawmidi/device.rb, line 5 def initialize(card_or_id, id, **info) @card = card_or_id.is_a?(Card) ? card_or_id : Card.new(card_or_id) @id = id info = get_subdevice_info if info.empty? @name = info[:name] @input = info[:input] @output = info[:output] end
Public Instance Methods
close()
click to toggle source
# File lib/rawmidi/device.rb, line 29 def close return if closed? API::Device.close(@midi_p) @midi_p = nil true end
closed?()
click to toggle source
# File lib/rawmidi/device.rb, line 40 def closed? !open? end
handle_name()
click to toggle source
# File lib/rawmidi/device.rb, line 15 def handle_name "#{@card.handle_name},#{@id},0" end
inspect()
click to toggle source
# File lib/rawmidi/device.rb, line 19 def inspect "#<#{self.class.name}:#{"0x%014x" % object_id} #{handle_name} #{@name.inspect} #{open? ? 'open' : 'closed'}>" end
open()
click to toggle source
# File lib/rawmidi/device.rb, line 23 def open fail 'already open' if @midi_p @midi_p = API::Device.open(handle_name, direction, :sync) true end
open?()
click to toggle source
# File lib/rawmidi/device.rb, line 36 def open? !!@midi_p end
Private Instance Methods
get_subdevice_info()
click to toggle source
# File lib/rawmidi/device.rb, line 46 def get_subdevice_info API::Card.with_control(@card.id) do |ctl_p| API::Device.subdevice_info(ctl_p, @id) end end