From 1e5f9d3078f236f306b5d868bcd52f4e47f7b512 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Sun, 14 Jan 2018 12:12:06 +0100 Subject: BLADERUNNER: Added basic KIA interface Settings works Help works Clue database works Fixed code for inserting objects into scene Reorganization of few files Unification & code formatting of few older files --- engines/bladerunner/audio_player.cpp | 38 ++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'engines/bladerunner/audio_player.cpp') diff --git a/engines/bladerunner/audio_player.cpp b/engines/bladerunner/audio_player.cpp index 1e459e9b86..7aeba9c188 100644 --- a/engines/bladerunner/audio_player.cpp +++ b/engines/bladerunner/audio_player.cpp @@ -22,14 +22,14 @@ #include "bladerunner/audio_player.h" -#include "bladerunner/bladerunner.h" - #include "bladerunner/archive.h" #include "bladerunner/aud_stream.h" #include "bladerunner/audio_mixer.h" +#include "bladerunner/bladerunner.h" #include "common/debug.h" #include "common/stream.h" +#include "common/random.h" namespace Common { class MemoryReadStream; @@ -43,7 +43,7 @@ AudioCache::~AudioCache() { } } -bool AudioCache::canAllocate(uint32 size) { +bool AudioCache::canAllocate(uint32 size) const { Common::StackLock lock(_mutex); return _maxSize - _totalSize >= size; @@ -84,7 +84,7 @@ void AudioCache::storeByHash(int32 hash, Common::SeekableReadStream *stream) { Common::StackLock lock(_mutex); uint32 size = stream->size(); - byte *data = (byte*)malloc(size); + byte *data = (byte *)malloc(size); stream->read(data, size); cacheItem item = { @@ -124,7 +124,8 @@ void AudioCache::decRef(int32 hash) { assert(false && "AudioCache::decRef: hash not found"); } -AudioPlayer::AudioPlayer(BladeRunnerEngine *vm) : _vm(vm) { +AudioPlayer::AudioPlayer(BladeRunnerEngine *vm) { + _vm = vm; _cache = new AudioCache(); for (int i = 0; i != 6; ++i) { @@ -177,6 +178,31 @@ void AudioPlayer::adjustPan(int track, int pan, int delay) { _vm->_audioMixer->adjustPan(_tracks[track].channel, pan, 60 * delay); } +void AudioPlayer::setVolume(int volume) { + _sfxVolume = volume; +} + +int AudioPlayer::getVolume() const { + return _sfxVolume; +} + +void AudioPlayer::playSample() { + Common::String name; + + int rnd = _vm->_rnd.getRandomNumber(3); + if (rnd == 0) { + name = "gunmiss1.aud"; + } else if (rnd == 1) { + name = "gunmiss2.aud"; + } else if (rnd == 2) { + name = "gunmiss3.aud"; + } else { + name = "gunmiss4.aud"; + } + + playAud(name, 100, 0, 0, 100, 0); +} + void AudioPlayer::remove(int channel) { Common::StackLock lock(_mutex); for (int i = 0; i != kTracks; ++i) { @@ -284,7 +310,7 @@ int AudioPlayer::playAud(const Common::String &name, int volume, int panFrom, in return track; } -bool AudioPlayer::isActive(int track) { +bool AudioPlayer::isActive(int track) const { Common::StackLock lock(_mutex); if (track < 0 || track >= kTracks) { return false; -- cgit v1.2.3