module ALSA::Aconnect

Constants

VERSION

Public Instance Methods

config() click to toggle source
# File lib/alsa/aconnect.rb, line 57
def config
  @config ||= Config.new
end
configure() { |config| ... } click to toggle source
# File lib/alsa/aconnect.rb, line 61
def configure
  yield config if block_given?
end
connect(input, output) click to toggle source
# 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) click to toggle source
# 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
input_clients() click to toggle source
# 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
input_ports() click to toggle source
# File lib/alsa/aconnect.rb, line 21
def input_ports
  input_clients.map(&:ports).flatten
end
output_clients() click to toggle source
# 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() click to toggle source
# File lib/alsa/aconnect.rb, line 30
def output_ports
  output_clients.map(&:ports).flatten
end
run(*arguments) click to toggle source
# 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