aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_db.h
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2019-06-06 21:36:08 +0300
committerWohlstand <admin@wohlnet.ru>2019-06-06 21:36:08 +0300
commitc011f08e4487935d7a523009b380963c508a2c9f (patch)
tree14079ad408b31d0a26d799875cb83591a9b5bd39 /src/adlmidi_db.h
parent86d471c8d664f0c6921f30f0fce4e8d2a7cab77d (diff)
downloadlibADLMIDI-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.h82
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[];