<?xml version="1.0"?> <!-- Sound control dialog --> <PropertyList> <name>sound-dialog</name> <modal>false</modal> <width>400</width> <layout>vbox</layout> <group> <layout>hbox</layout> <empty><stretch>1</stretch></empty> <text> <label>Sound Configuration</label> </text> <empty><stretch>1</stretch></empty> <button> <pref-width>16</pref-width> <pref-height>16</pref-height> <legend></legend> <keynum>27</keynum> <border>2</border> <binding> <command>dialog-close</command> </binding> </button> </group> <hrule/> <group> <layout>hbox</layout> <text> <halign>right</halign> <label>Sound Device:</label> </text> <combo> <name>source-selection</name> <halign>fill</halign> <stretch>true</stretch> <property>sim/gui/dialogs/sound-dialog/source-selection</property> <binding> <command>dialog-apply</command> <object-name>source-selection</object-name> </binding> <binding> <command>dialog-update</command> <object-name>sound-dialog</object-name> </binding> </combo> </group> <hrule/> <group> <layout>table</layout> <halign>center</halign> <text> <row>0</row> <col>0</col> <label>Channel</label> <padding>10</padding> </text> <text> <row>0</row> <col>1</col> <label>Enabled</label> <padding>10</padding> </text> <text> <row>0</row> <col>2</col> <label>Volume</label> <padding>10</padding> </text> <text> <row>0</row> <col>3</col> <label>External</label> <padding>10</padding> </text> <text> <row>1</row> <col>0</col> <label>Master</label> <halign>left</halign> </text> <checkbox> <row>1</row> <col>1</col> <property>/sim/sound/enabled</property> <binding> <command>dialog-apply</command> </binding> </checkbox> <slider> <row>1</row> <col>2</col> <property>/sim/sound/volume</property> <binding> <command>dialog-apply</command> </binding> </slider> <text> <row>2</row> <col>0</col> <label>Effects</label> <halign>left</halign> <enable> <property>/sim/sound/enabled</property> </enable> </text> <checkbox> <row>2</row> <col>1</col> <property>/sim/sound/effects/enabled</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> <slider> <row>2</row> <col>2</col> <property>/sim/sound/effects/volume</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </slider> <text> <row>3</row> <col>0</col> <label>Chatter</label> <halign>left</halign> <enable> <property>/sim/sound/enabled</property> </enable> </text> <checkbox> <row>3</row> <col>1</col> <property>/sim/sound/chatter/enabled</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> <slider> <row>3</row> <col>2</col> <property>/sim/sound/chatter/volume</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </slider> <text> <row>4</row> <col>0</col> <label>Avionics</label> <halign>left</halign> <enable> <property>/sim/sound/enabled</property> </enable> </text> <checkbox> <row>4</row> <col>1</col> <property>/sim/sound/avionics/enabled</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> <slider> <row>4</row> <col>2</col> <property>/sim/sound/avionics/volume</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </slider> <checkbox> <row>4</row> <col>3</col> <property>/sim/sound/avionics/external-view</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> <text> <row>5</row> <col>0</col> <label>ATC</label> <halign>left</halign> <enable> <property>/sim/sound/enabled</property> </enable> </text> <checkbox> <row>5</row> <col>1</col> <property>/sim/sound/atc/enabled</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> <slider> <row>5</row> <col>2</col> <property>/sim/sound/atc/volume</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </slider> <checkbox> <row>5</row> <col>3</col> <property>/sim/sound/atc/external-view</property> <binding> <command>dialog-apply</command> </binding> <enable> <property>/sim/sound/enabled</property> </enable> </checkbox> </group> <hrule/> <group> <layout>hbox</layout> <default-padding>10</default-padding> <button> <legend>Apply</legend> <key>Enter</key> <binding> <command>nasal</command> <script>apply()</script> </binding> <binding> <command>dialog-apply</command> </binding> </button> <button> <legend>Close</legend> <default>true</default> <key>Esc</key> <binding> <command>dialog-close</command> </binding> </button> </group> <nasal> <open><![CDATA[ var dlg_root = cmdarg(); var findElementByName = func(rootN, name) { foreach( var child; rootN.getChildren() ) { var n = child.getNode( "name" ); if( n != nil and n.getValue() == name ) return child; var f = findElementByName(child,name); if( f != nil ) return f; } return nil; }; # Fill the sound device combo box var combo = findElementByName( dlg_root, "source-selection" ); var wsn = props.globals.getNode( "sim/sound/devices" ); if( wsn != nil ) { var devices = wsn.getChildren("device"); forindex (var i; devices ) combo.getChild("value", i, 1).setValue(devices[i].getValue()); } var apply = func { var new = getprop("sim/gui/dialogs/sound-dialog/source-selection"); var current = getprop("sim/sound/device-name"); if (cmp(current, new) != 0) { setprop("sim/sound/devices/name", new); setprop("sim/sound/device-name", new); } } # initialization var default_device = getprop("sim/sound/device-name"); setprop( "sim/gui/dialogs/sound-dialog/source-selection", default_device); ]]></open> </nasal> </PropertyList>