diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-24 21:46:38 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-24 21:46:38 +0300 |
commit | 60f7ea56a4ccc88a8e747b87ba9fb39f1d8330b5 (patch) | |
tree | cc26e12e08a485a8b928991936482fc0c77796f3 /src/adldata.hh | |
parent | 76eb1a12ef6e6a3f8c7f6c0a226fc5b35dd99536 (diff) | |
download | libADLMIDI-60f7ea56a4ccc88a8e747b87ba9fb39f1d8330b5.tar.gz libADLMIDI-60f7ea56a4ccc88a8e747b87ba9fb39f1d8330b5.tar.bz2 libADLMIDI-60f7ea56a4ccc88a8e747b87ba9fb39f1d8330b5.zip |
[Experimental] Big re-factoring of internals and clean-up
- Renamed functions
- Renamed variables
- Documenting of most library internal stuff
- Disabling of embedded banks no more conflicts with accidental linking of adldata.cpp
Diffstat (limited to 'src/adldata.hh')
-rw-r--r-- | src/adldata.hh | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/adldata.hh b/src/adldata.hh index 104db82..73c3d94 100644 --- a/src/adldata.hh +++ b/src/adldata.hh @@ -26,6 +26,7 @@ #include <string.h> #include <stdint.h> +#include <cstring> #pragma pack(push, 1) #define ADLDATA_BYTE_COMPARABLE(T) \ @@ -34,18 +35,17 @@ inline bool operator!=(const T &a, const T &b) \ { return !operator==(a, b); } -extern const struct adldata +struct adldata { uint32_t modulator_E862, carrier_E862; // See below uint8_t modulator_40, carrier_40; // KSL/attenuation settings uint8_t feedconn; // Feedback/connection bits for the channel int8_t finetune; -} adl[]; +}; ADLDATA_BYTE_COMPARABLE(struct adldata) -enum { adlDefaultNumber = 189 }; -extern const struct adlinsdata +struct adlinsdata { enum { Flag_Pseudo4op = 0x01, Flag_NoSound = 0x02, Flag_Real4op = 0x04 }; @@ -55,11 +55,8 @@ extern const struct adlinsdata uint16_t ms_sound_kon; // Number of milliseconds it produces sound; uint16_t ms_sound_koff; double voice2_fine_tune; -} adlins[]; +}; ADLDATA_BYTE_COMPARABLE(struct adlinsdata) -int maxAdlBanks(); -extern const unsigned short banks[][256]; -extern const char* const banknames[]; enum { adlNoteOnMaxTime = 40000 }; @@ -85,14 +82,23 @@ ADLDATA_BYTE_COMPARABLE(struct adlinsdata2) /** * @brief Bank global setup */ -extern const struct AdlBankSetup +struct AdlBankSetup { int volumeModel; bool deepTremolo; bool deepVibrato; bool adLibPercussions; bool scaleModulators; -} adlbanksetup[]; +}; + +#ifndef DISABLE_EMBEDDED_BANKS +int maxAdlBanks(); +extern const adldata adl[]; +extern const adlinsdata adlins[]; +extern const unsigned short banks[][256]; +extern const char* const banknames[]; +extern const AdlBankSetup adlbanksetup[]; +#endif /** * @brief Conversion of storage formats @@ -102,8 +108,12 @@ inline adlinsdata2::adlinsdata2(const adlinsdata &d) ms_sound_kon(d.ms_sound_kon), ms_sound_koff(d.ms_sound_koff), voice2_fine_tune(d.voice2_fine_tune) { +#ifdef DISABLE_EMBEDDED_BANKS + std::memset(adl, 0, sizeof(adldata) * 2); +#else adl[0] = ::adl[d.adlno1]; adl[1] = ::adl[d.adlno2]; +#endif } /** |