Namespace NAudio.MacOS.CoreAudio
Classes
- AudioBooleanControl
Provides the base type for implementing audio boolean controls (that is, boolean toggleable controls).
- AudioClockDevice
The audio clock device represents the clock of an AudioDevice object.
- AudioControl
The AudioControl class is a subclass of the AudioObject class. The class has just the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
- AudioDevice
The AudioDevice class is a subclass of the AudioObject. The class has four scopes, Global, Input, Output, and PlayThrough. The class has a main element and an element for each channel in each stream numbered according to the starting channel number of each stream.
- AudioLevelControl
The AudioLevelControl class is an AudioControl class that level-related controls do inherit from.
- AudioObject
Provides the base class for the Core Audio HAL audio objects.
AudioObjects all have a set of properties that describe and manipulate their state. Changing the value of a property is always considered asynchronous.
The class of an AudioObject determines the basic functionality of the object in terms of what functions will operate on it as well as the set of properties that can be expected to be implemented by the object. The set of available classes for objects is limited to those defined here. There are no other classes. The set of classes is arranged in a hierarchy such that one class inherits the properties/routines of its super class.
The base class for all AudioObjects is the class AudioObject. As such, each AudioObject will provide basic properties such as its class, its human readable name, and the other AudioObjects it contains. Other important classes include AudioSystemObject, AudioDevice, and AudioStream.
The AudioObjects in the HAL are arranged in a containment hierarchy. The root of the hierarchy is the one and only instance of the AudioSystemObject class. The properties of the AudioSystemObject describe the process global settings such as the various default devices and the notification run loop. The AudioSystemObject also contains all the AudioDevices that are available.
Instances of the AudioDevice class encapsulate individual audio devices. An AudioDevice serves as the basic unit of IO. It provides a single IO cycle, a timing source based on it, and all the buffers synchronized to it. The IO cycle presents all the synchronized buffers to the client in the same call out along with time stamps that specify the current time, when the input data was acquired and when the output data will be presented.
AudioDevices contain instances of the AudioStream class. An AudioStream represents a single buffer of data for transferring across the user/kernel boundary. As such, AudioStreams are the gatekeepers of format information. Each has its own format and list of available formats. AudioStreams can provide data in any format, including encoded formats and non-audio formats. If the format is a linear PCM format, the data will always be presented as 32 bit, native endian floating point. All conversions to and from the true physical format of the hardware is handled by the device's driver.
Both AudioDevices and AudioStreams can contain instances of the AudioControl class or its many subclasses. An AudioControl provides properties that describe/manipulate a particular aspect of the object such as gain, mute, data source selection, etc. Many common controls are also also available as properties on the AudioDevice or AudioStream.
- AudioObjectPropertyScopeConstants
Provides common constants for the AudioObjectPropertyScope enumeration.
- AudioSelectorControl
The AudioSelectorControl class is an AudioControl class that selection-related controls do inherit from.
- AudioSliderControl
Defines the audio slider control, which is a subclass of the AudioControl class used for a value modified in a fixed range of values.
- AudioStereoPanControl
A control class that extends by the AudioControl class and provides stereo panning between two channels.
- AudioStream
The AudioStream class represents a stream of audio data that can be either provided to, or receieved from the associated AudioDevice object.
An AudioStream is providing all the required information to the callers to understand the data format the HAL requires for audio transactions.
- AudioStreamTerminalTypeConstants
Provides common constant values for the AudioStreamTerminalType enumeration.
- AudioSystemObject
Provides the audio system object, that is the base API where all other Core Audio API's are accessed from.
Inherits from the AudioObject class, and only has a single instance, queried by the Instance field.
- CoreAudioException
Provides the base class for exceptions thrown by the Core Audio framework wrappers.
- CoreAudioFunctions
Exposes utility methods, some of them are wrapping native functions.
- CoreAudioIOProcedure
Provides the base type for creating I/O procedures and registering them to the HAL.
From this, an input source and an output sink of audio data can be created.
This is the type that the CoreAudioPlayer and CoreAudioRecorder classes will use to provide/acquire audio data.
- CoreAudioPropertyNotFoundException
Special exception type thrown when a specified Core Audio framework property cannot be located by the library.
- Process
The Process class contains information about a client process connected to the HAL.
- PropertyListenerHandle
Provides an object that provides the property listener to managed clients.
Each managed client that uses this class must dispose it's exposed listener after usage by using the provided Dispose() method.
- TransportTypeConstants
Provides common constants for the TransportType enumeration.
Enums
- AudioControlKind
Defines the kind of a specifiied AudioControl instance.
- AudioHardwarePowerHint
Power Hints
The values for the PowerHint property.
- AudioObjectPropertyScope
An AudioObjectPropertyScope is a four char code that identifies, along with the AudioObjectPropertySelector and AudioObjectPropertyElement, a specific piece of information about an AudioObject.
- AudioObjectPropertySelector
An AudioObjectPropertySelector is a four char code that identifies, along with the AudioObjectPropertyScope and NAudio.MacOS.CoreAudio.AudioObjectPropertyElement, a specific piece of information about an AudioObject.
- AudioStreamDirection
Provides the values that the Direction property can have.
- AudioStreamTerminalType
AudioStream Terminal Types
Various constants that describe the terminal type of an AudioStream.
- TransportType
Transport Type IDs
Commonly used values for the GetTransportType(AudioObjectPropertyScope) method.
Delegates
- AudioObjectPropertyListenerDelegate
Provides the signature that all the HAL events are using for dispatching various important events.