nCine::ALAudioDevice class

OpenAL implementation of IAudioDevice.

Owns the OpenAL device and context, manages a fixed pool of sources and tracks the active players. On desktop Windows it also listens for default device changes and recreates the device when needed.

Base classes

class IAudioDevice
Interface for an audio device backend.

Constructors, destructors, conversion operators

ALAudioDevice()
~ALAudioDevice() override
ALAudioDevice(const ALAudioDevice&) deleted

Public functions

auto operator=(const ALAudioDevice&) -> ALAudioDevice& deleted
auto isValid() const -> bool override
Returns true if the device was initialized successfully.
auto name() const -> const char* override
Returns the name of the underlying device.
auto gain() const -> float override
Returns the listener gain (master volume).
void setGain(float gain) override
Sets the listener gain (master volume).
auto maxNumPlayers() const -> std::uint32_t override
Returns the maximum number of players that can be active at once.
auto numPlayers() const -> std::uint32_t override
Returns the number of currently active players.
auto player(unsigned int index) const -> const IAudioPlayer* override
void stopPlayers() override
Stops every player currently playing.
void pausePlayers() override
Pauses every player currently playing.
void stopPlayers(PlayerType playerType) override
Stops every player of the specified type.
void pausePlayers(PlayerType playerType) override
Pauses every player of the specified type.
void freezePlayers() override
Pauses every player currently playing while keeping it registered.
void unfreezePlayers() override
Resumes every player previously paused by freezePlayers().
auto registerPlayer(IAudioPlayer* player) -> std::uint32_t override
Registers a player so it receives state and buffer queue updates, returning its source id.
void unregisterPlayer(IAudioPlayer* player) override
Unregisters a previously registered player.
void updatePlayers() override
Updates the state of every registered player, including the buffer queue of stream players.
auto getListenerPosition() const -> const Vector3f& override
Returns the 3D position of the listener.
void updateListener(const Vector3f& position, const Vector3f& velocity) override
Updates the position and velocity of the listener.
auto nativeFrequency() -> std::int32_t override
Returns the native sample rate of the device.
void suspendDevice() override
Suspends the audio device.
void resumeDevice() override
Resumes the audio device.