aboutsummaryrefslogtreecommitdiffstats
path: root/al/eax
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-03-09 21:29:53 -0800
committerChris Robinson <[email protected]>2023-03-09 21:29:53 -0800
commit1ea8f7a9a1f1ec74bb162a704283f8e3c3ede96d (patch)
tree0251dfec1048d2c0c89bf5f91c76c3d5127cde8b /al/eax
parent5b3c27ea587d84c2a49150b032f5d4dec5eb50b9 (diff)
Add a type indicator to EaxEffectProps
Diffstat (limited to 'al/eax')
-rw-r--r--al/eax/effect.h34
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 {