[Scummvm-git-logs] scummvm master -> 94614d19e940471d9f29a4e369add1c5b3650411
bluegr
noreply at scummvm.org
Thu Jan 23 19:39:56 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
94614d19e9 AGS: Implement SoundClipWaveBase::set_speed
Commit: 94614d19e940471d9f29a4e369add1c5b3650411
https://github.com/scummvm/scummvm/commit/94614d19e940471d9f29a4e369add1c5b3650411
Author: PrzemysÅaw Romaniak (loudpl at gmail.com)
Date: 2025-01-23T21:39:53+02:00
Commit Message:
AGS: Implement SoundClipWaveBase::set_speed
Calculate new sample rate based on new_speed and apply to channel
Changed paths:
engines/ags/engine/media/audio/sound_clip.cpp
diff --git a/engines/ags/engine/media/audio/sound_clip.cpp b/engines/ags/engine/media/audio/sound_clip.cpp
index 0e267763a8e..692817e26fb 100644
--- a/engines/ags/engine/media/audio/sound_clip.cpp
+++ b/engines/ags/engine/media/audio/sound_clip.cpp
@@ -259,9 +259,18 @@ void SoundClipWaveBase::set_panning(int newPanning) {
}
void SoundClipWaveBase::set_speed(int new_speed) {
- if (new_speed != 1000) // default
- warning("TODO: SoundClipWaveBase::set_speed=%d", new_speed);
_speed = new_speed;
+
+ if (!_stream) {
+ warning("set_speed: sound stream is null");
+ return;
+ }
+
+ // get initial channel rate
+ const uint32_t rate = _stream->getRate();
+
+ // default speed = 1000, calculate new sample rate proportionally
+ _mixer->setChannelRate(_soundHandle, rate * new_speed / 1000);
}
void SoundClipWaveBase::adjust_volume() {
More information about the Scummvm-git-logs
mailing list