[Scummvm-cvs-logs] scummvm master -> ef5eda2279a3893ab2c42d06c97ea6c824a30167

eriktorbjorn eriktorbjorn at telia.com
Sun Jul 5 00:12:28 CEST 2015


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
672bdeff1f MADE: Allow loading of sample.ad from rtzcd.red
ef5eda2279 AUDIO: Make Miles AdLib audio stream permanent


Commit: 672bdeff1f4a0e73d4565ab596af4833e9b7075a
    https://github.com/scummvm/scummvm/commit/672bdeff1f4a0e73d4565ab596af4833e9b7075a
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2015-07-05T00:08:15+02:00

Commit Message:
MADE: Allow loading of sample.ad from rtzcd.red

At the moment, AdLib music doesn't work yet though. At least not
for this particular case.

Changed paths:
    engines/made/made.cpp
    engines/made/music.cpp
    engines/made/music.h



diff --git a/engines/made/made.cpp b/engines/made/made.cpp
index ab07ef7..5d3e6d7 100644
--- a/engines/made/made.cpp
+++ b/engines/made/made.cpp
@@ -275,7 +275,7 @@ void MadeEngine::handleEvents() {
 }
 
 Common::Error MadeEngine::run() {
-	_music = new MusicPlayer(getGameID() == GID_RTZ);
+	_music = new MusicPlayer(getGameID() == GID_RTZ, (getFeatures() & GF_CD_COMPRESSED) != 0);
 	syncSoundSettings();
 
 	// Initialize backend
diff --git a/engines/made/music.cpp b/engines/made/music.cpp
index 6e5acb8..7efa24f 100644
--- a/engines/made/music.cpp
+++ b/engines/made/music.cpp
@@ -25,21 +25,30 @@
 // MIDI and digital music class
 
 #include "made/music.h"
+#include "made/redreader.h"
 #include "made/resource.h"
 
 #include "audio/midiparser.h"
 #include "audio/miles.h"
 
+#include "common/stream.h"
+
 namespace Made {
 
-MusicPlayer::MusicPlayer(bool milesAudio) : _isGM(false),_milesAudioMode(false) {
+MusicPlayer::MusicPlayer(bool milesAudio, bool compressedCD) : _isGM(false),_milesAudioMode(false) {
+	MusicType musicType;
 	if (milesAudio) {
 		MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_MT32);
-		MusicType musicType  = MidiDriver::getMusicType(dev);
+		musicType = MidiDriver::getMusicType(dev);
 		switch (musicType) {
 		case MT_ADLIB:
 			_milesAudioMode = true;
-			_driver = Audio::MidiDriver_Miles_AdLib_create("SAMPLE.AD", "SAMPLE.AD");
+			if (compressedCD) {
+				Common::SeekableReadStream *adLibInstrumentStream = RedReader::loadFromRed("rtzcd.red", "sample.ad");
+				_driver = Audio::MidiDriver_Miles_AdLib_create("", "", adLibInstrumentStream);
+			} else {
+				_driver = Audio::MidiDriver_Miles_AdLib_create("SAMPLE.AD", "SAMPLE.AD");
+			}
 			break;
 		case MT_MT32:
 			_milesAudioMode = true;
@@ -56,10 +65,12 @@ MusicPlayer::MusicPlayer(bool milesAudio) : _isGM(false),_milesAudioMode(false)
 
 	int ret = _driver->open();
 	if (ret == 0) {
-		if (_nativeMT32)
-			_driver->sendMT32Reset();
-		else
-			_driver->sendGMReset();
+		if (musicType != MT_ADLIB) {
+			if (_nativeMT32)
+				_driver->sendMT32Reset();
+			else
+				_driver->sendGMReset();
+		}
 
 		_driver->setTimerCallback(this, &timerCallback);
 	}
diff --git a/engines/made/music.h b/engines/made/music.h
index 558b41c..710805d 100644
--- a/engines/made/music.h
+++ b/engines/made/music.h
@@ -38,7 +38,7 @@ enum MusicFlags {
 
 class MusicPlayer : public Audio::MidiPlayer {
 public:
-	MusicPlayer(bool milesAudio);
+	MusicPlayer(bool milesAudio, bool compressedCD);
 
 	void playXMIDI(GenericResource *midiResource, MusicFlags flags = MUSIC_NORMAL);
 	void playSMF(GenericResource *midiResource, MusicFlags flags = MUSIC_NORMAL);


Commit: ef5eda2279a3893ab2c42d06c97ea6c824a30167
    https://github.com/scummvm/scummvm/commit/ef5eda2279a3893ab2c42d06c97ea6c824a30167
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2015-07-05T00:08:15+02:00

Commit Message:
AUDIO: Make Miles AdLib audio stream permanent

This protects it from any calls to stopAll() in the mixer, which
is needed for Return to Zork, at the very least.

Changed paths:
    audio/miles_adlib.cpp



diff --git a/audio/miles_adlib.cpp b/audio/miles_adlib.cpp
index cfdf76a..fb02b90 100644
--- a/audio/miles_adlib.cpp
+++ b/audio/miles_adlib.cpp
@@ -323,7 +323,7 @@ int MidiDriver_Miles_AdLib::open() {
 
 	MidiDriver_Emulated::open();
 
-	_mixer->playStream(Audio::Mixer::kPlainSoundType, &_mixerSoundHandle, this, -1, _mixer->kMaxChannelVolume, 0, DisposeAfterUse::NO);
+	_mixer->playStream(Audio::Mixer::kPlainSoundType, &_mixerSoundHandle, this, -1, _mixer->kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
 
 	resetAdLib();
 






More information about the Scummvm-git-logs mailing list