Module: CoreAudio

Extended by:
FFI::Library
Defined in:
lib/macos/core_audio.rb,
lib/macos/core_audio.rb,
lib/macos/core_audio/audio_types.rb,
lib/macos/core_audio/audio_device.rb,
lib/macos/core_audio/audio_object.rb,
lib/macos/core_audio/audio_stream.rb

Defined Under Namespace

Modules: AudioHardware, AudioHardwareBase Classes: AudioBuffer, AudioBufferList, AudioDevice, AudioObject, AudioStream, AudioStreamBasicDescription, AudioStreamRangedDescription, AudioValueRange

Constant Summary collapse

AudioDeviceIOProcID =
FFI::Pointer

Class Method Summary collapse

Class Method Details

.default_inputAudioDevice

Returns the default input device.

Returns:



49
50
51
52
53
# File 'lib/macos/core_audio.rb', line 49

def self.default_input
	address = AudioObject::PropertyAddress.global_master(AudioHardware::PropertyDefaultInputDevice)
	buffer = AudioObject.system.get_property(address)
	AudioDevice.new(buffer.get_uint32(0))
end

.default_outputAudioDevice

Returns the default output device.

Returns:



56
57
58
59
60
# File 'lib/macos/core_audio.rb', line 56

def self.default_output
	address = AudioObject::PropertyAddress.global_master(AudioHardware::PropertyDefaultOutputDevice)
	buffer = AudioObject.system.get_property(address)
	AudioDevice.new(buffer.get_uint32(0))
end

.devicesArray<AudioObject>

Returns the list of available audio devices.

Returns:

  • (Array<AudioObject>)

    the list of available audio devices



41
42
43
44
45
46
# File 'lib/macos/core_audio.rb', line 41

def self.devices
	address = AudioObject::PropertyAddress.global_master(AudioHardware::PropertyDevices)
	buffer = AudioObject.system.get_property(address)
	device_IDs = buffer.get_array_of_int32(0, buffer.size/4)
	device_IDs.map {|id| AudioDevice.new(id)}
end