1
0
Fork 0

fix another crash on exit by finally converting the rest of unguarded

SGPropertyNode to guarded ones. This is also done for JSBSim/JSBSim.hxx,
for which JSB had given explicit permission a while ago. I postponed that
back then, but now is the time.
This commit is contained in:
mfranz 2006-06-11 10:21:10 +00:00
parent c4463b311c
commit e48967cb1d
38 changed files with 401 additions and 400 deletions

View file

@ -113,17 +113,17 @@ private:
int mNumAiTypeModels[FGAIBase::MAX_OBJECTS];
int mNumAiModels;
SGPropertyNode* root;
SGPropertyNode* wind_from_down_node;
SGPropertyNode* user_latitude_node;
SGPropertyNode* user_longitude_node;
SGPropertyNode* user_altitude_node;
SGPropertyNode* user_heading_node;
SGPropertyNode* user_pitch_node;
SGPropertyNode* user_yaw_node;
SGPropertyNode* user_speed_node;
SGPropertyNode* wind_from_east_node ;
SGPropertyNode* wind_from_north_node ;
SGPropertyNode_ptr root;
SGPropertyNode_ptr wind_from_down_node;
SGPropertyNode_ptr user_latitude_node;
SGPropertyNode_ptr user_longitude_node;
SGPropertyNode_ptr user_altitude_node;
SGPropertyNode_ptr user_heading_node;
SGPropertyNode_ptr user_pitch_node;
SGPropertyNode_ptr user_yaw_node;
SGPropertyNode_ptr user_speed_node;
SGPropertyNode_ptr wind_from_east_node ;
SGPropertyNode_ptr wind_from_north_node ;
string scenario_filename;

View file

@ -89,7 +89,7 @@ private:
long mLastTimestamp;
// Propertiies for tankers
SGPropertyNode* refuel_node;
SGPropertyNode_ptr refuel_node;
bool isTanker;
bool contact; // set if this tanker is within fuelling range
};

View file

@ -61,16 +61,16 @@ private:
double delay; // average time (sec) between lightning flashes
int subflashes; // number of subflashes per flash
double random_delay; // delay +/- random number
double timer;
SGPropertyNode* flash_node;
double timer;
SGPropertyNode_ptr flash_node;
int flashed; // number of subflashes already done this flash
bool flashing; // true if currently flashing;
int subflash_array[8];
int subflash_index;
// turbulence stuff
SGPropertyNode* turb_mag_node;
SGPropertyNode* turb_rate_node;
SGPropertyNode_ptr turb_mag_node;
SGPropertyNode_ptr turb_rate_node;
};

View file

