1
0
Fork 0
fgdata/Input/Joysticks/Saitek/Pro-Flight-Cessna-Yoke.xml

390 lines
12 KiB
XML

<?xml version="1.0"?>
<!-- Saitek Pro Flight Cessna Yoke
Copyright (C) 2012 Stuart Buchanan
This file is released under the GPL license.
Controls:
Axis 0: Aileron
Axis 1: Elevator
Axis 2: Throttle
Axis 3: Prop
Axis 4: Mixture
Axis 5/6 (Coolie Hat): View direction
Button 0 (left button): PTT
Button 1 (right button): Reset View
Button 2/3 (left four-way forwards/back): Angle of view
Button 4/5 (right vertical two-way): Elevator Trim
Button 6/7 (right horizontal two-way): Rudder Trim
Button 11/12 (left four-way left/right): View
Button 13/14 (left hand quadrant buttons): Flaps Up/Down
Buttons 15/16 (middle quadrant buttons): Gear Up/Down
Buttons 17/18 (right quandrant buttons): Spoilers Up/Down
Buttons 23/24/25 (right hand selector switch): View direction Sensitivity
-->
<PropertyList>
<name>Saitek Saitek Pro Flight Cessna Yoke</name>
<name>Saitek Pro Flight Cessna Yoke</name>
<name>Saitek Pro Flight Cessna Yoke</name>
<name>Mad Catz Pro Flight Cessna Yoke</name>
<name>ProFlight Cessna Yoke</name>
<axis n="0">
<desc>Aileron</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/aileron</property>
</binding>
</axis>
<axis n="1">
<desc>Elevator</desc>
<binding>
<command>property-scale</command>
<property>/controls/flight/elevator</property>
<factor type="double">-1.0</factor>
</binding>
</axis>
<!-- Throttle Quadrant -->
<axis n="2">
<desc>Throttle</desc>
<binding>
<command>nasal</command>
<script>controls.throttleAxis()</script>
</binding>
</axis>
<axis>
<number>
<unix>3</unix>
<windows>4</windows>
</number>
<desc>Propellor Pitch</desc>
<binding>
<command>nasal</command>
<script>controls.propellerAxis()</script>
</binding>
</axis>
<axis>
<number>
<unix>4</unix>
<windows>3</windows>
</number>
<desc>Mixture</desc>
<binding>
<command>nasal</command>
<script>controls.mixtureAxis()</script>
</binding>
</axis>
<!-- Coolie Hat -->
<axis>
<number>
<unix>5</unix>
<windows>6</windows>
</number>
<desc>View Heading</desc>
<low>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-heading-offset-deg");
setprop("/sim/current-view/goal-heading-offset-deg", offset + yoke);
</script>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-heading-offset-deg");
setprop("/sim/current-view/goal-heading-offset-deg", offset - yoke);
</script>
</binding>
</high>
</axis>
<axis>
<number>
<unix>6</unix>
</number>
<desc>View Elevation</desc>
<low>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
setprop("/sim/current-view/goal-pitch-offset-deg", offset + yoke);
</script>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
setprop("/sim/current-view/goal-pitch-offset-deg", offset - yoke);
</script>
</binding>
</high>
</axis>
<axis>
<number>
<windows>7</windows>
</number>
<desc>View Elevation</desc>
<low>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
setprop("/sim/current-view/goal-pitch-offset-deg", offset - yoke);
</script>
</binding>
</low>
<high>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>
var yoke = getprop("/devices/status/yoke/offset");
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
setprop("/sim/current-view/goal-pitch-offset-deg", offset + yoke);
</script>
</binding>
</high>
</axis>
<!-- Buttons on the Yoke -->
<!-- Red Button on left stalk -->
<button n="0">
<name>PTT</name>
<desc>Push To Talk (FGCom)</desc>
<binding>
<command>nasal</command>
<script>controls.ptt(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.ptt(0)</script>
</binding>
</mod-up>
</button>
<!-- Black button on right stalk -->
<button n="1">
<desc>Reset view</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>
setprop("/sim/current-view/view-number", 0);
setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/view[0]/config/pitch-offset-deg"));
setprop("/sim/current-view/goal-heading-offset-deg", 0.0);
#setprop("/sim/current-view/field-of-view", getprop("/sim/view/config/default-field-of-view-deg"));
</script>
</binding>
</button>
<!-- Left hand four-way switch -->
<button n="2">
<desc>View Decrease</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>view.decrease(0.75)</script>
</binding>
</button>
<button n="3">
<desc>View Increase</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>view.increase(0.75)</script>
</binding>
</button>
<!-- Right hand vertical two-way switch -->
<button n="4">
<desc>Elevator trim up</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>controls.elevatorTrim(1)</script>
</binding>
</button>
<button n="5">
<desc>Elevator trim down</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>controls.elevatorTrim(-1)</script>
</binding>
</button>
<!-- Right hand horizontal two-way switch -->
<button n="6">
<desc>Rudder trim right</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>controls.rudderTrim(-1)</script>
</binding>
</button>
<button n="7">
<desc>Rudder trim left</desc>
<repeatable>true</repeatable>
<binding>
<command>nasal</command>
<script>controls.rudderTrim(1)</script>
</binding>
</button>
<!-- Left four-way switch - horizontal -->
<button n="11">
<desc>View Cycle Backwards</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>view.stepView(-1)</script>
</binding>
</button>
<button n="12">
<desc>View Cycle Forwards</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>view.stepView(1)</script>
</binding>
</button>
<!-- Buttons on the throttle Quadrant -->
<button n="13"> <!-- Labled as T1 -->
<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="14"> <!-- Labled as T2 -->
<desc>Flaps down</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="15"> <!-- Labled as T3 -->
<desc>Gear up</desc>
<repeatable>false</repeatable>
<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="16"> <!-- Labled as T4 -->
<desc>Gear down</desc>
<repeatable>false</repeatable>
<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="17"> <!-- Labled as T5 -->
<desc>Retract Spoilers</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>controls.stepSpoilers(-1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.stepSpoilers(0)</script>
</binding>
</mod-up>
</button>
<button n="18"> <!-- Labled as T6 -->
<desc>Deploy Spoilers</desc>
<repeatable>false</repeatable>
<binding>
<command>nasal</command>
<script>controls.stepSpoilers(1)</script>
</binding>
<mod-up>
<binding>
<command>nasal</command>
<script>controls.stepSpoilers(0)</script>
</binding>
</mod-up>
</button>
<button n="22">
<desc>Yoke Mode 0</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>property-assign</command>
<property>/devices/status/yoke/offset</property>
<value>1</value>
</binding>
</button>
<button n="23">
<desc>Yoke Mode 1</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>property-assign</command>
<property>/devices/status/yoke/offset</property>
<value>5</value>
</binding>
</button>
<button n="24">
<desc>Yoke Mode 2</desc>
<repeatable type="bool">false</repeatable>
<binding>
<command>property-assign</command>
<property>/devices/status/yoke/offset</property>
<value>10</value>
</binding>
</button>
</PropertyList>