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.
- #initialize(device) ⇒ Object
-
#open(*args, &block) ⇒ 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
154 155 156 157 158 159 160 161 |
# File 'lib/unimidi/device.rb', line 154 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
142 143 144 145 146 147 148 149 150 |
# File 'lib/unimidi/device.rb', line 142 def close(*args) if @enabled @device.close(*args) @enabled = false true else false end end |
#initialize(device) ⇒ Object
101 102 103 104 105 106 |
# File 'lib/unimidi/device.rb', line 101 def initialize(device) @device = device @enabled = false populate_from_device end |
#open(*args, &block) ⇒ 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
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/unimidi/device.rb', line 113 def open(*args, &block) unless @enabled @device.open(*args) @enabled = true end if block_given? begin yield(self) ensure close end else at_exit do close end self end end |
#pretty_name ⇒ String
A human readable display name for this device
134 135 136 |
# File 'lib/unimidi/device.rb', line 134 def pretty_name "#{id}) #{name}" end |