22 #ifndef SCUMM_PLAYERS_PLAYER_V2CMS_H 23 #define SCUMM_PLAYERS_PLAYER_V2CMS_H 25 #include "scumm/players/player_v2base.h" 42 void setMusicVolume(
int vol)
override;
43 void startSound(
int sound)
override;
44 void stopSound(
int sound)
override;
45 void stopAllSounds()
override;
46 int getMusicTimer()
override;
47 int getSoundStatus(
int sound)
const override;
64 byte *amplitudeOutput;
95 EnvelopeState nextProcessState;
114 Voice _cmsVoicesBase[16];
115 Voice2 _cmsVoices[8];
116 MusicChip _cmsChips[2];
123 Voice2 *_midiChannel[16];
124 byte _midiChannelUse[16];
126 byte *_midiSongBegin;
130 byte _sfxFreq[4], _sfxAmpl[4], _sfxOctave[2];
132 byte _lastMidiCommand;
133 uint _outputTableReady;
136 int _musicTimer, _musicTimerTicks;
138 void loadMidiData(byte *data,
int sound);
141 void processChannel(Voice2 *channel);
142 void processRelease(Voice2 *channel);
143 void processAttack(Voice2 *channel);
144 void processDecay(Voice2 *channel);
145 void processSustain(Voice2 *channel);
146 void processVibrato(Voice2 *channel);
148 void playMusicChips(
const MusicChip *table);
149 void playNote(byte *&data);
150 void clearNote(byte *&data);
151 void offAllChannels();
153 void processMidiData();
155 Voice2 *getFreeVoice();
156 Voice2 *getPlayVoice(byte param);
163 static const MidiNote _midiNotes[132];
164 static const byte _attackRate[16];
165 static const byte _decayRate[16];
166 static const byte _sustainRate[16];
167 static const byte _releaseRate[16];
168 static const byte _volumeTable[16];
169 static const byte _cmsInitData[26];
Definition: player_v2base.h:66
Definition: player_v2cms.h:36