Module: ALSA::Aconnect
- Defined in:
- lib/alsa/aconnect.rb,
lib/alsa/aconnect/port.rb,
lib/alsa/aconnect/error.rb,
lib/alsa/aconnect/client.rb,
lib/alsa/aconnect/config.rb,
lib/alsa/aconnect/parser.rb,
lib/alsa/aconnect/version.rb
Defined Under Namespace
Modules: Parser
Classes: Client, Config, Error, Port
Constant Summary
collapse
- VERSION =
'0.1.5'
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
57
58
59
|
# File 'lib/alsa/aconnect.rb', line 57
def config
@config ||= Config.new
end
|
61
62
63
|
# File 'lib/alsa/aconnect.rb', line 61
def configure
yield config if block_given?
end
|
.connect(input, output) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/alsa/aconnect.rb', line 34
def connect(input, output)
input = "#{input.client.id}:#{input.id}" if input.is_a?(Port)
output = "#{output.client.id}:#{output.id}" if output.is_a?(Port)
run(input, output)
end
|
.disconnect(input, output) ⇒ Object
41
42
43
44
45
46
|
# File 'lib/alsa/aconnect.rb', line 41
def disconnect(input, output)
input = "#{input.client.id}:#{input.id}" if input.is_a?(Port)
output = "#{output.client.id}:#{output.id}" if output.is_a?(Port)
run('-d', input, output)
end
|
16
17
18
19
|
# File 'lib/alsa/aconnect.rb', line 16
def input_clients
out = run('-i', '-l')
Parser.parse_clients(out).map { |text| Client.new(text, :input) }
end
|
21
22
23
|
# File 'lib/alsa/aconnect.rb', line 21
def input_ports
input_clients.map(&:ports).flatten
end
|
.output_clients ⇒ Object
25
26
27
28
|
# File 'lib/alsa/aconnect.rb', line 25
def output_clients
out = run('-o', '-l')
Parser.parse_clients(out).map { |text| Client.new(text, :output) }
end
|
.output_ports ⇒ Object
30
31
32
|
# File 'lib/alsa/aconnect.rb', line 30
def output_ports
output_clients.map(&:ports).flatten
end
|
.run(*arguments) ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/alsa/aconnect.rb', line 48
def run(*arguments)
cmd = [config.exec_path, *arguments].compact.join(' ')
out, err, status = Open3.capture3(cmd)
code = status.exitstatus
raise Error.new code, err unless code.zero?
out
end
|