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;
long mLastTimestamp;
// Propertiies for tankers
- SGPropertyNode* refuel_node;
+ SGPropertyNode_ptr refuel_node;
bool isTanker;
bool contact; // set if this tanker is within fuelling range
};
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;
};
typedef struct {
- SGPropertyNode* trigger;
- SGPropertyNode* prop;
- SGPropertyNode* contents_node;
+ SGPropertyNode_ptr trigger;
+ SGPropertyNode_ptr prop;
+ SGPropertyNode_ptr contents_node;
string name;
string model;
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;
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
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)
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:
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.
string transmission;
bool first;
- SGPropertyNode *comm1_node;
- SGPropertyNode *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 comm1_node;
+ SGPropertyNode_ptr comm2_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
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);
// 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:
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.
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)
int lateral_mode;
- SGPropertyNode * auto_coordination;
+ SGPropertyNode_ptr auto_coordination;
public:
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:
// proportional component data
bool proportional;
double Kp;
- SGPropertyNode *offset_prop;
+ SGPropertyNode_ptr offset_prop;
double offset_value;
// integral component data
private:
bool serviceable;
- SGPropertyNode *config_props;
+ SGPropertyNode_ptr config_props;
comp_list components;
};
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;
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 );
double last_cg_offset;
vector <string> property_names;
- vector <SGPropertyNode *> nodes;
+ vector <SGPropertyNode_ptr> nodes;
// Protocol specific init routines
void init_binary();
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 *elevator_pos_deg;
- SGPropertyNode *left_aileron_pos_deg;
- SGPropertyNode *right_aileron_pos_deg;
- SGPropertyNode *rudder_pos_deg;
- SGPropertyNode *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 *gear_pos_pct;
-
- SGPropertyNode *temperature;
- SGPropertyNode *pressure;
- SGPropertyNode *density;
- SGPropertyNode *turbulence_gain;
- SGPropertyNode *turbulence_rate;
-
- SGPropertyNode *wind_from_north;
- SGPropertyNode *wind_from_east;
- SGPropertyNode *wind_from_down;
+ 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_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_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_ptr gear_pos_pct;
+
+ SGPropertyNode_ptr temperature;
+ SGPropertyNode_ptr pressure;
+ SGPropertyNode_ptr density;
+ SGPropertyNode_ptr turbulence_gain;
+ SGPropertyNode_ptr turbulence_rate;
+
+ SGPropertyNode_ptr wind_from_north;
+ SGPropertyNode_ptr wind_from_east;
+ SGPropertyNode_ptr wind_from_down;
void init_gear(void);
void update_gear(void);
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:
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;
};
#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,
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
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;
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:
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;
{
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;
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;
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;
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();
{
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)
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
struct Log {
Log ();
virtual ~Log ();
- vector<SGPropertyNode *> nodes;
+ vector<SGPropertyNode_ptr> nodes;
ostream * output;
long interval_ms;
double last_time_ms;
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();
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();
e_type type;
double offset;
double factor;
- SGPropertyNode *prop;
+ SGPropertyNode_ptr prop;
} _serial_prot;
private:
char buf[256];
int length;
double axis[4];
- SGPropertyNode *axisdef[4];
+ SGPropertyNode_ptr axisdef[4];
string axisdefstr[4];
bool active;
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:
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:
naContext _context;
naRef _globals;
- SGPropertyNode* _cmdArg;
+ SGPropertyNode_ptr _cmdArg;
int _nextGCKey;
naRef _gcHash;
bool last_pause;
double last_volume;
- SGPropertyNode *_pause;
- SGPropertyNode *_volume;
+ SGPropertyNode_ptr _pause;
+ SGPropertyNode_ptr _volume;
};
private:
- SGPropertyNode *switch_node;
+ SGPropertyNode_ptr switch_node;
float rating_amps;
bool circuit_breaker;
comp_list outputs;
comp_list connectors;
- SGPropertyNode *_volts_out;
- SGPropertyNode *_amps_out;
+ SGPropertyNode_ptr _volts_out;
+ SGPropertyNode_ptr _amps_out;
};