1 #ifndef _CONTROL_MAP_HPP
2 #define _CONTROL_MAP_HPP
12 enum OutputType { THROTTLE, MIXTURE, STARTER, MAGNETOS,
13 ADVANCE, REHEAT, PROP,
15 INCIDENCE, FLAP0, FLAP1, SLAT, SPOILER, VECTOR,
18 enum { OPT_SPLIT = 0x01,
22 // Returns a new, not-yet-used "input handle" for addMapping and
23 // setInput. This typically corresponds to one user axis.
26 // Adds a mapping to between input handle and a particular setting
27 // on an output object. The value of output MUST match the type
29 void addMapping(int input, int output, void* object, int options=0);
31 // An additional form to specify a mapping range. Input values
32 // outside of [src0:src1] are clamped, and are then mapped to
33 // [dst0:dst1] before being set on the object.
34 void addMapping(int input, int output, void* object, int options,
35 float src0, float src1, float dst0, float dst1);
37 // Resets our accumulated input values. Call before any
38 // setInput() invokations.
41 // Sets the specified input (as returned by newInput) to the
43 void setInput(int input, float value);
45 // Calculates and applies the settings received since the last reset().
49 struct OutRec { int type; void* object; Vector maps; };
50 struct MapRec { OutRec* out; int idx; int opt; float val;
51 float src0; float src1; float dst0; float dst1; };
53 // A list of (sub)Vectors containing a bunch of MapRec objects for
57 // An unordered list of output settings.
62 #endif // _CONTROL_MAP_HPP