diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2018-08-06 01:56:50 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2018-08-06 01:56:50 +0300 |
commit | 1ab34e88a326c396fbb42c503eb4ffa56fa0a148 (patch) | |
tree | 4f2d6ada0ab0bd1d64947a71c5492a29be7c8dbf /src/adldata.hh | |
parent | 0a003c8bc12514a5586f2f0e40559fcbf6607883 (diff) | |
parent | 0e2807a9d4c8c900e85c9b33ba96c69a82c58a68 (diff) | |
download | libADLMIDI-1ab34e88a326c396fbb42c503eb4ffa56fa0a148.tar.gz libADLMIDI-1ab34e88a326c396fbb42c503eb4ffa56fa0a148.tar.bz2 libADLMIDI-1ab34e88a326c396fbb42c503eb4ffa56fa0a148.zip |
Merge branch 'master' into stable
Diffstat (limited to 'src/adldata.hh')
-rw-r--r-- | src/adldata.hh | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/adldata.hh b/src/adldata.hh index 73c3d94..93d4144 100644 --- a/src/adldata.hh +++ b/src/adldata.hh @@ -49,11 +49,15 @@ struct adlinsdata { enum { Flag_Pseudo4op = 0x01, Flag_NoSound = 0x02, Flag_Real4op = 0x04 }; + enum { Flag_RM_BassDrum = 0x08, Flag_RM_Snare = 0x10, Flag_RM_TomTom = 0x18, + Flag_RM_Cymbal = 0x20, Flag_RM_HiHat = 0x28, Mask_RhythmMode = 0x38 }; + uint16_t adlno1, adlno2; uint8_t tone; uint8_t flags; uint16_t ms_sound_kon; // Number of milliseconds it produces sound; uint16_t ms_sound_koff; + int8_t midi_velocity_offset; double voice2_fine_tune; }; ADLDATA_BYTE_COMPARABLE(struct adlinsdata) @@ -70,9 +74,9 @@ struct adlinsdata2 uint8_t flags; uint16_t ms_sound_kon; // Number of milliseconds it produces sound; uint16_t ms_sound_koff; + int8_t midi_velocity_offset; double voice2_fine_tune; - adlinsdata2() {} - explicit adlinsdata2(const adlinsdata &d); + static adlinsdata2 from_adldata(const adlinsdata &d); }; ADLDATA_BYTE_COMPARABLE(struct adlinsdata2) @@ -103,17 +107,22 @@ extern const AdlBankSetup adlbanksetup[]; /** * @brief Conversion of storage formats */ -inline adlinsdata2::adlinsdata2(const adlinsdata &d) - : tone(d.tone), flags(d.flags), - ms_sound_kon(d.ms_sound_kon), ms_sound_koff(d.ms_sound_koff), - voice2_fine_tune(d.voice2_fine_tune) +inline adlinsdata2 adlinsdata2::from_adldata(const adlinsdata &d) { + adlinsdata2 ins; + ins.tone = d.tone; + ins.flags = d.flags; + ins.ms_sound_kon = d.ms_sound_kon; + ins.ms_sound_koff = d.ms_sound_koff; + ins.midi_velocity_offset = d.midi_velocity_offset; + ins.voice2_fine_tune = d.voice2_fine_tune; #ifdef DISABLE_EMBEDDED_BANKS - std::memset(adl, 0, sizeof(adldata) * 2); + std::memset(ins.adl, 0, sizeof(adldata) * 2); #else - adl[0] = ::adl[d.adlno1]; - adl[1] = ::adl[d.adlno2]; + ins.adl[0] = ::adl[d.adlno1]; + ins.adl[1] = ::adl[d.adlno2]; #endif + return ins; } /** |