aboutsummaryrefslogtreecommitdiff
path: root/queen/music.h
diff options
context:
space:
mode:
authorJoost Peters2004-01-22 23:10:05 +0000
committerJoost Peters2004-01-22 23:10:05 +0000
commit0bece175e485b4456cb966052662b38fe2147647 (patch)
tree8a089201660d90c4ab63b07c5a526f5eb11098a6 /queen/music.h
parent99e3175d548d5dce704aaedab9ed291a4b365dae (diff)
downloadscummvm-rg350-0bece175e485b4456cb966052662b38fe2147647.tar.gz
scummvm-rg350-0bece175e485b4456cb966052662b38fe2147647.tar.bz2
scummvm-rg350-0bece175e485b4456cb966052662b38fe2147647.zip
- Some refactoring/clean-up.
- Handle special music types (> 1000) - Implemented random looping (untested) svn-id: r12577
Diffstat (limited to 'queen/music.h')
-rw-r--r--queen/music.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/queen/music.h b/queen/music.h
index 9c94c2941c..005f37248c 100644
--- a/queen/music.h
+++ b/queen/music.h
@@ -39,6 +39,7 @@ public:
void playMusic();
void stopMusic();
void setLoop(bool loop) { _looping = loop; }
+ void queueTuneList(int16 tuneList);
bool queueSong(uint16 songNum);
void queueClear();
@@ -59,10 +60,11 @@ public:
protected:
enum {
- MUSIC_QUEUE_SIZE = 8
+ MUSIC_QUEUE_SIZE = 14
};
void queueUpdatePos();
+ uint8 randomQueuePos();
static void onTimer(void *data);
uint32 songOffset(uint16 songNum);
uint32 songLength(uint16 songNum);
@@ -71,9 +73,12 @@ protected:
MidiParser *_parser;
MidiChannel *_channel[16];
byte _channelVolume[16];
-
+
+ Common::RandomSource _rnd;
+
bool _isPlaying;
bool _looping;
+ bool _randomLoop;
byte _volume;
uint8 _queuePos;
int16 _lastSong; //first song from previous queue
@@ -89,11 +94,9 @@ public:
Music(MidiDriver *_driver, QueenEngine *vm);
~Music();
void playSong(uint16 songNum);
- void queueClear() { return _player->queueClear(); }
- bool queueSong(uint16 songNum);
- void playMusic() { return _player->playMusic(); }
- void stopSong();
- void loop(bool val) { return _player->setLoop(val); }
+ void queueTuneList(int16 tuneList) { return _player->queueTuneList(tuneList); }
+ void playMusic() { return _player->playMusic(); }
+ void stopSong() { return _player->stopMusic(); }
protected:
byte *_musicData;