Audaspace 1.7.0
A high level audio library.
Loading...
Searching...
No Matches
MixingThreadDevice Class Reference

This device extends the SoftwareDevice with code for running mixing in a separate thread. More...

#include <MixingThreadDevice.h>

Inheritance diagram for MixingThreadDevice:

Protected Member Functions

void startMixingThread (size_t buffersize)
 Starts the streaming thread.
void notifyMixingThread ()
 Notify the mixing thread.
RingBuffergetRingBuffer ()
 Get ring buffer for reading.
bool isMixingThreadRunning ()
 Returns whether the thread is running or not.
virtual void playing (bool playing)
 This function tells the device, to start or pause playback.
virtual void preMixingWork (bool playing)
 Called every iteration in the mixing thread before mixing.
 MixingThreadDevice ()
 Empty default constructor.
void stopMixingThread ()
 Stops all playback and notifies the mixing thread to stop.
Protected Member Functions inherited from SoftwareDevice
void create ()
 Initializes member variables.
void destroy ()
 Uninitializes member variables.
void mix (data_t *buffer, int length)
 Mixes the next samples into the buffer.
void setSpecs (Specs specs)
 Sets the audio output specification of the device.
void setSpecs (DeviceSpecs specs)
 Sets the audio output specification of the device.
 SoftwareDevice ()
 Empty default constructor.

Additional Inherited Members

Public Types inherited from IDevice
typedef void(* syncFunction) (void *, int, float)
 The syncFunction is called when a synchronization event happens.
Public Member Functions inherited from SoftwareDevice
void setQuality (ResampleQuality quality)
 Sets the resampling quality.
virtual DeviceSpecs getSpecs () const
 Returns the specification of the device.
virtual std::shared_ptr< IHandleplay (std::shared_ptr< IReader > reader, bool keep=false)
 Plays a sound source.
virtual std::shared_ptr< IHandleplay (std::shared_ptr< ISound > sound, bool keep=false)
 Plays a sound source.
virtual void stopAll ()
 Stops all playing sounds.
virtual void lock ()
 Locks the device.
virtual void unlock ()
 Unlocks the previously locked device.
virtual float getVolume () const
 Retrieves the overall device volume.
virtual void setVolume (float volume)
 Sets the overall device volume.
virtual Vector3 getListenerLocation () const
 Retrieves the listener location.
virtual void setListenerLocation (const Vector3 &location)
 Sets the listener location.
virtual Vector3 getListenerVelocity () const
 Retrieves the listener velocity.
virtual void setListenerVelocity (const Vector3 &velocity)
 Sets the listener velocity.
virtual Quaternion getListenerOrientation () const
 Retrieves the listener orientation.
virtual void setListenerOrientation (const Quaternion &orientation)
 Sets the listener orientation.
virtual float getSpeedOfSound () const
 Retrieves the speed of sound.
virtual void setSpeedOfSound (float speed)
 Sets the speed of sound.
virtual float getDopplerFactor () const
 Retrieves the doppler factor.
virtual void setDopplerFactor (float factor)
 Sets the doppler factor.
virtual DistanceModel getDistanceModel () const
 Retrieves the distance model.
virtual void setDistanceModel (DistanceModel model)
 Sets the distance model.
virtual void seekSynchronizer (double time)
virtual double getSynchronizerPosition ()
virtual void playSynchronizer ()
virtual void stopSynchronizer ()
virtual void setSyncCallback (syncFunction function, void *data)
virtual int isSynchronizerPlaying ()
Public Member Functions inherited from IDevice
virtual ~IDevice ()
 Destroys the device.
Static Public Member Functions inherited from SoftwareDevice
static void setPanning (IHandle *handle, float pan)
 Sets the panning of a specific handle.
Protected Attributes inherited from SoftwareDevice
DeviceSpecs m_specs
 The specification of the device.
std::shared_ptr< Mixerm_mixer
 The mixer.
ResampleQuality m_quality
 Resampling quality.

Detailed Description

This device extends the SoftwareDevice with code for running mixing in a separate thread.

Constructor & Destructor Documentation

◆ MixingThreadDevice()

MixingThreadDevice::MixingThreadDevice ( )
protected

Empty default constructor.

To setup the device call the function create() and to uninitialize call destroy().

Member Function Documentation

◆ playing()

virtual void MixingThreadDevice::playing ( bool playing)
protectedvirtual

This function tells the device, to start or pause playback.

Parameters
playingTrue if device should playback.
Note
This method is only called when the device is locked.

Implements SoftwareDevice.

Reimplemented in JackDevice, PipeWireDevice, and PulseAudioDevice.

◆ preMixingWork()

virtual void MixingThreadDevice::preMixingWork ( bool playing)
protectedvirtual

Called every iteration in the mixing thread before mixing.

Reimplemented in PipeWireDevice.

◆ startMixingThread()

void MixingThreadDevice::startMixingThread ( size_t buffersize)
protected

Starts the streaming thread.

Parameters
buffersizeSize of the ring buffer in bytes.

◆ stopMixingThread()

void MixingThreadDevice::stopMixingThread ( )
protected

Stops all playback and notifies the mixing thread to stop.

Warning
The device has to be unlocked to not run into a deadlock.

The documentation for this class was generated from the following file: