aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/audio_player.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2018-01-14 12:12:06 +0100
committerPeter Kohaut2018-01-28 10:57:16 +0100
commit1e5f9d3078f236f306b5d868bcd52f4e47f7b512 (patch)
tree0d402af27d75064d60e4674ab3bd4c9ad08759f1 /engines/bladerunner/audio_player.cpp
parent3a937f19c0a5e347c801c62d345475be082f9e41 (diff)
downloadscummvm-rg350-1e5f9d3078f236f306b5d868bcd52f4e47f7b512.tar.gz
scummvm-rg350-1e5f9d3078f236f306b5d868bcd52f4e47f7b512.tar.bz2
scummvm-rg350-1e5f9d3078f236f306b5d868bcd52f4e47f7b512.zip
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
Diffstat (limited to 'engines/bladerunner/audio_player.cpp')
-rw-r--r--engines/bladerunner/audio_player.cpp38
1 files changed, 32 insertions, 6 deletions
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;