On 25 Jun 2004, at 14:16, David Megginson wrote:
Christian Brunschen wrote:
What would be really good is if it were possible for the *user* to define an arbitrary number of keyboard / joystick configurations. These could also be named and grouped together; and there should be an easy way to switch between these configurations, from the keyboard or joystick itself if so desired.
I agree. Pulling keyboard/joystick/mouse configuration out of the main property tree makes this easier, because we don't have bindings left over when we switch to a new configuration (we load the whole configuration tree fresh with every reset()).
Yes, it would nicely decouple the input device configuration from the planes.
This would allow the user to set up different control configurations for flying different types of aircraft. For instance, a plane that doesn't have a retractable undercarriage won't need those controls at all, and the keys that would otherwise have controlled the undercarriage could then be used for something else.
Of course, a user would be welcome to do that, but we shouldn't recommend it as a good practice. As a general rule, it's better to have a key be a no-op for some planes than to keep changing meaning depending on the plane being loaded. The only exception is when the two things are closely related, such as (say) speed brakes or a drag chute.
Consider an aircraft with *lots* of different things that can be changed; including things like autopilot, radios, and so on. Rather than having to have all possible things accessible from the keyboard - likely leading to overloading of keys through modifiers, i.e., having to use 'x' and 'shift-x' to mean different things - one could cycle through having the keyboard 'focus' on different parts of the instrument panel. One second the entire keyboard could be 'dedicated' to setting up the autopilot just right, thus allowing lots of freedom in the choice of which keys do what; by a simple keypress the keyboard configuration could be changed to look at only the radios, with the same keys that would change the heading on the autopilot configuration, now used to change the frequency of the main communication radio, for instance.
My preference is for there to be a useful default keyboard configuration that covers most of the common functionality that is usually available in most aircraft. As more and more different aircraft are covered, this means cramming more and more stuff into the same limited number of keys, though. Yes, it makes sense to have gear up and down control be on the default key configuration, and simply have it not do anything on fixed-wheel aircraft. But what about something like wing sweep? Not really enough aircraft have it to make it a common feature that we should try to squeeze onto the already heavily loaded keyboard .. or should we?
By allowing aircraft to provide hints, we could actually include a few different keyboard & joystick configurations to match different broad types of aircraft, or different broad capabilities (ie, sets of instruments and controls), which could allow those keyboard configurations to be less cramped than one single default that tries to please everyone. And those hints could also be used by users who have customised their own configurations.
The point here is that it isn't the plane that is being loaded that supplies a control configuration that may or may not suit the user; it simply provides hints, and the rest of the system is free to act on those hints or ignore them. If the user has asked the system to look at the hints and load different configuration sets based on those hints, then that is a choice the user has made. Of course, if FlightGear as shipped were to include several different control sets and use hints itself to choose between them (say, if there were two control sets to differentiate between fixed-wing and rotor-wing craft), that would have to be documented: After all, there would now not be 'one default control setup', but two different ones. But at the same time it's not an insurmountable hurdle, I don't think.
All the best,
// Christian Brunschen
_______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel