[Scummvm-git-logs] scummvm master -> ed04942d9b27f5aa4ec97ba9bee3d0cefdd06eb0

athrxx noreply at scummvm.org
Fri Jul 12 20:51:07 UTC 2024


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:
ed04942d9b KYRA: Remove engine dependencies from the Halestorm driver


Commit: ed04942d9b27f5aa4ec97ba9bee3d0cefdd06eb0
    https://github.com/scummvm/scummvm/commit/ed04942d9b27f5aa4ec97ba9bee3d0cefdd06eb0
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2024-07-12T22:51:03+02:00

Commit Message:
KYRA: Remove engine dependencies from the Halestorm driver

Changed paths:
    engines/kyra/sound/drivers/halestorm.cpp
    engines/kyra/sound/drivers/halestorm.h
    engines/kyra/sound/sound_mac_res.h


diff --git a/engines/kyra/sound/drivers/halestorm.cpp b/engines/kyra/sound/drivers/halestorm.cpp
index cc86679a49b..8119fc0666d 100644
--- a/engines/kyra/sound/drivers/halestorm.cpp
+++ b/engines/kyra/sound/drivers/halestorm.cpp
@@ -19,14 +19,19 @@
  *
  */
 
-#include "kyra/kyra_v1.h"
-#include "kyra/sound/sound_mac_res.h"
 #include "kyra/sound/drivers/halestorm.h"
 
 #include "audio/audiostream.h"
+#include "audio/mixer.h"
 
+#include "common/array.h"
+#include "common/endian.h"
 #include "common/func.h"
+#include "common/mutex.h"
 #include "common/queue.h"
+#include "common/stream.h"
+#include "common/textconsole.h"
+#include "common/util.h"
 
 #define ASC_DEVICE_RATE		22254
 
