22 #ifndef AGOS_DRIVERS_ACCOLADE_ADLIB_H 23 #define AGOS_DRIVERS_ACCOLADE_ADLIB_H 25 #include "audio/adlib_ms.h" 31 static const byte RHYTHM_NOTE_INSTRUMENT_TYPES[40];
32 static const uint16 OPL_NOTE_FREQUENCIES_INSTR_DAT[12];
33 static const uint16 OPL_NOTE_FREQUENCIES_MUSIC_DRV[12];
41 void send(int8 source, uint32 b)
override;
45 void readDriverData(byte *driverData, uint16 driverDataSize,
bool isMusicDrv);
49 byte getNumberOfSfxSources();
51 void loadSfxInstrument(uint8 source, byte *instrumentData);
54 void setSfxNoteFraction(uint8 source, uint16 noteFraction);
56 void updateSfxNote(uint8 source);
58 void patchE1Instruments();
60 void patchWwInstruments();
69 void writePanning(uint8 oplChannel, OplInstrumentRhythmType rhythmType = RHYTHM_TYPE_UNDEFINED)
override;
70 void writeFrequency(uint8 oplChannel, OplInstrumentRhythmType rhythmType = RHYTHM_TYPE_UNDEFINED)
override;
75 OplInstrumentRhythmType rhythmType, byte rhythmNote,
bool newVersion);
82 int8 _volumeAdjustments[128];
84 byte _channelRemapping[16];
86 byte _instrumentRemapping[128];
88 const uint16 *_oplNoteFrequencies;
95 byte _sfxNoteFractions[4];
void writeFrequency(uint8 oplChannel, OplInstrumentRhythmType rhythmType=RHYTHM_TYPE_UNDEFINED) override
void deinitSource(uint8 source) override
void send(int8 source, uint32 b) override
uint8 calculateUnscaledVolume(uint8 channel, uint8 source, uint8 velocity, OplInstrumentDefinition &instrumentDef, uint8 operatorNum) override
void writePanning(uint8 oplChannel, OplInstrumentRhythmType rhythmType=RHYTHM_TYPE_UNDEFINED) override
Definition: adlib_ms.h:629
Definition: adlib_ms.h:289
OplType
Definition: fmopl.h:58
InstrumentInfo determineInstrument(uint8 channel, uint8 source, uint8 note) override
void send(int8 source, uint32 b) override
uint8 allocateOplChannel(uint8 channel, uint8 source, uint8 instrumentId) override
Definition: adlib_ms.h:79
uint16 calculateFrequency(uint8 channel, uint8 source, uint8 note) override