24 #ifndef TINSEL_MUSIC_H 25 #define TINSEL_MUSIC_H 27 #include "audio/midiplayer.h" 28 #include "audio/audiostream.h" 29 #include "audio/mixer.h" 30 #include "common/mutex.h" 38 Music() : _currentMidi(0), _currentLoop(
false) {
39 _midiBuffer.pDat =
nullptr;
47 bool PlayMidiSequence(
61 void DeleteMidiBuffer();
63 void CurrentMidiFacts(
SCNHANDLE *pMidi,
bool *pLoop);
67 SCNHANDLE GetTrackOffset(
int trackNumber);
69 uint8 *GetMidiBuffer() {
return _midiBuffer.pDat; }
71 uint8* ResizeMidiBuffer(uint32 newSize) {
72 if (_midiBuffer.size < newSize) {
73 _midiBuffer.pDat = (byte*)realloc(_midiBuffer.pDat, newSize);
74 assert(_midiBuffer.pDat);
77 return _midiBuffer.pDat;
90 SOUND_BUFFER _midiBuffer;
103 void setVolume(
int volume)
override;
105 void playMIDI(uint32 size,
bool loop);
108 void pause()
override;
109 void resume()
override;
112 void send(uint32 b)
override;
116 uint32 getBaseTempo() {
return _driver ? (109 * _driver->getBaseTempo()) / 120 : 0; }
118 bool _milesAudioMode;
121 void playXMIDI(uint32 size,
bool loop);
122 void playSEQ(uint32 size,
bool loop);
130 bool isPlaying()
const;
132 bool isDimmed()
const;
134 void getTunePlaying(
void *voidPtr,
int length);
135 void restoreThatTune(
void *voidPtr);
137 void setMusicSceneDetails(
SCNHANDLE hScript,
SCNHANDLE hSegment,
const char *fileName);
139 void setVolume(
int volume);
141 void startPlay(
int id);
144 bool getMusicTinselDimmed()
const;
145 void dim(
bool bTinselDim);
146 void unDim(
bool bTinselUnDim);
149 void startFadeOut(
int ticks);
150 void fadeOutIteration();
152 int readBuffer(int16 *buffer,
const int numSamples)
override;
153 bool isStereo()
const override;
156 int getRate()
const override;
178 State _state, _mState;
195 uint8 _fadeOutVolume;
196 int _fadeOutIteration;
200 void setVol(uint8 volume);
204 void loadMusicFromSegment(
int segmentNum);
205 void loadADPCMMusicFromSegment(
int segmentNum);
206 void loadMP3MusicFromSegment(
int segmentNum);
Definition: midiplayer.h:63
uint32 SCNHANDLE
Definition: dw.h:31
bool endOfStream() const override
Definition: music.h:155
Definition: audiostream.h:50
bool endOfData() const override
Definition: music.h:154
Definition: midiparser.h:354