22#ifndef SCUMM_PLAYERS_PLAYER_V2CMS_H
23#define SCUMM_PLAYERS_PLAYER_V2CMS_H
25#include "scumm/players/player_v2base.h"
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
void startSound(int sound) override
void stopSound(int sound) override
int getSoundStatus(int sound) const override
void stopAllSounds() override
void setMusicVolume(int vol) override
int getMusicTimer() override