@@ -249,7 +254,7 @@ private:
 class HSLowLevelDriver {
 	friend class HSMidiParser;
 public:
-	HSLowLevelDriver(SoundMacRes *res, Common::Mutex &mutex);
+	HSLowLevelDriver(HalestormLoader *res, Common::Mutex &mutex);
 	~HSLowLevelDriver();
 
 	HSAudioStream *init(uint32 scummVMOutputrate, bool output16bit);
@@ -286,7 +291,7 @@ private:
 	int cmd_25(va_list&);
 	template<int res> int cmd_void(va_list&);
 
-	SoundMacRes *_res;
+	HalestormLoader *_res;
 	HSAudioStream *_vcstr;
 	Common::Mutex &_mutex;
 
@@ -412,11 +417,11 @@ private:
 
 class HSSoundSystem {
 private:
-	HSSoundSystem(SoundMacRes *res, Audio::Mixer *mixer);
+	HSSoundSystem(HalestormLoader *res, Audio::Mixer *mixer);
 public:
 	~HSSoundSystem();
 
-	static HSSoundSystem *open(SoundMacRes *res, Audio::Mixer *mixer);
+	static HSSoundSystem *open(HalestormLoader *res, Audio::Mixer *mixer);
 	static void close();
 
 	bool init(bool hiQuality, uint8 interpolationMode, uint8 numChanSfx, bool output16bit);
@@ -513,7 +518,7 @@ private:
 
 	Audio::Mixer *_mixer;
 	Audio::SoundHandle _soundHandle;
-	SoundMacRes *_res;
+	HalestormLoader *_res;
 	HSAudioStream *_voicestr;
 	HSLowLevelDriver *_driver;
 	HSAudioStream::CallbackProc *_vblTask;
@@ -887,7 +892,7 @@ void HSMidiParser::noteOnOff(HSSong &song, TrackState *s, uint8 chan, uint8 note
 		_driver->noteOff(chan, note, s);
 }
 
-HSLowLevelDriver::HSLowLevelDriver(SoundMacRes *res, Common::Mutex &mutex) : _res(res), _vcstr(nullptr), _mutex(mutex), _sampleConvertBuffer(nullptr), _interpolationTable(nullptr),
+HSLowLevelDriver::HSLowLevelDriver(HalestormLoader *res, Common::Mutex &mutex) : _res(res), _vcstr(nullptr), _mutex(mutex), _sampleConvertBuffer(nullptr), _interpolationTable(nullptr),
 _transCycleLenDef(0), _interpolationTable2(nullptr), _amplitudeScaleBuffer(nullptr), _interpolationMode(kNone), _wtable(nullptr), _wtableCount(0), _midi(nullptr),
 _convertBufferNumUnits(0), _chan(nullptr), _samplesPerTick(0), _smpTransLen(0), _transCycleLenInter(0), _updateTypeHq(0), _instruments(nullptr), _pcmDstBufferSize(370),
 _transBuffer(nullptr), _convertUnitSizeLast(0), _numChanSfxLast(0), _wtableCount2(0), _pmDataTrm(0x8000) {
@@ -2035,7 +2040,7 @@ const uint32 HSLowLevelDriver::_periods[156] = {
 HSSoundSystem *HSSoundSystem::_refInstance = nullptr;
 int HSSoundSystem::_refCount = 0;
 
-HSSoundSystem::HSSoundSystem(SoundMacRes *res, Audio::Mixer *mixer) : _res(res), _mixer(mixer), _driver(nullptr), _voicestr(nullptr), _vblTask(nullptr), _sampleSlots(nullptr), _voices(nullptr), _sync(0),
+HSSoundSystem::HSSoundSystem(HalestormLoader *res, Audio::Mixer *mixer) : _res(res), _mixer(mixer), _driver(nullptr), _voicestr(nullptr), _vblTask(nullptr), _sampleSlots(nullptr), _voices(nullptr), _sync(0),
 _numChanSfx(0), _numSampleSlots(0), _currentSong(-1), _ready(false), _isFading(false), _sfxDuration(0), _fadeState(0), _fadeStep(0), _fadeStepTicksCounter(0), _fadeDirection(false),
 _fadeComplete(false), _fadeStepTicks(0), _volumeMusic(Audio::Mixer::kMaxMixerVolume), _volumeSfx(Audio::Mixer::kMaxMixerVolume), _mutex(mixer->mutex()) {
 	DEBUG_BUFFERS_COUNT = 0;
@@ -2051,7 +2056,7 @@ HSSoundSystem::~HSSoundSystem() {
 	releaseSamples();
 }
 
-HSSoundSystem *HSSoundSystem::open(SoundMacRes *res, Audio::Mixer *mixer) {
+HSSoundSystem *HSSoundSystem::open(HalestormLoader *res, Audio::Mixer *mixer) {
 	_refCount++;
 
 	if (_refCount == 1 && _refInstance == nullptr)
@@ -2763,7 +2768,7 @@ bool HSTriangulizer::process(const ShStBuffer &src, uint8 *dst, uint16, uint16)
 	return true;
 }
 
-HalestormDriver::HalestormDriver(SoundMacRes *res, Audio::Mixer *mixer) : _hs(nullptr) {
+HalestormDriver::HalestormDriver(HalestormLoader *res, Audio::Mixer *mixer) : _hs(nullptr) {
 	_hs = HSSoundSystem::open(res, mixer);
 }
 
diff --git a/engines/kyra/sound/drivers/halestorm.h b/engines/kyra/sound/drivers/halestorm.h
index d3b8f59bf74..65857c21311 100644
--- a/engines/kyra/sound/drivers/halestorm.h
+++ b/engines/kyra/sound/drivers/halestorm.h
@@ -28,14 +28,24 @@ namespace Audio {
 	class Mixer;
 }
 
+namespace Common {
+	class SeekableReadStream;
+}
+
 namespace Kyra {
 
 class HSSoundSystem;
-class SoundMacRes;
+
+class HalestormLoader {
+public:
+	virtual ~HalestormLoader() {}
+
+	virtual Common::SeekableReadStream *getResource(uint16 id, uint32 type) = 0;
+};
 
 class HalestormDriver {
 public:
-	HalestormDriver(SoundMacRes *res, Audio::Mixer *mixer);
+	HalestormDriver(HalestormLoader *res, Audio::Mixer *mixer);
 	~HalestormDriver();
 
 	enum InterpolationMode {
diff --git a/engines/kyra/sound/sound_mac_res.h b/engines/kyra/sound/sound_mac_res.h
index d502c60e1cd..eba499ac20b 100644
--- a/engines/kyra/sound/sound_mac_res.h
+++ b/engines/kyra/sound/sound_mac_res.h
@@ -26,6 +26,8 @@
 #include "common/str.h"
 #include "common/mutex.h"
 
+#include "kyra/sound/drivers/halestorm.h"
+
 namespace Common {
 	class Archive;
 	class MacResManager;
@@ -36,13 +38,13 @@ namespace Kyra {
 
 class KyraEngine_v1;
 
-class SoundMacRes {
+class SoundMacRes final : public HalestormLoader {
 public:
 	SoundMacRes(KyraEngine_v1 *vm);
-	~SoundMacRes();
+	~SoundMacRes() override;
 	bool init();
 	bool setQuality(bool hi);
-	Common::SeekableReadStream *getResource(uint16 id, uint32 type);
+	Common::SeekableReadStream *getResource(uint16 id, uint32 type) override;
 
 private:
 	Common::Path _kyraMacExe;




More information about the Scummvm-git-logs mailing list