<?xml version="1.0" ?>
<!--
************************************************************************
* Bindings for Logitech Freeedom2-4 (USB) joystick based on
* Bindings for Logitech WingMan Extreme Digital 3D (USB) joystick.
*
*
* Axis 0: ailerons
* Axis 1: elevator
* Axis 2 (slider): throttle
* Axis 3 (twist): rudder
* Axes 6 and 7 (hat): view direction
*
* Button 0: all brakes
* Button 1: trigger
* Button 2: elevator trim up
* Button 3: flap up
* Button 4: elevator trim down
* Button 5: flap down
* Button 6: right brake only
* Button 7: left brake only
* Button 8: prop coarse (advance)
* Button 9: prop fine (retard)
************************************************************************

-->
<PropertyList>
	<name>Logitech Freedom 2.4</name>
	<name>Logitech Logitech Freedom 2.4</name>
	<name>Logitech Freedom 2.4 USB</name>

	<axis>
		<desc>Aileron</desc>
		<number>
			<mac>0</mac>
			<unix>0</unix>
			<windows>0</windows>
		</number>
		<binding>
			<command>property-scale</command>
			<property>/controls/flight/aileron</property>
			<squared type="bool">true</squared>
		</binding>
	</axis>

	<axis>
		<desc>Elevator</desc>
		<number>
			<mac>1</mac>
			<unix>1</unix>
			<windows>1</windows>
		</number>
		<binding>
			<command>property-scale</command>
			<property>/controls/flight/elevator</property>
			<factor type="double">-1.0</factor>
			<squared type="bool">true</squared>
		</binding>
	</axis>

	<axis>
		<desc>Throttle</desc>
		<number>
			<mac>3</mac>
			<unix>3</unix>
			<windows>2</windows>
		</number>
		<binding>
			<command>nasal</command>
			<script>controls.throttleAxis()</script>
		</binding>
	</axis>

	<axis>
		<desc>Rudder</desc>
		<number>
			<mac>2</mac>
			<unix>2</unix>
			<windows>3</windows>
		</number>
		<binding>
			<command>property-scale</command>
			<property>/controls/flight/rudder</property>
			<factor type="double">1.0</factor>
		</binding>
	</axis>

	<axis>
		<desc>View Direction Ctrl Aileron Trim</desc>
		<number>
			<mac>4</mac>
			<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>
			<mod-ctrl>
				<desc>aileron adjustment</desc>
				<binding>
					<command>nasal</command>
					<script>controls.aileronTrim(-1)</script>
				</binding>
			</mod-ctrl>
		</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>
			<mod-ctrl>
				<desc>aileron adjustment</desc>
				<binding>
					<command>nasal</command>
					<script>controls.aileronTrim(1)</script>
				</binding>
			</mod-ctrl>
		</high>
	</axis>

	<axis>
		<desc>View Elevation Ctrl Elevator Trim</desc>
		<number>
			<mac>5</mac>
			<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>
			<mod-ctrl>
				<desc>Elevator adjustment</desc>
				<binding>
					<command>nasal</command>
					<script>controls.elevatorTrim(-1)</script>
				</binding>
			</mod-ctrl>
		</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>
			<mod-ctrl>
				<desc>Elevator adjustment</desc>
				<binding>
					<command>nasal</command>
					<script>controls.elevatorTrim(1)</script>
				</binding>
			</mod-ctrl>
		</high>
	</axis>

	<button>
		<desc>Brakes</desc>
		<number>
			<mac>0</mac>
			<unix>0</unix>
			<windows>0</windows>
		</number>
		<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>
		<desc>Trigger</desc>
		<number>
			<mac>1</mac>
			<unix>1</unix>
			<windows>1</windows>
		</number>
		<binding>
			<!--<command>property-assign</command>
			<property>ai/submodels/trigger</property>
			<value type="bool">1</value>-->
			<command>nasal</command>
			<script>controls.trigger(1)</script>
		</binding>
		<mod-up>
			<binding>
				<!--<command>property-assign</command>
				<property>ai/submodels/trigger</property>
				<value type="bool">0</value>-->
				<command>nasal</command>
				<script>controls.trigger(0)</script>
			</binding>
		</mod-up>
	</button>

	<button>
		<desc>Elevator trim up</desc>
		<number>
			<mac>2</mac>
			<unix>2</unix>
			<windows>2</windows>
		</number>
		<repeatable type="bool">true</repeatable>
		<binding>
			<command>nasal</command>
			<script>controls.elevatorTrim(-1)</script>
		</binding>
	</button>

	<button>
		<desc>Elevator trim down</desc>
		<number>
			<mac>4</mac>
			<unix>4</unix>
			<windows>4</windows>
		</number>
		<repeatable type="bool">true</repeatable>
		<binding>
			<command>nasal</command>
			<script>controls.elevatorTrim(1)</script>
		</binding>
	</button>

	<button>
		<desc>Flaps down</desc>
		<number>
			<mac>3</mac>
			<unix>3</unix>
			<windows>3</windows>
		</number>
		<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>
		<desc>Flaps up</desc>
		<number>
			<mac>5</mac>
			<unix>5</unix>
			<windows>5</windows>
		</number>
		<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>
		<desc>Left brake</desc>
		<number>
			<mac>6</mac>
			<unix>6</unix>
			<windows>6</windows>
		</number>
		<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>
		<desc>Right brake</desc>
		<number>
			<mac>7</mac>
			<unix>7</unix>
			<windows>7</windows>
		</number>
		<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>
		<desc>Propeller Coarse</desc>
		<number>
			<mac>8</mac>
			<unix>8</unix>
			<windows>8</windows>
		</number>
		<repeatable>true</repeatable>
		<binding>
			<command>property-adjust</command>
			<property>/controls/engines/engine/propeller-pitch</property>
			<step type="double">0.1</step>
			<min type="double">0</min>
			<max type="double">1</max>
		</binding>
	</button>

	<button>
		<desc>Propeller Fine</desc>
		<number>
			<mac>9</mac>
			<unix>9</unix>
			<windows>9</windows>
		</number>
		<repeatable>true</repeatable>
		<binding>
			<command>property-adjust</command>
			<property>/controls/engines/engine/propeller-pitch</property>
			<step type="double">-0.1</step>
			<min type="double">0</min>
			<max type="double">1</max>
		</binding>
	</button>
	<!-- -->
</PropertyList>