[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