rendered paste body-------------------------------------------- joysticks.xml:
<?xml version="1.0"?>
<!--
To override or add "named" joystick drivers list them in
<js-named> entries with paths relative to the directory where
the joysticks.xml file resides (first example). Such "named"
drivers are only picked up if one of their <name>s matches
the joystick hardware (see output of the js_demo application).
These drivers have precedence over already existing drivers
with the same <name>. (You can also add a <name>default</name>
entry to the driver to make it the default choice.)
The second example shows how to load a driver directly to
position 0. This will then be used for the first joystick on
your system and FlightGear will not overwrite it.
-->
<PropertyList>
<!--
<js-named include="Input/Joysticks/Local/X45-modified.xml"/>
<js n="0" include="Input/Joysticks/Local/joystick_0.xml"/>
-->
<js-named include="Input/Joysticks/Logitech/extreme-3d-pro.xml"/>
<!-- <js n="0" include="Input/Joysticks/Local/joystick_0.xml"/>-->
<js-named/> <!-- dummy to keep SimGear happy -->
</PropertyList>
----------------------------- extreme-3d-pro.xml:
<?xml version="1.0" ?>
<PropertyList>
<name>Logitech Extreme Digital 3D Pro</name>
<name>Logitech Logitech Extreme 3D Pro</name>
<name>Logitech Logitech Extreme 3D</name>
<name>Logitech Extreme 3D Pro</name>
<name>Logitech Extreme 3D Pro USB</name>
<name>Logitech Extreme 3D Pro USB</name>
<axis n="0">
<desc>Aileron</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/aileron</property>
<factor type="double">0.8</factor>
<squared type="bool">true</squared>
</binding>
</axis>
<axis n="1">
<desc>Elevator</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/elevator</property>
<factor type="double">-0.8</factor>
<squared type="bool">true</squared>
</binding>
</axis>
<axis>
<desc>Rudder</desc>
<number>
<unix>2</unix>
<windows>3</windows>
</number>
<binding>
<command>property-scale</command>
<property>/controls/flight/rudder</property>
<factor type="double">0.3</factor>
</binding>
</axis>
<axis>
<desc>Throttle</desc>
<number>
<unix>3</unix>
<windows>2</windows>
</number>
<binding>
<command>nasal</command>
<script>controls.throttleAxis()</script>
</binding>
</axis>
<axis>
<desc>View Direction</desc>
<number>
<unix>4</unix>
<windows>6</windows>
</number>
<low>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-heading-offset-deg</property>
<step type="double">5.0</step>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-heading-offset-deg</property>
<step type="double">-5.0</step>
</binding>
</high>
</axis>
<axis>
<desc>View Elevation</desc>
<number>
<unix>5</unix>
<windows>7</windows>
</number>
<low>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-pitch-offset-deg</property>
<step type="double">5.0</step>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>property-adjust</command>
<property>/sim/current-view/goal-pitch-offset-deg</property>
<step type="double">-5.0</step>
</binding>
</high>
</axis>
<button n="0">
<desc>Brakes</desc>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(0)</script>
</binding>
</mod-up>
</button>
<!-- <button n="4">
<desc>Elevator trim up</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>property-adjust</command>
<property>/controls/flight/elevator-trim</property>
<step type="double">0.001</step>
</binding>
</button>
<button n="2">
<desc>Elevator trim down</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>property-adjust</command>
<property>/controls/flight/elevator-trim</property>
<step type="double">-0.001</step>
</binding>
</button>-->
<button n="3">
<desc>Flaps down</desc>
<binding>
<command>nasal</command>
<script>controls.flapsDown(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.flapsDown(0)</script>
</binding>
</mod-up>
</button>
<button n="5">
<desc>Flaps up</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>controls.flapsDown(-1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.flapsDown(0)</script>
</binding>
</mod-up>
</button>
<button n="10">
<desc>Left brake</desc>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(1, -1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(0, -1)</script>
</binding>
</mod-up>
</button>
<button n="11">
<desc>Right brake</desc>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(1, 1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.applyBrakes(0, 1)</script>
</binding>
</mod-up>
</button>
<!-- My stuff -->
<button n="2">
<desc>Gear down.</desc>
<binding>
<command>nasal</command>
<script>controls.gearDown(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.gearDown(0)</script>
</binding>
</mod-up>
</button>
<button n="4">
<desc>Gear Up.</desc>
<binding>
<command>nasal</command>
<script>controls.gearDown(-1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.gearDown(0)</script>
</binding>
</mod-up>
</button>
<!-- <button n="9">
<desc>Display a dialog relevant to the tuned in ATC service (if any)</desc>
<binding>
<command>ATC-dialog</command>
</binding>
</button>-->
<button n="1">
<desc>Toggle parking brake on or off</desc>
<binding>
<command>nasal</command>
<script>controls.applyParkingBrake(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.applyParkingBrake(0)</script>
</binding>
</mod-up>
</button>
<!-- <button n="8">
<desc>HUD Master Switch</desc>
<binding>
<command>nasal</command>
<script>aircraft.HUD.cycle_color()</script>
</binding>
</button>-->
<button n="9">
<desc>Scroll through views.</desc>
<binding>
<command>nasal</command>
<script>view.stepView(1)</script>
</binding>
</button>
<button n="8">
<desc>Select initial view (view 0).</desc>
<binding>
<command>property-assign</command>
<property>/sim/current-view/view-number</property>
<value>0</value>
</binding>
</button>
</PropertyList>