module AudioPlayback::Device
Audio IO devices
Public Instance Methods
by_id(id)
click to toggle source
Get a device by its ID @param [Integer] id @return [Output]
# File lib/audio-playback/device.rb, line 26 def by_id(id) outputs.find { |device| [device, device.id].include?(id) } end
by_name(name)
click to toggle source
Get a device by its name @param [String] name @return [Output]
# File lib/audio-playback/device.rb, line 33 def by_name(name) outputs.find { |device| device.name == name } end
default_output()
click to toggle source
The system default output @return [Output]
# File lib/audio-playback/device.rb, line 39 def default_output by_id(FFI::PortAudio::API.Pa_GetDefaultOutputDevice) end
device_info(id)
click to toggle source
Get system device info given a device ID @param [Integer] id @return [FFI::PortAudio::API::PaDeviceInfo]
# File lib/audio-playback/device.rb, line 46 def device_info(id) FFI::PortAudio::API.Pa_GetDeviceInfo(id) end
outputs()
click to toggle source
All output devices @return [Array<Output>]
# File lib/audio-playback/device.rb, line 13 def outputs AudioPlayback.ensure_initialized if @devices.nil? count = FFI::PortAudio::API.Pa_GetDeviceCount ids = (0..count-1).to_a.select { |id| output?(id) } @devices = ids.map { |id| Output.new(id) } end @devices end
Private Instance Methods
output?(id)
click to toggle source
Is the device with the given ID an output? @param [Integer] id @return [Boolean]
# File lib/audio-playback/device.rb, line 55 def output?(id) device_info(id)[:maxOutputChannels] > 0 end