22#ifndef QUEEN_MIDIADLIB_H
23#define QUEEN_MIDIADLIB_H
25#include "audio/fmopl.h"
26#include "audio/mididrv.h"
34 _adlibWaveformSelect = 0;
43 void send(uint32 b)
override;
44 void metaEvent(
byte type,
const byte *data, uint16 length)
override;
45 MidiChannel *allocateChannel()
override {
return 0; }
46 MidiChannel *getPercussionChannel()
override {
return 0; }
48 bool isOpen()
const override {
return _isOpen; }
51 void setVolume(uint32 volume);
55 void handleMidiEvent0x90_NoteOn(
int channel,
int param1,
int param2);
56 void handleSequencerSpecificMetaEvent1(
int channel,
const uint8 *data);
57 void handleSequencerSpecificMetaEvent2(uint8 value);
58 void handleSequencerSpecificMetaEvent3(uint8 value);
60 void adlibWrite(uint8 port, uint8 value);
61 void adlibSetupCard();
62 void adlibSetupChannels(
int fl);
63 void adlibResetAmpVibratoRhythm(
int am,
int vib,
int kso);
64 void adlibResetChannels();
65 void adlibSetAmpVibratoRhythm();
66 void adlibSetCSMKeyboardSplit();
67 void adlibSetNoteMul(
int mul);
68 void adlibSetWaveformSelect(
int fl);
69 void adlibSetPitchBend(
int channel,
int range);
70 void adlibPlayNote(
int channel);
71 uint8 adlibPlayNoteHelper(
int channel,
int note1,
int note2,
int oct);
72 void adlibTurnNoteOff(
int channel);
73 void adlibTurnNoteOn(
int channel,
int note);
74 void adlibSetupChannelFromSequence(
int channel,
const uint8 *src,
int fl);
75 void adlibSetupChannel(
int channel,
const uint16 *src,
int fl);
76 void adlibSetNoteVolume(
int channel,
int volume);
77 void adlibSetChannelVolume(
int channel, uint8 volume);
78 void adlibSetupChannelHelper(
int channel);
79 void adlibSetChannel0x40(
int channel);
80 void adlibSetChannel0xC0(
int channel);
81 void adlibSetChannel0x60(
int channel);
82 void adlibSetChannel0x80(
int channel);
83 void adlibSetChannel0x20(
int channel);
84 void adlibSetChannel0xE0(
int channel);
89 int _midiNumberOfChannels;
91 int _adlibWaveformSelect;
92 int _adlibAMDepthEq48;
93 int _adlibVibratoDepthEq14;
94 int _adlibRhythmEnabled;
95 int _adlibKeyboardSplitOn;
96 int _adlibVibratoRhythm;
97 uint8 _midiChannelsFreqTable[9];
98 uint8 _adlibChannelsLevelKeyScalingTable[11];
99 uint8 _adlibSetupChannelSequence1[14 * 18];
100 uint16 _adlibSetupChannelSequence2[14];
101 int16 _midiChannelsNote2Table[9];
102 uint8 _midiChannelsNote1Table[9];
103 uint8 _midiChannelsOctTable[9];
104 uint16 _adlibChannelsVolume[11];
105 uint16 _adlibMetaSequenceData[28];
106 uint8 _adlibChannelsVolumeTable[11];
110 void *_adlibTimerParam;
112 static const uint8 _adlibChannelsMappingTable1[];
113 static const uint8 _adlibChannelsNoFeedback[];
114 static const uint8 _adlibChannelsMappingTable2[];
115 static const uint8 _adlibChannelsMappingTable3[];
116 static const uint8 _adlibChannelsKeyScalingTable1[];
117 static const uint8 _adlibChannelsKeyScalingTable2[];
118 static const uint8 _adlibInitSequenceData1[];
119 static const uint8 _adlibInitSequenceData2[];
120 static const uint8 _adlibInitSequenceData3[];
121 static const uint8 _adlibInitSequenceData4[];
122 static const uint8 _adlibInitSequenceData5[];
123 static const uint8 _adlibInitSequenceData6[];
124 static const uint8 _adlibInitSequenceData7[];
125 static const uint8 _adlibInitSequenceData8[];
126 static const int16 _midiChannelsNoteTable[];
127 static const int16 _midiNoteFreqTable[];
void(* TimerProc)(void *refCon)
Definition: timer.h:42
Definition: mididrv.h:541
Definition: mididrv.h:313
@ kDefaultCallbackFrequency
Definition: fmopl.h:161
Definition: midiadlib.h:30
uint32 getBaseTempo() override
Definition: midiadlib.h:49
void send(uint32 b) override
bool isOpen() const override
Definition: midiadlib.h:48