#define REVERB_PRESET_SEWERPIPE {21, 1.7f, 0.800f, -1000, -1000}; // truncated example
This works at declaration time:
EAXREVERBPROPERTIES preset = REVERB_PRESET_SEWERPIPE;
This works at declaration time:
EAXREVERBPROPERTIES preset = REVERB_PRESET_SEWERPIPE;
First, you should remove the ending semicolon from the #define line, since that's going to be inserted into the line below, causing two semicolons in a row. It shouldn't be a problem here, but it's best to be safe.
But how can I update it with another definition later on?
e.g, preset = REVERB_PRESET_STONEROOM; //not gonna work
e.g, preset = REVERB_PRESET_STONEROOM; //not gonna work
It's hard to tell, since your "preset" variable is declared as "EAXREVERBPROPERTIES", which is apparently a preprocessor #define, so I have no idea what it truely is (I hate C code like this - no wonder C has such a bad readability reputation).
It might help if you can find what EAXREVERBPROPERTIES really is defined as. It would seem that it's a float array, but in that case "preset = REVERB_PRESET_STONEROOM;" should work.