diff options
author | JP Cimalando <jpcima@users.noreply.github.com> | 2018-05-16 14:27:04 +0200 |
---|---|---|
committer | JP Cimalando <jpcima@users.noreply.github.com> | 2018-06-01 09:18:05 +0200 |
commit | c4ed5cf15e64a84129865a58b5063ef0e73f0bcf (patch) | |
tree | 7a4ed94756b41e0855830acbd0ae52f3a432b07f /src/adlmidi_private.hpp | |
parent | 451bee2d22501613e2f8b6e1a235d913ad80cf8b (diff) | |
download | libADLMIDI-c4ed5cf15e64a84129865a58b5063ef0e73f0bcf.tar.gz libADLMIDI-c4ed5cf15e64a84129865a58b5063ef0e73f0bcf.tar.bz2 libADLMIDI-c4ed5cf15e64a84129865a58b5063ef0e73f0bcf.zip |
bank storage inside dynamic map
Diffstat (limited to 'src/adlmidi_private.hpp')
-rw-r--r-- | src/adlmidi_private.hpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index ee73c61..2010b4e 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -220,22 +220,19 @@ private: std::vector<uint8_t> regBD; friend int adlRefreshNumCards(ADL_MIDIPlayer *device); - //! Meta information about every instrument - std::vector<adlinsdata2> dynamic_metainstruments; // Replaces adlins[] when CMF file - //! Raw instrument data ready to be sent to the chip - std::vector<adldata> dynamic_instruments; // Replaces adl[] when CMF file - size_t dynamic_percussion_offset; - - typedef BasicBankMap<size_t> BankMap; - BankMap dynamic_melodic_banks; - BankMap dynamic_percussion_banks; +public: + struct Bank + { + adlinsdata2 ins[128]; + }; + typedef BasicBankMap<Bank> BankMap; +private: + BankMap dynamic_banks; AdlBankSetup dynamic_bank_setup; - const unsigned DynamicInstrumentTag /* = 0x8000u*/, - DynamicMetaInstrumentTag /* = 0x4000000u*/; - adlinsdata2 GetAdlMetaIns(size_t n); - size_t GetAdlMetaNumber(size_t midiins); public: void setEmbeddedBank(unsigned int bank); + static const adlinsdata2 emptyInstrument; + enum { PercussionTag = 1 << 15 }; //! Total number of running concurrent emulated chips unsigned int NumCards; @@ -530,10 +527,10 @@ public: // Tone selected on noteon: int16_t tone; char ____padding2[4]; - // Patch selected on noteon; index to banks[AdlBank][] + // Patch selected on noteon; index to bank.ins[] size_t midiins; - // Index to physical adlib data structure, adlins[] - size_t insmeta; + // Patch selected + const adlinsdata2 *ains; enum { MaxNumPhysChans = 2, |