@ -27,9 +27,9 @@ public:
typedef struct {
SGPropertyNode* trigger;
SGPropertyNode* prop;
SGPropertyNode* contents_node;
SGPropertyNode_ptr trigger;
SGPropertyNode_ptr prop;
SGPropertyNode_ptr contents_node;
string name;
string model;
@ -116,23 +116,23 @@ private:
double contrail_altitude;
SGPropertyNode* _serviceable_node;
SGPropertyNode* _user_lat_node;
SGPropertyNode* _user_lon_node;
SGPropertyNode* _user_heading_node;
SGPropertyNode* _user_alt_node;
SGPropertyNode* _user_pitch_node;
SGPropertyNode* _user_roll_node;
SGPropertyNode* _user_yaw_node;
SGPropertyNode* _user_alpha_node;
SGPropertyNode* _user_speed_node;
SGPropertyNode* _user_wind_from_east_node;
SGPropertyNode* _user_wind_from_north_node;
SGPropertyNode* _user_speed_down_fps_node;
SGPropertyNode* _user_speed_east_fps_node;
SGPropertyNode* _user_speed_north_fps_node;
SGPropertyNode* _contrail_altitude_node;
SGPropertyNode* _contrail_trigger;
SGPropertyNode_ptr _serviceable_node;
SGPropertyNode_ptr _user_lat_node;
SGPropertyNode_ptr _user_lon_node;
SGPropertyNode_ptr _user_heading_node;
SGPropertyNode_ptr _user_alt_node;
SGPropertyNode_ptr _user_pitch_node;
SGPropertyNode_ptr _user_roll_node;
SGPropertyNode_ptr _user_yaw_node;
SGPropertyNode_ptr _user_alpha_node;
SGPropertyNode_ptr _user_speed_node;
SGPropertyNode_ptr _user_wind_from_east_node;
SGPropertyNode_ptr _user_wind_from_north_node;
SGPropertyNode_ptr _user_speed_down_fps_node;
SGPropertyNode_ptr _user_speed_east_fps_node;
SGPropertyNode_ptr _user_speed_north_fps_node;
SGPropertyNode_ptr _contrail_altitude_node;
SGPropertyNode_ptr _contrail_trigger;
FGAIManager* ai;
IC_struct IC;

View file

@ -83,8 +83,8 @@ private:
double stall_speed_landing_config;
// environment - some of this might get moved into FGAIPlane
SGPropertyNode* wind_from_hdg; //degrees
SGPropertyNode* wind_speed_knots; //knots
SGPropertyNode_ptr wind_from_hdg; //degrees
SGPropertyNode_ptr wind_speed_knots; //knots
atc_type changeFreqType; // the service we need to change to

View file

@ -160,8 +160,8 @@ private:
bool inAir; // True when off the ground
// environment - some of this might get moved into FGAIPlane
SGPropertyNode* wind_from_hdg; //degrees
SGPropertyNode* wind_speed_knots; //knots
SGPropertyNode_ptr wind_from_hdg; //degrees
SGPropertyNode_ptr wind_speed_knots; //knots
// Pattern details that (may) change
int numInPattern; // Number of planes in the pattern (this might get more complicated if high performance GA aircraft fly a higher pattern eventually)

View file

@ -87,9 +87,9 @@ private:
double lat;
double elev;
// Pointers to current users position
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *elev_node;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr elev_node;
public:

View file

@ -110,12 +110,12 @@ private:
double comm_freq[2];
// Pointers to users current communication frequencies.
SGPropertyNode* comm_node[2];
SGPropertyNode_ptr comm_node[2];
// Pointers to current users position
SGPropertyNode* lon_node;
SGPropertyNode* lat_node;
SGPropertyNode* elev_node;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr elev_node;
// Position of the ATC that the comm radios are tuned to in order to decide
// whether transmission will be received.

View file

@ -122,20 +122,20 @@ class FGApproach : public FGATC {
string transmission;
bool first;
SGPropertyNode *comm1_node;
SGPropertyNode *comm2_node;
SGPropertyNode_ptr comm1_node;
SGPropertyNode_ptr comm2_node;
SGPropertyNode *atcmenu_node;
SGPropertyNode *atcopt0_node;
SGPropertyNode *atcopt1_node;
SGPropertyNode *atcopt2_node;
SGPropertyNode *atcopt3_node;
SGPropertyNode *atcopt4_node;
SGPropertyNode *atcopt5_node;
SGPropertyNode *atcopt6_node;
SGPropertyNode *atcopt7_node;
SGPropertyNode *atcopt8_node;
SGPropertyNode *atcopt9_node;
SGPropertyNode_ptr atcmenu_node;
SGPropertyNode_ptr atcopt0_node;
SGPropertyNode_ptr atcopt1_node;
SGPropertyNode_ptr atcopt2_node;
SGPropertyNode_ptr atcopt3_node;
SGPropertyNode_ptr atcopt4_node;
SGPropertyNode_ptr atcopt5_node;
SGPropertyNode_ptr atcopt6_node;
SGPropertyNode_ptr atcopt7_node;
SGPropertyNode_ptr atcopt8_node;
SGPropertyNode_ptr atcopt9_node;
// for failure modeling
string trans_ident; // transmitted ident
@ -215,12 +215,12 @@ private:
const double &h3);
// Pointers to current users position
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *elev_node;
SGPropertyNode *hdg_node;
SGPropertyNode *speed_node;
SGPropertyNode *etime_node;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr elev_node;
SGPropertyNode_ptr hdg_node;
SGPropertyNode_ptr speed_node;
SGPropertyNode_ptr etime_node;
//Update the transmission string
void UpdateTransmission(void);

View file

@ -66,9 +66,9 @@ class FGATIS : public FGATC {
// or the whereabouts of the aircraft it is transmitting to. However, to ensure consistancy of
// operation with the other ATC classes the ATIS class must calculate range to the aircraft in order
// to decide whether to render the transmission - hence the users plane details must be stored.
//SGPropertyNode *airplane_lon_node;
//SGPropertyNode *airplane_lat_node;
//SGPropertyNode *airplane_elev_node;
//SGPropertyNode_ptr airplane_lon_node;
//SGPropertyNode_ptr airplane_lat_node;
//SGPropertyNode_ptr airplane_elev_node;
public:

View file

@ -247,8 +247,8 @@ private:
bool departed; // set true when the above needs incrementing with time, false when it doesn't.
// environment - need to make sure we're getting the surface winds and not winds aloft.
SGPropertyNode* wind_from_hdg; //degrees
SGPropertyNode* wind_speed_knots; //knots
SGPropertyNode_ptr wind_from_hdg; //degrees
SGPropertyNode_ptr wind_speed_knots; //knots
double aptElev; // Airport elevation
string activeRwy; // Active runway number - For now we'll disregard multiple / alternate runway operation.
@ -334,10 +334,10 @@ private:
bool tower_failed; // tower failed?
// Pointers to current users position and orientation
SGPropertyNode* user_lon_node;
SGPropertyNode* user_lat_node;
SGPropertyNode* user_elev_node;
SGPropertyNode* user_hdg_node;
SGPropertyNode_ptr user_lon_node;
SGPropertyNode_ptr user_lat_node;
SGPropertyNode_ptr user_elev_node;
SGPropertyNode_ptr user_hdg_node;
// Details of the general traffic flow etc in the circuit
double crosswind_leg_pos; // Distance from threshold crosswind leg is being turned to in meters (actual operation - *not* ideal circuit)

View file

@ -258,7 +258,7 @@ private:
int lateral_mode;
SGPropertyNode * auto_coordination;
SGPropertyNode_ptr auto_coordination;
public:

View file

@ -56,14 +56,14 @@ protected:
string name;
SGPropertyNode *enable_prop;
SGPropertyNode_ptr enable_prop;
string enable_value;
bool enabled;
SGPropertyNode *input_prop;
SGPropertyNode *r_n_prop;
SGPropertyNode_ptr input_prop;
SGPropertyNode_ptr r_n_prop;
double r_n_value;
vector <SGPropertyNode *> output_list;
vector <SGPropertyNode_ptr> output_list;
public:
@ -152,7 +152,7 @@ private:
// proportional component data
bool proportional;
double Kp;
SGPropertyNode *offset_prop;
SGPropertyNode_ptr offset_prop;
double offset_value;
// integral component data
@ -274,7 +274,7 @@ protected:
private:
bool serviceable;
SGPropertyNode *config_props;
SGPropertyNode_ptr config_props;
comp_list components;
};

View file

@ -105,8 +105,8 @@ public:
private:
SGPropertyNode * _base_wind_speed_node;
SGPropertyNode * _gust_wind_speed_node;
SGPropertyNode_ptr _base_wind_speed_node;
SGPropertyNode_ptr _gust_wind_speed_node;
double _current_wind_speed_kt;
double _delta_wind_speed_kt;
@ -179,10 +179,10 @@ private:
float search_elapsed;
float fetch_elapsed;
const FGAirport *last_apt;
SGPropertyNode *proxy_host;
SGPropertyNode *proxy_port;
SGPropertyNode *proxy_auth;
SGPropertyNode *metar_max_age;
SGPropertyNode_ptr proxy_host;
SGPropertyNode_ptr proxy_port;
SGPropertyNode_ptr proxy_auth;
SGPropertyNode_ptr metar_max_age;
FGMetarResult fetch_data( const string &icao );
virtual void update_metar_properties( const FGMetar *m );

View file

@ -52,7 +52,7 @@ private:
double last_cg_offset;
vector <string> property_names;
vector <SGPropertyNode *> nodes;
vector <SGPropertyNode_ptr> nodes;
// Protocol specific init routines
void init_binary();

View file

@ -226,40 +226,40 @@ private:
double trim_elev;
double trim_throttle;
SGPropertyNode *startup_trim;
SGPropertyNode *trimmed;
SGPropertyNode *pitch_trim;
SGPropertyNode *throttle_trim;
SGPropertyNode *aileron_trim;
SGPropertyNode *rudder_trim;
SGPropertyNode *stall_warning;
SGPropertyNode_ptr startup_trim;
SGPropertyNode_ptr trimmed;
SGPropertyNode_ptr pitch_trim;
SGPropertyNode_ptr throttle_trim;
SGPropertyNode_ptr aileron_trim;
SGPropertyNode_ptr rudder_trim;
SGPropertyNode_ptr stall_warning;
/* SGPropertyNode *elevator_pos_deg;
SGPropertyNode *left_aileron_pos_deg;
SGPropertyNode *right_aileron_pos_deg;
SGPropertyNode *rudder_pos_deg;
SGPropertyNode *flap_pos_deg; */
/* SGPropertyNode_ptr elevator_pos_deg;
SGPropertyNode_ptr left_aileron_pos_deg;
SGPropertyNode_ptr right_aileron_pos_deg;
SGPropertyNode_ptr rudder_pos_deg;
SGPropertyNode_ptr flap_pos_deg; */
SGPropertyNode *elevator_pos_pct;
SGPropertyNode *left_aileron_pos_pct;
SGPropertyNode *right_aileron_pos_pct;
SGPropertyNode *rudder_pos_pct;
SGPropertyNode *flap_pos_pct;
SGPropertyNode *speedbrake_pos_pct;
SGPropertyNode *spoilers_pos_pct;
SGPropertyNode_ptr elevator_pos_pct;
SGPropertyNode_ptr left_aileron_pos_pct;
SGPropertyNode_ptr right_aileron_pos_pct;
SGPropertyNode_ptr rudder_pos_pct;
SGPropertyNode_ptr flap_pos_pct;
SGPropertyNode_ptr speedbrake_pos_pct;
SGPropertyNode_ptr spoilers_pos_pct;
SGPropertyNode *gear_pos_pct;
SGPropertyNode_ptr gear_pos_pct;
SGPropertyNode *temperature;
SGPropertyNode *pressure;
SGPropertyNode *density;
SGPropertyNode *turbulence_gain;
SGPropertyNode *turbulence_rate;
SGPropertyNode_ptr temperature;
SGPropertyNode_ptr pressure;
SGPropertyNode_ptr density;
SGPropertyNode_ptr turbulence_gain;
SGPropertyNode_ptr turbulence_rate;
SGPropertyNode *wind_from_north;
SGPropertyNode *wind_from_east;
SGPropertyNode *wind_from_down;
SGPropertyNode_ptr wind_from_north;
SGPropertyNode_ptr wind_from_east;
SGPropertyNode_ptr wind_from_down;
void init_gear(void);
void update_gear(void);

View file

@ -41,9 +41,9 @@ private:
void set_ls(void);
void snap_shot(void);
double time_step;
SGPropertyNode *speed_up;
SGPropertyNode *aero;
SGPropertyNode *uiuc_type;
SGPropertyNode_ptr speed_up;
SGPropertyNode_ptr aero;
SGPropertyNode_ptr uiuc_type;
public:

View file

@ -42,10 +42,10 @@ public:
private:
SGPropertyNode *_alt, *_speed, *_climb_rate;
SGPropertyNode *_pitch, *_roll, *_heading;
SGPropertyNode *_acc_lat, *_acc_lon, *_acc_down;
SGPropertyNode *_temp, *_wow;
SGPropertyNode_ptr _alt, _speed, _climb_rate;
SGPropertyNode_ptr _pitch, _roll, _heading;
SGPropertyNode_ptr _acc_lat, _acc_lon, _acc_down;
SGPropertyNode_ptr _temp, _wow;
};

