class AudioStream::AudioInputDevice
Attributes
dev[R]
Public Class Methods
default_device(soundinfo:)
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 49 def self.default_device(soundinfo:) dev = CoreAudio.default_input_device new(dev, soundinfo: soundinfo) end
devices(soundinfo:)
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 54 def self.devices(soundinfo:) CoreAudio.devices .select{|dev| 0<dev.input_stream.channels } .map {|dev| new(dev, soundinfo: soundinfo) } end
new(dev, soundinfo:)
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 7 def initialize(dev, soundinfo:) @dev = dev @soundinfo = soundinfo end
Public Instance Methods
connect()
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 16 def connect if !connected? @inbuf = @dev.input_buffer(@soundinfo.window_size) @inbuf.start end self end
connected?()
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 32 def connected? !!@inbuf end
disconnect()
click to toggle source
Calls superclass method
AudioStream::AudioInput#disconnect
# File lib/audio_stream/audio_input_device.rb, line 24 def disconnect if connected? @inbuf.stop @inbuf = nil end super end
each(&block)
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 36 def each(&block) Enumerator.new do |y| if !connected? raise Error, "Device is not connected. You need to exec #{self.class.name}.connect: #{name}" end loop { na = @inbuf.read(@soundinfo.window_size) y << Buffer.from_na(na) } end.each(&block) end
name()
click to toggle source
# File lib/audio_stream/audio_input_device.rb, line 12 def name @dev.name end