diff options
author | Chris Robinson <[email protected]> | 2023-03-09 21:29:53 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2023-03-09 21:29:53 -0800 |
commit | 1ea8f7a9a1f1ec74bb162a704283f8e3c3ede96d (patch) | |
tree | 0251dfec1048d2c0c89bf5f91c76c3d5127cde8b /al/eax | |
parent | 5b3c27ea587d84c2a49150b032f5d4dec5eb50b9 (diff) |
Add a type indicator to EaxEffectProps
Diffstat (limited to 'al/eax')
-rw-r--r-- | al/eax/effect.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/al/eax/effect.h b/al/eax/effect.h index 2514e79d..736ac058 100644 --- a/al/eax/effect.h +++ b/al/eax/effect.h @@ -16,19 +16,27 @@ struct EaxEffectErrorMessages static constexpr auto unknown_version() noexcept { return "Unknown version."; } }; // EaxEffectErrorMessages -union EaxEffectProps { - EAXREVERBPROPERTIES mReverb; - EAXCHORUSPROPERTIES mChorus; - EAXAUTOWAHPROPERTIES mAutowah; - EAXAGCCOMPRESSORPROPERTIES mCompressor; - EAXDISTORTIONPROPERTIES mDistortion; - EAXECHOPROPERTIES mEcho; - EAXEQUALIZERPROPERTIES mEqualizer; - EAXFLANGERPROPERTIES mFlanger; - EAXFREQUENCYSHIFTERPROPERTIES mFrequencyShifter; - EAXRINGMODULATORPROPERTIES mModulator; - EAXPITCHSHIFTERPROPERTIES mPitchShifter; - EAXVOCALMORPHERPROPERTIES mVocalMorpher; +/* TODO: Use std::variant (C++17). */ +enum class EaxEffectType { + None, Reverb, Chorus, Autowah, Compressor, Distortion, Echo, Equalizer, Flanger, + FrequencyShifter, Modulator, PitchShifter, VocalMorpher +}; +struct EaxEffectProps { + EaxEffectType mType; + union { + EAXREVERBPROPERTIES mReverb; + EAXCHORUSPROPERTIES mChorus; + EAXAUTOWAHPROPERTIES mAutowah; + EAXAGCCOMPRESSORPROPERTIES mCompressor; + EAXDISTORTIONPROPERTIES mDistortion; + EAXECHOPROPERTIES mEcho; + EAXEQUALIZERPROPERTIES mEqualizer; + EAXFLANGERPROPERTIES mFlanger; + EAXFREQUENCYSHIFTERPROPERTIES mFrequencyShifter; + EAXRINGMODULATORPROPERTIES mModulator; + EAXPITCHSHIFTERPROPERTIES mPitchShifter; + EAXVOCALMORPHERPROPERTIES mVocalMorpher; + }; }; class EaxEffect { |