Mercurial > projects > mde
view doc/jobs @ 11:b940f267419e
Options class created & changes to mergetag exception messages.
Options class created (barebones). Loading/saving from Init.
Init no longer runs cleanup functions after initialisation failure.
Improved mergetag exception messages & error reporting.
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Thu, 21 Feb 2008 09:05:33 +0000 |
parents | 4c3575400769 |
children | bff0d802cb7d |
line wrap: on
line source
In progress: To do: * Why doesn't input.config filtering via headers "Configs" work? * add options support; in particular for whether or not to use threads (and adjust Init to use this). * OutOfMemoryException is not currently checked for − it should be at least in critical places (use high-level catching of all errors?). * Sensitivity adjustments. From es_a_out: /+ FIXME: revise. + I can't see any point using HALF_RANGE here, since it should really be used dependant on + the device attached, not the axis. Also what about adjusted range like X3's throttle? + + Sensitivity: is this the right place to adjust it? For things like throttle where the + ends of the interval must remain fixed, multiplying cannot be used to adjust and adjusting + the curve via a power function doesn't seem to be what we want. For things where the + end points needn't remain fixed, multiplying seems the right thing to do, but cannot be + done here since we don't know the end points can be changed. real y = x; uint conf = s.pop(); enum : uint { HALF_RANGE = 0x8000_0000u, SENSITIVITY = 0x0080_0000u, } // Convert ranges into standard intervals (with or without reverse values) if (conf & HALF_RANGE) y = (y + 32767.0) * 1.5259254737998596e-05; // range 0.0 - 1.0 else y *= 3.0518509475997192e-05; // range -1.0 - 1.0 real a; if (conf & SENSITIVITY) a = s.pop(); /+ When a global sensitivity is available (possibly only use if it's enabled)... else a = axis.sensitivity; y = sign(y) * pow(abs(y), a); // sensitivity adjustment by a +/ myThis.axis[cast(inputID) s.pop()] = y; +/ Done (for git log message): * Options class created (barebones). Loading/saving from Init. * Init no longer runs cleanup functions after initialisation failure. * Improved mergetag exception messages & error reporting.