X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Fmk_viii.hxx;h=60a3f94588c83593e4396dccc9bcf0f05ee92596;hb=f620af29cdc18ab7924055092e8f75cbe37aae2c;hp=4969a137d65707948882a1324dd6ccca13521256;hpb=acd09b99cb4e1dac877d55f51a372f7f3283c439;p=flightgear.git diff --git a/src/Instrumentation/mk_viii.hxx b/src/Instrumentation/mk_viii.hxx index 4969a137d..60a3f9458 100755 --- a/src/Instrumentation/mk_viii.hxx +++ b/src/Instrumentation/mk_viii.hxx @@ -181,37 +181,37 @@ class MK_VIII : public SGSubsystem { MK_VIII *mk; - vector tied_properties; + vector 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) @@ -232,10 +232,16 @@ class MK_VIII : public SGSubsystem tie(node->getNode(relative_path, true), raw_value); } + PropertiesHandler() {}; + void init (); void unbind (); }; +public: + PropertiesHandler properties_handler; + +private: ///////////////////////////////////////////////////////////////////////////// // MK_VIII::PowerHandler //////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// @@ -431,6 +437,7 @@ class MK_VIII : public SGSubsystem // MK_VIII::IOHandler /////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// +public: class IOHandler { public: @@ -604,6 +611,8 @@ class MK_VIII : public SGSubsystem void bind (SGPropertyNode *node); + MK_VIII *mk; + private: /////////////////////////////////////////////////////////////////////////// @@ -627,8 +636,6 @@ class MK_VIII : public SGSubsystem // MK_VIII::IOHandler (continued) ///////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// - MK_VIII *mk; - TerrainClearanceFilter terrain_clearance_filter; Lamp _lamp; @@ -678,6 +685,8 @@ class MK_VIII : public SGSubsystem const char *name, int *output); + public: + bool get_discrete_input (bool *ptr) const; void set_discrete_input (bool *ptr, bool value); @@ -860,7 +869,7 @@ class MK_VIII : public SGSubsystem inline void bind (SGPropertyNode *node) { speaker.bind(node); } - private: + public: /////////////////////////////////////////////////////////////////////////// // MK_VIII::VoicePlayer::Speaker ////////////////////////////////////////// @@ -890,13 +899,13 @@ class MK_VIII : public SGSubsystem &MK_VIII::VoicePlayer::Speaker::set_property)); } + public: template inline void set_property (T *ptr, T value) { *ptr = value; update_configuration(); } template inline T get_property (T *ptr) const { return *ptr; } - public: double volume; inline Speaker (VoicePlayer *_player) @@ -917,6 +926,7 @@ class MK_VIII : public SGSubsystem void update_configuration (); }; + private: /////////////////////////////////////////////////////////////////////////// // MK_VIII::VoicePlayer (continued) /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// @@ -949,6 +959,7 @@ class MK_VIII : public SGSubsystem inline void make_voice (Voice **voice, T1 e1, T2 e2, T3 e3, T4 e4) { make_voice(voice, e1, e2, e3); append(*voice, e4); } }; +private: ///////////////////////////////////////////////////////////////////////////// // MK_VIII::SelfTestHandler ///////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// @@ -1573,7 +1584,6 @@ class MK_VIII : public SGSubsystem string name; int num; - PropertiesHandler properties_handler; PowerHandler power_handler; SystemHandler system_handler; ConfigurationModule configuration_module;