diff --git a/Input/Joysticks/ThrustMaster/Warthog-Stick.xml b/Input/Joysticks/ThrustMaster/Warthog-Stick.xml new file mode 100644 index 000000000..60a7e68e8 --- /dev/null +++ b/Input/Joysticks/ThrustMaster/Warthog-Stick.xml @@ -0,0 +1,182 @@ +<?xml version="1.0"?> +<!-- + Copyright (c) 2011 Melchior FRANZ mfranz # aon : at + Work In Progress +--> + +<PropertyList> + <name>Thustmaster Joystick - HOTAS Warthog</name> + + <nasal> + <script> + var this = cmdarg().getParent(); + var popup = func gui.popupTip(call(sprintf, arg)); + + var trimstep = 0.75; + + foreach (var b; this.getChildren("button")) { + if (b.getAttribute("children") == 1) { + var name = b.getNode("name", 1).getValue() or "??"; + b.setValues({binding: {command: "nasal", script: 'popup("' ~ name ~ '")'}}); + } + } + </script> + </nasal> + + <axis n="0"> + <name>X-axis</name> + <desc>aileron</desc> + <tolerance>0.0001</tolerance> + <binding> + <command>property-scale</command> + <property>/controls/flight/aileron</property> + </binding> + </axis> + + <axis n="1"> + <name>Y-axis</name> + <desc>elevator</desc> + <tolerance>0.0001</tolerance> + <binding> + <command>property-scale</command> + <property>/controls/flight/elevator</property> + <factor type="double">-1.0</factor> + </binding> + </axis> + + <axis n="2"> + <name>Trim Coolie Left/Right</name> + <desc>aileron trim</desc> + <low> + <repeatable>true</repeatable> + <binding> + <command>nasal</command> + <script>controls.aileronTrim(-trimstep)</script> + </binding> + </low> + <high> + <repeatable>true</repeatable> + <binding> + <command>nasal</command> + <script>controls.aileronTrim(trimstep)</script> + </binding> + </high> + </axis> + + <axis n="3"> + <name>Trim Coolie Down/Up</name> + <desc>elevator trim</desc> + <low> + <repeatable>true</repeatable> + <binding> + <command>nasal</command> + <script>controls.elevatorTrim(trimstep)</script> + </binding> + </low> + <high> + <repeatable>true</repeatable> + <binding> + <command>nasal</command> + <script>controls.elevatorTrim(-trimstep)</script> + </binding> + </high> + </axis> + + <button n="0"> + <name>Trigger Button 1</name> + <desc>gun trigger stage 1</desc> + <binding> + <command>nasal</command> + <script>controls.trigger(1)</script> + </binding> + <mod-up> + <binding> + <command>nasal</command> + <script>controls.trigger(0)</script> + </binding> + </mod-up> + </button> + + <button n="1"> + <name>Weapons Release</name> + </button> + + <button n="2"> + <name>Nosewheel Steering Button</name> + </button> + + <button n="3"> + <name>Paddle Switch</name> + </button> + + <button n="4"> + <name>Master Mode Control Button</name> + </button> + + <button n="5"> + <name>Trigger Button 2</name> + <desc>gun trigger stage 2</desc> + <binding> + <command>nasal</command> + <script>controls.trigger(2)</script> + </binding> + <mod-up> + <binding> + <command>nasal</command> + <script>controls.trigger(0)</script> + </binding> + </mod-up> + </button> + + <button n="6"> + <name>Target Management Switch (TMS) up</name> + </button> + + <button n="7"> + <name>Target Management Switch (TMS) right</name> + </button> + + <button n="8"> + <name>Target Management Switch (TMS) down</name> + </button> + + <button n="9"> + <name>Target Management Switch (TMS) left</name> + </button> + + <button n="10"> + <name>Data Management Switch (DMS) up</name> + </button> + + <button n="11"> + <name>Data Management Switch (DMS) right</name> + </button> + + <button n="12"> + <name>Data Management Switch (DMS) down</name> + </button> + + <button n="13"> + <name>Data Management Switch (DMS) left</name> + </button> + + <button n="14"> + <name>Countermeasures Management Switch (CMS) up</name> + </button> + + <button n="15"> + <name>Countermeasures Management Switch (CMS) right</name> + </button> + + <button n="16"> + <name>Countermeasures Management Switch (CMS) down</name> + </button> + + <button n="17"> + <name>Countermeasures Management Switch (CMS) left</name> + </button> + + <button n="18"> + <name>Countermeasures Management Switch (CMS) push</name> + </button> +</PropertyList> diff --git a/Input/Joysticks/ThrustMaster/Warthog-Throttle.xml b/Input/Joysticks/ThrustMaster/Warthog-Throttle.xml new file mode 100644 index 000000000..fcef23493 --- /dev/null +++ b/Input/Joysticks/ThrustMaster/Warthog-Throttle.xml @@ -0,0 +1,338 @@ +<?xml version="1.0"?> +<!-- + Copyright (c) 2011 Melchior FRANZ mfranz # aon : at + Work In Progress +--> + +<PropertyList> + <name>Thrustmaster Throttle - HOTAS Warthog</name> + + <nasal> + <script> + var this = cmdarg().getParent(); + var popup = func gui.popupTip(call(sprintf, arg)); + + var even_engines = [0, 2, 4, 6, 8, 10]; + var odd_engines = [1, 3, 5, 7, 9, 11]; + var viewstep = 0.5; + var viewdir = props.globals.getNode("/sim").getChildren("view"); + forindex (var i; viewdir) { + var t = viewdir[i].getNode("type"); + viewdir[i] = t != nil and t.getValue() == "lookat" ? 1 : -1; + } + + foreach (var b; this.getChildren("button")) { + if (b.getAttribute("children") == 1) { + var name = b.getNode("name", 1).getValue() or "??"; + b.setValues({binding: {command: "nasal", script: 'popup("' ~ name ~ '")'}}); + } + } + </script> + </nasal> + + <axis n="0"> + <name>Mouse Horizontal</name> + <desc>mouse horizontal</desc> + <low> + <repeatable type="bool">true</repeatable> + <binding> + <command>nasal</command> + <script>view.panViewDir(-viewdir[view.index] * viewstep)</script> + </binding> + </low> + <high> + <repeatable type="bool">true</repeatable> + <binding> + <command>nasal</command> + <script>view.panViewDir(viewdir[view.index] * viewstep)</script> + </binding> + </high> + </axis> + + <axis n="1"> + <name>Mouse Vertical</name> + <desc>mouse vertical</desc> + <low> + <repeatable type="bool">true</repeatable> + <binding> + <command>nasal</command> + <script>view.panViewPitch(viewstep)</script> + </binding> + </low> + <high> + <repeatable type="bool">true</repeatable> + <binding> + <command>nasal</command> + <script>view.panViewPitch(-viewstep)</script> + </binding> + </high> + </axis> + + <axis n="2"> + <name>Right Throttle</name> + <desc>right throttle (odd engines)</desc> + <tolerance>0.0001</tolerance> + <binding> + <command>nasal</command> + <script>controls.perEngineSelectedAxisHandler(0)(odd_engines)</script> + </binding> + </axis> + + <axis> + <name>Left Throttle</name> + <desc>left throttle (even engines)</desc> + <number> + <unix>3</unix> + <mac>3</mac> + <windows>5</windows> + </number> + <tolerance>0.0001</tolerance> + <binding> + <command>nasal</command> + <script>controls.perEngineSelectedAxisHandler(0)(even_engines)</script> + </binding> + </axis> + + <axis> + <name>Friction Wheel</name> + <desc>rudder trim</desc> + <number> + <unix>4</unix> + <mac>4</mac> + <windows>6</windows> + </number> + <binding> + <command>property-scale</command> + <property>/controls/flight/rudder</property> + <factor type="double">-1</factor> + </binding> + </axis> + + <axis> + <name>Coolie Switch Horizontal</name> + <number> + <unix>5</unix> + <mac>5</mac> + <windows>3</windows> + </number> + <low> + <binding> + <command>nasal</command> + <script>popup("coolie switch left")</script> + </binding> + </low> + <high> + <binding> + <command>nasal</command> + <script>popup("coolie switch right")</script> + </binding> + </high> + </axis> + + <axis> + <name>Coolie Switch Vertical</name> + <number> + <unix>6</unix> + <mac>6</mac> + <windows>4</windows> + </number> + <low> + <binding> + <command>nasal</command> + <script>popup("coolie switch up")</script> + </binding> + </low> + <high> + <binding> + <command>nasal</command> + <script>popup("coolie switch down")</script> + </binding> + </high> + </axis> + + <button n="0"> + <name>Mouse Button</name> + <desc>reset view</desc> + <binding> + <command>nasal</command> + <script>view.resetView()</script> + </binding> + </button> + + <button n="1"> + <name>MIC Switch Push</name> + <desc>Push To Talk (PTT)</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> + + <button n="2"> + <name>MIC Switch Up</name> + </button> + + <button n="3"> + <name>MIC Switch Forward</name> + </button> + + <button n="4"> + <name>MIC Switch Down</name> + </button> + + <button n="5"> + <name>MIC Switch Aft</name> + </button> + + <button n="6"> + <name>Speedbrake Forward</name> + </button> + + <button n="7"> + <name>Speedbrake Aft</name> + </button> + + <button n="8"> + <name>Boat Switch Forward</name> + </button> + + <button n="9"> + <name>Boat Switch Aft</name> + </button> + + <button n="10"> + <name>China Hat Forward</name> + </button> + + <button n="11"> + <name>China Hat Aft</name> + </button> + + <button n="12"> + <name>Pinky Switch Forward</name> + </button> + + <button n="13"> + <name>Pinky Switch Aft</name> + </button> + + <button n="14"> + <name>Left Throttle Button</name> + </button> + + <button n="15"> + <name>Engine Fuel Flow Left</name> + </button> + + <button n="16"> + <name>Engine Fuel Flow Right</name> + </button> + + <button n="17"> + <name>Engine Operate Left MOTOR</name> + </button> + + <button n="18"> + <name>Engine Operate Right MOTOR</name> + </button> + + <button n="19"> + <name>APU Start</name> + </button> + + <button n="20"> + <name>Landing Gear Horn Silence Button</name> + </button> + + <button n="21"> + <name>Flaps Up</name> + <desc>flaps up</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="22"> + <name>Flaps Down</name> + <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="23"> + <name>EAC Switch</name> + </button> + + <button n="24"> + <name>RADAR ALT</name> + </button> + + <button n="25"> + <name>Autopilot (Dis)Engage</name> + </button> + + <button n="26"> + <name>Autopilot PATH</name> + <binding> + <command>nasal</command> + <script>popup("autopilot path")</script> + </binding> + <mod-up> + <binding> + <command>nasal</command> + <script>popup("autopilot alt/hdg")</script> + </binding> + </mod-up> + </button> + + <button n="27"> + <name>Autopilot ALT</name> + <binding> + <command>nasal</command> + <script>popup("autopilot alt")</script> + </binding> + <mod-up> + <binding> + <command>nasal</command> + <script>popup("autopilot alt/hdg")</script> + </binding> + </mod-up> + </button> + + <button n="28"> + <name>Right Throttle Idle Switch</name> + </button> + + <button n="29"> + <name>Left Throttle Idle Switch</name> + </button> + + <button n="30"> + <name>Engine Operate Left IGN</name> + </button> + + <button n="31"> + <name>Engine Operate Right IGN</name> + </button> +</PropertyList>