[Scummvm-cvs-logs] SF.net SVN: scummvm:[46414] scummvm/trunk/engines/sci
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Fri Dec 18 19:32:09 CET 2009
Revision: 46414
http://scummvm.svn.sourceforge.net/scummvm/?rev=46414&view=rev
Author: thebluegr
Date: 2009-12-18 18:32:09 +0000 (Fri, 18 Dec 2009)
Log Message:
-----------
Moved the interface class for the the custom SCI MIDI drivers together with the actual driver implementation code
Modified Paths:
--------------
scummvm/trunk/engines/sci/console.cpp
scummvm/trunk/engines/sci/sfx/core.cpp
scummvm/trunk/engines/sci/sfx/iterator.h
scummvm/trunk/engines/sci/sfx/iterator_internal.h
scummvm/trunk/engines/sci/sfx/seq/instrument-map.cpp
scummvm/trunk/engines/sci/sfx/softseq/adlib.cpp
scummvm/trunk/engines/sci/sfx/softseq/amiga.cpp
scummvm/trunk/engines/sci/sfx/softseq/pcjr.cpp
scummvm/trunk/engines/sci/sfx/softseq/pcjr.h
Added Paths:
-----------
scummvm/trunk/engines/sci/sfx/softseq/mididriver.h
Removed Paths:
-------------
scummvm/trunk/engines/sci/sfx/sci_midi.h
Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/console.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -42,7 +42,7 @@
#endif
#include "sci/sfx/songlib.h" // for SongLibrary
#include "sci/sfx/iterator.h" // for SCI_SONG_ITERATOR_TYPE_SCI0
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "sci/vocabulary.h"
#include "sci/gui/gui.h"
#include "sci/gui/gui_cursor.h"
Modified: scummvm/trunk/engines/sci/sfx/core.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/core.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/core.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -28,7 +28,7 @@
#include "sci/sci.h"
#include "sci/sfx/core.h"
#include "sci/sfx/iterator.h"
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "sci/sfx/softseq/pcjr.h"
Modified: scummvm/trunk/engines/sci/sfx/iterator.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/iterator.h 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/iterator.h 2009-12-18 18:32:09 UTC (rev 46414)
@@ -28,7 +28,7 @@
#ifndef SCI_SFX_SFX_ITERATOR_H
#define SCI_SFX_SFX_ITERATOR_H
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
namespace Audio {
class AudioStream;
Modified: scummvm/trunk/engines/sci/sfx/iterator_internal.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/iterator_internal.h 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/iterator_internal.h 2009-12-18 18:32:09 UTC (rev 46414)
@@ -27,7 +27,7 @@
#define SCI_SFX_SFX_ITERATOR_INTERNAL
#include "sci/sfx/iterator.h"
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "common/array.h"
#include "common/list.h"
Deleted: scummvm/trunk/engines/sci/sfx/sci_midi.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/sci_midi.h 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/sci_midi.h 2009-12-18 18:32:09 UTC (rev 46414)
@@ -1,106 +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.
- *
- * $URL$
- * $Id$
- *
- */
-
-#ifndef SCI_SFX_MIDI_H
-#define SCI_SFX_MIDI_H
-
-#include "sound/mididrv.h"
-#include "sound/softsynth/emumidi.h"
-#include "common/error.h"
-
-namespace Sci {
-
-class ResourceManager;
-
-enum {
- MIDI_CHANNELS = 16,
- MIDI_PROP_MASTER_VOLUME = 0
-};
-
-
-#define MIDI_RHYTHM_CHANNEL 9
-
-/* Special SCI sound stuff */
-
-#define SCI_MIDI_TIME_EXPANSION_PREFIX 0xF8
-#define SCI_MIDI_TIME_EXPANSION_LENGTH 240
-
-#define SCI_MIDI_EOT 0xFC
-#define SCI_MIDI_SET_SIGNAL 0xCF
-#define SCI_MIDI_SET_POLYPHONY 0x4B
-#define SCI_MIDI_RESET_ON_SUSPEND 0x4C
-#define SCI_MIDI_CHANNEL_MUTE 0x4E
-#define SCI_MIDI_SET_REVERB 0x50
-#define SCI_MIDI_HOLD 0x52
-#define SCI_MIDI_CUMULATIVE_CUE 0x60
-#define SCI_MIDI_CHANNEL_SOUND_OFF 0x78 /* all-sound-off for Bn */
-#define SCI_MIDI_CHANNEL_NOTES_OFF 0x7B /* all-notes-off for Bn */
-
-#define SCI_MIDI_SET_SIGNAL_LOOP 0x7F
-/* If this is the parameter of 0xCF, the loop point is set here */
-
-#define SCI_MIDI_CONTROLLER(status) ((status & 0xF0) == 0xB0)
-
-class MidiPlayer : public MidiDriver {
-protected:
- MidiDriver *_driver;
-public:
- int open() { return open(NULL); }
- virtual int open(ResourceManager *resMan) { return _driver->open(); }
- virtual void close() { _driver->close(); }
- virtual void send(uint32 b) { _driver->send(b); }
- uint32 getBaseTempo() { return _driver->getBaseTempo(); }
- virtual bool hasRhythmChannel() const = 0;
- MidiChannel *allocateChannel() { return _driver->allocateChannel(); }
- MidiChannel *getPercussionChannel() { return _driver->getPercussionChannel(); }
- void setTimerCallback(void *timer_param, Common::TimerManager::TimerProc timer_proc) { _driver->setTimerCallback(timer_param, timer_proc); }
-
- virtual int getPlayMask() const = 0;
- virtual int getPolyphony() const = 0;
-
- virtual void setVolume(byte volume) {
- if(_driver)
- _driver->property(MIDI_PROP_MASTER_VOLUME, volume);
- }
-
- virtual int getVolume() {
- return _driver ? _driver->property(MIDI_PROP_MASTER_VOLUME, 0xffff) : 0;
- }
-
- virtual void playSwitch(bool play) {
- if (!play) {
- // Send "All Sound Off" on all channels
- for (int i = 0; i < MIDI_CHANNELS; ++i)
- _driver->send(0xb0 + i, SCI_MIDI_CHANNEL_NOTES_OFF, 0);
- }
- }
-};
-
-extern MidiPlayer *MidiPlayer_Adlib_create();
-extern MidiPlayer *MidiPlayer_Amiga_create();
-
-} // End of namespace Sci
-
-#endif // SCI_SFX_MIDI_H
Modified: scummvm/trunk/engines/sci/sfx/seq/instrument-map.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/seq/instrument-map.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/seq/instrument-map.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -24,7 +24,7 @@
*/
#include "common/scummsys.h"
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "sci/sfx/seq/instrument-map.h"
#include "sci/sfx/core.h"
Modified: scummvm/trunk/engines/sci/sfx/softseq/adlib.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/softseq/adlib.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/softseq/adlib.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -30,7 +30,7 @@
#include "sound/softsynth/emumidi.h"
#include "sci/resource.h"
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
namespace Sci {
Modified: scummvm/trunk/engines/sci/sfx/softseq/amiga.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/softseq/amiga.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/softseq/amiga.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -24,7 +24,7 @@
*/
#include "sound/softsynth/emumidi.h"
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "common/file.h"
#include "common/frac.h"
Copied: scummvm/trunk/engines/sci/sfx/softseq/mididriver.h (from rev 46270, scummvm/trunk/engines/sci/sfx/sci_midi.h)
===================================================================
--- scummvm/trunk/engines/sci/sfx/softseq/mididriver.h (rev 0)
+++ scummvm/trunk/engines/sci/sfx/softseq/mididriver.h 2009-12-18 18:32:09 UTC (rev 46414)
@@ -0,0 +1,106 @@
+/* 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.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef SCI_SFX_SOFTSEQ_MIDIDRIVER_H
+#define SCI_SFX_SOFTSEQ_MIDIDRIVER_H
+
+#include "sound/mididrv.h"
+#include "sound/softsynth/emumidi.h"
+#include "common/error.h"
+
+namespace Sci {
+
+class ResourceManager;
+
+enum {
+ MIDI_CHANNELS = 16,
+ MIDI_PROP_MASTER_VOLUME = 0
+};
+
+
+#define MIDI_RHYTHM_CHANNEL 9
+
+/* Special SCI sound stuff */
+
+#define SCI_MIDI_TIME_EXPANSION_PREFIX 0xF8
+#define SCI_MIDI_TIME_EXPANSION_LENGTH 240
+
+#define SCI_MIDI_EOT 0xFC
+#define SCI_MIDI_SET_SIGNAL 0xCF
+#define SCI_MIDI_SET_POLYPHONY 0x4B
+#define SCI_MIDI_RESET_ON_SUSPEND 0x4C
+#define SCI_MIDI_CHANNEL_MUTE 0x4E
+#define SCI_MIDI_SET_REVERB 0x50
+#define SCI_MIDI_HOLD 0x52
+#define SCI_MIDI_CUMULATIVE_CUE 0x60
+#define SCI_MIDI_CHANNEL_SOUND_OFF 0x78 /* all-sound-off for Bn */
+#define SCI_MIDI_CHANNEL_NOTES_OFF 0x7B /* all-notes-off for Bn */
+
+#define SCI_MIDI_SET_SIGNAL_LOOP 0x7F
+/* If this is the parameter of 0xCF, the loop point is set here */
+
+#define SCI_MIDI_CONTROLLER(status) ((status & 0xF0) == 0xB0)
+
+class MidiPlayer : public MidiDriver {
+protected:
+ MidiDriver *_driver;
+public:
+ int open() { return open(NULL); }
+ virtual int open(ResourceManager *resMan) { return _driver->open(); }
+ virtual void close() { _driver->close(); }
+ virtual void send(uint32 b) { _driver->send(b); }
+ uint32 getBaseTempo() { return _driver->getBaseTempo(); }
+ virtual bool hasRhythmChannel() const = 0;
+ MidiChannel *allocateChannel() { return _driver->allocateChannel(); }
+ MidiChannel *getPercussionChannel() { return _driver->getPercussionChannel(); }
+ void setTimerCallback(void *timer_param, Common::TimerManager::TimerProc timer_proc) { _driver->setTimerCallback(timer_param, timer_proc); }
+
+ virtual int getPlayMask() const = 0;
+ virtual int getPolyphony() const = 0;
+
+ virtual void setVolume(byte volume) {
+ if(_driver)
+ _driver->property(MIDI_PROP_MASTER_VOLUME, volume);
+ }
+
+ virtual int getVolume() {
+ return _driver ? _driver->property(MIDI_PROP_MASTER_VOLUME, 0xffff) : 0;
+ }
+
+ virtual void playSwitch(bool play) {
+ if (!play) {
+ // Send "All Sound Off" on all channels
+ for (int i = 0; i < MIDI_CHANNELS; ++i)
+ _driver->send(0xb0 + i, SCI_MIDI_CHANNEL_NOTES_OFF, 0);
+ }
+ }
+};
+
+extern MidiPlayer *MidiPlayer_Adlib_create();
+extern MidiPlayer *MidiPlayer_Amiga_create();
+
+} // End of namespace Sci
+
+#endif // SCI_SFX_SOFTSEQ_MIDIDRIVER_H
Modified: scummvm/trunk/engines/sci/sfx/softseq/pcjr.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/softseq/pcjr.cpp 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/softseq/pcjr.cpp 2009-12-18 18:32:09 UTC (rev 46414)
@@ -23,7 +23,7 @@
*
*/
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
#include "sci/sfx/softseq/pcjr.h"
namespace Sci {
Modified: scummvm/trunk/engines/sci/sfx/softseq/pcjr.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/softseq/pcjr.h 2009-12-18 17:48:45 UTC (rev 46413)
+++ scummvm/trunk/engines/sci/sfx/softseq/pcjr.h 2009-12-18 18:32:09 UTC (rev 46414)
@@ -23,7 +23,7 @@
*
*/
-#include "sci/sfx/sci_midi.h"
+#include "sci/sfx/softseq/mididriver.h"
namespace Sci {
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