Module: UniMIDI::Device::InstanceMethods
Overview
Methods that are shared by both Input and Output instances
Class Method Summary collapse
-
.included(base) ⇒ Object
Add attributes for the device instance :direction, :id, :name.
Instance Method Summary collapse
-
#close(*args) ⇒ Boolean
Close the device Params are passed to the underlying device object.
-
#closed? ⇒ Boolean
Returns true if the device is not enabled.
- #initialize(device) ⇒ Object
-
#open(*args) ⇒ Input, Output
Enable the device for use Params are passed to the underlying device object Can be passed a block to which the device will be passed in as the yieldparam.
-
#pretty_name ⇒ String
A human readable display name for this device.
Class Method Details
.included(base) ⇒ Object
Add attributes for the device instance :direction, :id, :name
172 173 174 175 176 177 178 179 |
# File 'lib/unimidi/device.rb', line 172 def self.included(base) base.send(:attr_reader, :direction) base.send(:attr_reader, :enabled) base.send(:attr_reader, :id) base.send(:attr_reader, :name) base.send(:alias_method, :enabled?, :enabled) base.send(:alias_method, :type, :direction) end |
Instance Method Details
#close(*args) ⇒ Boolean
Close the device Params are passed to the underlying device object
154 155 156 157 158 159 160 161 162 |
# File 'lib/unimidi/device.rb', line 154 def close(*args) if @enabled @device.close(*args) @enabled = false true else false end end |
#closed? ⇒ Boolean
Returns true if the device is not enabled
166 167 168 |
# File 'lib/unimidi/device.rb', line 166 def closed? !@enabled end |
#initialize(device) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/unimidi/device.rb', line 113 def initialize(device) @device = device @enabled = false populate_from_device end |
#open(*args) ⇒ Input, Output
Enable the device for use Params are passed to the underlying device object Can be passed a block to which the device will be passed in as the yieldparam
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'lib/unimidi/device.rb', line 125 def open(*args) unless @enabled @device.open(*args) @enabled = true end if block_given? begin yield(self) ensure close end else at_exit do close end end self end |
#pretty_name ⇒ String
A human readable display name for this device
146 147 148 |
# File 'lib/unimidi/device.rb', line 146 def pretty_name "#{id}) #{name}" end |