A
EnumControl
provides control over a set of
discrete possible values, each represented by an object. In a
graphical user interface, such a control might be represented
by a set of buttons, each of which chooses one value or setting. For
example, a reverb control might provide several preset reverberation
settings, instead of providing continuously adjustable parameters
of the sort that would be represented by
FloatControl
objects.
Controls that provide a choice between only two settings can often be implemented
instead as a BooleanControl
, and controls that provide
a set of values along some quantifiable dimension might be implemented
instead as a FloatControl
with a coarse resolution.
However, a key feature of EnumControl
is that the returned values
are arbitrary objects, rather than numerical or boolean values. This means that each
returned object can provide further information. As an example, the settings
of a REVERB
control are instances of
ReverbType
that can be queried for the parameter values
used for each setting.