SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
SDL::Mixer Struct Reference

An opaque object that represents a mixer. More...

Inheritance diagram for SDL::Mixer:
[legend]

Public Member Functions

constexpr Mixer (MixerRaw resource) noexcept
 Constructs from raw Mixer.
constexpr Mixer (Mixer &&other) noexcept
 Move constructor.
 Mixer (AudioDeviceRef devid, OptionalRef< const AudioSpec > spec=std::nullopt)
 Create a mixer that plays sound directly to an audio device.
 Mixer (const AudioSpec &spec)
 Create a mixer that generates audio to a memory buffer.
 ~Mixer ()
 Destructor.
constexpr Mixeroperator= (Mixer &&other) noexcept
 Assignment operator.
Public Member Functions inherited from SDL::MixerBase
void Destroy ()
 Free a mixer.
PropertiesRef GetProperties ()
 Get the properties associated with a mixer.
void GetFormat (AudioSpec *spec)
 Get the audio format a mixer is generating.
MixerLock Lock ()
 Lock a mixer by obtaining its internal mutex.
void Unlock (MixerLock &&lock)
 Unlock a mixer previously locked by a call to LockMixer().
Audio LoadAudio_IO (IOStreamRef io, bool predecode, bool closeio=false)
 Load audio for playback from an IOStream.
Audio LoadAudio (StringParam path, bool predecode)
 Load audio for playback from a file.
Audio LoadAudioNoCopy (SourceBytes data, bool free_when_done)
 Load audio for playback from a memory buffer without making a copy.
Audio LoadRawAudio_IO (IOStreamRef io, const AudioSpec &spec, bool closeio=false)
 Load raw PCM data from an IOStream.
Audio LoadRawAudio (SourceBytes data, const AudioSpec &spec)
 Load raw PCM data from a memory buffer.
Audio LoadRawAudioNoCopy (SourceBytes data, const AudioSpec &spec, bool free_when_done)
 Load raw PCM data from a memory buffer without making a copy.
Audio CreateSineWaveAudio (int hz, float amplitude, Sint64 ms)
 Create a Audio that generates a sinewave.
TrackRef CreateTrack ()
 Create a new track on a mixer.
OwnArray< TrackRefGetTaggedTracks (StringParam tag)
 Get all tracks with a specific tag.
void PlayTag (StringParam tag, PropertiesRef options)
 Start (or restart) mixing all tracks with a specific tag for playback.
bool PlayAudio (AudioRef audio)
 Play a Audio from start to finish without any management.
void StopAllTracks (Sint64 fade_out_ms)
 Halt all currently-playing tracks, possibly fading out over time.
void StopTag (StringParam tag, Sint64 fade_out_ms)
 Halt all tracks with a specific tag, possibly fading out over time.
void PauseAllTracks ()
 Pause all currently-playing tracks.
void PauseTag (StringParam tag)
 Pause all tracks with a specific tag.
void ResumeAllTracks ()
 Resume all currently-paused tracks.
void ResumeTag (StringParam tag)
 Resume all tracks with a specific tag.
void SetGain (float gain)
 Set a mixer's master gain control.
float GetGain ()
 Get a mixer's master gain control.
void SetTagGain (StringParam tag, float gain)
 Set the gain control of all tracks with a specific tag.
void SetFrequencyRatio (float ratio)
 Set a mixer's master frequency ratio.
float GetFrequencyRatio ()
 Get a mixer's master frequency ratio.
GroupRef CreateGroup ()
 Create a mixing group.
void SetPostMixCallback (PostMixCallback cb, void *userdata)
 Set a callback that fires when all mixing has completed.
void SetPostMixCallback (PostMixCB cb)
 Set a callback that fires when all mixing has completed.
int Generate (TargetBytes buffer)
 Generate mixer output when not driving an audio device.
constexpr ResourceBaseT ()=default
 Default constructor, creates null/invalid resource.
constexpr ResourceBaseT (RawPointer resource)
 Constructs from resource pointer.
constexpr ResourceBaseT (std::nullptr_t)
 Constructs null/invalid.
constexpr ResourceBaseT (const ResourceBaseT &)=default
 Copy constructor.
constexpr ResourceBaseT (ResourceBaseT &&) noexcept=default
 Move constructor.
Public Member Functions inherited from SDL::ResourceBaseT< MixerRaw >
constexpr ResourceBaseT ()=default
 Default constructor, creates null/invalid resource.
constexpr operator bool () const
 Converts to bool.
constexpr auto operator<=> (const ResourceBaseT &other) const=default
 Comparison.
constexpr RawConstPointer operator-> () const noexcept
 member access to underlying resource pointer.
constexpr RawPointer get () const noexcept
 Retrieves underlying resource pointer.
constexpr RawPointer release () noexcept
 Retrieves underlying resource pointer and clear this.

Additional Inherited Members

Public Types inherited from SDL::ResourceBaseT< MixerRaw >
using RawPointer
 The underlying raw pointer type.
using RawConstPointer
 The underlying const raw pointer type.
Protected Member Functions inherited from SDL::ResourceBaseT< MixerRaw >
constexpr ~ResourceBaseT ()=default
 Destructor.
constexpr ResourceBaseToperator= (const ResourceBaseT &)=default
 Assignment operator.

Detailed Description

An opaque object that represents a mixer.

The Mixer is the toplevel object for this library. To use SDL_mixer, you must have at least one, but are allowed to have several. Each mixer is responsible for generating a single output stream of mixed audio, usually to an audio device for realtime playback.

Mixers are either created to feed an audio device (through CreateMixerDevice()), or to generate audio to a buffer in memory, where it can be used for anything (through CreateMixer()).

Since
This datatype is available since SDL_mixer 3.0.0.
Category:
Resource

Constructor & Destructor Documentation

◆ Mixer()

SDL::Mixer::Mixer ( MixerRaw resource)
inlineexplicitconstexprnoexcept

Constructs from raw Mixer.

Parameters
resourcea MixerRaw to be wrapped.

This assumes the ownership, call release() if you need to take back.


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