View file

@ -1,7 +1,8 @@
#ifndef __LAYOUT_HXX
#define __LAYOUT_HXX
class SGPropertyNode;
#include <simgear/props/props.hxx>
class puFont;
// For the purposes of doing layout management, widgets have a type,
@ -50,7 +51,7 @@ private:
void doHVBox(bool doLayout, bool vertical, int* w=0, int* h=0);
void doTable(bool doLayout, int* w=0, int* h=0);
SGPropertyNode* _prop;
SGPropertyNode_ptr _prop;
};
#endif // __LAYOUT_HXX

View file

@ -340,8 +340,8 @@ private:
virtual ~mouse ();
int x;
int y;
SGPropertyNode * mode_node;
SGPropertyNode * mouse_button_nodes[MAX_MOUSE_BUTTONS];
SGPropertyNode_ptr mode_node;
SGPropertyNode_ptr mouse_button_nodes[MAX_MOUSE_BUTTONS];
int nModes;
int current_mode;
double timeout;

View file

@ -38,21 +38,21 @@ class Annunciator : public SGSubsystem
double timer4;
// inputs
SGPropertyNode *_volts;
SGPropertyNode *_vac_l;
SGPropertyNode *_vac_r;
SGPropertyNode *_fuel_l;
SGPropertyNode *_fuel_r;
SGPropertyNode *_oil_px;
SGPropertyNode *_elec_serv;
SGPropertyNode_ptr _volts;
SGPropertyNode_ptr _vac_l;
SGPropertyNode_ptr _vac_r;
SGPropertyNode_ptr _fuel_l;
SGPropertyNode_ptr _fuel_r;
SGPropertyNode_ptr _oil_px;
SGPropertyNode_ptr _elec_serv;
// outputs
SGPropertyNode *_ann_volts; // VOLTS (red)
SGPropertyNode *_ann_vac_l; // L VAC (amber)
SGPropertyNode *_ann_vac_r; // VAC R (amber
SGPropertyNode *_ann_fuel_l; // L LOW FUEL (amber)
SGPropertyNode *_ann_fuel_r; // LOW FUEL R (amber)
SGPropertyNode *_ann_oil_px; // OIL PRESS (red)
SGPropertyNode_ptr _ann_volts; // VOLTS (red)
SGPropertyNode_ptr _ann_vac_l; // L VAC (amber)
SGPropertyNode_ptr _ann_vac_r; // VAC R (amber
SGPropertyNode_ptr _ann_fuel_l; // L LOW FUEL (amber)
SGPropertyNode_ptr _ann_fuel_r; // LOW FUEL R (amber)
SGPropertyNode_ptr _ann_oil_px; // OIL PRESS (red)
public:

