6 <resizable>false</resizable>
11 if ((getprop("/sim/fgcom/selected-server") == nil) or
12 (getprop("/sim/fgcom/selected-server") == "" ) ){
13 var tx = getprop("/sim/fgcom/server");
15 #var servers = cmdarg().getChildren("group")[5].getChildren("combo")[0].getChildren("value");
16 var servers = props.globals.getNode("/sim/gui/dialogs/multiplay/fgcom-servers", 1);
17 foreach (var s; servers.getChildren("value")) {
18 var server = s.getValue();
19 var host = split(" ", server)[0];
21 setprop("/sim/fgcom/selected-server", server);
27 var servers = props.globals.getNode("/sim/gui/dialogs/multiplay/fgcom-servers", 1);
28 var updateServers = func {
29 servers.removeChildren("value");
30 # get the results list from the server
31 var serverlist = props.globals.getNode("/sim/multiplay/server-list", 1);
34 foreach (var s; serverlist.getChildren("fgcom")) {
36 if (!s.getNode("online").getBoolValue()) {
37 continue; # skip offline servers
40 # label is name and location, for the moment
41 # should we include the number of users? or wait until we
42 # have a better UI toolkit?
43 var nm = s.getNode("hostname").getValue() ~ " - " ~ s.getNode("location").getValue();
44 servers.getNode("value[" ~ i ~ "]", 1).setValue(nm);
49 gui.dialog_update("fgcom", "server");
52 var static_serverList = [
53 ['fgcom.flightgear.org', 'Avignon, France']
56 var updateServersFailed = func {
57 debug.dump("Failed to retrieve server list!");
59 servers.removeChildren("value");
61 foreach (var s; static_serverList) {
62 # create the node the PUI combo
63 var nm = s[0] ~ " - " ~ s[1];
64 servers.getNode("value[" ~ i ~ "]", 1).setValue(nm);
69 gui.dialog_update("fgcom", "server");
72 # listen for results arriving
73 setlistener("/sim/multiplay/got-servers", updateServers);
74 setlistener("/sim/multiplay/get-servers-failure", updateServersFailed);
76 fgcommand("xmlhttprequest", props.Node.new({
77 "url" : "http://liveries.flightgear.org/mpstatus/mpservers.xml",
78 "targetnode" : "/sim/multiplay/server-list",
79 "complete" : "/sim/multiplay/got-servers",
80 "failure" : "/sim/multiplay/get-servers-failure"
96 <label>FGCom Settings</label>
104 <pref-width>16</pref-width>
105 <pref-height>16</pref-height>
110 <command>dialog-close</command>
116 <!-- main dialog area -->
118 <layout>table</layout>
119 <halign>left</halign>
124 <label>Enabled:</label>
125 <halign>right</halign>
128 <property>/sim/fgcom/test</property>
137 <halign>left</halign>
142 <property>/sim/fgcom/test</property>
146 <property>/sim/fgcom/enabled</property>
148 <command>dialog-apply</command>
149 <object-name>enabled</object-name>
156 <label>Display messages:</label>
157 <halign>right</halign>
163 <halign>left</halign>
164 <name>showMessages</name>
166 <property>/sim/fgcom/show-messages</property>
168 <command>dialog-apply</command>
169 <object-name>showMessages</object-name>
175 <label> (for debug only)</label>
176 <halign>right</halign>
182 <label>Echo test:</label>
183 <halign>right</halign>
186 <property>/sim/fgcom/enabled</property>
195 <halign>left</halign>
200 <property>/sim/fgcom/enabled</property>
204 <property>/sim/fgcom/test</property>
206 <command>dialog-apply</command>
207 <object-name>test</object-name>
214 <label>Speaker Volume:</label>
215 <halign>right</halign>
220 <halign>left</halign>
221 <name>speaker-vol</name>
226 <property>/sim/fgcom/speaker-level</property>
228 <command>dialog-apply</command>
229 <object-name>speaker-vol</object-name>
236 <format>%.1f</format>
238 <property>/sim/fgcom/speaker-level</property>
244 <label>Silence threshold:</label>
245 <halign>right</halign>
250 <halign>left</halign>
251 <name>silence-thd</name>
256 <property>/sim/fgcom/silence-threshold</property>
258 <command>dialog-apply</command>
259 <object-name>silence-thd</object-name>
266 <format>%.1f</format>
268 <property>/sim/fgcom/silence-threshold</property>
274 <!-- registration (keep it for the day we need it)
276 <layout>hbox</layout>
282 <label>Registration</label>
291 <layout>table</layout>
292 <halign>left</halign>
297 <halign>right</halign>
298 <label>Enabled:</label>
301 <property>/sim/fgcom/enabled</property>
310 <halign>left</halign>
311 <name>reg-enabled</name>
313 <property>/sim/fgcom/register/enabled</property>
316 <property>/sim/fgcom/enabled</property>
321 <command>dialog-apply</command>
322 <object-name>reg-enabled</object-name>
329 <halign>right</halign>
330 <label>Username:</label>
333 <property>/sim/fgcom/enabled</property>
339 <name>username</name>
343 <halign>left</halign>
344 <pref-width>125</pref-width>
345 <editable>true</editable>
346 <property>/sim/fgcom/register/username</property>
349 <property>/sim/fgcom/enabled</property>
354 <command>dialog-apply</command>
355 <object-name>username</object-name>
362 <halign>right</halign>
363 <label>Password:</label>
366 <property>/sim/fgcom/enabled</property>
372 <name>password</name>
376 <halign>left</halign>
377 <pref-width>125</pref-width>
378 <editable>true</editable>
379 <property>/sim/fgcom/register/password</property>
382 <property>/sim/fgcom/enabled</property>
387 <command>dialog-apply</command>
388 <object-name>password</object-name>
397 <layout>hbox</layout>
403 <label>Server</label>
412 <layout>table</layout>
413 <halign>left</halign>
422 <pref-width>275</pref-width>
423 <editable>false</editable>
424 <property>/sim/fgcom/selected-server</property>
425 <properties>/sim/gui/dialogs/multiplay/fgcom-servers</properties>
429 <property>/sim/fgcom/enabled</property>
433 <property>/sim/fgcom/test</property>
439 <command>dialog-apply</command>
440 <object-name>server</object-name>
443 <command>nasal</command>
446 setprop("/sim/fgcom/enabled", 0);
448 var server = getprop("/sim/fgcom/selected-server");
449 server = split(" ", server)[0];
450 setprop("/sim/fgcom/server", server);
452 setprop("/sim/fgcom/enabled", 1);
457 <command>dialog-apply</command>
458 <object-name>test</object-name>
468 <layout>hbox</layout>
469 <default-padding>10</default-padding>
471 <stretch>true</stretch>
475 <legend>Close</legend>
476 <default>true</default>
479 <command>dialog-close</command>
484 <stretch>true</stretch>