mixStopAllTracks function mixer

bool mixStopAllTracks(
  1. Pointer<MixMixer> mixer,
  2. int fadeOutMs
)

Halt all currently-playing tracks, possibly fading out over time.

If fade_out_ms is > 0, the tracks do not stop mixing immediately, but rather fades to silence over that many milliseconds before stopping. Note that this is different than MIX_StopTrack(), which wants sample frames; this function takes milliseconds because different tracks might have different sample rates.

If a track ends normally while the fade-out is still in progress, the audio stops there; the fade is not adjusted to be shorter if it will last longer than the audio remaining.

Once a track has completed any fadeout and come to a stop, it will call its MIX_TrackStoppedCallback, if any. It is legal to assign the track a new input and/or restart it during this callback. This function does not prevent new play requests from being made.

\param mixer the mixer on which to stop all tracks. \param fade_out_ms the number of milliseconds to spend fading out to silence before halting. 0 to stop immediately. \returns true on success, false on error; call SDL_GetError() for details.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL_mixer 3.0.0.

\sa MIX_StopTrack

extern SDL_DECLSPEC bool SDLCALL MIX_StopAllTracks(MIX_Mixer *mixer, Sint64 fade_out_ms)

Implementation

bool mixStopAllTracks(Pointer<MixMixer> mixer, int fadeOutMs) {
  final mixStopAllTracksLookupFunction = _libMixer
      .lookupFunction<
        Uint8 Function(Pointer<MixMixer> mixer, Int64 fadeOutMs),
        int Function(Pointer<MixMixer> mixer, int fadeOutMs)
      >('MIX_StopAllTracks');
  return mixStopAllTracksLookupFunction(mixer, fadeOutMs) == 1;
}