Class: CoreMIDI::Source
- Inherits:
-
Object
- Object
- CoreMIDI::Source
- Includes:
- Endpoint
- Defined in:
- lib/coremidi/source.rb
Overview
Type of endpoint used for input
Instance Attribute Summary
Attributes included from Endpoint
#enabled, #entity, #id, #resource_id, #type
Class Method Summary collapse
-
.all ⇒ Array<Source>
All input endpoints.
- .clear ⇒ Object
-
.first ⇒ Source
Shortcut to the first available input endpoint.
-
.last ⇒ Source
Shortcut to the last available input endpoint.
Instance Method Summary collapse
-
#buffer ⇒ Array<Hash>
The buffer of received messages since instantiation.
-
#close ⇒ Boolean
Close this input.
-
#enable(options = {}, &block) ⇒ Source
(also: #open, #start)
Enable this the input for use; can be passed a block.
-
#gets ⇒ Array<Hash>
(also: #read)
An array of MIDI event hashes as such: [ { :data => [144, 60, 100], :timestamp => 1024 }, { :data => [128, 60, 100], :timestamp => 1100 }, { :data => [144, 40, 120], :timestamp => 1200 } ].
-
#gets_s ⇒ Array<Hash>
(also: #gets_bytestr)
Same as Source#gets except that it returns message data as string of hex digits as such: [ { :data => “904060”, :timestamp => 904 }, { :data => “804060”, :timestamp => 1150 }, { :data => “90447F”, :timestamp => 1300 } ].
Methods included from Endpoint
all_by_type, destinations, get_class, #initialize, #online?, sources
Class Method Details
.all ⇒ Array<Source>
All input endpoints
99 100 101 |
# File 'lib/coremidi/source.rb', line 99 def self.all Endpoint.all_by_type[:source] end |
.clear ⇒ Object
245 246 247 248 |
# File 'lib/coremidi/source.rb', line 245 def @buffer.clear super @pointer = 0 end |
Instance Method Details
#buffer ⇒ Array<Hash>
The buffer of received messages since instantiation
10 11 12 13 |
# File 'lib/coremidi/source.rb', line 10 def buffer fill_buffer @buffer end |
#close ⇒ Boolean
Close this input
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/coremidi/source.rb', line 68 def close #error = API.MIDIPortDisconnectSource( @handle, @resource ) #raise "MIDIPortDisconnectSource returned error code #{error}" unless error.zero? #error = API.MIDIClientDispose(@handle) #raise "MIDIClientDispose returned error code #{error}" unless error.zero? #error = API.MIDIPortDispose(@handle) #raise "MIDIPortDispose returned error code #{error}" unless error.zero? #error = API.MIDIEndpointDispose(@resource) #raise "MIDIEndpointDispose returned error code #{error}" unless error.zero? if @enabled @enabled = false true else false end end |
#enable(options = {}, &block) ⇒ Source Also known as: open, start
Enable this the input for use; can be passed a block
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/coremidi/source.rb', line 52 def enable( = {}, &block) @enabled = true unless @enabled if block_given? begin yield(self) ensure close end end self end |
#gets ⇒ Array<Hash> Also known as: read
An array of MIDI event hashes as such:
[
{ :data => [144, 60, 100], :timestamp => 1024 },
{ :data => [128, 60, 100], :timestamp => 1100 },
{ :data => [144, 40, 120], :timestamp => 1200 }
]
The data is an array of Numeric bytes The timestamp is the number of millis since this input was enabled
27 28 29 |
# File 'lib/coremidi/source.rb', line 27 def gets fill_buffer end |
#gets_s ⇒ Array<Hash> Also known as: gets_bytestr
Same as Source#gets except that it returns message data as string of hex digits as such:
[
{ :data => "904060", :timestamp => 904 },
{ :data => "804060", :timestamp => 1150 },
{ :data => "90447F", :timestamp => 1300 }
]
41 42 43 44 45 46 47 |
# File 'lib/coremidi/source.rb', line 41 def gets_s = gets .each do || [:data] = TypeConversion.numeric_bytes_to_hex_string([:data]) end end |