Add the Cyborg Evo from Phillip Jones.
This commit is contained in:
parent
42cd87bbfe
commit
c752dc927d
2 changed files with 484 additions and 0 deletions
483
Input/Joysticks/Saitek/Cyborg-Evo.xml
Normal file
483
Input/Joysticks/Saitek/Cyborg-Evo.xml
Normal file
|
@ -0,0 +1,483 @@
|
|||
<!--
|
||||
Joystick binding definitions for "Saitek Cyborg Evo" Joystick.
|
||||
|
||||
This file borrows heavily from "Cyborg-Gold-3d-USB.xml"
|
||||
|
||||
The Saitek Cyborg Evo is designed to be easily switchable between a
|
||||
left-handed or right handed person. With that in mind {^, F1, F2} buttons
|
||||
on the left, and {^, F3, F4 } buttons on the right have repeated
|
||||
functionality as the 'modifier' buttons.
|
||||
|
||||
Axis # (direction) mapped to
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
axis 0: (left-right) aileron
|
||||
axis 1: (forward-backward) elevator
|
||||
axis 2: (slider) throttle
|
||||
axis 3: (twist) rudder
|
||||
|
||||
~~~~ Left Side Modifiers ~~~~
|
||||
button 10: "^" Modifier 1
|
||||
button 6: "F1" Modifier 2
|
||||
button 7: "F2" Modifier 3
|
||||
|
||||
~~~~ Right Side Modifiers ~~~~
|
||||
button 11: "^" Modifier 1
|
||||
button 8: "F3" Modifier 2
|
||||
button 9: "F4" Modifier 3
|
||||
|
||||
Button # (location) No Mod Mod 1 Mod 2 Mod 3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
button 0: (trigger) Brakes Parking Brake Speed Brake Thrust Reverse
|
||||
button 1: (middle) Reset View Reset All Trim Cockpit View Tail Wheel Lock
|
||||
button 2: (left) Flaps Up Gear Up Zoom In #
|
||||
button 3: (right) Flaps Down Gear Down Zoom Out #
|
||||
button 4: (left of hat) Previous View Trim Rudder # #
|
||||
button 5: (right of hat) Next View Trim Rudder # #
|
||||
|
||||
axis 6: (hat left-right) look l/r Trim Aileron Adj Mixture #
|
||||
axis 7: (hat up-down) look u/d Trim Elevator Adj Propeller #
|
||||
|
||||
-->
|
||||
|
||||
<PropertyList>
|
||||
|
||||
<name>Saitek Cyborg Evo</name>
|
||||
|
||||
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Axis Bindings ~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
||||
|
||||
<axis n="0">
|
||||
<desc>Aileron</desc>
|
||||
<binding>
|
||||
<command>property-scale</command>
|
||||
<property>/controls/flight/aileron</property>
|
||||
<power type="double">2</power>
|
||||
</binding>
|
||||
</axis>
|
||||
|
||||
<axis n="1">
|
||||
<desc>Elevator</desc>
|
||||
<binding>
|
||||
<command>property-scale</command>
|
||||
<property>/controls/flight/elevator</property>
|
||||
<factor type="double">-1.0</factor>
|
||||
<power type="double">2</power>
|
||||
</binding>
|
||||
</axis>
|
||||
|
||||
<axis n="2">
|
||||
<desc>Throttle</desc>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>controls.throttleAxis()</DEFANGED_script>
|
||||
</binding>
|
||||
</axis>
|
||||
|
||||
<axis n="3">
|
||||
<desc>Rudder</desc>
|
||||
<binding>
|
||||
<command>property-scale</command>
|
||||
<property>/controls/flight/rudder</property>
|
||||
<power type="double">2</power>
|
||||
</binding>
|
||||
</axis>
|
||||
|
||||
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Hat Switch ~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
||||
<axis n="6">
|
||||
<desc>View Direction; Aileron Trim;</desc>
|
||||
<low>
|
||||
<repeatable>true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
v = getprop("/sim/current-view/view-number");
|
||||
if (v == 0 or v == 4) {
|
||||
view.panViewDir(2);
|
||||
} else {
|
||||
view.panViewDir(2);
|
||||
}
|
||||
} elsif (mod == 1) {
|
||||
controls.aileronTrim(-0.75);
|
||||
} elsif (mod == 2) {
|
||||
controls.adjMixture(-2);
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</low>
|
||||
<high>
|
||||
<repeatable>true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
v = getprop("/sim/current-view/view-number");
|
||||
if (v == 0 or v == 4) {
|
||||
view.panViewDir(-2);
|
||||
} else {
|
||||
view.panViewDir(-2);
|
||||
}
|
||||
} elsif (mod == 1) {
|
||||
controls.aileronTrim(0.75);
|
||||
} elsif (mod == 2) {
|
||||
controls.adjMixture(2);
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</high>
|
||||
</axis>
|
||||
|
||||
<axis n="7">
|
||||
<desc>View Elevation; Elevator Trim;</desc>
|
||||
<low>
|
||||
<repeatable>true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
view.panViewPitch(2);
|
||||
} elsif (mod == 1) {
|
||||
controls.elevatorTrim(-0.75);
|
||||
} elsif (mod == 2) {
|
||||
controls.adjPropeller(-1);
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</low>
|
||||
<high>
|
||||
<repeatable>true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
view.panViewPitch(-2);
|
||||
} elsif (mod == 1) {
|
||||
controls.elevatorTrim(0.75);
|
||||
} elsif (mod == 2) {
|
||||
controls.adjPropeller(1);
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</high>
|
||||
</axis>
|
||||
|
||||
|
||||
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Button Bindings ~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
||||
|
||||
<!-- Trigger Button - Brakes, Parking Brake, Thrust Reverser -->
|
||||
<DEFANGED_button n="0">
|
||||
<desc>Brakes</desc>
|
||||
<repeatable type="bool">true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
interpolate("/controls/gear/brake-left", 1, 0.075);
|
||||
interpolate("/controls/gear/brake-right", 1, 0.075);
|
||||
} elsif (mod == 1) {
|
||||
setprop("/controls/gear/brake-left", 1);
|
||||
setprop("/controls/gear/brake-right", 1);
|
||||
} elsif (mod == 2) {
|
||||
#
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<repeatable type="bool">true</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
interpolate("/controls/gear/brake-left", 0, 0.075);
|
||||
interpolate("/controls/gear/brake-right", 0, 0.075);
|
||||
} elsif (mod == 1) {
|
||||
brake = !getprop("/controls/gear/brake-parking");
|
||||
setprop("/controls/gear/brake-parking", brake);
|
||||
if (brake) {
|
||||
gui.popupTip("Parking Brake ON");
|
||||
} else {
|
||||
gui.popupTip("Parking Brake OFF");
|
||||
}
|
||||
setprop("/controls/gear/brake-left", 0);
|
||||
setprop("/controls/gear/brake-right", 0);
|
||||
} elsif (mod == 2) {
|
||||
speedbrake = !getprop("/controls/flight/speedbrake");
|
||||
setprop("/controls/flight/speedbrake", speedbrake);
|
||||
} elsif (mod == 3) {
|
||||
reverser = !getprop("/controls/engines/engine[0]/reverser");
|
||||
props.setAll("/controls/engines/engine", "reverser", reverser);
|
||||
if (reverser) {
|
||||
gui.popupTip("Thrust Reverser ON");
|
||||
} else {
|
||||
gui.popupTip("Thrust Reverser OFF");
|
||||
}
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Middle Button below Hat-switch, labeled "2" -->
|
||||
<DEFANGED_button n="1">
|
||||
<desc>Reset view; toggle tail-wheel lock; reset trim</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
view.resetView();
|
||||
} elsif (mod == 1) {
|
||||
setprop("/controls/flight/elevator-trim", 0);
|
||||
setprop("/controls/flight/aileron-trim", 0);
|
||||
setprop("/controls/flight/rudder-trim", 0);
|
||||
} elsif (mod == 2) {
|
||||
setprop("/sim/current-view/view-number", 0);
|
||||
view.resetView();
|
||||
} elsif (mod == 3) {
|
||||
twlock = !getprop("/controls/gear/tailwheel-lock");
|
||||
setprop("/controls/gear/tailwheel-lock", twlock);
|
||||
if (twlock) {
|
||||
gui.popupTip("Tail Wheel UNLOCKED");
|
||||
} else {
|
||||
gui.popupTip("Tail Wheel LOCKED");
|
||||
}
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Left Button below Hat-switch, labeled "3" -->
|
||||
<DEFANGED_button n="2">
|
||||
<desc>Flaps Up; Gear up</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
controls.stepFlaps(-1);
|
||||
} elsif (mod == 1) {
|
||||
setprop("/controls/gear/gear-down", 0);
|
||||
} elsif (mod == 2) {
|
||||
view.increase();
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Right Button below Hat-switch, labeled "4" -->
|
||||
<DEFANGED_button n="3"><!-- right -->
|
||||
<desc>Flaps Down; Gear down</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
controls.stepFlaps(1);
|
||||
} elsif (mod == 1) {
|
||||
setprop("/controls/gear/gear-down", 1);
|
||||
} elsif (mod == 2) {
|
||||
view.decrease();
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Button left of Hat switch, Labeled '5' -->
|
||||
<DEFANGED_button n="4">
|
||||
<desc>Previous View</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
view.stepView(-1);
|
||||
} elsif (mod == 1) {
|
||||
controls.rudderTrim(-0.75);
|
||||
} elsif (mod == 2) {
|
||||
#
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Button right of Hat switch, Labeled '6' -->
|
||||
<DEFANGED_button n="5">
|
||||
<desc>Next View</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
mod = getprop("/input/joysticks/js[0]/saitek-cyborg-evo-modifier");
|
||||
if (mod == nil or mod == 0) {
|
||||
view.stepView(1);
|
||||
} elsif (mod == 1) {
|
||||
controls.rudderTrim(0.75);
|
||||
} elsif (mod == 2) {
|
||||
#
|
||||
} elsif (mod == 3) {
|
||||
#
|
||||
}
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~ Modifier Buttons ~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
||||
|
||||
<!-- Left Side Button labeled ^ -->
|
||||
<DEFANGED_button n="10">
|
||||
<desc>Modifier 1</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 1);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Left Side Button labeled F1 -->
|
||||
<DEFANGED_button n="6">
|
||||
<desc>Modifier 2</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 2);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Left Side Button labeled F2 -->
|
||||
<DEFANGED_button n="7">
|
||||
<desc>Modifier 3</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 3);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Right Side Button labeled ^ -->
|
||||
<DEFANGED_button n="11">
|
||||
<desc>Modifier 1</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 1);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Right Side Button labeled F3 -->
|
||||
<DEFANGED_button n="8">
|
||||
<desc>Modifier 2</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 2);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
<!-- Right Side Button labeled F4 -->
|
||||
<DEFANGED_button n="9">
|
||||
<desc>Modifier 3</desc>
|
||||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 3);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<DEFANGED_script>
|
||||
name = "/input/joysticks/js[0]/saitek-cyborg-evo-modifier";
|
||||
setprop(name, 0);
|
||||
</DEFANGED_script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</DEFANGED_button>
|
||||
|
||||
</PropertyList>
|
|
@ -39,6 +39,7 @@ Joystick binding definitions.
|
|||
<js-named include="Input/Joysticks/Saitek/X45.xml"/>
|
||||
<js-named include="Input/Joysticks/Saitek/X8-30.xml"/>
|
||||
<js-named include="Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml"/>
|
||||
<js-named include="Input/Joysticks/Saitek/Cyborg-Evo.xml"/>
|
||||
<js-named include="Input/Joysticks/Saitek/Cyborg-3d-Rumble-Force.xml"/>
|
||||
|
||||
<!-- ThrustMaster devices -->
|
||||
|
|
Loading…
Reference in a new issue