Module: CoreMIDI::Endpoint

Extended by:
Forwardable
Included in:
Destination, Source
Defined in:
lib/coremidi/endpoint.rb

Overview

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#enabledObject (readonly) Also known as: enabled?

has the endpoint been initialized?



10
11
12
# File 'lib/coremidi/endpoint.rb', line 10

def enabled
  @enabled
end

#entityObject (readonly)

has the endpoint been initialized?



10
11
12
# File 'lib/coremidi/endpoint.rb', line 10

def entity
  @entity
end

#idObject

has the endpoint been initialized?



10
11
12
# File 'lib/coremidi/endpoint.rb', line 10

def id
  @id
end

#resource_idObject (readonly)

has the endpoint been initialized?



10
11
12
# File 'lib/coremidi/endpoint.rb', line 10

def resource_id
  @resource_id
end

#typeObject (readonly)

has the endpoint been initialized?



10
11
12
# File 'lib/coremidi/endpoint.rb', line 10

def type
  @type
end

Class Method Details

.allArray<Destination, Source>

All endpoints of both types



77
78
79
# File 'lib/coremidi/endpoint.rb', line 77

def self.all
  Device.all.map(&:endpoints).flatten
end

.all_by_typeHash

A Hash of :source and :destination endpoints



68
69
70
71
72
73
# File 'lib/coremidi/endpoint.rb', line 68

def self.all_by_type
  {
    :source => sources,
    :destination => destinations
  }
end

.destinationsArray<Destination>

All destination endpoints



62
63
64
# File 'lib/coremidi/endpoint.rb', line 62

def self.destinations
  Device.all.map { |d| d.endpoints[:destination] }.flatten
end

.first(type) ⇒ Destination, Source

Select the first endpoint of the specified type



44
45
46
# File 'lib/coremidi/endpoint.rb', line 44

def self.first(type)
  all_by_type[type].first
end

.get_class(type) ⇒ Class

Get the class for the given endpoint type name



84
85
86
87
88
89
# File 'lib/coremidi/endpoint.rb', line 84

def self.get_class(type)
  case type
  when :source then Source
  when :destination then Destination
  end
end

.last(type) ⇒ Destination, Source

Select the last endpoint of the specified type



50
51
52
# File 'lib/coremidi/endpoint.rb', line 50

def self.last(type)
  all_by_type[type].last
end

.sourcesArray<Source>

All source endpoints



56
57
58
# File 'lib/coremidi/endpoint.rb', line 56

def self.sources
  Device.all.map { |d| d.endpoints[:source] }.flatten
end

Instance Method Details

#initialize(resource_id, entity) ⇒ Object



22
23
24
25
26
27
# File 'lib/coremidi/endpoint.rb', line 22

def initialize(resource_id, entity)
  @entity = entity
  @resource_id = resource_id
  @type = get_type
  @enabled = false
end

#online?Boolean

Is this endpoint online?



31
32
33
# File 'lib/coremidi/endpoint.rb', line 31

def online?
  @entity.online? && connect?
end