diff options
Diffstat (limited to 'al/eax/effect.h')
-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 { |