Mercurial > projects > mde
diff doc/jobs @ 10:4c3575400769
DefaultData largely rewritten with unittest, SDL input event handling completed with unittest, changes to Init threading.
Init threads now catch own exceptions.
Doc: assigned some inputID devisions.
Added support for remaining SDL events.
Input axes' output is now stored with a short instead of a real.
Input unittest written (for SDL event handling).
Rewrote most of mde.mergetag.defaultdata using generic programming to generate read & write rules for all types. As a direct result, defaultdata can now write properly.
DefaultData unittest written (also provides testing for mergetag read/write).
Moved mde.text.parse/format to tango.scrapple.text.convert.parseTo/parseFrom with many changes.
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Mon, 18 Feb 2008 11:54:56 +0000 |
parents | 1885a9080f2a |
children | b940f267419e |
line wrap: on
line diff
--- a/doc/jobs Wed Jan 30 11:33:56 2008 +0000 +++ b/doc/jobs Mon Feb 18 11:54:56 2008 +0000 @@ -1,9 +1,44 @@ In progress: -* Why doesn't input.config filtering via headers "Configs" work? To do: -* change init threads (should catch own exceptions) -* finish event callback support -* add remaining SDL event support +* Write Input unittests; remove untested notes +* 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): +* Init threads now catch own exceptions. +* Assigned some inputID devisions. +* add remaining SDL event support +* Rewrote most of mde.mergetag.defaultdata using generic programming to generate read & write rules for all types. As a result, defaultdata can now write properly. +* Axis output now stored with short instead of real. +* Input unittest +* Moved mde/text to scrapple +* DefaultData unittest. Then commit.