Files
scummvm-cursorfix/backends/platform/atari/patches/print_rate.patch
2026-02-02 04:50:13 +01:00

70 lines
2.6 KiB
Diff

commit 21a79a50b54df8b3c377f275e1d7bfa76ee50899
Author: Miro Kropacek <miro.kropacek@gmail.com>
Date: Tue Oct 31 23:48:25 2023 +0100
Introduce "print_rate"
This will never go to upstream.
diff --git a/audio/rate.cpp b/audio/rate.cpp
index 7f0c50f9250..83dde41462f 100644
--- a/audio/rate.cpp
+++ b/audio/rate.cpp
@@ -30,6 +30,8 @@
#include "audio/audiostream.h"
#include "audio/rate.h"
#include "audio/mixer.h"
+#include "backends/platform/atari/atari-debug.h"
+#include "common/config-manager.h"
#include "common/util.h"
namespace Audio {
@@ -80,6 +82,20 @@ private:
int simpleConvert(AudioStream &input, st_sample_t *outBuffer, st_size_t numSamples, st_volume_t vol_l, st_volume_t vol_r);
int interpolateConvert(AudioStream &input, st_sample_t *outBuffer, st_size_t numSamples, st_volume_t vol_l, st_volume_t vol_r);
+ void printConvertType(const Common::String &name) {
+ const Common::ConfigManager::Domain *activeDomain = ConfMan.getActiveDomain();
+ if (activeDomain && ConfMan.getBool("print_rate")) {
+ static st_rate_t previousInRate, previousOutRate;
+ if (previousInRate != _inRate || previousOutRate != _outRate) {
+ previousInRate = _inRate;
+ previousOutRate = _outRate;
+ atari_debug("RateConverter_Impl::%s[%s]: inRate %d Hz (%s) => outRate %d Hz (%s)",
+ name.c_str(), activeDomain->getValOrDefault("gameid").c_str(),
+ _inRate, inStereo ? "stereo" : "mono", _outRate, outStereo ? "stereo" : "mono");
+ }
+ }
+ }
+
public:
RateConverter_Impl(st_rate_t inputRate, st_rate_t outputRate);
virtual ~RateConverter_Impl() {}
@@ -99,6 +115,8 @@ template<bool inStereo, bool outStereo, bool reverseStereo>
int RateConverter_Impl<inStereo, outStereo, reverseStereo>::copyConvert(AudioStream &input, st_sample_t *outBuffer, st_size_t numSamples, st_volume_t volL, st_volume_t volR) {
st_sample_t *outStart, *outEnd;
+ printConvertType("copyConvert");
+
outStart = outBuffer;
outEnd = outBuffer + numSamples * (outStereo ? 2 : 1);
@@ -148,6 +166,8 @@ int RateConverter_Impl<inStereo, outStereo, reverseStereo>::simpleConvert(AudioS
st_sample_t *outStart, *outEnd;
+ printConvertType("simpleConvert");
+
outStart = outBuffer;
outEnd = outBuffer + numSamples * (outStereo ? 2 : 1);
@@ -209,6 +229,8 @@ int RateConverter_Impl<inStereo, outStereo, reverseStereo>::interpolateConvert(A
outStart = outBuffer;
outEnd = outBuffer + numSamples * (outStereo ? 2 : 1);
+ printConvertType("interpolateConvert");
+
while (outBuffer < outEnd) {
// Read enough input samples so that _outPosFrac < 0
while ((frac_t)FRAC_ONE_LOW <= _outPosFrac) {