diff options
author | Wohlstand <admin@wohlnet.ru> | 2019-06-06 21:36:08 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2019-06-06 21:36:08 +0300 |
commit | c011f08e4487935d7a523009b380963c508a2c9f (patch) | |
tree | 14079ad408b31d0a26d799875cb83591a9b5bd39 /src/adlmidi_db.h | |
parent | 86d471c8d664f0c6921f30f0fce4e8d2a7cab77d (diff) | |
download | libADLMIDI-c011f08e4487935d7a523009b380963c508a2c9f.tar.gz libADLMIDI-c011f08e4487935d7a523009b380963c508a2c9f.tar.bz2 libADLMIDI-c011f08e4487935d7a523009b380963c508a2c9f.zip |
Pack database structures to reduce binary size
Diffstat (limited to 'src/adlmidi_db.h')
-rw-r--r-- | src/adlmidi_db.h | 82 |
1 files changed, 45 insertions, 37 deletions
diff --git a/src/adlmidi_db.h b/src/adlmidi_db.h index 7294c6d..eb6ba87 100644 --- a/src/adlmidi_db.h +++ b/src/adlmidi_db.h @@ -2,46 +2,54 @@ #include <stddef.h> #include <vector> +#ifndef _MSC_VER +#define ATTRIB_PACKED __attribute__((__packed__)) +#else +#define ATTRIB_PACKED +#endif + extern const size_t g_embeddedBanksCount; -struct BanksDump +namespace BanksDump +{ + +struct BankEntry +{ + uint16_t bankSetup; + uint16_t banksMelodicCount; + uint16_t banksPercussionCount; + const char *title; + uint16_t banksOffsetMelodic; + uint16_t banksOffsetPercussive; +} ATTRIB_PACKED; + +struct MidiBank { - struct BankEntry - { - uint16_t bankSetup; - uint16_t banksMelodicCount; - uint16_t banksPercussionCount; - const char *title; - uint16_t banksOffsetMelodic; - uint16_t banksOffsetPercussive; - }; - - struct MidiBank - { - uint8_t msb; - uint8_t lsb; - int16_t insts[128]; - }; - - struct InstrumentEntry - { - int16_t noteOffset1; - int16_t noteOffset2; - int8_t midiVelocityOffset; - uint8_t percussionKeyNumber; - uint8_t instFlags; - int8_t secondVoiceDetune; - uint16_t fbConn; - uint16_t delay_on_ms; - uint16_t delay_off_ms; - int16_t ops[4]; - }; - - struct Operator - { - uint32_t d_E862; - uint8_t d_40; - }; + uint8_t msb; + uint8_t lsb; + int16_t insts[128]; +} ATTRIB_PACKED; + +struct InstrumentEntry +{ + int16_t noteOffset1; + int16_t noteOffset2; + int8_t midiVelocityOffset; + uint8_t percussionKeyNumber; + uint8_t instFlags; + int8_t secondVoiceDetune; + uint16_t fbConn; + uint16_t delay_on_ms; + uint16_t delay_off_ms; + int16_t ops[4]; +} ATTRIB_PACKED; + +struct Operator +{ + uint32_t d_E862; + uint8_t d_40; +} ATTRIB_PACKED; + }; extern const BanksDump::BankEntry g_embeddedBanks[]; |