diff options
Diffstat (limited to 'scumm/imuse_digi.h')
-rw-r--r-- | scumm/imuse_digi.h | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/scumm/imuse_digi.h b/scumm/imuse_digi.h index 620eea16e5..161f27e10f 100644 --- a/scumm/imuse_digi.h +++ b/scumm/imuse_digi.h @@ -34,6 +34,7 @@ namespace Scumm { #define MAX_IMUSE_REGIONS 3 class ScummEngine; +class Bundle; /** * iMuse Digital Implementation for SCUMM v7 and higher. @@ -68,9 +69,43 @@ private: ScummEngine *_scumm; bool _pause; - static void timer_handler(void *engine); + static void timer_handler(void *refConf); void musicTimer(); + // + // Bundle music + // + const char *_nameBundleMusic; + const char *_newNameBundleMusic; + byte _musicDisk; + byte _voiceDisk; + int32 _currentSampleBundleMusic; + int32 _numberSamplesBundleMusic; + int32 _offsetSampleBundleMusic; + int32 _offsetBufBundleMusic; + byte *_musicBundleBufFinal; + byte *_musicBundleBufOutput; + bool _pauseBundleMusic; + PlayingSoundHandle _bundleMusicTrack; + bool _musicBundleToBeChanged; + int32 _bundleMusicSampleBits; + int32 _outputMixerSize; + int32 _bundleSampleChannels; + int32 _bundleMusicPosition; + + static void music_handler(void *refCon); + void bundleMusicHandler(); + + void playBundleMusic(const char *song); + void pauseBundleMusic(bool state); + +public: + int32 _bundleSongPosInMs; + Bundle *_bundle; // FIXME: should be protected but is used by ScummEngine::askForDisk + + void stopBundleMusic(); + void playBundleSound(const char *sound, PlayingSoundHandle *handle); + public: IMuseDigital(ScummEngine *scumm); ~IMuseDigital(); |