SDL_mixer: Removed references to Mix_OpenAudioDevice() and updated "since" versions

From dcfc525a472b3d9cd2adb78a8479d2857ab9e596 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 10 Sep 2023 10:23:29 -0700
Subject: [PATCH] Removed references to Mix_OpenAudioDevice() and updated
 "since" versions

---
 include/SDL3_mixer/SDL_mixer.h | 217 +++++++++++++++------------------
 1 file changed, 101 insertions(+), 116 deletions(-)

diff --git a/include/SDL3_mixer/SDL_mixer.h b/include/SDL3_mixer/SDL_mixer.h
index 808c7b4c..a7b2e4d9 100644
--- a/include/SDL3_mixer/SDL_mixer.h
+++ b/include/SDL3_mixer/SDL_mixer.h
@@ -98,7 +98,7 @@ extern "C" {
  *
  * \returns a pointer to the version information.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC const SDL_version * SDLCALL Mix_Linked_Version(void);
 
@@ -173,13 +173,12 @@ typedef enum
  * behavior.
  *
  * After initializing SDL_mixer, the next step is to open an audio device to
- * prepare to play sound (with Mix_OpenAudio() or Mix_OpenAudioDevice()), and
- * load audio data to play with that device.
+ * prepare to play sound (with Mix_OpenAudio()), and load audio data to play with that device.
  *
  * \param flags initialization flags, OR'd together.
  * \returns all currently initialized flags.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_Quit
  */
@@ -204,7 +203,7 @@ extern DECLSPEC int SDLCALL Mix_Init(int flags);
  * While this isn't required, be aware of the risks of deviating from that
  * behavior.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_Init
  */
@@ -295,10 +294,6 @@ typedef struct _Mix_Music Mix_Music;
  * Mix_HookMusic), you might have code that expects it to be in a specific
  * format, and you should specify that here.
  *
