aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorOri Avtalion2016-05-21 13:44:27 +0300
committerOri Avtalion2016-05-21 13:44:27 +0300
commit21753098e1e30fbb4f845e3f56eaad0cdf2eaa35 (patch)
treedcf996f2d48354960429c4db9ac72eced94e1759 /engines
parent10cbeb1ac6be299c06297c0f2c69e7cc8a5cb7cc (diff)
downloadscummvm-rg350-21753098e1e30fbb4f845e3f56eaad0cdf2eaa35.tar.gz
scummvm-rg350-21753098e1e30fbb4f845e3f56eaad0cdf2eaa35.tar.bz2
scummvm-rg350-21753098e1e30fbb4f845e3f56eaad0cdf2eaa35.zip
NEVERHOOD: Reduce audio header dependencies
Diffstat (limited to 'engines')
-rw-r--r--engines/neverhood/diskplayerscene.cpp1
-rw-r--r--engines/neverhood/diskplayerscene.h2
-rw-r--r--engines/neverhood/menumodule.cpp2
-rw-r--r--engines/neverhood/modules/module1300.cpp1
-rw-r--r--engines/neverhood/modules/module1300.h3
-rw-r--r--engines/neverhood/modules/module1300_sprites.h1
-rw-r--r--engines/neverhood/modules/module2800.cpp1
-rw-r--r--engines/neverhood/navigationscene.h1
-rw-r--r--engines/neverhood/neverhood.cpp2
-rw-r--r--engines/neverhood/scene.cpp1
-rw-r--r--engines/neverhood/scene.h2
-rw-r--r--engines/neverhood/screen.cpp1
-rw-r--r--engines/neverhood/screen.h5
-rw-r--r--engines/neverhood/smackerscene.cpp1
-rw-r--r--engines/neverhood/sound.cpp61
-rw-r--r--engines/neverhood/sound.h25
16 files changed, 71 insertions, 39 deletions
diff --git a/engines/neverhood/diskplayerscene.cpp b/engines/neverhood/diskplayerscene.cpp
index 96a935851c..e79f4c9d77 100644
--- a/engines/neverhood/diskplayerscene.cpp
+++ b/engines/neverhood/diskplayerscene.cpp
@@ -22,6 +22,7 @@
#include "neverhood/diskplayerscene.h"
#include "neverhood/mouse.h"
+#include "neverhood/smackerplayer.h"
namespace Neverhood {
diff --git a/engines/neverhood/diskplayerscene.h b/engines/neverhood/diskplayerscene.h
index 2ae85b9a0b..dba10f3a46 100644
--- a/engines/neverhood/diskplayerscene.h
+++ b/engines/neverhood/diskplayerscene.h
@@ -26,11 +26,11 @@
#include "neverhood/neverhood.h"
#include "neverhood/resourceman.h"
#include "neverhood/scene.h"
-#include "neverhood/smackerplayer.h"
namespace Neverhood {
class DiskplayerScene;
+class SmackerPlayer;
class AsDiskplayerSceneKey : public AnimatedSprite {
public:
diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp
index 0f2a421d83..e58dd31f03 100644
--- a/engines/neverhood/menumodule.cpp
+++ b/engines/neverhood/menumodule.cpp
@@ -23,6 +23,8 @@
#include "common/config-manager.h"
#include "common/translation.h"
+#include "audio/mixer.h"
+
#include "gui/saveload.h"
#include "neverhood/menumodule.h"
diff --git a/engines/neverhood/modules/module1300.cpp b/engines/neverhood/modules/module1300.cpp
index 60ff0411a6..65bd353576 100644
--- a/engines/neverhood/modules/module1300.cpp
+++ b/engines/neverhood/modules/module1300.cpp
@@ -23,6 +23,7 @@
#include "neverhood/diskplayerscene.h"
#include "neverhood/gamemodule.h"
#include "neverhood/menumodule.h"
+#include "neverhood/smackerplayer.h"
#include "neverhood/modules/module1000_sprites.h"
#include "neverhood/modules/module1200_sprites.h"
#include "neverhood/modules/module1300.h"
diff --git a/engines/neverhood/modules/module1300.h b/engines/neverhood/modules/module1300.h
index 4a0ca6c062..8164a51d0d 100644
--- a/engines/neverhood/modules/module1300.h
+++ b/engines/neverhood/modules/module1300.h
@@ -26,10 +26,11 @@
#include "neverhood/neverhood.h"
#include "neverhood/module.h"
#include "neverhood/scene.h"
-#include "neverhood/smackerplayer.h"
namespace Neverhood {
+class SmackerPlayer;
+
class Module1300 : public Module {
public:
Module1300(NeverhoodEngine *vm, Module *parentModule, int which);
diff --git a/engines/neverhood/modules/module1300_sprites.h b/engines/neverhood/modules/module1300_sprites.h
index 6f4faaa234..bf9f72a5a7 100644
--- a/engines/neverhood/modules/module1300_sprites.h
+++ b/engines/neverhood/modules/module1300_sprites.h
@@ -26,7 +26,6 @@
#include "neverhood/neverhood.h"
#include "neverhood/module.h"
#include "neverhood/scene.h"
-#include "neverhood/smackerplayer.h"
namespace Neverhood {
diff --git a/engines/neverhood/modules/module2800.cpp b/engines/neverhood/modules/module2800.cpp
index ab22390c7d..63d507d8fd 100644
--- a/engines/neverhood/modules/module2800.cpp
+++ b/engines/neverhood/modules/module2800.cpp
@@ -23,6 +23,7 @@
#include "neverhood/diskplayerscene.h"
#include "neverhood/gamemodule.h"
#include "neverhood/scene.h"
+#include "neverhood/smackerplayer.h"
#include "neverhood/modules/module1000_sprites.h"
#include "neverhood/modules/module1200_sprites.h"
#include "neverhood/modules/module1700_sprites.h"
diff --git a/engines/neverhood/navigationscene.h b/engines/neverhood/navigationscene.h
index 8e286effb9..e1dabfea3d 100644
--- a/engines/neverhood/navigationscene.h
+++ b/engines/neverhood/navigationscene.h
@@ -26,6 +26,7 @@
#include "neverhood/neverhood.h"
#include "neverhood/resourceman.h"
#include "neverhood/scene.h"
+#include "neverhood/smackerplayer.h"
namespace Neverhood {
diff --git a/engines/neverhood/neverhood.cpp b/engines/neverhood/neverhood.cpp
index c6cff86c72..0dc271997b 100644
--- a/engines/neverhood/neverhood.cpp
+++ b/engines/neverhood/neverhood.cpp
@@ -24,6 +24,8 @@
#include "common/config-manager.h"
#include "common/textconsole.h"
+#include "audio/mixer.h"
+
#include "base/plugins.h"
#include "base/version.h"
diff --git a/engines/neverhood/scene.cpp b/engines/neverhood/scene.cpp
index 1a8e74da38..8ed988c0fc 100644
--- a/engines/neverhood/scene.cpp
+++ b/engines/neverhood/scene.cpp
@@ -22,6 +22,7 @@
#include "neverhood/console.h"
#include "neverhood/scene.h"
+#include "neverhood/smackerplayer.h"
namespace Neverhood {
diff --git a/engines/neverhood/scene.h b/engines/neverhood/scene.h
index 98a7fa5090..1d1faf28bc 100644
--- a/engines/neverhood/scene.h
+++ b/engines/neverhood/scene.h
@@ -31,13 +31,13 @@
#include "neverhood/klaymen.h"
#include "neverhood/module.h"
#include "neverhood/palette.h"
-#include "neverhood/smackerplayer.h"
#include "neverhood/sprite.h"
#include "neverhood/staticdata.h"
namespace Neverhood {
class Console;
+class SmackerPlayer;
class Scene : public Entity {
public:
diff --git a/engines/neverhood/screen.cpp b/engines/neverhood/screen.cpp
index cc735c4c16..5cc7998210 100644
--- a/engines/neverhood/screen.cpp
+++ b/engines/neverhood/screen.cpp
@@ -21,6 +21,7 @@
*/
#include "graphics/palette.h"
+#include "video/smk_decoder.h"
#include "neverhood/screen.h"
namespace Neverhood {
diff --git a/engines/neverhood/screen.h b/engines/neverhood/screen.h
index 82ce90b245..91bbe12c66 100644
--- a/engines/neverhood/screen.h
+++ b/engines/neverhood/screen.h
@@ -25,11 +25,14 @@
#include "common/array.h"
#include "graphics/surface.h"
-#include "video/smk_decoder.h"
#include "neverhood/neverhood.h"
#include "neverhood/microtiles.h"
#include "neverhood/graphics.h"
+namespace Video {
+ class SmackerDecoder;
+}
+
namespace Neverhood {
struct RenderItem {
diff --git a/engines/neverhood/smackerscene.cpp b/engines/neverhood/smackerscene.cpp
index 2b43579130..50677d7d5c 100644
--- a/engines/neverhood/smackerscene.cpp
+++ b/engines/neverhood/smackerscene.cpp
@@ -21,6 +21,7 @@
*/
#include "neverhood/smackerscene.h"
+#include "neverhood/smackerplayer.h"
namespace Neverhood {
diff --git a/engines/neverhood/sound.cpp b/engines/neverhood/sound.cpp
index b15bea4a64..db22b72289 100644
--- a/engines/neverhood/sound.cpp
+++ b/engines/neverhood/sound.cpp
@@ -21,10 +21,17 @@
*/
#include "common/memstream.h"
-#include "graphics/palette.h"
+#include "audio/mixer.h"
#include "neverhood/sound.h"
+#include "neverhood/resource.h"
#include "neverhood/resourceman.h"
+// Convert volume from percent to 0..255
+#define VOLUME(volume) (Audio::Mixer::kMaxChannelVolume / 100 * (volume))
+
+// Convert panning from percent (50% equals center) to -127..0..+127
+#define PANNING(panning) (254 / 100 * (panning) - 127)
+
namespace Neverhood {
SoundResource::SoundResource(NeverhoodEngine *vm)
@@ -583,6 +590,11 @@ AudioResourceManSoundItem::AudioResourceManSoundItem(NeverhoodEngine *vm, uint32
_volume(100), _panning(50) {
_vm->_res->queryResource(_fileHash, _resourceHandle);
+ _soundHandle = new Audio::SoundHandle();
+}
+
+AudioResourceManSoundItem::~AudioResourceManSoundItem() {
+ delete _soundHandle;
}
void AudioResourceManSoundItem::loadSound() {
@@ -594,22 +606,22 @@ void AudioResourceManSoundItem::loadSound() {
}
void AudioResourceManSoundItem::unloadSound() {
- if (_vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->stopHandle(_soundHandle);
+ if (_vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->stopHandle(*_soundHandle);
_vm->_res->unloadResource(_resourceHandle);
_data = NULL;
}
void AudioResourceManSoundItem::setVolume(int16 volume) {
_volume = MIN<int16>(volume, 100);
- if (_isPlaying && _vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->setChannelVolume(_soundHandle, VOLUME(_volume));
+ if (_isPlaying && _vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->setChannelVolume(*_soundHandle, VOLUME(_volume));
}
void AudioResourceManSoundItem::setPan(int16 pan) {
_panning = MIN<int16>(pan, 100);
- if (_isPlaying && _vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->setChannelVolume(_soundHandle, PANNING(_panning));
+ if (_isPlaying && _vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->setChannelVolume(*_soundHandle, PANNING(_panning));
}
void AudioResourceManSoundItem::playSound(bool looping) {
@@ -619,7 +631,7 @@ void AudioResourceManSoundItem::playSound(bool looping) {
const byte *shiftValue = _resourceHandle.extData();
Common::MemoryReadStream *stream = new Common::MemoryReadStream(_data, _resourceHandle.size(), DisposeAfterUse::NO);
NeverhoodAudioStream *audioStream = new NeverhoodAudioStream(22050, *shiftValue, looping, DisposeAfterUse::YES, stream);
- _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle,
+ _vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, _soundHandle,
audioStream, -1, VOLUME(_volume), PANNING(_panning));
debug(1, "playing sound %08X", _fileHash);
_isPlaying = true;
@@ -627,13 +639,13 @@ void AudioResourceManSoundItem::playSound(bool looping) {
}
void AudioResourceManSoundItem::stopSound() {
- if (_vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->stopHandle(_soundHandle);
+ if (_vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->stopHandle(*_soundHandle);
_isPlaying = false;
}
bool AudioResourceManSoundItem::isPlaying() {
- return _vm->_mixer->isSoundHandleActive(_soundHandle);
+ return _vm->_mixer->isSoundHandleActive(*_soundHandle);
}
AudioResourceManMusicItem::AudioResourceManMusicItem(NeverhoodEngine *vm, uint32 fileHash)
@@ -641,6 +653,11 @@ AudioResourceManMusicItem::AudioResourceManMusicItem(NeverhoodEngine *vm, uint32
_volume(100), _panning(50), _start(false), _isFadingIn(false), _isFadingOut(false), _isPlaying(false),
_fadeVolume(0), _fadeVolumeStep(0) {
+ _soundHandle = new Audio::SoundHandle();
+}
+
+AudioResourceManMusicItem::~AudioResourceManMusicItem() {
+ delete _soundHandle;
}
void AudioResourceManMusicItem::playMusic(int16 fadeVolumeStep) {
@@ -658,7 +675,7 @@ void AudioResourceManMusicItem::playMusic(int16 fadeVolumeStep) {
}
void AudioResourceManMusicItem::stopMusic(int16 fadeVolumeStep) {
- if (_vm->_mixer->isSoundHandleActive(_soundHandle)) {
+ if (_vm->_mixer->isSoundHandleActive(*_soundHandle)) {
if (fadeVolumeStep != 0) {
if (_isFadingIn)
_isFadingIn = false;
@@ -667,7 +684,7 @@ void AudioResourceManMusicItem::stopMusic(int16 fadeVolumeStep) {
_isFadingOut = true;
_fadeVolumeStep = fadeVolumeStep;
} else {
- _vm->_mixer->stopHandle(_soundHandle);
+ _vm->_mixer->stopHandle(*_soundHandle);
}
_isPlaying = false;
}
@@ -677,8 +694,8 @@ void AudioResourceManMusicItem::unloadMusic() {
if (_isFadingOut) {
_canRestart = true;
} else {
- if (_vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->stopHandle(_soundHandle);
+ if (_vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->stopHandle(*_soundHandle);
_isPlaying = false;
_terminate = true;
}
@@ -686,8 +703,8 @@ void AudioResourceManMusicItem::unloadMusic() {
void AudioResourceManMusicItem::setVolume(int16 volume) {
_volume = MIN<int16>(volume, 100);
- if (_isPlaying && _vm->_mixer->isSoundHandleActive(_soundHandle))
- _vm->_mixer->setChannelVolume(_soundHandle, VOLUME(_volume));
+ if (_isPlaying && _vm->_mixer->isSoundHandleActive(*_soundHandle))
+ _vm->_mixer->setChannelVolume(*_soundHandle, VOLUME(_volume));
}
void AudioResourceManMusicItem::restart() {
@@ -698,33 +715,33 @@ void AudioResourceManMusicItem::restart() {
void AudioResourceManMusicItem::update() {
- if (_start && !_vm->_mixer->isSoundHandleActive(_soundHandle)) {
+ if (_start && !_vm->_mixer->isSoundHandleActive(*_soundHandle)) {
ResourceHandle resourceHandle;
_vm->_res->queryResource(_fileHash, resourceHandle);
Common::SeekableReadStream *stream = _vm->_res->createStream(_fileHash);
const byte *shiftValue = resourceHandle.extData();
NeverhoodAudioStream *audioStream = new NeverhoodAudioStream(22050, *shiftValue, true, DisposeAfterUse::YES, stream);
- _vm->_mixer->playStream(Audio::Mixer::kMusicSoundType, &_soundHandle,
+ _vm->_mixer->playStream(Audio::Mixer::kMusicSoundType, _soundHandle,
audioStream, -1, VOLUME(_isFadingIn ? _fadeVolume : _volume),
PANNING(_panning));
_start = false;
_isPlaying = true;
}
- if (_vm->_mixer->isSoundHandleActive(_soundHandle)) {
+ if (_vm->_mixer->isSoundHandleActive(*_soundHandle)) {
if (_isFadingIn) {
_fadeVolume += _fadeVolumeStep;
if (_fadeVolume >= _volume) {
_fadeVolume = _volume;
_isFadingIn = false;
}
- _vm->_mixer->setChannelVolume(_soundHandle, VOLUME(_fadeVolume));
+ _vm->_mixer->setChannelVolume(*_soundHandle, VOLUME(_fadeVolume));
}
if (_isFadingOut) {
_fadeVolume -= _fadeVolumeStep;
if (_fadeVolume < 0)
_fadeVolume = 0;
- _vm->_mixer->setChannelVolume(_soundHandle, VOLUME(_fadeVolume));
+ _vm->_mixer->setChannelVolume(*_soundHandle, VOLUME(_fadeVolume));
if (_fadeVolume == 0) {
_isFadingOut = false;
stopMusic(0);
diff --git a/engines/neverhood/sound.h b/engines/neverhood/sound.h
index 24947f0191..e5e4ec9216 100644
--- a/engines/neverhood/sound.h
+++ b/engines/neverhood/sound.h
@@ -24,23 +24,22 @@
#define NEVERHOOD_SOUND_H
#include "audio/audiostream.h"
-#include "audio/mixer.h"
#include "common/array.h"
-#include "graphics/surface.h"
-#include "neverhood/neverhood.h"
-#include "neverhood/resource.h"
+#include "neverhood/resourceman.h"
-namespace Neverhood {
+namespace Common {
+class SeekableReadStream;
+}
-// Convert volume from percent to 0..255
-#define VOLUME(volume) (Audio::Mixer::kMaxChannelVolume / 100 * (volume))
+namespace Audio {
+class SoundHandle;
+}
-// Convert panning from percent (50% equals center) to -127..0..+127
-#define PANNING(panning) (254 / 100 * (panning) - 127)
+namespace Neverhood {
+class NeverhoodEngine;
class AudioResourceManSoundItem;
class AudioResourceManMusicItem;
-class AudioResourceMan;
class SoundResource {
public:
@@ -214,6 +213,7 @@ private:
class AudioResourceManSoundItem {
public:
AudioResourceManSoundItem(NeverhoodEngine *vm, uint32 fileHash);
+ ~AudioResourceManSoundItem();
void loadSound();
void unloadSound();
void setVolume(int16 volume);
@@ -230,12 +230,13 @@ protected:
bool _isPlaying;
int16 _volume;
int16 _panning;
- Audio::SoundHandle _soundHandle;
+ Audio::SoundHandle *_soundHandle;
};
class AudioResourceManMusicItem {
public:
AudioResourceManMusicItem(NeverhoodEngine *vm, uint32 fileHash);
+ ~AudioResourceManMusicItem();
void playMusic(int16 fadeVolumeStep);
void stopMusic(int16 fadeVolumeStep);
void unloadMusic();
@@ -259,7 +260,7 @@ protected:
bool _isFadingOut;
int16 _fadeVolume;
int16 _fadeVolumeStep;
- Audio::SoundHandle _soundHandle;
+ Audio::SoundHandle *_soundHandle;
};
class AudioResourceMan {