]> git.mxchange.org Git - flightgear.git/blob - src/Cockpit/radiostack.hxx
8cddfddf801e29ecf15484eca8497c12c156c5af
[flightgear.git] / src / Cockpit / radiostack.hxx
1 // radiostack.hxx -- class to manage an instance of the radio stack
2 //
3 // Written by Curtis Olson, started April 2000.
4 //
5 // Copyright (C) 2000  Curtis L. Olson - curt@flightgear.org
6 //
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License as
9 // published by the Free Software Foundation; either version 2 of the
10 // License, or (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 // General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 //
21 // $Id$
22
23
24 #ifndef _FG_RADIOSTACK_HXX
25 #define _FG_RADIOSTACK_HXX
26
27
28 #include <simgear/compiler.h>
29
30
31 class FGRadioStack {
32
33     bool need_update;
34
35     bool nav1_inrange;
36     bool nav1_loc;
37     double nav1_freq;
38     double nav1_radial;
39     double nav1_lon;
40     double nav1_lat;
41     double nav1_elev;
42     double nav1_dist;
43     double nav1_heading;
44
45     bool nav2_inrange;
46     double nav2_freq;
47     double nav2_radial;
48     double nav2_lon;
49     double nav2_lat;
50     double nav2_elev;
51     double nav2_dist;
52     double nav2_heading;
53
54     bool adf_inrange;
55     double adf_freq;
56     double adf_lon;
57     double adf_lat;
58     double adf_elev;
59     double adf_heading;
60
61 public:
62
63     FGRadioStack();
64     ~FGRadioStack();
65
66     // Update nav/adf radios based on current postition
67     void update( double lon, double lat, double elev );
68
69     inline void set_nav1_freq( double freq ) {
70         nav1_freq = freq; need_update = true;
71     }
72     inline void set_nav1_radial( double radial ) {
73         nav1_radial = radial; need_update = true;
74     }
75
76     inline void set_nav2_freq( double freq ) {
77         nav2_freq = freq; need_update = true;
78     }
79
80     inline void set_nav2_radial( double radial ) {
81         nav2_radial = radial; need_update = true;
82     }
83
84     inline void set_adf_freq( double freq ) {
85         adf_freq = freq; need_update = true;
86     }
87
88     inline bool get_nav1_inrange() const { return nav1_inrange; }
89     inline bool get_nav1_loc() const { return nav1_loc; }
90     inline double get_nav1_radial() const { return nav1_radial; }
91     inline double get_nav1_lon() const { return nav1_lon; }
92     inline double get_nav1_lat() const { return nav1_lat; }
93     inline double get_nav1_elev() const { return nav1_elev; }
94     inline double get_nav1_dist() const { return nav1_dist; }
95     inline double get_nav1_heading() const { return nav1_heading; }
96
97     inline bool get_nav2_inrange() const { return nav2_inrange; }
98     inline double get_nav2_radial() const { return nav2_radial; }
99     inline double get_nav2_lon() const { return nav2_lon; }
100     inline double get_nav2_lat() const { return nav2_lat; }
101     inline double get_nav2_elev() const { return nav2_elev; }
102     inline double get_nav2_dist() const { return nav2_dist; }
103     inline double get_nav2_heading() const { return nav2_heading; }
104
105     inline bool get_adf_inrange() const { return adf_inrange; }
106     inline double get_adf_lon() const { return adf_lon; }
107     inline double get_adf_lat() const { return adf_lat; }
108     inline double get_adf_heading() const { return adf_heading; }
109 };
110
111
112 extern FGRadioStack *current_radiostack;
113
114
115 #endif // _FG_RADIOSTACK_HXX