diff options
Diffstat (limited to 'engines/agos/midi.h')
-rw-r--r-- | engines/agos/midi.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/engines/agos/midi.h b/engines/agos/midi.h index 398e445535..edb3402735 100644 --- a/engines/agos/midi.h +++ b/engines/agos/midi.h @@ -33,10 +33,15 @@ class File; namespace AGOS { +enum kMusicMode { + kMusicModeDisabled = 0, + kMusicModeAccolade = 1, + kMusicModeMilesAudio +}; + struct MusicInfo { MidiParser *parser; byte *data; - bool loopTrack; byte num_songs; // For Type 1 SMF resources byte *songs[16]; // For Type 1 SMF resources uint32 song_sizes[16]; // For Type 1 SMF resources @@ -47,7 +52,6 @@ struct MusicInfo { MusicInfo() { clear(); } void clear() { parser = 0; data = 0; num_songs = 0; - loopTrack = false; memset(songs, 0, sizeof(songs)); memset(song_sizes, 0, sizeof(song_sizes)); memset(channel, 0, sizeof(channel)); @@ -73,17 +77,22 @@ protected: // These are only used for music. byte _currentTrack; - bool _loopTrackDefault; + bool _loopTrack; byte _queuedTrack; bool _loopQueuedTrack; + byte *_adlibPatches; + protected: static void onTimer(void *data); void clearConstructs(); void clearConstructs(MusicInfo &info); void resetVolumeTable(); + void loadAdlibPatches(); + void unloadAdlibPatches(); public: + bool _adLibMusic; bool _enable_sfx; public: @@ -109,12 +118,17 @@ public: void setVolume(int musicVol, int sfxVol); public: - int open(int gameType); + int open(int gameType, bool isDemo); // MidiDriver_BASE interface implementation virtual void send(uint32 b); virtual void metaEvent(byte type, byte *data, uint16 length); +private: + kMusicMode _musicMode; + +private: + Common::SeekableReadStream *simon2SetupExtractFile(const Common::String &requestedFileName); }; } // End of namespace AGOS |