1 #ifndef TRACK_PARAMETER_TYPE_H
2 #define TRACK_PARAMETER_TYPE_H
9 class TrackParameterType
{
11 enum { BOOL
, INT
, FLOAT
, STRING
}; /* Datatypes */
12 enum { LITERAL
, PERCENT
, DECIBEL
}; /* Units */
13 enum { LINEAR
, QUADRATIC
, LOGARITHMIC
, GAIN
}; /* Scales */
14 enum { TOGGLE
, OPTION
, ADJUST
, ENTER
}; /* Controls */
16 /* General constructor */
17 TrackParameterType(string name
, int datatype
, int unit
, int scale
, int control
,
18 void* defaultValue
, void* minimumValue
, void* maximumValue
, vector
<string
>* options
) :
19 name(name
), datatype(datatype
), unit(unit
), scale(scale
),
20 control(control
), defaultValue(defaultValue
), minimumValue(minimumValue
),
21 maximumValue(maximumValue
), options(options
) { }
23 /* Construct boolean toggle control */
24 TrackParameterType(string name
, bool defaultValue
) :
25 name(name
), datatype(BOOL
), unit(0), scale(0),
26 control(TOGGLE
), defaultValue(new bool(defaultValue
)),
27 minimumValue(NULL
), maximumValue(NULL
), options(NULL
) { }
29 /* Construct boolean option control with two named options */
30 TrackParameterType(string name
, bool defaultValue
, string falseString
, string trueString
) :
31 name(name
), datatype(BOOL
), unit(0), scale(0), control(OPTION
),
32 defaultValue(new bool(defaultValue
)), minimumValue(NULL
), maximumValue(NULL
),
33 options(new vector
<string
>()) {
34 this->options
->push_back(falseString
);
35 this->options
->push_back(trueString
);
38 /* Construct integer adjust control */
39 TrackParameterType(string name
, int unit
, int scale
, int defaultValue
, int minimumValue
, int maximumValue
) :
40 name(name
), datatype(INT
), unit(unit
), scale(scale
), control(ADJUST
),
41 defaultValue(new int(defaultValue
)), minimumValue(new int(minimumValue
)),
42 maximumValue(new int(maximumValue
)), options(NULL
) { }
44 /* Construct integer option control with maximumValue-minimumValue+1 named options */
45 TrackParameterType(string name
, int defaultValue
, int minimumValue
, int maximumValue
, vector
<string
>* options
) :
46 name(name
), datatype(INT
), unit(0), scale(0), control(OPTION
),
47 defaultValue(new int(defaultValue
)), minimumValue(new int(minimumValue
)),
48 maximumValue(new int(maximumValue
)), options(options
) { }
50 /* Construct float adjust control */
51 TrackParameterType(string name
, int unit
, int scale
, float defaultValue
, float minimumValue
, float maximumValue
) :
52 name(name
), datatype(FLOAT
), unit(unit
), scale(scale
), control(ADJUST
),
53 defaultValue(new float(defaultValue
)), minimumValue(new float(minimumValue
)),
54 maximumValue(new float(maximumValue
)), options(NULL
) { }
56 /* Construct string entry control */
57 TrackParameterType(string name
, string defaultValue
) :
58 name(name
), datatype(STRING
), unit(0), scale(0), control(ENTER
),
59 defaultValue(new string(defaultValue
)), minimumValue(NULL
), maximumValue(NULL
) { }
61 string
getName() { return name
; }
62 int getDatatype() { return datatype
; }
63 int getUnit() { return unit
; }
64 int getScale() { return scale
; }
65 int getControl() { return control
; }
66 void* getDefaultValue() { return defaultValue
; }
67 void* getMinimumValue() { return minimumValue
; }
68 void* getMaximumValue() { return maximumValue
; }
69 vector
<string
>* getOptions() { return options
; }
80 vector
<string
>* options
;