behind the scenes, an `enum` is just an `int` plus context. You can use them anywhere you would use one of these macros.
Their main advantage, aside from eliding a bunch of `#define` macros, is that you can use them as pseudo-types, which adds semantic value. Right now the `MkvsynthMetaData` struct uses a `short` to define the colorspace, but with an `enum` you could define it as a `Colorspace` or a `CS_type` or whatever.
It wouldn't even break the `switch`-on-colorspace statements; the syntax is identical. Actually, it makes them slightly better! If you `switch` on an `enum`, the compiler will warn you if you don't include a case for each possible value (or a default value).