diff --git a/Aircraft/Instruments-3d/FG1000/GMA1347/GMA1347.xml b/Aircraft/Instruments-3d/FG1000/GMA1347/GMA1347.xml
index a677a0af3..d85cefa70 100644
--- a/Aircraft/Instruments-3d/FG1000/GMA1347/GMA1347.xml
+++ b/Aircraft/Instruments-3d/FG1000/GMA1347/GMA1347.xml
@@ -100,8 +100,10 @@
false
- property-toggle
- controls/switches/mixer/com1mic
+ FG1000HardKeyPushed
+ 10
+ COM1MIC
+ 0
@@ -110,7 +112,7 @@
material
led.COM1MIC
- /controls/switches/mixer/com1mic
+ instrumentation/audio-panel/com-mic[0]
1
1
1
@@ -124,18 +126,20 @@
false
-
- property-toggle
- controls/switches/mixer/com1
-
+
+ FG1000HardKeyPushed
+ 10
+ COM1
+ 0
+
material
led.COM1
- /controls/switches/mixer/com1
+ instrumentation/audio-panel/com[0]
1
1
1
@@ -149,8 +153,10 @@
false
- property-toggle
- controls/switches/mixer/com2mic
+ FG1000HardKeyPushed
+ 10
+ COM2MIC
+ 0
@@ -162,7 +168,7 @@
1
1
1
- /controls/switches/mixer/com2mic
+ instrumentation/audio-panel/com-mic[1]
@@ -173,8 +179,10 @@
false
- property-toggle
- controls/switches/mixer/com2
+ FG1000HardKeyPushed
+ 10
+ COM2
+ 0
@@ -186,7 +194,7 @@
1
1
1
- /controls/switches/mixer/com2
+ instrumentation/audio-panel/com[1]
@@ -197,8 +205,10 @@
false
- property-toggle
- controls/switches/mixer/com3mic
+ FG1000HardKeyPushed
+ 10
+ COM3MIC
+ 0
@@ -210,7 +220,7 @@
1
1
1
- /controls/switches/mixer/com3mic
+ instrumentation/audio-panel/com-mic[2]
@@ -221,8 +231,10 @@
false
- property-toggle
- controls/switches/mixer/com3
+ FG1000HardKeyPushed
+ 10
+ COM3
+ 0
@@ -234,7 +246,7 @@
1
1
1
- /controls/switches/mixer/com3
+ instrumentation/audio-panel/com[2]
@@ -245,8 +257,10 @@
false
- property-toggle
- controls/switches/mixer/com12
+ FG1000HardKeyPushed
+ 10
+ COM12
+ 0
@@ -258,7 +272,7 @@
1
1
1
- /controls/switches/mixer/com12
+ instrumentation/audio-panel/com12
@@ -269,8 +283,10 @@
false
- property-toggle
- controls/switches/mixer/tel
+ FG1000HardKeyPushed
+ 10
+ TEL
+ 0
@@ -282,7 +298,7 @@
1
1
1
- /controls/switches/mixer/tel
+ instrumentation/audio-panel/tel
@@ -293,8 +309,10 @@
false
- property-toggle
- controls/switches/mixer/pa
+ FG1000HardKeyPushed
+ 10
+ PA
+ 0
@@ -306,7 +324,7 @@
1
1
1
- /controls/switches/mixer/pa
+ instrumentation/audio-panel/crew
@@ -317,8 +335,10 @@
false
- property-toggle
- controls/switches/mixer/spkr
+ FG1000HardKeyPushed
+ 10
+ SPKR
+ 0
@@ -330,7 +350,7 @@
1
1
1
- /controls/switches/mixer/spkr
+ instrumentation/audio-panel/spkr
@@ -341,8 +361,10 @@
false
- property-toggle
- controls/switches/mixer/mkrmute
+ FG1000HardKeyPushed
+ 10
+ MKRMUTE
+ 0
@@ -354,7 +376,7 @@
1
1
1
- /controls/switches/mixer/mkrmute
+ instrumentation/audio-panel/mkrmute
@@ -365,8 +387,10 @@
false
- property-toggle
- controls/switches/mixer/hisens
+ FG1000HardKeyPushed
+ 10
+ HISENS
+ 0
@@ -378,7 +402,7 @@
1
1
1
- /controls/switches/mixer/hisens
+ instrumentation/audio-panel/hi
@@ -389,8 +413,10 @@
false
- property-toggle
- controls/switches/mixer/dme
+ FG1000HardKeyPushed
+ 10
+ DME
+ 0
@@ -402,7 +428,7 @@
1
1
1
- /controls/switches/mixer/dme
+ /instrumentation/dme[0]/ident
@@ -413,8 +439,10 @@
false
- property-toggle
- controls/switches/mixer/nav1
+ FG1000HardKeyPushed
+ 10
+ NAV1
+ 0
@@ -426,7 +454,7 @@
1
1
1
- /controls/switches/mixer/nav1
+ /instrumentation/nav[0]/ident
@@ -437,8 +465,10 @@
false
- property-toggle
- controls/switches/mixer/adf
+ FG1000HardKeyPushed
+ 10
+ ADF
+ 0
@@ -450,7 +480,7 @@
1
1
1
- /controls/switches/mixer/adf
+ instrumentation/adf[0]/ident-audible
@@ -461,8 +491,10 @@
false
- property-toggle
- controls/switches/mixer/nav2
+ FG1000HardKeyPushed
+ 10
+ NAV2
+ 0
@@ -474,7 +506,7 @@
1
1
1
- /controls/switches/mixer/nav2
+ instrumentation/nav[1]/ident
@@ -485,8 +517,10 @@
false
- property-toggle
- controls/switches/mixer/aux
+ FG1000HardKeyPushed
+ 10
+ AUX
+ 0
@@ -498,7 +532,7 @@
1
1
1
- /controls/switches/mixer/aux
+ instrumentation/audio-panel/aux
@@ -509,8 +543,10 @@
false
- property-toggle
- controls/switches/mixer/mansq
+ FG1000HardKeyPushed
+ 10
+ MANSQ
+ 0
@@ -522,7 +558,7 @@
1
1
1
- /controls/switches/mixer/mansq
+ instrumentation/audio-panel/mansq
@@ -533,8 +569,10 @@
false
- property-toggle
- controls/switches/mixer/play
+ FG1000HardKeyPushed
+ 10
+ PLAY
+ 0
@@ -546,7 +584,7 @@
1
1
1
- /controls/switches/mixer/play
+ instrumentation/audio-panel/play
@@ -557,8 +595,10 @@
false
- property-toggle
- controls/switches/mixer/pilot
+ FG1000HardKeyPushed
+ 10
+ PILOT
+ 0
@@ -570,7 +610,7 @@
1
1
1
- /controls/switches/mixer/pilot
+ instrumentation/audio-panel/pilot
@@ -581,8 +621,10 @@
false
- property-toggle
- controls/switches/mixer/coplt
+ FG1000HardKeyPushed
+ 10
+ COPLT
+ 0
@@ -594,7 +636,7 @@
1
1
1
- /controls/switches/mixer/coplt
+ instrumentation/audio-panel/copilot
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Constants.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Constants.nas
index 3e93ea50f..32329a548 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/Constants.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Constants.nas
@@ -154,6 +154,29 @@ var FASCIA = {
# Useability helpers to avoid having to use the FMS knobs to spell airport IDs etc.
KEY_INPUT : 47,
STRING_INPUT: 48,
+
+ # GMA 1347 buttons
+ COM1MIC: 49,
+ COM2MIC: 50,
+ COM3MIC: 51,
+ COM12 : 52,
+ PA : 53,
+ MKRMUTE: 54,
+ DME : 55,
+ ADF : 56,
+ AUX : 57,
+ MANSQ : 58,
+ PILOT : 59,
+ COM1 : 60,
+ COM2 : 61,
+ COM3 : 62,
+ TEL : 63,
+ SPKR : 64,
+ HISENS : 65,
+ NAV1 : 66,
+ NAV2 : 67,
+ PLAY : 68,
+ COPLT : 69
};
var SURFACE_TYPES = {
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GFC700Interface.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GFC700Interface.nas
index 887d03312..394df4c95 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GFC700Interface.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GFC700Interface.nas
@@ -84,7 +84,7 @@ handleNoseUpDown : func(value) {
setAPNavSource : func(src) {
setprop("/autopilot/settings/nav-mode-source", src);
# Also need to do something to trigger a NAV change if we're in NAV mode already.
- return emesary.Transmitter.ReceiptStatus_Finished;
+ return emesary.Transmitter.ReceiptStatus_OK;
},
RegisterWithEmesary : func()
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GMA1347Interface.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GMA1347Interface.nas
new file mode 100644
index 000000000..e861ff928
--- /dev/null
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GMA1347Interface.nas
@@ -0,0 +1,189 @@
+# Copyright 2021 Stuart Buchanan
+# This file is part of FlightGear.
+#
+# FlightGear is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# FlightGear is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with FlightGear. If not, see .
+#
+# Emesary interface to interface with the GMA1347 audio panel.
+#
+
+var GMA1347Interface = {
+
+new : func ()
+{
+ var obj = { parents : [ GMA1347Interface ] };
+
+ # Emesary
+ obj._recipient = nil;
+ obj._transmitter = emesary.GlobalTransmitter;
+ obj._registered = 0;
+
+ obj._com1 = globals.props.getNode("/instrumentation/audio-panel/com[0]", 1);
+ obj._com1mic = globals.props.getNode("/instrumentation/audio-panel/com-mic[0]", 1);
+
+ obj._com2 = globals.props.getNode("/instrumentation/audio-panel/com[1]", 1);
+ obj._com2mic = globals.props.getNode("/instrumentation/audio-panel/com-mic[1]", 1);
+
+ # The G1000 separates the selected COM radio (being modified) from the radio being listened to.
+ obj._com_selected = globals.props.getNode("/instrumentation/audio-panel/audio-com-selected", 1);
+ obj._com_selected.setIntValue(obj._com1mic.getBoolValue() ? 1 : 2);
+
+ obj._nav1 = globals.props.getNode("/instrumentation/nav[0]/ident", 1);
+ obj._nav2 = globals.props.getNode("/instrumentation/nav[1]/ident", 1);
+ obj._dme = globals.props.getNode("/instrumentation/dme[0]/ident", 1);
+ obj._hisense = globals.props.getNode("/instrumentation/audio-panel/hi", 1);
+ obj._mkrmute = globals.props.getNode("/instrumentation/audio-panel/mkr", 1);
+ obj._spkr = globals.props.getNode("/instrumentation/audio-panel/spkr", 1);
+
+ return obj;
+},
+
+
+handleCOM1MIC : func(value) {
+ me._com_selected.setIntValue(1);
+ me._com1.setBoolValue(1);
+ me._com1mic.setBoolValue(1);
+ me._com2.setBoolValue(0);
+ me._com2mic.setBoolValue(0);
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleCOM2MIC : func(value) {
+ me._com_selected.setIntValue(2);
+ me._com1.setBoolValue(0);
+ me._com1mic.setBoolValue(0);
+ me._com2.setBoolValue(1);
+ me._com2mic.setBoolValue(1);
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleCOM3MIC : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+handleCOM12 : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+handlePA : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+
+handleMKRMUTE : func(value) {
+ me._mkrmute.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleDME : func(value) {
+ me._dme.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleADF : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not implemented - optional ADF is not implemented in FG1000
+handleAUX : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+handleMANSQ : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not implemented
+handlePILOT : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not implemented
+
+handleCOM1 : func(value) {
+ me._com1.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleCOM2 : func(value) {
+ me._com2.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleCOM3 : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+handleTEL : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not used on Cessna Nav III
+handleSPKR : func(value) {
+ me._spkr.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleHISENS : func(value) {
+ me._hisense.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleNAV1 : func(value) {
+ me._nav1.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handleNAV2 : func(value) {
+ me._nav2.toggleBoolValue();
+ return emesary.Transmitter.ReceiptStatus_Finished;
+},
+
+handlePLAY : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not implemented
+handleCOPLT : func(value) { return emesary.Transmitter.ReceiptStatus_NotProcessed; }, # Not implemented
+
+RegisterWithEmesary : func()
+{
+ if (me._recipient == nil){
+ me._recipient = emesary.Recipient.new("GMA1347Interface");
+ var controller = me;
+
+ # Note that unlike the various keys, this data isn't specific to a particular
+ # Device - it's shared by all. Hence we don't check for the notificaiton
+ # Device_Id.
+ me._recipient.Receive = func(notification)
+ {
+
+ if (notification.NotificationType == notifications.PFDEventNotification.DefaultType and
+ notification.Event_Id == notifications.PFDEventNotification.HardKeyPushed and
+ notification.EventParameter != nil)
+ {
+ var id = notification.EventParameter.Id;
+ var value = notification.EventParameter.Value;
+
+ if (id == fg1000.FASCIA.COM1MIC ) return controller.handleCOM1MIC(value);
+ if (id == fg1000.FASCIA.COM1MIC ) return controller.handleCOM1MIC(value);
+ if (id == fg1000.FASCIA.COM2MIC ) return controller.handleCOM2MIC(value);
+ if (id == fg1000.FASCIA.COM3MIC ) return controller.handleCOM3MIC(value);
+ if (id == fg1000.FASCIA.COM12 ) return controller.handleCOM12(value);
+ if (id == fg1000.FASCIA.PA ) return controller.handlePA(value);
+ if (id == fg1000.FASCIA.MKRMUTE ) return controller.handleMKRMUTE(value);
+ if (id == fg1000.FASCIA.DME ) return controller.handleDME(value);
+ if (id == fg1000.FASCIA.ADF ) return controller.handleADF(value);
+ if (id == fg1000.FASCIA.AUX ) return controller.handleAUX(value);
+ if (id == fg1000.FASCIA.MANSQ ) return controller.handleMANSQ(value);
+ if (id == fg1000.FASCIA.PILOT ) return controller.handlePILOT(value);
+ if (id == fg1000.FASCIA.COM1 ) return controller.handleCOM1(value);
+ if (id == fg1000.FASCIA.COM2 ) return controller.handleCOM2(value);
+ if (id == fg1000.FASCIA.COM3 ) return controller.handleCOM3(value);
+ if (id == fg1000.FASCIA.TEL ) return controller.handleTEL(value);
+ if (id == fg1000.FASCIA.SPKR ) return controller.handleSPKR(value);
+ if (id == fg1000.FASCIA.HISENS ) return controller.handleHISENS(value);
+ if (id == fg1000.FASCIA.NAV1 ) return controller.handleNAV1(value);
+ if (id == fg1000.FASCIA.NAV2 ) return controller.handleNAV2(value);
+ if (id == fg1000.FASCIA.PLAY ) return controller.handlePLAY(value);
+ if (id == fg1000.FASCIA.COPLT ) return controller.handleCOPLT(value);
+ }
+
+ return emesary.Transmitter.ReceiptStatus_NotProcessed;
+ };
+ }
+
+ me._transmitter.Register(me._recipient);
+ me._registered = 1;
+},
+
+DeRegisterWithEmesary : func()
+{
+ # remove registration from transmitter; but keep the recipient once it is created.
+ if (me._registered == 1) me._transmitter.DeRegister(me._recipient);
+ me._registered = 0;
+},
+
+start : func() {
+ me.RegisterWithEmesary();
+},
+stop : func() {
+ me.DeRegisterWithEmesary();
+},
+
+};
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericInterfaceController.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericInterfaceController.nas
index d71dd1574..5a07e06eb 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericInterfaceController.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericInterfaceController.nas
@@ -35,7 +35,9 @@ var GenericInterfaceController = {
{ id:"GenericFuelInterface", path: nasal_dir ~ 'Interfaces/GenericFuelInterface.nas' },
{ id:"GenericFuelPublisher", path: nasal_dir ~ 'Interfaces/GenericFuelPublisher.nas' },
{ id:"GFC700Interface", path: nasal_dir ~ 'Interfaces/GFC700Interface.nas' },
- { id:"GFC700Publisher", path: nasal_dir ~ 'Interfaces/GFC700Publisher.nas' }
+ { id:"GFC700Publisher", path: nasal_dir ~ 'Interfaces/GFC700Publisher.nas' },
+ { id:"GMA1347Interface", path: nasal_dir ~ 'Interfaces/GMA1347Interface.nas' },
+
],
# Factory method
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericNavComPublisher.nas b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericNavComPublisher.nas
index 31f3b5065..80c0f3dcc 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericNavComPublisher.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/Interfaces/GenericNavComPublisher.nas
@@ -40,17 +40,18 @@ var GenericNavComPublisher =
obj._periodicPublisher = PeriodicPropertyPublisher.new(notifications.PFDEventNotification.NavComData, period);
# Hack to handle cases where there is no selected Com or NAV frequency or volume
+ if (getprop("/instrumentation/audio-panel/audio-com-selected") == nil) setprop("/instrumentation/audio-panel/audio-com-selected", 1);
if (getprop("/instrumentation/com-selected") == nil) setprop("/instrumentation/com-selected", 1);
if (getprop("/instrumentation/nav-selected") == nil) setprop("/instrumentation/nav-selected", 1);
- if (getprop("/instrumentation/nav/volume") == nil) setprop("/instrumentation/nav/volume", 0.5);
- if (getprop("/instrumentation/comm/volume") == nil) setprop("/instrumentation/comm/volume", 0.5);
+ if (getprop("/instrumentation/nav/volume-selected") == nil) setprop("/instrumentation/nav/volume-selected", 0.5);
+ if (getprop("/instrumentation/comm/volume-selected") == nil) setprop("/instrumentation/comm/volume-selected", 0.5);
obj._triggeredPublisher.addPropMap("Comm1SelectedFreq", "/instrumentation/comm/frequencies/selected-mhz");
obj._triggeredPublisher.addPropMap("Comm1StandbyFreq", "/instrumentation/comm/frequencies/standby-mhz");
obj._triggeredPublisher.addPropMap("Comm1AirportID", "/instrumentation/comm/airport-id");
obj._triggeredPublisher.addPropMap("Comm1StationName", "/instrumentation/comm/station-name");
obj._triggeredPublisher.addPropMap("Comm1StationType", "/instrumentation/comm/station-type");
- obj._triggeredPublisher.addPropMap("Comm1Volume", "/instrumentation/comm/volume");
+ obj._triggeredPublisher.addPropMap("Comm1Volume", "/instrumentation/comm/volume-selected");
obj._triggeredPublisher.addPropMap("Comm1Serviceable", "/instrumentation/comm/serviceable");
obj._triggeredPublisher.addPropMap("Comm2SelectedFreq", "/instrumentation/comm[1]/frequencies/selected-mhz");
@@ -61,6 +62,7 @@ var GenericNavComPublisher =
obj._triggeredPublisher.addPropMap("Comm2Serviceable", "/instrumentation/comm[1]/serviceable");
obj._triggeredPublisher.addPropMap("CommSelected", "/instrumentation/com-selected");
+ obj._triggeredPublisher.addPropMap("CommAudioSelected", "/instrumentation/audio-panel/audio-com-selected");
obj._triggeredPublisher.addPropMap("Nav1SelectedFreq", "/instrumentation/nav/frequencies/selected-mhz");
obj._triggeredPublisher.addPropMap("Nav1StandbyFreq", "/instrumentation/nav/frequencies/standby-mhz");
@@ -77,7 +79,7 @@ var GenericNavComPublisher =
obj._periodicPublisher.addPropMap("Nav1GSInRange", "/instrumentation/nav/gs-in-range");
obj._periodicPublisher.addPropMap("Nav1From", "/instrumentation/nav/from-flag");
- obj._triggeredPublisher.addPropMap("Nav1Volume", "/instrumentation/nav/volume");
+ obj._triggeredPublisher.addPropMap("Nav1Volume", "/instrumentation/nav/volume-selected");
obj._triggeredPublisher.addPropMap("Nav1AudioID", "/instrumentation/nav/audio-btn");
obj._triggeredPublisher.addPropMap("Nav1Serviceable", "/instrumentation/nav/operable");
diff --git a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/Surround/Surround.nas b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/Surround/Surround.nas
index e91f885eb..351606a8c 100644
--- a/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/Surround/Surround.nas
+++ b/Aircraft/Instruments-3d/FG1000/Nasal/MFDPages/Surround/Surround.nas
@@ -95,6 +95,16 @@ var FD_STATUS_STYLE = {
NORMAL_TEXT_COLOR : "#00ff00",
};
+# Style element for use by the NAV and COM frequencies. This is normally white text
+# on a black background, but when the COM is enabled by the GMA1347, or the NAV is being
+# used by the CDI, then it is green on a black background.
+var NAVCOM_FREQ_STYLE = {
+ CURSOR_BLINK_PERIOD : 0.5,
+ HIGHLIGHT_COLOR : "#000000",
+ HIGHLIGHT_TEXT_COLOR : "#00ff00",
+ NORMAL_TEXT_COLOR : "#ffffff",
+};
+
var Surround =
{
new : func (mfd, myCanvas, device, svg, pfd=0)
@@ -237,6 +247,11 @@ var Surround =
}
}
+ if (name == "CommAudioSelected") {
+ me.getTextElement("Comm1SelectedFreq").setColor(val == 1 ? NAVCOM_FREQ_STYLE.HIGHLIGHT_TEXT_COLOR : NAVCOM_FREQ_STYLE.NORMAL_TEXT_COLOR);
+ me.getTextElement("Comm2SelectedFreq").setColor(val == 2 ? NAVCOM_FREQ_STYLE.HIGHLIGHT_TEXT_COLOR : NAVCOM_FREQ_STYLE.NORMAL_TEXT_COLOR);
+ }
+
if (name == "Nav1SelectedFreq") me.setTextElement("Nav1SelectedFreq", sprintf("%0.03f", val));
if (name == "Nav1StandbyFreq") me.setTextElement("Nav1StandbyFreq", sprintf("%0.03f", val));
if (name == "Nav1Serviceable") {
@@ -471,6 +486,13 @@ var Surround =
}
}
}
+
+ if (data["AutopilotNAVSource"] != nil) {
+ # Set highlighting of the NAV radios based on the NAV Source.
+ var src = data["AutopilotNAVSource"];
+ me.getTextElement("Nav1SelectedFreq").setColor(src == "NAV1" ? NAVCOM_FREQ_STYLE.HIGHLIGHT_TEXT_COLOR : NAVCOM_FREQ_STYLE.NORMAL_TEXT_COLOR);
+ me.getTextElement("Nav2SelectedFreq").setColor(src == "NAV2" ? NAVCOM_FREQ_STYLE.HIGHLIGHT_TEXT_COLOR : NAVCOM_FREQ_STYLE.NORMAL_TEXT_COLOR);
+ }
},
getCurrentPage : func()