From 685a43d6f165ac9bae9e5f409bb720bcec39e105 Mon Sep 17 00:00:00 2001
From: Petar Popovic <[EMAIL REDACTED]>
Date: Mon, 28 Jul 2025 11:14:20 +0200
Subject: [PATCH] Changed frames/ms types from Uint64 to Sint64
---
include/SDL3_mixer/SDL_mixer.h | 14 +++++++-------
src/SDL_mixer.c | 26 +++++++++++++-------------
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/include/SDL3_mixer/SDL_mixer.h b/include/SDL3_mixer/SDL_mixer.h
index 4f97764d..42bef634 100644
--- a/include/SDL3_mixer/SDL_mixer.h
+++ b/include/SDL3_mixer/SDL_mixer.h
@@ -1229,7 +1229,7 @@ extern SDL_DECLSPEC void SDLCALL MIX_UntagTrack(MIX_Track *track, const char *ta
*
* \sa MIX_GetTrackPlaybackPosition
*/
-extern SDL_DECLSPEC bool SDLCALL MIX_SetTrackPlaybackPosition(MIX_Track *track, Uint64 frames);
+extern SDL_DECLSPEC bool SDLCALL MIX_SetTrackPlaybackPosition(MIX_Track *track, Sint64 frames);
/**
* Get the current input position of a playing track.
@@ -1375,7 +1375,7 @@ extern SDL_DECLSPEC Sint64 SDLCALL MIX_GetTrackRemaining(MIX_Track *track);
*
* \sa MIX_TrackFramesToMS
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_TrackMSToFrames(MIX_Track *track, Uint64 ms);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_TrackMSToFrames(MIX_Track *track, Sint64 ms);
/**
* Convert sample frames for a track's current format to milliseconds.
@@ -1404,7 +1404,7 @@ extern SDL_DECLSPEC Uint64 SDLCALL MIX_TrackMSToFrames(MIX_Track *track, Uint64
*
* \sa MIX_TrackMSToFrames
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_TrackFramesToMS(MIX_Track *track, Uint64 frames);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_TrackFramesToMS(MIX_Track *track, Sint64 frames);
/**
* Convert milliseconds to sample frames for a MIX_Audio's format.
@@ -1422,7 +1422,7 @@ extern SDL_DECLSPEC Uint64 SDLCALL MIX_TrackFramesToMS(MIX_Track *track, Uint64
*
* \sa MIX_AudioFramesToMS
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_AudioMSToFrames(MIX_Audio *audio, Uint64 ms);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_AudioMSToFrames(MIX_Audio *audio, Sint64 ms);
/**
* Convert sample frames for a MIX_Audio's format to milliseconds.
@@ -1443,7 +1443,7 @@ extern SDL_DECLSPEC Uint64 SDLCALL MIX_AudioMSToFrames(MIX_Audio *audio, Uint64
*
* \sa MIX_AudioMSToFrames
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_AudioFramesToMS(MIX_Audio *audio, Uint64 frames);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_AudioFramesToMS(MIX_Audio *audio, Sint64 frames);
/**
* Convert milliseconds to sample frames at a specific sample rate.
@@ -1460,7 +1460,7 @@ extern SDL_DECLSPEC Uint64 SDLCALL MIX_AudioFramesToMS(MIX_Audio *audio, Uint64
*
* \sa MIX_FramesToMS
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_MSToFrames(int sample_rate, Uint64 ms);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_MSToFrames(int sample_rate, Sint64 ms);
/**
* Convert sample frames, at a specific sample rate, to milliseconds.
@@ -1480,7 +1480,7 @@ extern SDL_DECLSPEC Uint64 SDLCALL MIX_MSToFrames(int sample_rate, Uint64 ms);
*
* \sa MIX_MSToFrames
*/
-extern SDL_DECLSPEC Uint64 SDLCALL MIX_FramesToMS(int sample_rate, Uint64 frames);
+extern SDL_DECLSPEC Sint64 SDLCALL MIX_FramesToMS(int sample_rate, Sint64 frames);
/* operations that deal with actual mixing/playback... */
diff --git a/src/SDL_mixer.c b/src/SDL_mixer.c
index 67837468..8020acc8 100644
--- a/src/SDL_mixer.c
+++ b/src/SDL_mixer.c
@@ -1774,7 +1774,7 @@ void MIX_UntagTrack(MIX_Track *track, const char *tag)
SDL_UnlockProperties(tags);
}
-bool MIX_SetTrackPlaybackPosition(MIX_Track *track, Uint64 frames)
+bool MIX_SetTrackPlaybackPosition(MIX_Track *track, Sint64 frames)
{
if (!CheckTrackParam(track)) {
return false;
@@ -1791,10 +1791,10 @@ bool MIX_SetTrackPlaybackPosition(MIX_Track *track, Uint64 frames)
retval = SDL_SetError("No audio currently assigned to this track");
}
} else {
- retval = track->input_audio->decoder->seek(track->decoder_userdata, frames);
+ retval = track->input_audio->decoder->seek(track->decoder_userdata, (Uint64) frames);
if (retval) {
SDL_ClearAudioStream(track->input_stream); // make sure that any extra buffered input from before the seek is removed.
- track->position = frames;
+ track->position = (Uint64) frames;
}
}
UnlockTrack(track);
@@ -1864,25 +1864,25 @@ SDL_AudioStream *MIX_GetTrackAudioStream(MIX_Track *track)
return retval;
}
-Uint64 MIX_MSToFrames(int sample_rate, Uint64 ms)
+Sint64 MIX_MSToFrames(int sample_rate, Sint64 ms)
{
if (sample_rate <= 0) {
return 0;
}
- return (Uint64) ((((double) ms) / 1000.0) * ((double) sample_rate));
+ return (Sint64) ((((double) ms) / 1000.0) * ((double) sample_rate));
}
-Uint64 MIX_FramesToMS(int sample_rate, Uint64 frames)
+Sint64 MIX_FramesToMS(int sample_rate, Sint64 frames)
{
if (sample_rate <= 0) {
return 0;
}
- return (Uint64) ((((double) frames) / ((double) sample_rate)) * 1000.0);
+ return (Sint64) ((((double) frames) / ((double) sample_rate)) * 1000.0);
}
-Uint64 MIX_TrackMSToFrames(MIX_Track *track, Uint64 ms)
+Sint64 MIX_TrackMSToFrames(MIX_Track *track, Sint64 ms)
{
- Uint64 retval = 0;
+ Sint64 retval = 0;
if (CheckTrackParam(track)) {
LockTrack(track);
SDL_AudioSpec spec;
@@ -1899,9 +1899,9 @@ Uint64 MIX_TrackMSToFrames(MIX_Track *track, Uint64 ms)
return retval;
}
-Uint64 MIX_TrackFramesToMS(MIX_Track *track, Uint64 frames)
+Sint64 MIX_TrackFramesToMS(MIX_Track *track, Sint64 frames)
{
- Uint64 retval = 0;
+ Sint64 retval = 0;
if (CheckTrackParam(track)) {
LockTrack(track);
SDL_AudioSpec spec;
@@ -1918,7 +1918,7 @@ Uint64 MIX_TrackFramesToMS(MIX_Track *track, Uint64 frames)
return retval;
}
-Uint64 MIX_AudioMSToFrames(MIX_Audio *audio, Uint64 ms)
+Sint64 MIX_AudioMSToFrames(MIX_Audio *audio, Sint64 ms)
{
if (!CheckAudioParam(audio)) {
return 0;
@@ -1926,7 +1926,7 @@ Uint64 MIX_AudioMSToFrames(MIX_Audio *audio, Uint64 ms)
return MIX_MSToFrames(audio->spec.freq, ms);
}
-Uint64 MIX_AudioFramesToMS(MIX_Audio *audio, Uint64 frames)
+Sint64 MIX_AudioFramesToMS(MIX_Audio *audio, Sint64 frames)
{
if (!CheckAudioParam(audio)) {
return 0;