Module: Webmidi::Transport
- Defined in:
- lib/webmidi/transport.rb,
lib/webmidi/transport/base.rb,
lib/webmidi/transport/null.rb,
lib/webmidi/transport/adapter.rb,
lib/webmidi/transport/virtual.rb,
lib/webmidi/transport/device_info.rb
Defined Under Namespace
Modules: Adapter, InputHandle, OutputHandle
Classes: Base, DeviceInfo, Null, Virtual
Class Method Summary
collapse
Class Method Details
.auto_detect(transport: Webmidi.configuration.transport, fallback_transport: Webmidi.configuration.fallback_transport, candidates: default_candidates) ⇒ Object
42
43
44
45
46
47
48
49
|
# File 'lib/webmidi/transport.rb', line 42
def auto_detect(transport: Webmidi.configuration.transport,
fallback_transport: Webmidi.configuration.fallback_transport,
candidates: default_candidates)
return resolve_transport!(transport) unless transport == :auto
detected = candidates.find { |candidate| candidate.respond_to?(:available?) && candidate.available? }
detected || resolve_transport!(fallback_transport)
end
|
.load_adapter(name, require_path: Adapter.require_path(name), constant: Adapter.constant_name(name)) ⇒ Object
.register(transport) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/webmidi/transport.rb', line 16
def register(transport)
Adapter.validate!(transport)
@registry_mutex.synchronize do
@registered_transports << transport unless @registered_transports.include?(transport)
end
transport
end
|
.registered ⇒ Object
29
30
31
|
# File 'lib/webmidi/transport.rb', line 29
def registered
@registry_mutex.synchronize { @registered_transports.dup.freeze }
end
|
.unregister(transport) ⇒ Object
24
25
26
27
|
# File 'lib/webmidi/transport.rb', line 24
def unregister(transport)
@registry_mutex.synchronize { @registered_transports.delete(transport) }
transport
end
|