aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/sound.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2018-05-04 10:04:18 +0200
committerEugene Sandulenko2018-05-05 23:17:34 +0200
commit132f77fd1629158e27c2487ef94cc9b6cb1c0150 (patch)
treeb5d387eb1a81c2f1a63f28f24c45f77923251f02 /engines/prince/sound.cpp
parent919013d7f2f130d528d32c2879b19761292e1197 (diff)
downloadscummvm-rg350-132f77fd1629158e27c2487ef94cc9b6cb1c0150.tar.gz
scummvm-rg350-132f77fd1629158e27c2487ef94cc9b6cb1c0150.tar.bz2
scummvm-rg350-132f77fd1629158e27c2487ef94cc9b6cb1c0150.zip
PRINCE: Rename sound.cpp to music.cpp
Diffstat (limited to 'engines/prince/sound.cpp')
-rw-r--r--engines/prince/sound.cpp210
1 files changed, 0 insertions, 210 deletions
diff --git a/engines/prince/sound.cpp b/engines/prince/sound.cpp
deleted file mode 100644
index 206b131cd2..0000000000
--- a/engines/prince/sound.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "prince/sound.h"
-#include "prince/musNum.h"
-
-#include "common/archive.h"
-#include "common/debug.h"
-#include "audio/mididrv.h"
-#include "audio/midiparser.h"
-
-namespace Prince {
-
-const char *MusicPlayer::_musTable[] = {
- "",
- "Battlfld.mid",
- "Cave.mid",
- "Cemetery.mid",
- "Credits.mid",
- "Fjord.mid",
- "Guitar.mid",
- "Hell.mid",
- "Jingle.mid",
- "Main.mid",
- "Night.mid",
- "Reality.mid",
- "Sunlord.mid",
- "Tavern.mid",
- "Temple.mid",
- "Boruta.mid",
- "Intro.mid"
-};
-
-const uint8 MusicPlayer::_musRoomTable[] = {
- 0,
- ROOM01MUS,
- ROOM02MUS,
- ROOM03MUS,
- ROOM04MUS,
- ROOM05MUS,
- ROOM06MUS,
- ROOM07MUS,
- ROOM08MUS,
- ROOM09MUS,
- ROOM10MUS,
- ROOM11MUS,
- ROOM12MUS,
- ROOM13MUS,
- ROOM14MUS,
- ROOM15MUS,
- ROOM16MUS,
- ROOM17MUS,
- ROOM18MUS,
- ROOM19MUS,
- ROOM20MUS,
- ROOM21MUS,
- ROOM22MUS,
- ROOM23MUS,
- ROOM24MUS,
- ROOM25MUS,
- ROOM26MUS,
- ROOM27MUS,
- ROOM28MUS,
- ROOM29MUS,
- ROOM30MUS,
- ROOM31MUS,
- ROOM32MUS,
- ROOM33MUS,
- ROOM34MUS,
- ROOM35MUS,
- ROOM36MUS,
- ROOM37MUS,
- ROOM38MUS,
- ROOM39MUS,
- ROOM40MUS,
- ROOM41MUS,
- ROOM42MUS,
- ROOM43MUS,
- 0,
- 0,
- ROOM46MUS,
- ROOM47MUS,
- ROOM48MUS,
- ROOM49MUS,
- ROOM50MUS,
- ROOM51MUS,
- ROOM52MUS,
- ROOM53MUS,
- ROOM54MUS,
- ROOM55MUS,
- ROOM56MUS,
- ROOM57MUS,
- ROOM58MUS,
- ROOM59MUS,
- ROOM60MUS,
- ROOM61MUS
-};
-
-
-MusicPlayer::MusicPlayer(PrinceEngine *vm) : _vm(vm) {
- _data = nullptr;
- _dataSize = 0;
- _isGM = false;
-
- MidiPlayer::createDriver();
-
- int ret = _driver->open();
- if (ret == 0) {
- if (_nativeMT32)
- _driver->sendMT32Reset();
- else
- _driver->sendGMReset();
-
- _driver->setTimerCallback(this, &timerCallback);
- }
-}
-
-MusicPlayer::~MusicPlayer() {
- killMidi();
-}
-
-void MusicPlayer::killMidi() {
- Audio::MidiPlayer::stop();
-
- free(_data);
- _data = nullptr;
-}
-
-void MusicPlayer::loadMidi(const char *name) {
- Common::SeekableReadStream *stream = SearchMan.createReadStreamForMember(name);
- if (!stream) {
- debug("Can't load midi stream %s", name);
- return;
- }
-
- // Stop any currently playing MIDI file
- killMidi();
-
- // Read in the data for the file
- _dataSize = stream->size();
- _data = (byte *)malloc(_dataSize);
- stream->read(_data, _dataSize);
-
- delete stream;
-
- // Start playing the music
- sndMidiStart();
-}
-
-void MusicPlayer::sndMidiStart() {
- _isGM = true;
-
- MidiParser *parser = MidiParser::createParser_SMF();
- if (parser->loadMusic(_data, _dataSize)) {
- parser->setTrack(0);
- parser->setMidiDriver(this);
- parser->setTimerRate(_driver->getBaseTempo());
- parser->property(MidiParser::mpCenterPitchWheelOnUnload, 1);
-
- _parser = parser;
-
- syncVolume();
-
- // Al the tracks are supposed to loop
- _isLooping = true;
- _isPlaying = true;
- }
-}
-
-void MusicPlayer::send(uint32 b) {
- if ((b & 0xF0) == 0xC0 && !_isGM && !_nativeMT32) {
- b = (b & 0xFFFF00FF) | MidiDriver::_mt32ToGm[(b >> 8) & 0xFF] << 8;
- }
-
- Audio::MidiPlayer::send(b);
-}
-
-void MusicPlayer::sendToChannel(byte channel, uint32 b) {
- if (!_channelsTable[channel]) {
- _channelsTable[channel] = (channel == 9) ? _driver->getPercussionChannel() : _driver->allocateChannel();
- // If a new channel is allocated during the playback, make sure
- // its volume is correctly initialized.
- if (_channelsTable[channel])
- _channelsTable[channel]->volume(_channelsVolume[channel] * _masterVolume / 255);
- }
-
- if (_channelsTable[channel])
- _channelsTable[channel]->send(b);
-}
-
-} // End of namespace Prince