Short-term Goals: support a separate F-15 "profile" .. lay groundwork for other jets, later
retain two-way back-compat for existing XML and BMS-Auto keyfiles
nongoal: full document-view pattern refactor.. this PR is a little bit of a rushed hack job
Long-term Goals: further separate "keyfile/profile editor" experience from the launcher
reduce user confusion and improve maintainability: refactor toward more traditional document/view architecture.. eg. explicit File|Save and File|Open buttons
try to match BMS heuristics for enumerating and identifying devices (DeviceSorting.txt, pidvid-guids vs instance-guids)
Impl Strategy for this PR
remove the keyfileSelector combobox, which was problematic; replace with explicit 'import' button and dialog-flow
add dropdown to select "avionicsProfile" .. ie. F-16 vs F-15
retain two-way back-compat for legacy XML files
emit both "BMS - Auto.key" and "BMS - Auto-F15ABCD.key", per BMS spec
Detailed Changelist Notes
moved KeyFile(s) under DeviceControl as a babystep toward better encapsulating the data-model away from the view
(this diff is huge but it's mostly just renaming bits for clarity and to move static field-accessors behind getter-methods to provide a little OO encapsulation/abstraction)
in effort to keep the existing XML data model little changed, I play a hacky shell-game with array references in the XmlSerialization tree, to swap the 'dx' and 'pov' arrays based on selected profile.. it's ugly and it makes the XML files 3x too big, but hey it works and the xml files were already way too big so hey
removed some dead-code that was impeding the refactoring (the mousewheel-axis stuff, and the keyfile enumeration)
relaxed the various timer frequencies.. may help lower-end systems whose users reported very stuttery experience
improved robustness of keyfile parser code; added some unit-tests
checkin a normative copy of Full.key and Full-F15ABCD.key; failover to load them from cwd / exe-path
Short-term Goals: support a separate F-15 "profile" .. lay groundwork for other jets, later
Long-term Goals: further separate "keyfile/profile editor" experience from the launcher
Impl Strategy for this PR
Detailed Changelist Notes