]> git.mxchange.org Git - flightgear.git/blobdiff - src/Instrumentation/transponder.hxx
Support for multiple data dirs.
[flightgear.git] / src / Instrumentation / transponder.hxx
index 728250f8b8c1943c1001a915ecb94a2dc13942b6..5ca5204c0e55671a4a42b469eb22ec7317136380 100644 (file)
@@ -29,7 +29,7 @@
 #include <Main/fg_props.hxx>
 
 #include <simgear/structure/subsystem_mgr.hxx>
-
+#include <simgear/props/tiedpropertylist.hxx>
 
 class Transponder : public SGSubsystem, public SGPropertyChangeListener
 {
@@ -39,7 +39,9 @@ public:
 
     virtual void init ();
     virtual void update (double dt);
-
+    virtual void bind();
+    virtual void unbind();
+    
 private:
     enum Mode
     {
@@ -52,11 +54,21 @@ private:
     {
         KNOB_OFF = 0,
         KNOB_STANDBY,
+        KNOB_TEST,
+        KNOB_GROUND,
         KNOB_ON,
-        KNOB_ALT,
-        KNOB_TEST
+        KNOB_ALT
     };
     
+    // annunciators, for KT-70 compatability only
+    // these should be replaced with conditionals in the instrument
+    bool getFLAnnunciator() const;
+    bool getAltAnnunciator() const;
+    bool getGroundAnnuciator() const;
+    bool getOnAnnunciator() const;
+    bool getStandbyAnnunciator() const;
+    bool getReplyAnnunciator() const;
+    
     // Inputs
     SGPropertyNode_ptr _pressureAltitude_node;
     SGPropertyNode_ptr _busPower_node;
@@ -67,10 +79,12 @@ private:
     SGPropertyNode_ptr _idCode_node;
     SGPropertyNode_ptr _digit_node[4];
     
+    simgear::TiedPropertyList _tiedProperties;
     
     SGPropertyNode_ptr _identBtn_node;
     bool _identMode;
-
+    bool _kt70Compat;
+    
     // Outputs
     SGPropertyNode_ptr _altitude_node;
     SGPropertyNode_ptr _altitudeValid_node;
@@ -81,6 +95,7 @@ private:
     std::string _name;
     int _num;
     Mode _mode;
+    KnobPosition _knob;
     double _identTime;
     int _listener_active;
     double _requiredBusVolts;