I note
- the SpacePilot has lots of buttons and an LCD display
- Google SketchUp and similar sophisticated client-apps both respond to the extra buttons, and display in the LCD
So... my question is - how is an App meant to accommodate the lesser SpaceXXX devices?
If the app needs e.g. to switch between object/camera mode, or to tweak the speed of the device, how does one do that without the full whack sophistication of the SpacePilot?
There is a Type property on the ISimpleDevice COM interface, and a short list of (currently) defined codes - how does the implementer get a sensible list of the features which match to those device codes?
Should the App even be checking the device codes at all, or is there a preferred style of design which avoids device-specific mods, and uses application fall-back commands?
What should the app fall-back style be?
If (when) 3DxConnexion add a new device, how does one best prepare for that? Do 3DxConnexion send warnings in advance to all known supported App developers, saying "there will be a new product, with these features and this code - please update your App?"
If an app implements an Object Mode toggle, can it interact with the device in a manner similar to the Dominant Axis button or Translations button, and post a temporary "Object Mode On" "object Mode Off" label to the display?
How? (to post, and to clear after time interval, restoring previous text)
Clearly any such interaction can't be allowed to fail (badly) (only gracefully) on the lesser devices, and I presume we should not rely on the user being able to have such features... What then is the preferred style?