Class: MIDIInstrument::Input::InputContainer

Inherits:
Array
  • Object
show all
Defined in:
lib/midi-instrument/input.rb

Overview

Container class that handles updating the listener when changes are made

Instance Method Summary collapse

Constructor Details

#initialize(listener) ⇒ InputContainer

Returns a new instance of InputContainer.

Parameters:



71
72
73
# File 'lib/midi-instrument/input.rb', line 71

def initialize(listener)
  @listener = listener
end

Instance Method Details

#+(devices) ⇒ InputContainer

Add multiple devices

Parameters:

  • devices (Array<UniMIDI::Input>)

Returns:



87
88
89
90
91
# File 'lib/midi-instrument/input.rb', line 87

def +(devices)
  result = super
  @listener.add_input(devices)
  result
end

#<<(input) ⇒ InputContainer

Add an input

Parameters:

  • input (UniMIDI::Input)

Returns:



78
79
80
81
82
# File 'lib/midi-instrument/input.rb', line 78

def <<(input)
  result = super
  @listener.add_input(input)
  result
end

#clearInputContainer

Clear all devices

Returns:



113
114
115
116
# File 'lib/midi-instrument/input.rb', line 113

def clear
  @listener.inputs.each { |input| delete(input) }
  super
end

#concat(devices) ⇒ InputContainer

Add multiple devices

Parameters:

  • devices (Array<UniMIDI::Input>)

Returns:



96
97
98
99
100
# File 'lib/midi-instrument/input.rb', line 96

def concat(devices)
  result = super
  @listener.add_input(devices)
  result
end

#delete(input) ⇒ UniMIDI::Input

Delete an input

Parameters:

  • (UniMIDI::Input)

Returns:

  • (UniMIDI::Input)


105
106
107
108
109
# File 'lib/midi-instrument/input.rb', line 105

def delete(input)
  result = super
  @listener.remove_input(input)
  result
end

#delete_if(&block) ⇒ InputContainer

Delete multiple devices

Parameters:

  • block (Proc)

Returns:



121
122
123
124
125
# File 'lib/midi-instrument/input.rb', line 121

def delete_if(&block)
  devices = super
  @listener.remove_input(devices)
  self
end