View file

@ -141,9 +141,9 @@ private:
SGPropertyNode_ptr _leg_to_flag_node;
SGPropertyNode_ptr _alt_deviation_node;
SGPropertyNode *_route;
SGPropertyNode *addWp;
SGPropertyNode *popWp;
SGPropertyNode_ptr _route;
SGPropertyNode_ptr addWp;
SGPropertyNode_ptr popWp;
SGRoute *route;

View file

@ -39,11 +39,11 @@ class FGKR_87 : public SGSubsystem
{
FGMorse morse;
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *alt_node;
SGPropertyNode *bus_power;
SGPropertyNode *serviceable;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr alt_node;
SGPropertyNode_ptr bus_power;
SGPropertyNode_ptr serviceable;
bool need_update;

View file

@ -39,11 +39,11 @@
class FGKT_70 : public SGSubsystem
{
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *alt_node;
SGPropertyNode *bus_power;
SGPropertyNode *serviceable_node;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr alt_node;
SGPropertyNode_ptr bus_power;
SGPropertyNode_ptr serviceable_node;
// internal values
double r_flash_time;

View file

@ -46,14 +46,14 @@ class FGMarkerBeacon : public SGSubsystem
SGInterpTable *high_tbl;
// Inputs
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *alt_node;
SGPropertyNode *bus_power;
SGPropertyNode *power_btn;
SGPropertyNode *audio_btn;
SGPropertyNode *serviceable;
SGPropertyNode *sound_pause;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr alt_node;
SGPropertyNode_ptr bus_power;
SGPropertyNode_ptr power_btn;
SGPropertyNode_ptr audio_btn;
SGPropertyNode_ptr serviceable;
SGPropertyNode_ptr sound_pause;
bool need_update;

View file

@ -235,7 +235,7 @@ MK_VIII::PropertiesHandler::init ()
void
MK_VIII::PropertiesHandler::unbind ()
{
vector<SGPropertyNode *>::iterator iter;
vector<SGPropertyNode_ptr>::iterator iter;
for (iter = tied_properties.begin(); iter != tied_properties.end(); iter++)
(*iter)->untie();

View file

@ -181,37 +181,37 @@ class MK_VIII : public SGSubsystem
{
MK_VIII *mk;
vector<SGPropertyNode *> tied_properties;
vector<SGPropertyNode_ptr> tied_properties;
public:
struct
{
SGPropertyNode *ai_caged;
SGPropertyNode *ai_roll;
SGPropertyNode *ai_serviceable;
SGPropertyNode *altimeter_altitude;
SGPropertyNode *altimeter_serviceable;
SGPropertyNode *altitude;
SGPropertyNode *altitude_agl;
SGPropertyNode *asi_serviceable;
SGPropertyNode *asi_speed;
SGPropertyNode *autopilot_heading_lock;
SGPropertyNode *flaps;
SGPropertyNode *gear_down;
SGPropertyNode *latitude;
SGPropertyNode *longitude;
SGPropertyNode *nav0_cdi_serviceable;
SGPropertyNode *nav0_gs_distance;
SGPropertyNode *nav0_gs_needle_deflection;
SGPropertyNode *nav0_gs_serviceable;
SGPropertyNode *nav0_has_gs;
SGPropertyNode *nav0_heading_needle_deflection;
SGPropertyNode *nav0_in_range;
SGPropertyNode *nav0_nav_loc;
SGPropertyNode *nav0_serviceable;
SGPropertyNode *power;
SGPropertyNode *replay_state;
SGPropertyNode *vs;
SGPropertyNode_ptr ai_caged;
SGPropertyNode_ptr ai_roll;
SGPropertyNode_ptr ai_serviceable;
SGPropertyNode_ptr altimeter_altitude;
SGPropertyNode_ptr altimeter_serviceable;
SGPropertyNode_ptr altitude;
SGPropertyNode_ptr altitude_agl;
SGPropertyNode_ptr asi_serviceable;
SGPropertyNode_ptr asi_speed;
SGPropertyNode_ptr autopilot_heading_lock;
SGPropertyNode_ptr flaps;
SGPropertyNode_ptr gear_down;
SGPropertyNode_ptr latitude;
SGPropertyNode_ptr longitude;
SGPropertyNode_ptr nav0_cdi_serviceable;
SGPropertyNode_ptr nav0_gs_distance;
SGPropertyNode_ptr nav0_gs_needle_deflection;
SGPropertyNode_ptr nav0_gs_serviceable;
SGPropertyNode_ptr nav0_has_gs;
SGPropertyNode_ptr nav0_heading_needle_deflection;
SGPropertyNode_ptr nav0_in_range;
SGPropertyNode_ptr nav0_nav_loc;
SGPropertyNode_ptr nav0_serviceable;
SGPropertyNode_ptr power;
SGPropertyNode_ptr replay_state;
SGPropertyNode_ptr vs;
} external_properties;
inline PropertiesHandler (MK_VIII *device)

View file

@ -43,67 +43,67 @@ class FGNavRadio : public SGSubsystem
SGInterpTable *low_tbl;
SGInterpTable *high_tbl;
SGPropertyNode *lon_node;
SGPropertyNode *lat_node;
SGPropertyNode *alt_node;
SGPropertyNode *bus_power_node;
SGPropertyNode_ptr lon_node;
SGPropertyNode_ptr lat_node;
SGPropertyNode_ptr alt_node;
SGPropertyNode_ptr bus_power_node;
// property inputs
SGPropertyNode *is_valid_node; // is station data valid (may be way out
SGPropertyNode_ptr is_valid_node; // is station data valid (may be way out
// of range.)
SGPropertyNode *power_btn_node;
SGPropertyNode *freq_node; // primary freq
SGPropertyNode *alt_freq_node; // standby freq
SGPropertyNode *sel_radial_node; // selected radial
SGPropertyNode *vol_btn_node;
SGPropertyNode *ident_btn_node;
SGPropertyNode *audio_btn_node;
SGPropertyNode *nav_serviceable_node;
SGPropertyNode *cdi_serviceable_node;
SGPropertyNode *gs_serviceable_node;
SGPropertyNode *tofrom_serviceable_node;
SGPropertyNode_ptr power_btn_node;
SGPropertyNode_ptr freq_node; // primary freq
SGPropertyNode_ptr alt_freq_node; // standby freq
SGPropertyNode_ptr sel_radial_node; // selected radial
SGPropertyNode_ptr vol_btn_node;
SGPropertyNode_ptr ident_btn_node;
SGPropertyNode_ptr audio_btn_node;
SGPropertyNode_ptr nav_serviceable_node;
SGPropertyNode_ptr cdi_serviceable_node;
SGPropertyNode_ptr gs_serviceable_node;
SGPropertyNode_ptr tofrom_serviceable_node;
// property outputs
SGPropertyNode *fmt_freq_node; // formated frequency
SGPropertyNode *fmt_alt_freq_node; // formated alternate frequency
SGPropertyNode *heading_node; // true heading to nav station
SGPropertyNode *radial_node; // current radial we are on (taking
SGPropertyNode_ptr fmt_freq_node; // formated frequency
SGPropertyNode_ptr fmt_alt_freq_node; // formated alternate frequency
SGPropertyNode_ptr heading_node; // true heading to nav station
SGPropertyNode_ptr radial_node; // current radial we are on (taking
// into consideration the vor station
// alignment which likely doesn't
// match the magnetic alignment
// exactly.)
SGPropertyNode *recip_radial_node; // radial_node(val) + 180 (for
SGPropertyNode_ptr recip_radial_node; // radial_node(val) + 180 (for
// convenience)
SGPropertyNode *target_radial_true_node;
SGPropertyNode_ptr target_radial_true_node;
// true heading of selected radial
SGPropertyNode *target_auto_hdg_node;
SGPropertyNode_ptr target_auto_hdg_node;
// suggested autopilot heading
// to intercept selected radial
SGPropertyNode *time_to_intercept; // estimated time to intecept selected
SGPropertyNode_ptr time_to_intercept; // estimated time to intecept selected
// radial at current speed and heading
SGPropertyNode *to_flag_node;
SGPropertyNode *from_flag_node;
SGPropertyNode *inrange_node;
SGPropertyNode *cdi_deflection_node;
SGPropertyNode *cdi_xtrack_error_node;
SGPropertyNode *cdi_xtrack_hdg_err_node;
SGPropertyNode *has_gs_node;
SGPropertyNode *loc_node;
SGPropertyNode *loc_dist_node;
SGPropertyNode *gs_deflection_node;
SGPropertyNode *gs_rate_of_climb_node;
SGPropertyNode *gs_dist_node;
SGPropertyNode *nav_id_node;
SGPropertyNode *id_c1_node;
SGPropertyNode *id_c2_node;
SGPropertyNode *id_c3_node;
SGPropertyNode *id_c4_node;
SGPropertyNode_ptr to_flag_node;
SGPropertyNode_ptr from_flag_node;
SGPropertyNode_ptr inrange_node;
SGPropertyNode_ptr cdi_deflection_node;
SGPropertyNode_ptr cdi_xtrack_error_node;
SGPropertyNode_ptr cdi_xtrack_hdg_err_node;
SGPropertyNode_ptr has_gs_node;
SGPropertyNode_ptr loc_node;
SGPropertyNode_ptr loc_dist_node;
SGPropertyNode_ptr gs_deflection_node;
SGPropertyNode_ptr gs_rate_of_climb_node;
SGPropertyNode_ptr gs_dist_node;
SGPropertyNode_ptr nav_id_node;
SGPropertyNode_ptr id_c1_node;
SGPropertyNode_ptr id_c2_node;
SGPropertyNode_ptr id_c3_node;
SGPropertyNode_ptr id_c4_node;
// gps slaving support
SGPropertyNode *nav_slaved_to_gps_node;
SGPropertyNode *gps_cdi_deflection_node;
SGPropertyNode *gps_to_flag_node;
SGPropertyNode *gps_from_flag_node;
SGPropertyNode_ptr nav_slaved_to_gps_node;
SGPropertyNode_ptr gps_cdi_deflection_node;
SGPropertyNode_ptr gps_to_flag_node;
SGPropertyNode_ptr gps_from_flag_node;
// internal (private) values

View file

@ -52,7 +52,7 @@ private:
struct Log {
Log ();
virtual ~Log ();
vector<SGPropertyNode *> nodes;
vector<SGPropertyNode_ptr> nodes;
ostream * output;
long interval_ms;
double last_time_ms;

View file

@ -57,12 +57,12 @@ class FGATCInput {
unsigned char radio_switch_data[ATC_RADIO_SWITCH_BYTES];
unsigned char switch_data[ATC_SWITCH_BYTES];
SGPropertyNode *ignore_flight_controls;
SGPropertyNode *ignore_pedal_controls;
SGPropertyNode_ptr ignore_flight_controls;
SGPropertyNode_ptr ignore_pedal_controls;
SGPropertyNode *analog_in_node;
SGPropertyNode *radio_in_node;
SGPropertyNode *switches_node;
SGPropertyNode_ptr analog_in_node;
SGPropertyNode_ptr radio_in_node;
SGPropertyNode_ptr switches_node;
void init_config();
bool do_analog_in();

View file

@ -53,9 +53,9 @@ class FGATCOutput {
unsigned char radio_display_data[ATC_RADIO_DISPLAY_BYTES];
SGPropertyNode *lamps_out_node;
SGPropertyNode *radio_display_node;
SGPropertyNode *steppers_node;
SGPropertyNode_ptr lamps_out_node;
SGPropertyNode_ptr radio_display_node;
SGPropertyNode_ptr steppers_node;
void init_config();
bool do_lamps();

View file

@ -63,7 +63,7 @@ protected:
e_type type;
double offset;
double factor;
SGPropertyNode *prop;
SGPropertyNode_ptr prop;
} _serial_prot;
private:

View file

@ -42,7 +42,7 @@ class FGJsClient : public FGProtocol {
char buf[256];
int length;
double axis[4];
SGPropertyNode *axisdef[4];
SGPropertyNode_ptr axisdef[4];
string axisdefstr[4];
bool active;

View file

@ -42,104 +42,104 @@ class FGLFSGlass : public FGProtocol, public FGInterface {
int length;
// Environment
SGPropertyNode *press_node;
SGPropertyNode *temp_node;
SGPropertyNode *wind_dir_node;
SGPropertyNode *wind_speed_node;
SGPropertyNode *magvar_node;
SGPropertyNode_ptr press_node;
SGPropertyNode_ptr temp_node;
SGPropertyNode_ptr wind_dir_node;
SGPropertyNode_ptr wind_speed_node;
SGPropertyNode_ptr magvar_node;
// Position on the Geod
SGPropertyNode *p_latitude;
SGPropertyNode *p_longitude;
SGPropertyNode *p_elev_node;
//SGPropertyNode *p_altitude;
SGPropertyNode *p_altitude_agl;
SGPropertyNode_ptr p_latitude;
SGPropertyNode_ptr p_longitude;
SGPropertyNode_ptr p_elev_node;
//SGPropertyNode_ptr p_altitude;
SGPropertyNode_ptr p_altitude_agl;
// Orientation
SGPropertyNode *p_pitch;
SGPropertyNode *p_bank;
SGPropertyNode *p_heading;
SGPropertyNode *p_yaw;
SGPropertyNode *p_yaw_rate;
SGPropertyNode_ptr p_pitch;
SGPropertyNode_ptr p_bank;
SGPropertyNode_ptr p_heading;
SGPropertyNode_ptr p_yaw;
SGPropertyNode_ptr p_yaw_rate;
// Flight Parameters
SGPropertyNode *vel_kcas;
SGPropertyNode *p_vvi;
SGPropertyNode *p_mach;
SGPropertyNode_ptr vel_kcas;
SGPropertyNode_ptr p_vvi;
SGPropertyNode_ptr p_mach;
// Control surfaces
SGPropertyNode *p_left_aileron;
SGPropertyNode *p_right_aileron;
SGPropertyNode *p_elevator;
SGPropertyNode *p_elevator_trim;
SGPropertyNode *p_rudder;
SGPropertyNode *p_flaps;
SGPropertyNode *p_flaps_cmd;
SGPropertyNode_ptr p_left_aileron;
SGPropertyNode_ptr p_right_aileron;
SGPropertyNode_ptr p_elevator;
SGPropertyNode_ptr p_elevator_trim;
SGPropertyNode_ptr p_rudder;
SGPropertyNode_ptr p_flaps;
SGPropertyNode_ptr p_flaps_cmd;
// GEAR System
SGPropertyNode *p_park_brake;
SGPropertyNode_ptr p_park_brake;
// Engines
SGPropertyNode *egt0_node;
SGPropertyNode *egt1_node;
SGPropertyNode *egt2_node;
SGPropertyNode *egt3_node;
SGPropertyNode_ptr egt0_node;
SGPropertyNode_ptr egt1_node;
SGPropertyNode_ptr egt2_node;
SGPropertyNode_ptr egt3_node;
SGPropertyNode *epr0_node;
SGPropertyNode *epr1_node;
SGPropertyNode *epr2_node;
SGPropertyNode *epr3_node;
SGPropertyNode_ptr epr0_node;
SGPropertyNode_ptr epr1_node;
SGPropertyNode_ptr epr2_node;
SGPropertyNode_ptr epr3_node;
SGPropertyNode *n10_node;
SGPropertyNode *n11_node;
SGPropertyNode *n12_node;
SGPropertyNode *n13_node;
SGPropertyNode_ptr n10_node;
SGPropertyNode_ptr n11_node;
SGPropertyNode_ptr n12_node;
SGPropertyNode_ptr n13_node;
SGPropertyNode *n20_node;
SGPropertyNode *n21_node;
SGPropertyNode *n22_node;
SGPropertyNode *n23_node;
SGPropertyNode_ptr n20_node;
SGPropertyNode_ptr n21_node;
SGPropertyNode_ptr n22_node;
SGPropertyNode_ptr n23_node;
SGPropertyNode *oil_temp0;
SGPropertyNode *oil_temp1;
SGPropertyNode *oil_temp2;
SGPropertyNode *oil_temp3;
SGPropertyNode_ptr oil_temp0;
SGPropertyNode_ptr oil_temp1;
SGPropertyNode_ptr oil_temp2;
SGPropertyNode_ptr oil_temp3;
// Fuel System
SGPropertyNode *tank0_node;
SGPropertyNode *tank1_node;
SGPropertyNode *tank2_node;
SGPropertyNode *tank3_node;
SGPropertyNode *tank4_node;
SGPropertyNode *tank5_node;
SGPropertyNode *tank6_node;
SGPropertyNode *tank7_node;
SGPropertyNode_ptr tank0_node;
SGPropertyNode_ptr tank1_node;
SGPropertyNode_ptr tank2_node;
SGPropertyNode_ptr tank3_node;
SGPropertyNode_ptr tank4_node;
SGPropertyNode_ptr tank5_node;
SGPropertyNode_ptr tank6_node;
SGPropertyNode_ptr tank7_node;
// Boost pumps; Center tank has only override pumps; boosts are in the
// four main wing tanks 1->4
// SGPropertyNode *boost1_node;
// SGPropertyNode *boost2_node;
// SGPropertyNode *boost3_node;
// SGPropertyNode *boost4_node;
// SGPropertyNode *boost5_node;
// SGPropertyNode *boost6_node;
// SGPropertyNode *boost7_node;
// SGPropertyNode *boost8_node;
// SGPropertyNode_ptr boost1_node;
// SGPropertyNode_ptr boost2_node;
// SGPropertyNode_ptr boost3_node;
// SGPropertyNode_ptr boost4_node;
// SGPropertyNode_ptr boost5_node;
// SGPropertyNode_ptr boost6_node;
// SGPropertyNode_ptr boost7_node;
// SGPropertyNode_ptr boost8_node;
// Override pumps
// SGPropertyNode *ovride0_node;
// SGPropertyNode *ovride1_node;
// SGPropertyNode *ovride2_node;
// SGPropertyNode *ovride3_node;
// SGPropertyNode *ovride4_node;
// SGPropertyNode *ovride5_node;
// SGPropertyNode_ptr ovride0_node;
// SGPropertyNode_ptr ovride1_node;
// SGPropertyNode_ptr ovride2_node;
// SGPropertyNode_ptr ovride3_node;
// SGPropertyNode_ptr ovride4_node;
// SGPropertyNode_ptr ovride5_node;
// X_Feed valves
// SGPropertyNode *x_feed0_node;
// SGPropertyNode *x_feed1_node;
// SGPropertyNode *x_feed2_node;
// SGPropertyNode *x_feed3_node;
// SGPropertyNode_ptr x_feed0_node;
// SGPropertyNode_ptr x_feed1_node;
// SGPropertyNode_ptr x_feed2_node;
// SGPropertyNode_ptr x_feed3_node;
// Aero numbers
SGPropertyNode *p_alphadot;
SGPropertyNode *p_betadot;
SGPropertyNode_ptr p_alphadot;
SGPropertyNode_ptr p_betadot;
public:

View file

@ -42,104 +42,104 @@ class FGOpenGC : public FGProtocol, public FGInterface {
int length;
// Environment
SGPropertyNode *press_node;
SGPropertyNode *temp_node;
SGPropertyNode *wind_dir_node;
SGPropertyNode *wind_speed_node;
SGPropertyNode *magvar_node;
SGPropertyNode_ptr press_node;
SGPropertyNode_ptr temp_node;
SGPropertyNode_ptr wind_dir_node;
SGPropertyNode_ptr wind_speed_node;
SGPropertyNode_ptr magvar_node;
// Position on the Geod
SGPropertyNode *p_latitude;
SGPropertyNode *p_longitude;
SGPropertyNode *p_elev_node;
//SGPropertyNode *p_altitude;
SGPropertyNode *p_altitude_agl;
SGPropertyNode_ptr p_latitude;
SGPropertyNode_ptr p_longitude;
SGPropertyNode_ptr p_elev_node;
//SGPropertyNode_ptr p_altitude;
SGPropertyNode_ptr p_altitude_agl;
// Orientation
SGPropertyNode *p_pitch;
SGPropertyNode *p_bank;
SGPropertyNode *p_heading;
SGPropertyNode *p_yaw;
SGPropertyNode *p_yaw_rate;
SGPropertyNode_ptr p_pitch;
SGPropertyNode_ptr p_bank;
SGPropertyNode_ptr p_heading;
SGPropertyNode_ptr p_yaw;
SGPropertyNode_ptr p_yaw_rate;
// Flight Parameters
SGPropertyNode *vel_kcas;
SGPropertyNode *p_vvi;
SGPropertyNode *p_mach;
SGPropertyNode_ptr vel_kcas;
SGPropertyNode_ptr p_vvi;
SGPropertyNode_ptr p_mach;
// Control surfaces
SGPropertyNode *p_left_aileron;
SGPropertyNode *p_right_aileron;
SGPropertyNode *p_elevator;
SGPropertyNode *p_elevator_trim;
SGPropertyNode *p_rudder;
SGPropertyNode *p_flaps;
SGPropertyNode *p_flaps_cmd;
SGPropertyNode_ptr p_left_aileron;
SGPropertyNode_ptr p_right_aileron;
SGPropertyNode_ptr p_elevator;
SGPropertyNode_ptr p_elevator_trim;
SGPropertyNode_ptr p_rudder;
SGPropertyNode_ptr p_flaps;
SGPropertyNode_ptr p_flaps_cmd;
// GEAR System
SGPropertyNode *p_park_brake;
SGPropertyNode_ptr p_park_brake;
// Engines
SGPropertyNode *egt0_node;
SGPropertyNode *egt1_node;
SGPropertyNode *egt2_node;
SGPropertyNode *egt3_node;
SGPropertyNode_ptr egt0_node;
SGPropertyNode_ptr egt1_node;
SGPropertyNode_ptr egt2_node;
SGPropertyNode_ptr egt3_node;
SGPropertyNode *epr0_node;
SGPropertyNode *epr1_node;
SGPropertyNode *epr2_node;
SGPropertyNode *epr3_node;
SGPropertyNode_ptr epr0_node;
SGPropertyNode_ptr epr1_node;
SGPropertyNode_ptr epr2_node;
SGPropertyNode_ptr epr3_node;
SGPropertyNode *n10_node;
SGPropertyNode *n11_node;
SGPropertyNode *n12_node;
SGPropertyNode *n13_node;
SGPropertyNode_ptr n10_node;
SGPropertyNode_ptr n11_node;
SGPropertyNode_ptr n12_node;
SGPropertyNode_ptr n13_node;
SGPropertyNode *n20_node;
SGPropertyNode *n21_node;
SGPropertyNode *n22_node;
SGPropertyNode *n23_node;
SGPropertyNode_ptr n20_node;
SGPropertyNode_ptr n21_node;
SGPropertyNode_ptr n22_node;
SGPropertyNode_ptr n23_node;
SGPropertyNode *oil_temp0;
SGPropertyNode *oil_temp1;
SGPropertyNode *oil_temp2;
SGPropertyNode *oil_temp3;
SGPropertyNode_ptr oil_temp0;
SGPropertyNode_ptr oil_temp1;
SGPropertyNode_ptr oil_temp2;
SGPropertyNode_ptr oil_temp3;
// Fuel System
SGPropertyNode *tank0_node;
SGPropertyNode *tank1_node;
SGPropertyNode *tank2_node;
SGPropertyNode *tank3_node;
SGPropertyNode *tank4_node;
SGPropertyNode *tank5_node;
SGPropertyNode *tank6_node;
SGPropertyNode *tank7_node;
SGPropertyNode_ptr tank0_node;
SGPropertyNode_ptr tank1_node;
SGPropertyNode_ptr tank2_node;
SGPropertyNode_ptr tank3_node;
SGPropertyNode_ptr tank4_node;
SGPropertyNode_ptr tank5_node;
SGPropertyNode_ptr tank6_node;
SGPropertyNode_ptr tank7_node;
// Boost pumps; Center tank has only override pumps; boosts are in the
// four main wing tanks 1->4
// SGPropertyNode *boost1_node;
// SGPropertyNode *boost2_node;
// SGPropertyNode *boost3_node;
// SGPropertyNode *boost4_node;
// SGPropertyNode *boost5_node;
// SGPropertyNode *boost6_node;
// SGPropertyNode *boost7_node;
// SGPropertyNode *boost8_node;
// SGPropertyNode_ptr boost1_node;
// SGPropertyNode_ptr boost2_node;
// SGPropertyNode_ptr boost3_node;
// SGPropertyNode_ptr boost4_node;
// SGPropertyNode_ptr boost5_node;
// SGPropertyNode_ptr boost6_node;
// SGPropertyNode_ptr boost7_node;
// SGPropertyNode_ptr boost8_node;
// Override pumps
// SGPropertyNode *ovride0_node;
// SGPropertyNode *ovride1_node;
// SGPropertyNode *ovride2_node;
// SGPropertyNode *ovride3_node;
// SGPropertyNode *ovride4_node;
// SGPropertyNode *ovride5_node;
// SGPropertyNode_ptr ovride0_node;
// SGPropertyNode_ptr ovride1_node;
// SGPropertyNode_ptr ovride2_node;
// SGPropertyNode_ptr ovride3_node;
// SGPropertyNode_ptr ovride4_node;
// SGPropertyNode_ptr ovride5_node;
// X_Feed valves
// SGPropertyNode *x_feed0_node;
// SGPropertyNode *x_feed1_node;
// SGPropertyNode *x_feed2_node;
// SGPropertyNode *x_feed3_node;
// SGPropertyNode_ptr x_feed0_node;
// SGPropertyNode_ptr x_feed1_node;
// SGPropertyNode_ptr x_feed2_node;
// SGPropertyNode_ptr x_feed3_node;
// Aero numbers
SGPropertyNode *p_alphadot;
SGPropertyNode *p_betadot;
SGPropertyNode_ptr p_alphadot;
SGPropertyNode_ptr p_betadot;
public:

View file

@ -96,7 +96,7 @@ private:
naContext _context;
naRef _globals;
SGPropertyNode* _cmdArg;
SGPropertyNode_ptr _cmdArg;
int _nextGCKey;
naRef _gcHash;

View file

@ -82,8 +82,8 @@ private:
bool last_pause;
double last_volume;
SGPropertyNode *_pause;
SGPropertyNode *_volume;
SGPropertyNode_ptr _pause;
SGPropertyNode_ptr _volume;
};

View file

@ -193,7 +193,7 @@ class FGElectricalSwitch {
private:
SGPropertyNode *switch_node;
SGPropertyNode_ptr switch_node;
float rating_amps;
bool circuit_breaker;
@ -275,8 +275,8 @@ private:
comp_list outputs;
comp_list connectors;
SGPropertyNode *_volts_out;
SGPropertyNode *_amps_out;
SGPropertyNode_ptr _volts_out;
SGPropertyNode_ptr _amps_out;
};