From 68293dfeb3b447de9837ff8d5cf136e0d001238a Mon Sep 17 00:00:00 2001 From: James R Date: Wed, 2 Aug 2023 00:08:38 -0700 Subject: [PATCH] srb2::audio::Gme::seek: use gme_seek instead of gme_seek_samples Fixes seeking only halfway. gme_seek_samples counts samples for BOTH channels. --- src/audio/gme.cpp | 4 ++-- src/audio/gme.hpp | 2 +- src/audio/gme_player.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/audio/gme.cpp b/src/audio/gme.cpp index bdde47faa..b65218cdb 100644 --- a/src/audio/gme.cpp +++ b/src/audio/gme.cpp @@ -65,11 +65,11 @@ std::size_t Gme::get_samples(tcb::span buffer) return buffer.size(); } -void Gme::seek(int sample) +void Gme::seek(int position_ms) { SRB2_ASSERT(instance_ != nullptr); - gme_seek_samples(instance_, sample); + gme_seek(instance_, position_ms); } float Gme::duration_seconds() const diff --git a/src/audio/gme.hpp b/src/audio/gme.hpp index 945f2a775..5dc757bf1 100644 --- a/src/audio/gme.hpp +++ b/src/audio/gme.hpp @@ -54,7 +54,7 @@ public: explicit Gme(tcb::span data); std::size_t get_samples(tcb::span buffer); - void seek(int sample); + void seek(int position_ms); float duration_seconds() const; std::optional loop_point_seconds() const; diff --git a/src/audio/gme_player.cpp b/src/audio/gme_player.cpp index a3f0f08f8..0295c8ef5 100644 --- a/src/audio/gme_player.cpp +++ b/src/audio/gme_player.cpp @@ -53,7 +53,7 @@ std::size_t GmePlayer::generate(tcb::span> buffer) template void GmePlayer::seek(float position_seconds) { - gme_.seek(static_cast(position_seconds * 44100.f)); + gme_.seek(static_cast(position_seconds * 1000.f)); } template