- * You may only have one audio device open at a time; if you want to change a
- * setting, you must close the device and reopen it, which is not something
- * you can do seamlessly during playback.
- *
  * This function allows you to select specific audio hardware on the system
  * with the `devid` parameter. If you specify 0, SDL_mixer will choose the
  * best default it can on your behalf (which, in many cases, is exactly what
@@ -313,16 +308,15 @@ typedef struct _Mix_Music Mix_Music;
  * some audio data and start playing!
  *
  * When done with an audio device, probably at the end of the program, the app
- * should dispose of the device with Mix_CloseDevice().
+ * should close the audio with Mix_CloseAudio().
  *
  * \param devid the device name to open, or 0 for a reasonable default.
  * \param spec the audio format you'd like SDL_mixer to work in.
  * \returns 0 if successful, -1 on error.
  *
- * \since This function is available since SDL_mixer 2.0.2.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
- * \sa Mix_OpenAudio
- * \sa Mix_CloseDevice
+ * \sa Mix_CloseAudio
  * \sa Mix_QuerySpec
  */
 extern DECLSPEC int SDLCALL Mix_OpenAudio(SDL_AudioDeviceID devid, const SDL_AudioSpec *spec);
@@ -332,18 +326,13 @@ extern DECLSPEC int SDLCALL Mix_OpenAudio(SDL_AudioDeviceID devid, const SDL_Aud
  *
  * \param pause_on 1 to pause audio output, or 0 to resume.
  *
- * \since This function is available since SDL_mixer 2.8.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void SDLCALL Mix_PauseAudio(int pause_on);
 
 /**
  * Find out what the actual audio device parameters are.
  *
- * If Mix_OpenAudioDevice() was called with `allowed_changes` set to anything
- * but zero, or Mix_OpenAudio() was used, some audio device settings may be
- * different from the application's request. This function will report what
- * the device is actually running at.
- *
  * Note this is only important if the app intends to touch the audio buffers
  * being sent to the hardware directly. If an app just wants to play audio
  * files and let SDL_mixer handle the low-level details, this function can
@@ -393,7 +382,7 @@ extern DECLSPEC int SDLCALL Mix_QuerySpec(int *frequency, Uint16 *format, int *c
  *                 count.
  * \returns the new number of allocated channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_AllocateChannels(int numchans);
 
@@ -419,7 +408,7 @@ extern DECLSPEC int SDLCALL Mix_AllocateChannels(int numchans);
  * whether this function succeeds or not. SDL_mixer reads everything it needs
  * from the RWops during this call in any case.
  *
- * There is a separate function (a macro, before SDL_mixer 2.6.0) to read
+ * There is a separate function (a macro, before SDL_mixer 3.0.0) to read
  * files from disk without having to deal with SDL_RWops:
  * `Mix_LoadWAV("filename.wav")` will call this function and manage those
  * details for you.
@@ -432,8 +421,7 @@ extern DECLSPEC int SDLCALL Mix_AllocateChannels(int numchans);
  *                SDL_FALSE to leave it open.
  * \returns a new chunk, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.6.0 (and as a macro
- *        since 2.0.0).
+ * \since This function is available since SDL_mixer 3.0.0
  *
  * \sa Mix_LoadWAV
  * \sa Mix_FreeChunk
@@ -464,7 +452,7 @@ extern DECLSPEC Mix_Chunk * SDLCALL Mix_LoadWAV_RW(SDL_RWops *src, SDL_bool free
  * When done with a chunk, the app should dispose of it with a call to
  * Mix_FreeChunk().
  *
- * Note that before SDL_mixer 2.6.0, this function was a macro that called
+ * Note that before SDL_mixer 3.0.0, this function was a macro that called
  * Mix_LoadWAV_RW(), creating a RWops and setting `freesrc` to SDL_TRUE. This
  * macro has since been promoted to a proper API function. Older binaries
  * linked against a newer SDL_mixer will still call Mix_LoadWAV_RW directly,
@@ -473,8 +461,7 @@ extern DECLSPEC Mix_Chunk * SDLCALL Mix_LoadWAV_RW(SDL_RWops *src, SDL_bool free
  * \param file the filesystem path to load data from.
  * \returns a new chunk, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.6.0 (and as a macro
- *        since 2.0.0).
+ * \since This function is available since SDL_mixer 3.0.0
  *
  * \sa Mix_LoadWAV_RW
  * \sa Mix_FreeChunk
@@ -506,7 +493,7 @@ extern DECLSPEC Mix_Chunk * SDLCALL Mix_LoadWAV(const char *file);
  * \param file a file path from where to load music data.
  * \returns a new music object, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_FreeMusic
  */
@@ -550,7 +537,7 @@ extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUS(const char *file);
  *                SDL_FALSE to leave it open.
  * \returns a new music object, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_FreeMusic
  */
@@ -607,7 +594,7 @@ extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUS_RW(SDL_RWops *src, SDL_bool free
  *                SDL_FALSE to leave it open.
  * \returns a new music object, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_FreeMusic
  */
@@ -641,7 +628,7 @@ extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUSType_RW(SDL_RWops *src, Mix_Music
  * \param mem memory buffer containing of a WAV file.
  * \returns a new chunk, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_LoadWAV_RW
  * \sa Mix_FreeChunk
@@ -662,7 +649,7 @@ extern DECLSPEC Mix_Chunk * SDLCALL Mix_QuickLoad_WAV(Uint8 *mem);
  * \param len length of buffer pointed to by `mem`, in bytes.
  * \returns a new chunk, or NULL on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_FreeChunk
  */
@@ -680,7 +667,7 @@ extern DECLSPEC Mix_Chunk * SDLCALL Mix_QuickLoad_RAW(Uint8 *mem, Uint32 len);
  *
  * \param chunk the chunk to free.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_LoadWAV
  * \sa Mix_LoadWAV_RW
@@ -700,7 +687,7 @@ extern DECLSPEC void SDLCALL Mix_FreeChunk(Mix_Chunk *chunk);
  *
  * \param music the music object to free.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_LoadMUS
  * \sa Mix_LoadMUS_RW
@@ -725,7 +712,7 @@ extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music);
  *
  * \returns number of chunk decoders available.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetChunkDecoder
  * \sa Mix_HasChunkDecoder
@@ -747,7 +734,7 @@ extern DECLSPEC int SDLCALL Mix_GetNumChunkDecoders(void);
  * \param index index of the chunk decoder.
  * \returns the chunk decoder's name.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetNumChunkDecoders
  */
@@ -769,7 +756,7 @@ extern DECLSPEC const char * SDLCALL Mix_GetChunkDecoder(int index);
  * \returns SDL_TRUE if a decoder by that name is available, SDL_FALSE
  *          otherwise.
  *
- * \since This function is available since SDL_mixer 2.0.2.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetNumChunkDecoders
  * \sa Mix_GetChunkDecoder
@@ -793,7 +780,7 @@ extern DECLSPEC SDL_bool SDLCALL Mix_HasChunkDecoder(const char *name);
  *
  * \returns number of music decoders available.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicDecoder
  * \sa Mix_HasMusicDecoder
@@ -815,7 +802,7 @@ extern DECLSPEC int SDLCALL Mix_GetNumMusicDecoders(void);
  * \param index index of the music decoder.
  * \returns the music decoder's name.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetNumMusicDecoders
  */
@@ -837,7 +824,7 @@ extern DECLSPEC const char * SDLCALL Mix_GetMusicDecoder(int index);
  * \returns SDL_TRUE if a decoder by that name is available, SDL_FALSE
  *          otherwise.
  *
- * \since This function is available since SDL_mixer 2.6.0
+ * \since This function is available since SDL_mixer 3.0.0
  *
  * \sa Mix_GetNumMusicDecoders
  * \sa Mix_GetMusicDecoder
@@ -854,7 +841,7 @@ extern DECLSPEC SDL_bool SDLCALL Mix_HasMusicDecoder(const char *name);
  *              music.
  * \returns the Mix_MusicType for the music object.
  *
- * \since This function is available since SDL_mixer 2.0.0
+ * \since This function is available since SDL_mixer 3.0.0
  */
 extern DECLSPEC Mix_MusicType SDLCALL Mix_GetMusicType(const Mix_Music *music);
 
@@ -879,7 +866,7 @@ extern DECLSPEC Mix_MusicType SDLCALL Mix_GetMusicType(const Mix_Music *music);
  *              music.
  * \returns the music's title if available, or the filename if not, or "".
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicTitleTag
  * \sa Mix_GetMusicArtistTag
@@ -906,7 +893,7 @@ extern DECLSPEC const char *SDLCALL Mix_GetMusicTitle(const Mix_Music *music);
  *              music.
  * \returns the music's title if available, or "".
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicTitle
  * \sa Mix_GetMusicArtistTag
@@ -929,7 +916,7 @@ extern DECLSPEC const char *SDLCALL Mix_GetMusicTitleTag(const Mix_Music *music)
  *              music.
  * \returns the music's artist name if available, or "".
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicTitleTag
  * \sa Mix_GetMusicAlbumTag
@@ -951,7 +938,7 @@ extern DECLSPEC const char *SDLCALL Mix_GetMusicArtistTag(const Mix_Music *music
  *              music.
  * \returns the music's album name if available, or "".
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicTitleTag
  * \sa Mix_GetMusicArtistTag
@@ -973,7 +960,7 @@ extern DECLSPEC const char *SDLCALL Mix_GetMusicAlbumTag(const Mix_Music *music)
  *              music.
  * \returns the music's copyright text if available, or "".
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GetMusicTitleTag
  * \sa Mix_GetMusicArtistTag
@@ -1013,7 +1000,7 @@ extern DECLSPEC const char *SDLCALL Mix_GetMusicCopyrightTag(const Mix_Music *mu
  * \param mix_func the callback function to become the new post-mix callback.
  * \param arg a pointer that is passed, untouched, to the callback.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_HookMusic
  */
@@ -1059,7 +1046,7 @@ extern DECLSPEC void SDLCALL Mix_SetPostMix(void (SDLCALL *mix_func)(void *udata
  * \param mix_func the callback function to become the new post-mix callback.
  * \param arg a pointer that is passed, untouched, to the callback.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_SetPostMix
  */
@@ -1086,7 +1073,7 @@ extern DECLSPEC void SDLCALL Mix_HookMusic(void (SDLCALL *mix_func)(void *udata,
  * \param music_finished the callback function to become the new notification
  *                       mechanism.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void SDLCALL Mix_HookMusicFinished(void (SDLCALL *music_finished)(void));
 
@@ -1098,7 +1085,7 @@ extern DECLSPEC void SDLCALL Mix_HookMusicFinished(void (SDLCALL *music_finished
  *
  * \returns pointer to the user data previously passed to Mix_HookMusic.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void * SDLCALL Mix_GetMusicHookData(void);
 
@@ -1120,7 +1107,7 @@ extern DECLSPEC void * SDLCALL Mix_GetMusicHookData(void);
  * \param channel_finished the callback function to become the new
  *                         notification mechanism.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void SDLCALL Mix_ChannelFinished(void (SDLCALL *channel_finished)(int channel));
 
@@ -1221,7 +1208,7 @@ typedef void (SDLCALL *Mix_EffectDone_t)(int chan, void *udata);
  * \returns zero if error (no such channel), nonzero if added. Error messages
  *          can be retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_RegisterEffect(int chan, Mix_EffectFunc_t f, Mix_EffectDone_t d, void *arg);
 
@@ -1246,7 +1233,7 @@ extern DECLSPEC int SDLCALL Mix_RegisterEffect(int chan, Mix_EffectFunc_t f, Mix
  * \returns zero if error (no such channel or effect), nonzero if removed.
  *          Error messages can be retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_UnregisterEffect(int channel, Mix_EffectFunc_t f);
 
@@ -1271,7 +1258,7 @@ extern DECLSPEC int SDLCALL Mix_UnregisterEffect(int channel, Mix_EffectFunc_t f
  * \returns zero if error (no such channel), nonzero if all effects removed.
  *          Error messages can be retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_UnregisterAllEffects(int channel);
 
@@ -1327,7 +1314,7 @@ extern DECLSPEC int SDLCALL Mix_UnregisterAllEffects(int channel);
  * \returns zero if error (no such channel or Mix_RegisterEffect() fails),
  *          nonzero if panning effect enabled.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_SetPosition
  * \sa Mix_SetDistance
@@ -1381,7 +1368,7 @@ extern DECLSPEC int SDLCALL Mix_SetPanning(int channel, Uint8 left, Uint8 right)
  *          nonzero if position effect is enabled. Error messages can be
  *          retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_SetPosition(int channel, Sint16 angle, Uint8 distance);
 
@@ -1419,7 +1406,7 @@ extern DECLSPEC int SDLCALL Mix_SetPosition(int channel, Sint16 angle, Uint8 dis
  *          nonzero if position effect is enabled. Error messages can be
  *          retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_SetDistance(int channel, Uint8 distance);
 
@@ -1453,7 +1440,7 @@ extern DECLSPEC int SDLCALL Mix_SetDistance(int channel, Uint8 distance);
  *          in mono mode is a no-op, but this call will return successful in
  *          that case. Error messages can be retrieved from Mix_GetError().
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_SetReverseStereo(int channel, int flip);
 
@@ -1482,7 +1469,7 @@ extern DECLSPEC int SDLCALL Mix_SetReverseStereo(int channel, int flip);
  * \param num number of channels to reserve, starting at index zero.
  * \returns the number of reserved channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_ReserveChannels(int num);
 
@@ -1507,7 +1494,7 @@ extern DECLSPEC int SDLCALL Mix_ReserveChannels(int num);
  * \param tag an arbitrary value to assign a channel.
  * \returns non-zero on success, zero on error (no such channel).
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_GroupChannel(int which, int tag);
 
@@ -1533,7 +1520,7 @@ extern DECLSPEC int SDLCALL Mix_GroupChannel(int which, int tag);
  * \param tag an arbitrary value to assign a channel.
  * \returns 0 if successful, negative on error
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_GroupChannels(int from, int to, int tag);
 
@@ -1551,7 +1538,7 @@ extern DECLSPEC int SDLCALL Mix_GroupChannels(int from, int to, int tag);
  * \param tag an arbitrary value, assigned to channels, to search for.
  * \returns first available channel, or -1 if none are available.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_GroupAvailable(int tag);
 
@@ -1564,7 +1551,7 @@ extern DECLSPEC int SDLCALL Mix_GroupAvailable(int tag);
  * \param tag an arbitrary value, assigned to channels, to search for.
  * \returns the number of channels assigned the specified tag.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_GroupCount(int tag);
 
@@ -1580,7 +1567,7 @@ extern DECLSPEC int SDLCALL Mix_GroupCount(int tag);
  * \param tag an arbitrary value, assigned to channels, to search through.
  * \returns the "oldest" sample playing in a group of channels
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GroupNewer
  */
@@ -1598,7 +1585,7 @@ extern DECLSPEC int SDLCALL Mix_GroupOldest(int tag);
  * \param tag an arbitrary value, assigned to channels, to search through.
  * \returns the "most recent" sample playing in a group of channels
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  *
  * \sa Mix_GroupOldest
  */
@@ -1616,7 +1603,7 @@ extern DECLSPEC int SDLCALL Mix_GroupNewer(int tag);
  * If `loops` is greater than zero, loop the sound that many times. If `loops`
  * is -1, loop "infinitely" (~65000 times).
  *
- * Note that before SDL_mixer 2.6.0, this function was a macro that called
+ * Note that before SDL_mixer 3.0.0, this function was a macro that called
  * Mix_PlayChannelTimed() with a fourth parameter ("ticks") of -1. This
  * function still does the same thing, but promotes it to a proper API
  * function. Older binaries linked against a newer SDL_mixer will still call
@@ -1630,8 +1617,7 @@ extern DECLSPEC int SDLCALL Mix_GroupNewer(int tag);
  * \returns which channel was used to play the sound, or -1 if sound could not
  *          be played.
  *
- * \since This function is available since SDL_mixer 2.6.0 (and as a macro
- *        since 2.0.0).
+ * \since This function is available since SDL_mixer 3.0.0
  */
 extern DECLSPEC int SDLCALL Mix_PlayChannel(int channel, Mix_Chunk *chunk, int loops);
 
@@ -1664,7 +1650,7 @@ extern DECLSPEC int SDLCALL Mix_PlayChannel(int channel, Mix_Chunk *chunk, int l
  * \returns which channel was used to play the sound, or -1 if sound could not
  *          be played.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ticks);
 
@@ -1687,7 +1673,7 @@ extern DECLSPEC int SDLCALL Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk,
  *              and stop").
  * \returns zero on success, -1 on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_PlayMusic(Mix_Music *music, int loops);
 
@@ -1714,7 +1700,7 @@ extern DECLSPEC int SDLCALL Mix_PlayMusic(Mix_Music *music, int loops);
  * \param ms the number of milliseconds to spend fading in.
  * \returns zero on success, -1 on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeInMusic(Mix_Music *music, int loops, int ms);
 
@@ -1753,7 +1739,7 @@ extern DECLSPEC int SDLCALL Mix_FadeInMusic(Mix_Music *music, int loops, int ms)
  *                 playback should start.
  * \returns zero on success, -1 on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeInMusicPos(Mix_Music *music, int loops, int ms, double position);
 
@@ -1777,7 +1763,7 @@ extern DECLSPEC int SDLCALL Mix_FadeInMusicPos(Mix_Music *music, int loops, int
  * was called on it (which is to say: you probably shouldn't call Mix_Volume()
  * on a fading channel).
  *
- * Note that before SDL_mixer 2.6.0, this function was a macro that called
+ * Note that before SDL_mixer 3.0.0, this function was a macro that called
  * Mix_FadeInChannelTimed() with a fourth parameter ("ticks") of -1. This
  * function still does the same thing, but promotes it to a proper API
  * function. Older binaries linked against a newer SDL_mixer will still call
@@ -1793,8 +1779,7 @@ extern DECLSPEC int SDLCALL Mix_FadeInMusicPos(Mix_Music *music, int loops, int
  * \returns which channel was used to play the sound, or -1 if sound could not
  *          be played.
  *
- * \since This function is available since SDL_mixer 2.6.0 (and as a macro
- *        since 2.0.0).
+ * \since This function is available since SDL_mixer 3.0.0
  */
 extern DECLSPEC int SDLCALL Mix_FadeInChannel(int channel, Mix_Chunk *chunk, int loops, int ms);
 
@@ -1838,7 +1823,7 @@ extern DECLSPEC int SDLCALL Mix_FadeInChannel(int channel, Mix_Chunk *chunk, int
  * \returns which channel was used to play the sound, or -1 if sound could not
  *          be played.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeInChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ms, int ticks);
 
@@ -1866,7 +1851,7 @@ extern DECLSPEC int SDLCALL Mix_FadeInChannelTimed(int channel, Mix_Chunk *chunk
  *          the current volume. If `channel` is -1, this returns the average
  *          of all channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_Volume(int channel, int volume);
 
@@ -1894,7 +1879,7 @@ extern DECLSPEC int SDLCALL Mix_Volume(int channel, int volume);
  * \returns the previous volume. If the specified volume is -1, this returns
  *          the current volume. If `chunk` is NULL, this returns -1.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_VolumeChunk(Mix_Chunk *chunk, int volume);
 
@@ -1915,7 +1900,7 @@ extern DECLSPEC int SDLCALL Mix_VolumeChunk(Mix_Chunk *chunk, int volume);
  * \returns the previous volume. If the specified volume is -1, this returns
  *          the current volume.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_VolumeMusic(int volume);
 
@@ -1925,7 +1910,7 @@ extern DECLSPEC int SDLCALL Mix_VolumeMusic(int volume);
  * \param music the music object to query.
  * \returns the music's current volume, between 0 and MIX_MAX_VOLUME (128).
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_GetMusicVolume(Mix_Music *music);
 
@@ -1951,7 +1936,7 @@ extern DECLSPEC int SDLCALL Mix_GetMusicVolume(Mix_Music *music);
  * \returns the previous volume. If the specified volume is -1, this returns
  *          the current volume.
  *
- * \since This function is available since SDL_mixer 2.6.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_MasterVolume(int volume);
 
@@ -1973,7 +1958,7 @@ extern DECLSPEC int SDLCALL Mix_MasterVolume(int volume);
  * \param channel channel to halt, or -1 to halt all channels.
  * \returns 0 on success, or -1 on error.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_HaltChannel(int channel);
 
@@ -1995,7 +1980,7 @@ extern DECLSPEC int SDLCALL Mix_HaltChannel(int channel);
  * \param tag an arbitrary value, assigned to channels, to search for.
  * \returns zero, whether any channels were halted or not.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_HaltGroup(int tag);
 
@@ -2010,7 +1995,7 @@ extern DECLSPEC int SDLCALL Mix_HaltGroup(int tag);
  *
  * \returns zero, regardless of whether any music was halted.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_HaltMusic(void);
 
@@ -2038,7 +2023,7 @@ extern DECLSPEC int SDLCALL Mix_HaltMusic(void);
  *              halting, -1 to not halt.
  * \returns the number of channels that changed expirations.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_ExpireChannel(int channel, int ticks);
 
@@ -2064,7 +2049,7 @@ extern DECLSPEC int SDLCALL Mix_ExpireChannel(int channel, int ticks);
  * \param ms number of milliseconds to fade before halting the channel.
  * \returns the number of channels scheduled to fade.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeOutChannel(int which, int ms);
 
@@ -2097,7 +2082,7 @@ extern DECLSPEC int SDLCALL Mix_FadeOutChannel(int which, int ms);
  * \param ms number of milliseconds to fade before halting the group.
  * \returns the number of channels that were scheduled for fading.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeOutGroup(int tag, int ms);
 
@@ -2123,7 +2108,7 @@ extern DECLSPEC int SDLCALL Mix_FadeOutGroup(int tag, int ms);
  * \returns non-zero if music was scheduled to fade, zero otherwise. If no
  *          music is currently playing, this returns zero.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC int SDLCALL Mix_FadeOutMusic(int ms);
 
@@ -2140,7 +2125,7 @@ extern DECLSPEC int SDLCALL Mix_FadeOutMusic(int ms);
  *
  * \returns the current fading status of the music stream.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC Mix_Fading SDLCALL Mix_FadingMusic(void);
 
@@ -2164,7 +2149,7 @@ extern DECLSPEC Mix_Fading SDLCALL Mix_FadingMusic(void);
  * \param which the channel to query.
  * \returns the current fading status of the channel.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC Mix_Fading SDLCALL Mix_FadingChannel(int which);
 
@@ -2190,7 +2175,7 @@ extern DECLSPEC Mix_Fading SDLCALL Mix_FadingChannel(int which);
  *
  * \param channel the channel to pause, or -1 to pause all channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void SDLCALL Mix_Pause(int channel);
 
@@ -2208,7 +2193,7 @@ extern DECLSPEC void SDLCALL Mix_Pause(int channel);
  *
  * \param channel the channel to resume, or -1 to resume all paused channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 extern DECLSPEC void SDLCALL Mix_Resume(int channel);
 
@@ -2221,7 +2206,7 @@ extern DECLSPEC void SDLCALL Mix_Resume(int channel);
  * \return 1 if channel paused, 0 otherwise. If `channel` is -1, returns the
  *         number of paused channels.
  *
- * \since This function is available since SDL_mixer 2.0.0.
+ * \since This function is available since SDL_mixer 3.0.0.
  */
 exter

(Patch may be truncated, please check the link at the top of this post.)