[Scummvm-cvs-logs] SF.net SVN: scummvm:[54999] scummvm/trunk/engines/hugo

spookypeanut at users.sourceforge.net spookypeanut at users.sourceforge.net
Wed Dec 22 10:09:38 CET 2010


Revision: 54999
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54999&view=rev
Author:   spookypeanut
Date:     2010-12-22 09:09:38 +0000 (Wed, 22 Dec 2010)

Log Message:
-----------
HUGO: Add music debug level, some cleanup when opening driver

Modified Paths:
--------------
    scummvm/trunk/engines/hugo/hugo.cpp
    scummvm/trunk/engines/hugo/hugo.h
    scummvm/trunk/engines/hugo/sound.cpp

Modified: scummvm/trunk/engines/hugo/hugo.cpp
===================================================================
--- scummvm/trunk/engines/hugo/hugo.cpp	2010-12-22 05:52:58 UTC (rev 54998)
+++ scummvm/trunk/engines/hugo/hugo.cpp	2010-12-22 09:09:38 UTC (rev 54999)
@@ -80,6 +80,7 @@
 	DebugMan.addDebugChannel(kDebugRoute, "Route", "Route debug level");
 	DebugMan.addDebugChannel(kDebugInventory, "Inventory", "Inventory debug level");
 	DebugMan.addDebugChannel(kDebugObject, "Object", "Object debug level");
+	DebugMan.addDebugChannel(kDebugMusic, "Music", "Music debug level");
 
 	_console = new HugoConsole(this);
 	_rnd = 0;

Modified: scummvm/trunk/engines/hugo/hugo.h
===================================================================
--- scummvm/trunk/engines/hugo/hugo.h	2010-12-22 05:52:58 UTC (rev 54998)
+++ scummvm/trunk/engines/hugo/hugo.h	2010-12-22 09:09:38 UTC (rev 54999)
@@ -87,7 +87,8 @@
 	kDebugFile      = 1 <<  5,
 	kDebugRoute     = 1 <<  6,
 	kDebugInventory = 1 <<  7,
-	kDebugObject    = 1 <<  8
+	kDebugObject    = 1 <<  8,
+	kDebugMusic     = 1 <<  9
 };
 
 enum HugoGameFeatures {

Modified: scummvm/trunk/engines/hugo/sound.cpp
===================================================================
--- scummvm/trunk/engines/hugo/sound.cpp	2010-12-22 05:52:58 UTC (rev 54998)
+++ scummvm/trunk/engines/hugo/sound.cpp	2010-12-22 09:09:38 UTC (rev 54999)
@@ -58,6 +58,7 @@
 }
 
 void MidiPlayer::play(uint8 *stream, uint16 size) {
+	debugC(3, kDebugMusic, "MidiPlayer::play");
 	if (!stream) {
 		stop();
 		return;
@@ -76,6 +77,7 @@
 }
 
 void MidiPlayer::stop() {
+	debugC(3, kDebugMusic, "MidiPlayer::stop");
 	_mutex.lock();
 	if (_isPlaying) {
 		_isPlaying = false;
@@ -109,10 +111,12 @@
 }
 
 void MidiPlayer::adjustVolume(int diff) {
+	debugC(3, kDebugMusic, "MidiPlayer::adjustVolume");
 	setVolume(_masterVolume + diff);
 }
 
 void MidiPlayer::setVolume(int volume) {
+	debugC(3, kDebugMusic, "MidiPlayer::setVolume");
 	_masterVolume = CLIP(volume, 0, 255);
 	_mutex.lock();
 	for (int i = 0; i < NUM_CHANNELS; ++i) {
@@ -124,8 +128,14 @@
 }
 
 int MidiPlayer::open() {
-	_driver->open();
+	if (!_driver)
+		return 255;
+	int ret = _driver->open();
+	if (ret)
+		return ret;
 
+    _driver->sendGMReset();
+
 	_parser = MidiParser::createParser_SMF();
 	_parser->setMidiDriver(this);
 	_parser->setTimerRate(_driver->getBaseTempo());
@@ -149,14 +159,17 @@
 
 void MidiPlayer::send(uint32 b) {
 	byte volume, ch = (byte)(b & 0xF);
+	debugC(9, kDebugMusic, "MidiPlayer::send, channel %d (volume is %d)", ch, _channelsVolume[ch]);
 	switch (b & 0xFFF0) {
 	case 0x07B0: // volume change
 		volume = (byte)((b >> 16) & 0x7F);
 		_channelsVolume[ch] = volume;
 		volume = volume * _masterVolume / 255;
 		b = (b & 0xFF00FFFF) | (volume << 16);
+        debugC(8, kDebugMusic, "Volume change, channel %d volume %d", ch, volume);
 		break;
 	case 0x7BB0: // all notes off
+        debugC(8, kDebugMusic, "All notes off, channel %d", ch);
 		if (!_channelsTable[ch]) {
 			// channel not yet allocated, no need to send the event
 			return;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list