User:Bugman/subsystems: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(→‎All subsystems: Updated the output to match the newest code changes.)
(→‎Tracking down subsystems: Update for the grep output.)
(11 intermediate revisions by the same user not shown)
Line 36: Line 36:
     """Class for finding all subsystems and subsystem groups."""
     """Class for finding all subsystems and subsystem groups."""


     def __init__(self):
     def __init__(self, output=True):
         """Find all subsystems and subsystem groups."""
         """Find all subsystems and subsystem groups.
 
        @keyword output:    A flag which if False will suppress all output to STDOUT.
        @type output:      bool
        """


         # Command line options.
         # Command line options.
Line 57: Line 61:
         # Add some problematic non-parsable classes.
         # Add some problematic non-parsable classes.
         if self.category_subsystems:
         if self.category_subsystems:
             self.subsystems[1].append(Subsystem("FGAISim", base_class=Subsystem("FGInterface", base_class=Subsystem("SGSubsystem")), declaration_file="src/FDM/SP/AISim.hpp", root_path=self.root_path("src/FDM/SP/AISim.hpp"), full_path=self.output_full_path, xml=self.output_xml))
             self.subsystems[1].append(Subsystem("FGAISim", base_class=Subsystem("FGInterface", base_class=Subsystem("SGSubsystem")), static_id="aisim", declaration_file="src/FDM/SP/AISim.hpp", root_path=self.root_path("src/FDM/SP/AISim.hpp"), full_path=self.output_full_path, xml=self.output_xml))


         # Find all SGSubsystem and SGSubsystemGroup derived classes.
         # Find all SGSubsystem and SGSubsystemGroup derived classes.
Line 92: Line 96:


         # Final summary.
         # Final summary.
         self.summarise()
         if output:
            self.summarise()




Line 630: Line 635:
     """Object for storing the information for a specific subsystem."""
     """Object for storing the information for a specific subsystem."""


     def __init__(self, name, base_class=None, declaration_file=None, implementation_file=None, root_path=None, full_path=False, xml=False):
     def __init__(self, name, base_class=None, static_id=None, declaration_file=None, implementation_file=None, root_path=None, full_path=False, xml=False):
         """Set up the object.
         """Set up the object.


Line 637: Line 642:
         @keyword base_class:            The name of the base class.
         @keyword base_class:            The name of the base class.
         @type base_class:              str
         @type base_class:              str
        @keyword static_id:            The value returned by staticSubsystemClassId().
        @type static_id:                str
         @keyword declaration_file:      The name of the file containing the subsystem declaration.
         @keyword declaration_file:      The name of the file containing the subsystem declaration.
         @type declaration_file:        str
         @type declaration_file:        str
Line 648: Line 655:
         @type xml:                      bool
         @type xml:                      bool
         """
         """
        # Initialisation.
        self.staticSubsystemClassId = None


         # Store the data.
         # Store the data.
         self.name = name
         self.name = name
         self.base_class = base_class
         self.base_class = base_class
        self.staticSubsystemClassId = static_id
         self.implementation_file = implementation_file
         self.implementation_file = implementation_file
         self.declaration_file = declaration_file
         self.declaration_file = declaration_file
Line 847: Line 852:
| lang  = c
| lang  = c
| script =  
| script =  
Primary subsystems (94):
Primary subsystems (90):
     <ADF : SGSubsystem staticSubsystemClassId is "adf" declared in "src/Instrumentation/adf.hxx", implemented in "src/Instrumentation/adf.cxx">
     <AbstractInstrument : SGSubsystem declared in "src/Instrumentation/AbstractInstrument.hxx", implemented in "src/Instrumentation/AbstractInstrument.cxx">
     <AirportDynamicsManager : SGSubsystem staticSubsystemClassId is "airport-dynamics" declared in "src/Airports/airportdynamicsmanager.hxx", implemented in "src/Airports/airportdynamicsmanager.cxx">
     <AirportDynamicsManager : SGSubsystem staticSubsystemClassId is "airport-dynamics" declared in "src/Airports/airportdynamicsmanager.hxx", implemented in "src/Airports/airportdynamicsmanager.cxx">
     <AirspeedIndicator : SGSubsystem staticSubsystemClassId is "airspeed-indicator" declared in "src/Instrumentation/airspeed_indicator.hxx", implemented in "src/Instrumentation/airspeed_indicator.cxx">
     <AirspeedIndicator : SGSubsystem staticSubsystemClassId is "airspeed-indicator" declared in "src/Instrumentation/airspeed_indicator.hxx", implemented in "src/Instrumentation/airspeed_indicator.cxx">
Line 856: Line 861:
     <AttitudeIndicator : SGSubsystem staticSubsystemClassId is "attitude-indicator" declared in "src/Instrumentation/attitude_indicator.hxx", implemented in "src/Instrumentation/attitude_indicator.cxx">
     <AttitudeIndicator : SGSubsystem staticSubsystemClassId is "attitude-indicator" declared in "src/Instrumentation/attitude_indicator.hxx", implemented in "src/Instrumentation/attitude_indicator.cxx">
     <Clock : SGSubsystem staticSubsystemClassId is "clock" declared in "src/Instrumentation/clock.hxx", implemented in "src/Instrumentation/clock.cxx">
     <Clock : SGSubsystem staticSubsystemClassId is "clock" declared in "src/Instrumentation/clock.hxx", implemented in "src/Instrumentation/clock.cxx">
    <CommRadio : SGSubsystem staticSubsystemClassId is "comm-radio" declared in "src/Instrumentation/commradio.hxx">
     <Component : SGSubsystem declared in "src/Autopilot/component.hxx", implemented in "src/Autopilot/component.cxx">
     <Component : SGSubsystem declared in "src/Autopilot/component.hxx", implemented in "src/Autopilot/component.cxx">
    <DCLGPS : SGSubsystem declared in "src/Instrumentation/dclgps.hxx", implemented in "src/Instrumentation/dclgps.cxx">
    <DME : SGSubsystem staticSubsystemClassId is "dme" declared in "src/Instrumentation/dme.hxx", implemented in "src/Instrumentation/dme.cxx">
     <Ephemeris : SGSubsystem staticSubsystemClassId is "ephemeris" declared in "src/Environment/ephemeris.hxx", implemented in "src/Environment/ephemeris.cxx">
     <Ephemeris : SGSubsystem staticSubsystemClassId is "ephemeris" declared in "src/Environment/ephemeris.hxx", implemented in "src/Environment/ephemeris.cxx">
     <FDMShell : SGSubsystem staticSubsystemClassId is "flight" declared in "src/FDM/fdm_shell.hxx", implemented in "src/FDM/fdm_shell.cxx">
     <FDMShell : SGSubsystem staticSubsystemClassId is "flight" declared in "src/FDM/fdm_shell.hxx", implemented in "src/FDM/fdm_shell.cxx">
Line 874: Line 876:
     <FGHttpd : SGSubsystem staticSubsystemClassId is "httpd" declared in "src/Network/http/httpd.hxx">
     <FGHttpd : SGSubsystem staticSubsystemClassId is "httpd" declared in "src/Network/http/httpd.hxx">
     <FGIO : SGSubsystem staticSubsystemClassId is "io" declared in "src/Main/fg_io.hxx", implemented in "src/Main/fg_io.cxx">
     <FGIO : SGSubsystem staticSubsystemClassId is "io" declared in "src/Main/fg_io.hxx", implemented in "src/Main/fg_io.cxx">
    <FGInstrumentMgr : SGSubsystem staticSubsystemClassId is "instrumentation" declared in "src/Instrumentation/instrument_mgr.hxx", implemented in "src/Instrumentation/instrument_mgr.cxx">
     <FGInterface : SGSubsystem declared in "src/FDM/flight.hxx", implemented in "src/FDM/flight.cxx">
     <FGInterface : SGSubsystem declared in "src/FDM/flight.hxx", implemented in "src/FDM/flight.cxx">
     <FGJoystickInput : SGSubsystem staticSubsystemClassId is "input-joystick" declared in "src/Input/FGJoystickInput.hxx", implemented in "src/Input/FGJoystickInput.cxx">
     <FGJoystickInput : SGSubsystem staticSubsystemClassId is "input-joystick" declared in "src/Input/FGJoystickInput.hxx", implemented in "src/Input/FGJoystickInput.cxx">
Line 881: Line 884:
     <FGLogger : SGSubsystem staticSubsystemClassId is "logger" declared in "src/Main/logger.hxx", implemented in "src/Main/logger.cxx">
     <FGLogger : SGSubsystem staticSubsystemClassId is "logger" declared in "src/Main/logger.hxx", implemented in "src/Main/logger.cxx">
     <FGMagVarManager : SGSubsystem staticSubsystemClassId is "magvar" declared in "src/Environment/magvarmanager.hxx", implemented in "src/Environment/magvarmanager.cxx">
     <FGMagVarManager : SGSubsystem staticSubsystemClassId is "magvar" declared in "src/Environment/magvarmanager.hxx", implemented in "src/Environment/magvarmanager.cxx">
    <FGMarkerBeacon : SGSubsystem staticSubsystemClassId is "marker-beacon" declared in "src/Instrumentation/marker_beacon.hxx", implemented in "src/Instrumentation/marker_beacon.cxx">
     <FGModelMgr : SGSubsystem staticSubsystemClassId is "model-manager" declared in "src/Model/modelmgr.hxx", implemented in "src/Model/modelmgr.cxx">
     <FGModelMgr : SGSubsystem staticSubsystemClassId is "model-manager" declared in "src/Model/modelmgr.hxx", implemented in "src/Model/modelmgr.cxx">
     <FGMouseInput : SGSubsystem staticSubsystemClassId is "input-mouse" declared in "src/Input/FGMouseInput.hxx", implemented in "src/Input/FGMouseInput.cxx">
     <FGMouseInput : SGSubsystem staticSubsystemClassId is "input-mouse" declared in "src/Input/FGMouseInput.hxx", implemented in "src/Input/FGMouseInput.cxx">
     <FGMultiplayMgr : SGSubsystem staticSubsystemClassId is "mp" declared in "src/MultiPlayer/multiplaymgr.hxx", implemented in "src/MultiPlayer/multiplaymgr.cxx">
     <FGMultiplayMgr : SGSubsystem staticSubsystemClassId is "mp" declared in "src/MultiPlayer/multiplaymgr.hxx", implemented in "src/MultiPlayer/multiplaymgr.cxx">
     <FGNasalSys : SGSubsystem staticSubsystemClassId is "nasal" declared in "src/Scripting/NasalSys.hxx", implemented in "src/Scripting/NasalSys.cxx">
     <FGNasalSys : SGSubsystem staticSubsystemClassId is "nasal" declared in "src/Scripting/NasalSys.hxx", implemented in "src/Scripting/NasalSys.cxx">
    <FGNavRadio : SGSubsystem declared in "src/Instrumentation/navradio.hxx", implemented in "src/Instrumentation/navradio.cxx">
     <FGPanel : SGSubsystem staticSubsystemClassId is "panel" declared in "utils/fgpanel/FGPanel.hxx", implemented in "utils/fgpanel/FGPanel.cxx">
     <FGPanel : SGSubsystem staticSubsystemClassId is "panel" declared in "utils/fgpanel/FGPanel.hxx", implemented in "utils/fgpanel/FGPanel.cxx">
     <FGPanelProtocol : SGSubsystem declared in "utils/fgpanel/FGPanelProtocol.hxx", implemented in "utils/fgpanel/FGPanelProtocol.cxx">
     <FGPanelProtocol : SGSubsystem staticSubsystemClassId is "panel-protocol" declared in "utils/fgpanel/FGPanelProtocol.hxx", implemented in "utils/fgpanel/FGPanelProtocol.cxx">
     <FGPrecipitationMgr : SGSubsystem staticSubsystemClassId is "precipitation" declared in "src/Environment/precipitation_mgr.hxx", implemented in "src/Environment/precipitation_mgr.cxx">
     <FGPrecipitationMgr : SGSubsystem staticSubsystemClassId is "precipitation" declared in "src/Environment/precipitation_mgr.hxx", implemented in "src/Environment/precipitation_mgr.cxx">
     <FGProperties : SGSubsystem staticSubsystemClassId is "properties" declared in "src/Main/fg_props.hxx", implemented in "src/Main/fg_props.cxx">
     <FGProperties : SGSubsystem staticSubsystemClassId is "properties" declared in "src/Main/fg_props.hxx", implemented in "src/Main/fg_props.cxx">
Line 917: Line 918:
     <MySub1 : SGSubsystem staticSubsystemClassId is "mysub" declared in "simgear/structure/subsystem_test.cxx">
     <MySub1 : SGSubsystem staticSubsystemClassId is "mysub" declared in "simgear/structure/subsystem_test.cxx">
     <NavDisplay : SGSubsystem staticSubsystemClassId is "navigation-display" declared in "src/Cockpit/NavDisplay.hxx", implemented in "src/Cockpit/NavDisplay.cxx">
     <NavDisplay : SGSubsystem staticSubsystemClassId is "navigation-display" declared in "src/Cockpit/NavDisplay.hxx", implemented in "src/Cockpit/NavDisplay.cxx">
     <NavRadio : SGSubsystem staticSubsystemClassId is "nav-radio" declared in "src/Instrumentation/newnavradio.hxx">
     <NavRadio : SGSubsystem staticSubsystemClassId is "nav-radio" declared in "src/Instrumentation/newnavradio.hxx", implemented in "src/Instrumentation/newnavradio.cxx">
     <NewGUI : SGSubsystem staticSubsystemClassId is "gui" declared in "src/GUI/new_gui.hxx", implemented in "src/GUI/new_gui.cxx">
     <NewGUI : SGSubsystem staticSubsystemClassId is "gui" declared in "src/GUI/new_gui.hxx", implemented in "src/GUI/new_gui.cxx">
     <PerformanceDB : SGSubsystem staticSubsystemClassId is "aircraft-performance-db" declared in "src/AIModel/performancedb.hxx", implemented in "src/AIModel/performancedb.cxx">
     <PerformanceDB : SGSubsystem staticSubsystemClassId is "aircraft-performance-db" declared in "src/AIModel/performancedb.hxx", implemented in "src/AIModel/performancedb.cxx">
Line 926: Line 927:
     <RealWxController : SGSubsystem declared in "src/Environment/realwx_ctrl.hxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <RealWxController : SGSubsystem declared in "src/Environment/realwx_ctrl.hxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <SGEventMgr : SGSubsystem staticSubsystemClassId is "events" declared in "simgear/structure/event_mgr.hxx", implemented in "simgear/structure/event_mgr.cxx">
     <SGEventMgr : SGSubsystem staticSubsystemClassId is "events" declared in "simgear/structure/event_mgr.hxx", implemented in "simgear/structure/event_mgr.cxx">
     <SGInterpolator : SGSubsystem declared in "simgear/misc/interpolator.hxx", implemented in "simgear/misc/interpolator.cxx">
     <SGInterpolator : SGSubsystem staticSubsystemClassId is "interpolator" declared in "simgear/misc/interpolator.hxx", implemented in "simgear/misc/interpolator.cxx">
     <SGPerformanceMonitor : SGSubsystem staticSubsystemClassId is "performance-mon" declared in "simgear/structure/SGPerfMon.hxx", implemented in "simgear/structure/SGPerfMon.cxx">
     <SGPerformanceMonitor : SGSubsystem staticSubsystemClassId is "performance-mon" declared in "simgear/structure/SGPerfMon.hxx", implemented in "simgear/structure/SGPerfMon.cxx">
     <SGSoundMgr : SGSubsystem staticSubsystemClassId is "sound" declared in "simgear/sound/soundmgr.hxx">
     <SGSoundMgr : SGSubsystem staticSubsystemClassId is "sound" declared in "simgear/sound/soundmgr.hxx">
     <SGSubsystemMgr : SGSubsystem declared in "simgear/structure/subsystem_mgr.hxx", implemented in "simgear/structure/subsystem_mgr.cxx">
     <SGSubsystemMgr : SGSubsystem staticSubsystemClassId is "subsystem-mgr" declared in "simgear/structure/subsystem_mgr.hxx", implemented in "simgear/structure/subsystem_mgr.cxx">
     <SGTerraSync : SGSubsystem staticSubsystemClassId is "terrasync" declared in "simgear/scene/tsync/terrasync.hxx", implemented in "simgear/scene/tsync/terrasync.cxx">
     <SGTerraSync : SGSubsystem staticSubsystemClassId is "terrasync" declared in "simgear/scene/tsync/terrasync.hxx", implemented in "simgear/scene/tsync/terrasync.cxx">
     <SlipSkidBall : SGSubsystem staticSubsystemClassId is "slip-skid-ball" declared in "src/Instrumentation/slip_skid_ball.hxx", implemented in "src/Instrumentation/slip_skid_ball.cxx">
     <SlipSkidBall : SGSubsystem staticSubsystemClassId is "slip-skid-ball" declared in "src/Instrumentation/slip_skid_ball.hxx", implemented in "src/Instrumentation/slip_skid_ball.cxx">
     <StaticSystem : SGSubsystem staticSubsystemClassId is "static" declared in "src/Systems/static.hxx", implemented in "src/Systems/static.cxx">
     <StaticSystem : SGSubsystem staticSubsystemClassId is "static" declared in "src/Systems/static.hxx", implemented in "src/Systems/static.cxx">
    <SwiftConnection : SGSubsystem staticSubsystemClassId is "swift" declared in "src/Network/Swift/swift_connection.hxx", implemented in "src/Network/Swift/swift_connection.cxx">
     <TACAN : SGSubsystem staticSubsystemClassId is "tacan" declared in "src/Instrumentation/tacan.hxx", implemented in "src/Instrumentation/tacan.cxx">
     <TACAN : SGSubsystem staticSubsystemClassId is "tacan" declared in "src/Instrumentation/tacan.hxx", implemented in "src/Instrumentation/tacan.cxx">
     <TCAS : SGSubsystem staticSubsystemClassId is "tcas" declared in "src/Instrumentation/tcas.hxx", implemented in "src/Instrumentation/tcas.cxx">
     <TCAS : SGSubsystem staticSubsystemClassId is "tcas" declared in "src/Instrumentation/tcas.hxx", implemented in "src/Instrumentation/tcas.cxx">
     <TimeManager : SGSubsystem staticSubsystemClassId is "time" declared in "src/Time/TimeManager.hxx", implemented in "src/Time/TimeManager.cxx">
     <TimeManager : SGSubsystem staticSubsystemClassId is "time" declared in "src/Time/TimeManager.hxx", implemented in "src/Time/TimeManager.cxx">
    <Transponder : SGSubsystem staticSubsystemClassId is "transponder" declared in "src/Instrumentation/transponder.hxx", implemented in "src/Instrumentation/transponder.cxx">
     <TurnIndicator : SGSubsystem staticSubsystemClassId is "turn-indicator" declared in "src/Instrumentation/turn_indicator.hxx", implemented in "src/Instrumentation/turn_indicator.cxx">
     <TurnIndicator : SGSubsystem staticSubsystemClassId is "turn-indicator" declared in "src/Instrumentation/turn_indicator.hxx", implemented in "src/Instrumentation/turn_indicator.cxx">
     <VacuumSystem : SGSubsystem staticSubsystemClassId is "vacuum" declared in "src/Systems/vacuum.hxx", implemented in "src/Systems/vacuum.cxx">
     <VacuumSystem : SGSubsystem staticSubsystemClassId is "vacuum" declared in "src/Systems/vacuum.hxx", implemented in "src/Systems/vacuum.cxx">
Line 943: Line 944:
     <wxRadarBg : SGSubsystem staticSubsystemClassId is "radar" declared in "src/Cockpit/wxradar.hxx", implemented in "src/Cockpit/wxradar.cxx">
     <wxRadarBg : SGSubsystem staticSubsystemClassId is "radar" declared in "src/Cockpit/wxradar.hxx", implemented in "src/Cockpit/wxradar.cxx">


Primary groups (9):
Primary groups (8):
     <Autopilot : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "autopilot" declared in "src/Autopilot/autopilot.hxx", implemented in "src/Autopilot/autopilot.cxx">
     <Autopilot : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "autopilot" declared in "src/Autopilot/autopilot.hxx", implemented in "src/Autopilot/autopilot.cxx">
     <CockpitDisplayManager : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "cockpit-displays" declared in "src/Cockpit/cockpitDisplayManager.hxx", implemented in "src/Cockpit/cockpitDisplayManager.cxx">
     <CockpitDisplayManager : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "cockpit-displays" declared in "src/Cockpit/cockpitDisplayManager.hxx", implemented in "src/Cockpit/cockpitDisplayManager.cxx">
     <FGEnvironmentMgr : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "environment" declared in "src/Environment/environment_mgr.hxx", implemented in "src/Environment/environment_mgr.cxx">
     <FGEnvironmentMgr : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "environment" declared in "src/Environment/environment_mgr.hxx", implemented in "src/Environment/environment_mgr.cxx">
     <FGInput : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "input" declared in "src/Input/input.hxx", implemented in "src/Input/input.cxx">
     <FGInput : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "input" declared in "src/Input/input.hxx", implemented in "src/Input/input.cxx">
    <FGInstrumentMgr : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "instrumentation" declared in "src/Instrumentation/instrument_mgr.hxx", implemented in "src/Instrumentation/instrument_mgr.cxx">
     <FGSystemMgr : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "systems" declared in "src/Systems/system_mgr.hxx", implemented in "src/Systems/system_mgr.cxx">
     <FGSystemMgr : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "systems" declared in "src/Systems/system_mgr.hxx", implemented in "src/Systems/system_mgr.cxx">
     <FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "xml-rules" declared in "src/Autopilot/autopilotgroup.hxx", implemented in "src/Autopilot/autopilotgroup.cxx">
     <FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "xml-rules" declared in "src/Autopilot/autopilotgroup.hxx", implemented in "src/Autopilot/autopilotgroup.cxx">
Line 954: Line 954:
     <TerrainSampler : SGSubsystemGroup : SGSubsystem declared in "src/Environment/terrainsampler.hxx">
     <TerrainSampler : SGSubsystemGroup : SGSubsystem declared in "src/Environment/terrainsampler.hxx">


Secondary subsystems (29):
Secondary subsystems (32):
    <ADF : AbstractInstrument : SGSubsystem staticSubsystemClassId is "adf" declared in "src/Instrumentation/adf.hxx", implemented in "src/Instrumentation/adf.cxx">
     <AnalogComponent : Component : SGSubsystem declared in "src/Autopilot/analogcomponent.hxx", implemented in "src/Autopilot/analogcomponent.cxx">
     <AnalogComponent : Component : SGSubsystem declared in "src/Autopilot/analogcomponent.hxx", implemented in "src/Autopilot/analogcomponent.cxx">
     <BasicRealWxController : RealWxController : SGSubsystem declared in "src/Environment/realwx_ctrl.cxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <BasicRealWxController : RealWxController : SGSubsystem declared in "src/Environment/realwx_ctrl.cxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <CanvasMgr : PropertyBasedMgr : SGSubsystem declared in "simgear/canvas/CanvasMgr.hxx", implemented in "simgear/canvas/CanvasMgr.cxx">
     <CanvasMgr : PropertyBasedMgr : SGSubsystem declared in "simgear/canvas/CanvasMgr.hxx", implemented in "simgear/canvas/CanvasMgr.cxx">
     <CommRadioImpl : CommRadio : SGSubsystem declared in "src/Instrumentation/commradio.cxx", implemented in "src/Instrumentation/commradio.cxx">
     <CommRadio : AbstractInstrument : SGSubsystem staticSubsystemClassId is "comm-radio" declared in "src/Instrumentation/commradio.hxx", implemented in "src/Instrumentation/commradio.cxx">
    <DME : AbstractInstrument : SGSubsystem staticSubsystemClassId is "dme" declared in "src/Instrumentation/dme.hxx", implemented in "src/Instrumentation/dme.cxx">
     <DigitalComponent : Component : SGSubsystem declared in "src/Autopilot/digitalcomponent.hxx", implemented in "src/Autopilot/digitalcomponent.cxx">
     <DigitalComponent : Component : SGSubsystem declared in "src/Autopilot/digitalcomponent.hxx", implemented in "src/Autopilot/digitalcomponent.cxx">
     <FGACMS : FGInterface : SGSubsystem staticSubsystemClassId is "acms" declared in "src/FDM/SP/ACMS.hxx", implemented in "src/FDM/SP/ACMS.cxx">
     <FGACMS : FGInterface : SGSubsystem staticSubsystemClassId is "acms" declared in "src/FDM/SP/ACMS.hxx", implemented in "src/FDM/SP/ACMS.cxx">
     <FGADA : FGInterface : SGSubsystem staticSubsystemClassId is "ada" declared in "src/FDM/SP/ADA.hxx", implemented in "src/FDM/SP/ADA.cxx">
     <FGADA : FGInterface : SGSubsystem staticSubsystemClassId is "ada" declared in "src/FDM/SP/ADA.hxx", implemented in "src/FDM/SP/ADA.cxx">
     <FGAISim : FGInterface : SGSubsystem declared in "src/FDM/SP/AISim.hpp", implemented in "src/FDM/SP/AISim.cpp">
     <FGAISim : FGInterface : SGSubsystem staticSubsystemClassId is "aisim" declared in "src/FDM/SP/AISim.hpp", implemented in "src/FDM/SP/AISim.cpp">
     <FGBalloonSim : FGInterface : SGSubsystem staticSubsystemClassId is "balloon" declared in "src/FDM/SP/Balloon.h", implemented in "src/FDM/SP/Balloon.cxx">
     <FGBalloonSim : FGInterface : SGSubsystem staticSubsystemClassId is "balloon" declared in "src/FDM/SP/Balloon.h", implemented in "src/FDM/SP/Balloon.cxx">
     <FGExternalNet : FGInterface : SGSubsystem staticSubsystemClassId is "network" declared in "src/FDM/ExternalNet/ExternalNet.hxx", implemented in "src/FDM/ExternalNet/ExternalNet.cxx">
     <FGExternalNet : FGInterface : SGSubsystem staticSubsystemClassId is "network" declared in "src/FDM/ExternalNet/ExternalNet.hxx", implemented in "src/FDM/ExternalNet/ExternalNet.cxx">
Line 973: Line 975:
     <FGMacOSXEventInput : FGEventInput : SGSubsystem staticSubsystemClassId is "input-event" declared in "src/Input/FGMacOSXEventInput.hxx", implemented in "src/Input/FGMacOSXEventInput.cxx">
     <FGMacOSXEventInput : FGEventInput : SGSubsystem staticSubsystemClassId is "input-event" declared in "src/Input/FGMacOSXEventInput.hxx", implemented in "src/Input/FGMacOSXEventInput.cxx">
     <FGMagicCarpet : FGInterface : SGSubsystem staticSubsystemClassId is "magic" declared in "src/FDM/SP/MagicCarpet.hxx", implemented in "src/FDM/SP/MagicCarpet.cxx">
     <FGMagicCarpet : FGInterface : SGSubsystem staticSubsystemClassId is "magic" declared in "src/FDM/SP/MagicCarpet.hxx", implemented in "src/FDM/SP/MagicCarpet.cxx">
    <FGMarkerBeacon : AbstractInstrument : SGSubsystem staticSubsystemClassId is "marker-beacon" declared in "src/Instrumentation/marker_beacon.hxx", implemented in "src/Instrumentation/marker_beacon.cxx">
    <FGNavRadio : AbstractInstrument : SGSubsystem staticSubsystemClassId is "old-navradio" declared in "src/Instrumentation/navradio.hxx", implemented in "src/Instrumentation/navradio.cxx">
     <FGNullFDM : FGInterface : SGSubsystem staticSubsystemClassId is "null" declared in "src/FDM/NullFDM.hxx", implemented in "src/FDM/NullFDM.cxx">
     <FGNullFDM : FGInterface : SGSubsystem staticSubsystemClassId is "null" declared in "src/FDM/NullFDM.hxx", implemented in "src/FDM/NullFDM.cxx">
     <FGReadablePanel : FGPanel : SGSubsystem declared in "utils/fgpanel/panel_io.hxx", implemented in "utils/fgpanel/panel_io.cxx">
     <FGReadablePanel : FGPanel : SGSubsystem staticSubsystemClassId is "readable-panel" declared in "utils/fgpanel/panel_io.hxx", implemented in "utils/fgpanel/panel_io.cxx">
     <FGSoundManager : SGSoundMgr : SGSubsystem staticSubsystemClassId is "sound" declared in "src/Sound/soundmanager.hxx", implemented in "src/Sound/soundmanager.cxx">
     <FGSoundManager : SGSoundMgr : SGSubsystem staticSubsystemClassId is "sound" declared in "src/Sound/soundmanager.hxx", implemented in "src/Sound/soundmanager.cxx">
     <FGUFO : FGInterface : SGSubsystem staticSubsystemClassId is "ufo" declared in "src/FDM/UFO.hxx", implemented in "src/FDM/UFO.cxx">
     <FGUFO : FGInterface : SGSubsystem staticSubsystemClassId is "ufo" declared in "src/FDM/UFO.hxx", implemented in "src/FDM/UFO.cxx">
     <KLN89 : DCLGPS : SGSubsystem staticSubsystemClassId is "kln89" declared in "src/Instrumentation/KLN89/kln89.hxx", implemented in "src/Instrumentation/KLN89/kln89.cxx">
     <LayerInterpolateControllerImplementation : LayerInterpolateController : SGSubsystem staticSubsystemClassId is "layer-interpolate-controller" declared in "src/Environment/environment_ctrl.cxx", implemented in "src/Environment/environment_ctrl.cxx">
    <LayerInterpolateControllerImplementation : LayerInterpolateController : SGSubsystem declared in "src/Environment/environment_ctrl.cxx", implemented in "src/Environment/environment_ctrl.cxx">
     <MongooseHttpd : FGHttpd : SGSubsystem staticSubsystemClassId is "mongoose-httpd" declared in "src/Network/http/httpd.cxx", implemented in "src/Network/http/httpd.cxx">
     <MongooseHttpd : FGHttpd : SGSubsystem declared in "src/Network/http/httpd.cxx", implemented in "src/Network/http/httpd.cxx">
    <NavRadioImpl : NavRadio : SGSubsystem declared in "src/Instrumentation/newnavradio.cxx", implemented in "src/Instrumentation/newnavradio.cxx">
     <StateMachineComponent : Component : SGSubsystem staticSubsystemClassId is "state-machine" declared in "src/Autopilot/autopilot.cxx">
     <StateMachineComponent : Component : SGSubsystem staticSubsystemClassId is "state-machine" declared in "src/Autopilot/autopilot.cxx">
    <Transponder : AbstractInstrument : SGSubsystem staticSubsystemClassId is "transponder" declared in "src/Instrumentation/transponder.hxx", implemented in "src/Instrumentation/transponder.cxx">
     <YASim : FGInterface : SGSubsystem staticSubsystemClassId is "yasim" declared in "src/FDM/YASim/YASim.hxx", implemented in "src/FDM/YASim/YASim.cxx">
     <YASim : FGInterface : SGSubsystem staticSubsystemClassId is "yasim" declared in "src/FDM/YASim/YASim.hxx", implemented in "src/FDM/YASim/YASim.cxx">
     <agRadar : wxRadarBg : SGSubsystem staticSubsystemClassId is "air-ground-radar" declared in "src/Cockpit/agradar.hxx", implemented in "src/Cockpit/agradar.cxx">
     <agRadar : wxRadarBg : SGSubsystem staticSubsystemClassId is "air-ground-radar" declared in "src/Cockpit/agradar.hxx", implemented in "src/Cockpit/agradar.cxx">


Secondary groups (2):
Secondary groups (2):
     <FGXMLAutopilotGroupImplementation : FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem declared in "src/Autopilot/autopilotgroup.cxx", implemented in "src/Autopilot/autopilotgroup.cxx">
     <FGXMLAutopilotGroupImplementation : FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "xml-autopilot-group" declared in "src/Autopilot/autopilotgroup.cxx", implemented in "src/Autopilot/autopilotgroup.cxx">
     <TerrainSamplerImplementation : TerrainSampler : SGSubsystemGroup : SGSubsystem declared in "src/Environment/terrainsampler.cxx", implemented in "src/Environment/terrainsampler.cxx">
     <TerrainSamplerImplementation : TerrainSampler : SGSubsystemGroup : SGSubsystem staticSubsystemClassId is "terrain-sampler" declared in "src/Environment/terrainsampler.cxx", implemented in "src/Environment/terrainsampler.cxx">


Tertiary subsystems (7):
Tertiary subsystems (7):
Line 993: Line 996:
     <DigitalFilter : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "filter" declared in "src/Autopilot/digitalfilter.hxx", implemented in "src/Autopilot/digitalfilter.cxx">
     <DigitalFilter : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "filter" declared in "src/Autopilot/digitalfilter.hxx", implemented in "src/Autopilot/digitalfilter.cxx">
     <Logic : DigitalComponent : Component : SGSubsystem staticSubsystemClassId is "logic" declared in "src/Autopilot/logic.hxx", implemented in "src/Autopilot/logic.cxx">
     <Logic : DigitalComponent : Component : SGSubsystem staticSubsystemClassId is "logic" declared in "src/Autopilot/logic.hxx", implemented in "src/Autopilot/logic.cxx">
     <NoaaMetarRealWxController : BasicRealWxController : RealWxController : SGSubsystem declared in "src/Environment/realwx_ctrl.cxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <NoaaMetarRealWxController : BasicRealWxController : RealWxController : SGSubsystem staticSubsystemClassId is "noaa-metar-real-wx-controller" declared in "src/Environment/realwx_ctrl.cxx", implemented in "src/Environment/realwx_ctrl.cxx">
     <PIDController : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "pid-controller" declared in "src/Autopilot/pidcontroller.hxx", implemented in "src/Autopilot/pidcontroller.cxx">
     <PIDController : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "pid-controller" declared in "src/Autopilot/pidcontroller.hxx", implemented in "src/Autopilot/pidcontroller.cxx">
     <PISimpleController : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "pi-simple-controller" declared in "src/Autopilot/pisimplecontroller.hxx", implemented in "src/Autopilot/pisimplecontroller.cxx">
     <PISimpleController : AnalogComponent : Component : SGSubsystem staticSubsystemClassId is "pi-simple-controller" declared in "src/Autopilot/pisimplecontroller.hxx", implemented in "src/Autopilot/pisimplecontroller.cxx">
Line 1,001: Line 1,004:
     <FlipFlop : Logic : DigitalComponent : Component : SGSubsystem staticSubsystemClassId is "flipflop" declared in "src/Autopilot/flipflop.hxx", implemented in "src/Autopilot/flipflop.cxx">
     <FlipFlop : Logic : DigitalComponent : Component : SGSubsystem staticSubsystemClassId is "flipflop" declared in "src/Autopilot/flipflop.hxx", implemented in "src/Autopilot/flipflop.cxx">


Counts: 131 subsystem classes (119 flightgear, 12 simgear).
Counts: 130 subsystem classes (118 flightgear, 12 simgear).
Counts: 11 subsystem groups (10 flightgear, 1 simgear).
Counts: 10 subsystem groups (9 flightgear, 1 simgear).
Counts: 142 subsystem classes and groups (129 flightgear, 13 simgear).
Counts: 140 subsystem classes and groups (127 flightgear, 13 simgear).
}}
}}


Line 1,014: Line 1,017:
<?xml version="1.0"?>
<?xml version="1.0"?>
<subsystems>
<subsystems>
   <primary_subsystems count="94">
   <primary_subsystems count="90">
     <ADF>
     <AbstractInstrument>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>adf</staticSubsystemClassId>
       <declaration>src/Instrumentation/AbstractInstrument.hxx</declaration>
       <declaration>src/Instrumentation/adf.hxx</declaration>
       <implementation>src/Instrumentation/AbstractInstrument.cxx</implementation>
       <implementation>src/Instrumentation/adf.cxx</implementation>
     </AbstractInstrument>
     </ADF>
     <AirportDynamicsManager>
     <AirportDynamicsManager>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,062: Line 1,064:
       <implementation>src/Instrumentation/clock.cxx</implementation>
       <implementation>src/Instrumentation/clock.cxx</implementation>
     </Clock>
     </Clock>
    <CommRadio>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>comm-radio</staticSubsystemClassId>
      <declaration>src/Instrumentation/commradio.hxx</declaration>
    </CommRadio>
     <Component>
     <Component>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,072: Line 1,069:
       <implementation>src/Autopilot/component.cxx</implementation>
       <implementation>src/Autopilot/component.cxx</implementation>
     </Component>
     </Component>
    <DCLGPS>
      <inheritance>SGSubsystem</inheritance>
      <declaration>src/Instrumentation/dclgps.hxx</declaration>
      <implementation>src/Instrumentation/dclgps.cxx</implementation>
    </DCLGPS>
    <DME>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>dme</staticSubsystemClassId>
      <declaration>src/Instrumentation/dme.hxx</declaration>
      <implementation>src/Instrumentation/dme.cxx</implementation>
    </DME>
     <Ephemeris>
     <Ephemeris>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,165: Line 1,151:
       <implementation>src/Main/fg_io.cxx</implementation>
       <implementation>src/Main/fg_io.cxx</implementation>
     </FGIO>
     </FGIO>
    <FGInstrumentMgr>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>instrumentation</staticSubsystemClassId>
      <declaration>src/Instrumentation/instrument_mgr.hxx</declaration>
      <implementation>src/Instrumentation/instrument_mgr.cxx</implementation>
    </FGInstrumentMgr>
     <FGInterface>
     <FGInterface>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,206: Line 1,198:
       <implementation>src/Environment/magvarmanager.cxx</implementation>
       <implementation>src/Environment/magvarmanager.cxx</implementation>
     </FGMagVarManager>
     </FGMagVarManager>
    <FGMarkerBeacon>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>marker-beacon</staticSubsystemClassId>
      <declaration>src/Instrumentation/marker_beacon.hxx</declaration>
      <implementation>src/Instrumentation/marker_beacon.cxx</implementation>
    </FGMarkerBeacon>
     <FGModelMgr>
     <FGModelMgr>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,236: Line 1,222:
       <implementation>src/Scripting/NasalSys.cxx</implementation>
       <implementation>src/Scripting/NasalSys.cxx</implementation>
     </FGNasalSys>
     </FGNasalSys>
    <FGNavRadio>
      <inheritance>SGSubsystem</inheritance>
      <declaration>src/Instrumentation/navradio.hxx</declaration>
      <implementation>src/Instrumentation/navradio.cxx</implementation>
    </FGNavRadio>
     <FGPanel>
     <FGPanel>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,249: Line 1,230:
     <FGPanelProtocol>
     <FGPanelProtocol>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>panel-protocol</staticSubsystemClassId>
       <declaration>utils/fgpanel/FGPanelProtocol.hxx</declaration>
       <declaration>utils/fgpanel/FGPanelProtocol.hxx</declaration>
       <implementation>utils/fgpanel/FGPanelProtocol.cxx</implementation>
       <implementation>utils/fgpanel/FGPanelProtocol.cxx</implementation>
Line 1,418: Line 1,400:
       <staticSubsystemClassId>nav-radio</staticSubsystemClassId>
       <staticSubsystemClassId>nav-radio</staticSubsystemClassId>
       <declaration>src/Instrumentation/newnavradio.hxx</declaration>
       <declaration>src/Instrumentation/newnavradio.hxx</declaration>
      <implementation>src/Instrumentation/newnavradio.cxx</implementation>
     </NavRadio>
     </NavRadio>
     <NewGUI>
     <NewGUI>
Line 1,466: Line 1,449:
     <SGInterpolator>
     <SGInterpolator>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>interpolator</staticSubsystemClassId>
       <declaration>simgear/misc/interpolator.hxx</declaration>
       <declaration>simgear/misc/interpolator.hxx</declaration>
       <implementation>simgear/misc/interpolator.cxx</implementation>
       <implementation>simgear/misc/interpolator.cxx</implementation>
Line 1,482: Line 1,466:
     <SGSubsystemMgr>
     <SGSubsystemMgr>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>subsystem-mgr</staticSubsystemClassId>
       <declaration>simgear/structure/subsystem_mgr.hxx</declaration>
       <declaration>simgear/structure/subsystem_mgr.hxx</declaration>
       <implementation>simgear/structure/subsystem_mgr.cxx</implementation>
       <implementation>simgear/structure/subsystem_mgr.cxx</implementation>
Line 1,503: Line 1,488:
       <implementation>src/Systems/static.cxx</implementation>
       <implementation>src/Systems/static.cxx</implementation>
     </StaticSystem>
     </StaticSystem>
    <SwiftConnection>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>swift</staticSubsystemClassId>
      <declaration>src/Network/Swift/swift_connection.hxx</declaration>
      <implementation>src/Network/Swift/swift_connection.cxx</implementation>
    </SwiftConnection>
     <TACAN>
     <TACAN>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,521: Line 1,512:
       <implementation>src/Time/TimeManager.cxx</implementation>
       <implementation>src/Time/TimeManager.cxx</implementation>
     </TimeManager>
     </TimeManager>
    <Transponder>
      <inheritance>SGSubsystem</inheritance>
      <staticSubsystemClassId>transponder</staticSubsystemClassId>
      <declaration>src/Instrumentation/transponder.hxx</declaration>
      <implementation>src/Instrumentation/transponder.cxx</implementation>
    </Transponder>
     <TurnIndicator>
     <TurnIndicator>
       <inheritance>SGSubsystem</inheritance>
       <inheritance>SGSubsystem</inheritance>
Line 1,558: Line 1,543:
     </wxRadarBg>
     </wxRadarBg>
   </primary_subsystems>
   </primary_subsystems>
   <primary_groups count="9">
   <primary_groups count="8">
     <Autopilot>
     <Autopilot>
       <inheritance>SGSubsystemGroup : SGSubsystem</inheritance>
       <inheritance>SGSubsystemGroup : SGSubsystem</inheritance>
Line 1,583: Line 1,568:
       <implementation>src/Input/input.cxx</implementation>
       <implementation>src/Input/input.cxx</implementation>
     </FGInput>
     </FGInput>
    <FGInstrumentMgr>
      <inheritance>SGSubsystemGroup : SGSubsystem</inheritance>
      <staticSubsystemClassId>instrumentation</staticSubsystemClassId>
      <declaration>src/Instrumentation/instrument_mgr.hxx</declaration>
      <implementation>src/Instrumentation/instrument_mgr.cxx</implementation>
    </FGInstrumentMgr>
     <FGSystemMgr>
     <FGSystemMgr>
       <inheritance>SGSubsystemGroup : SGSubsystem</inheritance>
       <inheritance>SGSubsystemGroup : SGSubsystem</inheritance>
Line 1,611: Line 1,590:
     </TerrainSampler>
     </TerrainSampler>
   </primary_groups>
   </primary_groups>
   <secondary_subsystems count="29">
   <secondary_subsystems count="32">
    <ADF>
      <inheritance>AbstractInstrument : SGSubsystem</inheritance>
      <staticSubsystemClassId>adf</staticSubsystemClassId>
      <declaration>src/Instrumentation/adf.hxx</declaration>
      <implementation>src/Instrumentation/adf.cxx</implementation>
    </ADF>
     <AnalogComponent>
     <AnalogComponent>
       <inheritance>Component : SGSubsystem</inheritance>
       <inheritance>Component : SGSubsystem</inheritance>
Line 1,627: Line 1,612:
       <implementation>simgear/canvas/CanvasMgr.cxx</implementation>
       <implementation>simgear/canvas/CanvasMgr.cxx</implementation>
     </CanvasMgr>
     </CanvasMgr>
     <CommRadioImpl>
     <CommRadio>
       <inheritance>CommRadio : SGSubsystem</inheritance>
       <inheritance>AbstractInstrument : SGSubsystem</inheritance>
       <declaration>src/Instrumentation/commradio.cxx</declaration>
      <staticSubsystemClassId>comm-radio</staticSubsystemClassId>
       <declaration>src/Instrumentation/commradio.hxx</declaration>
       <implementation>src/Instrumentation/commradio.cxx</implementation>
       <implementation>src/Instrumentation/commradio.cxx</implementation>
     </CommRadioImpl>
     </CommRadio>
    <DME>
      <inheritance>AbstractInstrument : SGSubsystem</inheritance>
      <staticSubsystemClassId>dme</staticSubsystemClassId>
      <declaration>src/Instrumentation/dme.hxx</declaration>
      <implementation>src/Instrumentation/dme.cxx</implementation>
    </DME>
     <DigitalComponent>
     <DigitalComponent>
       <inheritance>Component : SGSubsystem</inheritance>
       <inheritance>Component : SGSubsystem</inheritance>
Line 1,651: Line 1,643:
     <FGAISim>
     <FGAISim>
       <inheritance>FGInterface : SGSubsystem</inheritance>
       <inheritance>FGInterface : SGSubsystem</inheritance>
      <staticSubsystemClassId>aisim</staticSubsystemClassId>
       <declaration>src/FDM/SP/AISim.hpp</declaration>
       <declaration>src/FDM/SP/AISim.hpp</declaration>
       <implementation>src/FDM/SP/AISim.cpp</implementation>
       <implementation>src/FDM/SP/AISim.cpp</implementation>
Line 1,714: Line 1,707:
       <implementation>src/FDM/SP/MagicCarpet.cxx</implementation>
       <implementation>src/FDM/SP/MagicCarpet.cxx</implementation>
     </FGMagicCarpet>
     </FGMagicCarpet>
    <FGMarkerBeacon>
      <inheritance>AbstractInstrument : SGSubsystem</inheritance>
      <staticSubsystemClassId>marker-beacon</staticSubsystemClassId>
      <declaration>src/Instrumentation/marker_beacon.hxx</declaration>
      <implementation>src/Instrumentation/marker_beacon.cxx</implementation>
    </FGMarkerBeacon>
    <FGNavRadio>
      <inheritance>AbstractInstrument : SGSubsystem</inheritance>
      <staticSubsystemClassId>old-navradio</staticSubsystemClassId>
      <declaration>src/Instrumentation/navradio.hxx</declaration>
      <implementation>src/Instrumentation/navradio.cxx</implementation>
    </FGNavRadio>
     <FGNullFDM>
     <FGNullFDM>
       <inheritance>FGInterface : SGSubsystem</inheritance>
       <inheritance>FGInterface : SGSubsystem</inheritance>
Line 1,722: Line 1,727:
     <FGReadablePanel>
     <FGReadablePanel>
       <inheritance>FGPanel : SGSubsystem</inheritance>
       <inheritance>FGPanel : SGSubsystem</inheritance>
      <staticSubsystemClassId>readable-panel</staticSubsystemClassId>
       <declaration>utils/fgpanel/panel_io.hxx</declaration>
       <declaration>utils/fgpanel/panel_io.hxx</declaration>
       <implementation>utils/fgpanel/panel_io.cxx</implementation>
       <implementation>utils/fgpanel/panel_io.cxx</implementation>
Line 1,737: Line 1,743:
       <implementation>src/FDM/UFO.cxx</implementation>
       <implementation>src/FDM/UFO.cxx</implementation>
     </FGUFO>
     </FGUFO>
    <KLN89>
      <inheritance>DCLGPS : SGSubsystem</inheritance>
      <staticSubsystemClassId>kln89</staticSubsystemClassId>
      <declaration>src/Instrumentation/KLN89/kln89.hxx</declaration>
      <implementation>src/Instrumentation/KLN89/kln89.cxx</implementation>
    </KLN89>
     <LayerInterpolateControllerImplementation>
     <LayerInterpolateControllerImplementation>
       <inheritance>LayerInterpolateController : SGSubsystem</inheritance>
       <inheritance>LayerInterpolateController : SGSubsystem</inheritance>
      <staticSubsystemClassId>layer-interpolate-controller</staticSubsystemClassId>
       <declaration>src/Environment/environment_ctrl.cxx</declaration>
       <declaration>src/Environment/environment_ctrl.cxx</declaration>
       <implementation>src/Environment/environment_ctrl.cxx</implementation>
       <implementation>src/Environment/environment_ctrl.cxx</implementation>
Line 1,750: Line 1,751:
     <MongooseHttpd>
     <MongooseHttpd>
       <inheritance>FGHttpd : SGSubsystem</inheritance>
       <inheritance>FGHttpd : SGSubsystem</inheritance>
      <staticSubsystemClassId>mongoose-httpd</staticSubsystemClassId>
       <declaration>src/Network/http/httpd.cxx</declaration>
       <declaration>src/Network/http/httpd.cxx</declaration>
       <implementation>src/Network/http/httpd.cxx</implementation>
       <implementation>src/Network/http/httpd.cxx</implementation>
     </MongooseHttpd>
     </MongooseHttpd>
    <NavRadioImpl>
      <inheritance>NavRadio : SGSubsystem</inheritance>
      <declaration>src/Instrumentation/newnavradio.cxx</declaration>
      <implementation>src/Instrumentation/newnavradio.cxx</implementation>
    </NavRadioImpl>
     <StateMachineComponent>
     <StateMachineComponent>
       <inheritance>Component : SGSubsystem</inheritance>
       <inheritance>Component : SGSubsystem</inheritance>
Line 1,763: Line 1,760:
       <declaration>src/Autopilot/autopilot.cxx</declaration>
       <declaration>src/Autopilot/autopilot.cxx</declaration>
     </StateMachineComponent>
     </StateMachineComponent>
    <Transponder>
      <inheritance>AbstractInstrument : SGSubsystem</inheritance>
      <staticSubsystemClassId>transponder</staticSubsystemClassId>
      <declaration>src/Instrumentation/transponder.hxx</declaration>
      <implementation>src/Instrumentation/transponder.cxx</implementation>
    </Transponder>
     <YASim>
     <YASim>
       <inheritance>FGInterface : SGSubsystem</inheritance>
       <inheritance>FGInterface : SGSubsystem</inheritance>
Line 1,779: Line 1,782:
     <FGXMLAutopilotGroupImplementation>
     <FGXMLAutopilotGroupImplementation>
       <inheritance>FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem</inheritance>
       <inheritance>FGXMLAutopilotGroup : SGSubsystemGroup : SGSubsystem</inheritance>
      <staticSubsystemClassId>xml-autopilot-group</staticSubsystemClassId>
       <declaration>src/Autopilot/autopilotgroup.cxx</declaration>
       <declaration>src/Autopilot/autopilotgroup.cxx</declaration>
       <implementation>src/Autopilot/autopilotgroup.cxx</implementation>
       <implementation>src/Autopilot/autopilotgroup.cxx</implementation>
Line 1,784: Line 1,788:
     <TerrainSamplerImplementation>
     <TerrainSamplerImplementation>
       <inheritance>TerrainSampler : SGSubsystemGroup : SGSubsystem</inheritance>
       <inheritance>TerrainSampler : SGSubsystemGroup : SGSubsystem</inheritance>
      <staticSubsystemClassId>terrain-sampler</staticSubsystemClassId>
       <declaration>src/Environment/terrainsampler.cxx</declaration>
       <declaration>src/Environment/terrainsampler.cxx</declaration>
       <implementation>src/Environment/terrainsampler.cxx</implementation>
       <implementation>src/Environment/terrainsampler.cxx</implementation>
Line 1,809: Line 1,814:
     <NoaaMetarRealWxController>
     <NoaaMetarRealWxController>
       <inheritance>BasicRealWxController : RealWxController : SGSubsystem</inheritance>
       <inheritance>BasicRealWxController : RealWxController : SGSubsystem</inheritance>
      <staticSubsystemClassId>noaa-metar-real-wx-controller</staticSubsystemClassId>
       <declaration>src/Environment/realwx_ctrl.cxx</declaration>
       <declaration>src/Environment/realwx_ctrl.cxx</declaration>
       <implementation>src/Environment/realwx_ctrl.cxx</implementation>
       <implementation>src/Environment/realwx_ctrl.cxx</implementation>
Line 1,846: Line 1,852:
     </simgear>
     </simgear>
     <flightgear>
     <flightgear>
       <subsystem_classes>119</subsystem_classes>
       <subsystem_classes>118</subsystem_classes>
       <subsystem_groups>10</subsystem_groups>
       <subsystem_groups>9</subsystem_groups>
       <total>129</total>
       <total>127</total>
     </flightgear>
     </flightgear>
     <combined>
     <combined>
       <subsystem_classes>131</subsystem_classes>
       <subsystem_classes>130</subsystem_classes>
       <subsystem_groups>11</subsystem_groups>
       <subsystem_groups>10</subsystem_groups>
       <total>142</total>
       <total>140</total>
     </combined>
     </combined>
   </counts>
   </counts>
Line 2,015: Line 2,021:
src/Input/input.cxx
src/Input/input.cxx
src/Input/input.hxx
src/Input/input.hxx
src/Instrumentation/AbstractInstrument.cxx
src/Instrumentation/AbstractInstrument.hxx
src/Instrumentation/adf.cxx
src/Instrumentation/adf.cxx
src/Instrumentation/adf.hxx
src/Instrumentation/adf.hxx
Line 2,025: Line 2,033:
src/Instrumentation/clock.cxx
src/Instrumentation/clock.cxx
src/Instrumentation/clock.hxx
src/Instrumentation/clock.hxx
src/Instrumentation/commradio.cxx
src/Instrumentation/commradio.cxx
src/Instrumentation/commradio.cxx
src/Instrumentation/commradio.hxx
src/Instrumentation/commradio.hxx
src/Instrumentation/dclgps.cxx
src/Instrumentation/dclgps.hxx
src/Instrumentation/dme.cxx
src/Instrumentation/dme.cxx
src/Instrumentation/dme.hxx
src/Instrumentation/dme.hxx
Line 2,048: Line 2,053:
src/Instrumentation/inst_vertical_speed_indicator.cxx
src/Instrumentation/inst_vertical_speed_indicator.cxx
src/Instrumentation/inst_vertical_speed_indicator.hxx
src/Instrumentation/inst_vertical_speed_indicator.hxx
src/Instrumentation/KLN89/kln89.cxx
src/Instrumentation/KLN89/kln89.hxx
src/Instrumentation/kr_87.cxx
src/Instrumentation/kr_87.cxx
src/Instrumentation/kr_87.hxx
src/Instrumentation/kr_87.hxx
Line 2,062: Line 2,065:
src/Instrumentation/navradio.cxx
src/Instrumentation/navradio.cxx
src/Instrumentation/navradio.hxx
src/Instrumentation/navradio.hxx
src/Instrumentation/newnavradio.cxx
src/Instrumentation/newnavradio.cxx
src/Instrumentation/newnavradio.cxx
src/Instrumentation/newnavradio.hxx
src/Instrumentation/newnavradio.hxx
Line 2,102: Line 2,104:
src/Network/http/httpd.cxx
src/Network/http/httpd.cxx
src/Network/http/httpd.hxx
src/Network/http/httpd.hxx
src/Network/Swift/swift_connection.cxx
src/Network/Swift/swift_connection.hxx
src/Scenery/scenery.cxx
src/Scenery/scenery.cxx
src/Scenery/scenery.hxx
src/Scenery/scenery.hxx
Line 2,205: Line 2,209:
/flightgear/src/flightgear-flightgear/src/Input/FGMacOSXEventInput.hxx
/flightgear/src/flightgear-flightgear/src/Input/FGMacOSXEventInput.hxx
/flightgear/src/flightgear-flightgear/src/Input/FGMouseInput.hxx
/flightgear/src/flightgear-flightgear/src/Input/FGMouseInput.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/AbstractInstrument.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/adf.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/adf.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/airspeed_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/airspeed_indicator.hxx
Line 2,210: Line 2,215:
/flightgear/src/flightgear-flightgear/src/Instrumentation/attitude_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/attitude_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/clock.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/clock.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/commradio.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/commradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/commradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dclgps.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dme.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dme.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/gps.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/gps.hxx
Line 2,220: Line 2,223:
/flightgear/src/flightgear-flightgear/src/Instrumentation/heading_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/heading_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/HUD/HUD.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/HUD/HUD.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/instrument_mgr.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/inst_vertical_speed_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/inst_vertical_speed_indicator.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/KLN89/kln89.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/kr_87.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/kr_87.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/mag_compass.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/mag_compass.hxx
Line 2,228: Line 2,231:
/flightgear/src/flightgear-flightgear/src/Instrumentation/mrg.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/mrg.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/navradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/navradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/newnavradio.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/newnavradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/newnavradio.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/rad_alt.hxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/rad_alt.hxx
Line 2,249: Line 2,251:
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.cxx
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.cxx
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.hxx
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.hxx
/flightgear/src/flightgear-flightgear/src/Network/Swift/swift_connection.hxx
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.hxx
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.hxx
/flightgear/src/flightgear-flightgear/src/Scripting/NasalSys.hxx
/flightgear/src/flightgear-flightgear/src/Scripting/NasalSys.hxx
Line 2,330: Line 2,333:
/flightgear/src/flightgear-flightgear/src/Input/FGMacOSXEventInput.cxx
/flightgear/src/flightgear-flightgear/src/Input/FGMacOSXEventInput.cxx
/flightgear/src/flightgear-flightgear/src/Input/FGMouseInput.cxx
/flightgear/src/flightgear-flightgear/src/Input/FGMouseInput.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/AbstractInstrument.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/adf.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/adf.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/airspeed_indicator.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/airspeed_indicator.cxx
Line 2,336: Line 2,340:
/flightgear/src/flightgear-flightgear/src/Instrumentation/clock.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/clock.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/commradio.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/commradio.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dclgps.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dme.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/dme.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/gps.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/gps.cxx
Line 2,344: Line 2,347:
/flightgear/src/flightgear-flightgear/src/Instrumentation/heading_indicator_fg.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/heading_indicator_fg.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/HUD/HUD.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/HUD/HUD.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/instrument_mgr.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/inst_vertical_speed_indicator.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/inst_vertical_speed_indicator.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/KLN89/kln89.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/kr_87.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/kr_87.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/mag_compass.cxx
/flightgear/src/flightgear-flightgear/src/Instrumentation/mag_compass.cxx
Line 2,371: Line 2,374:
/flightgear/src/flightgear-flightgear/src/Network/HTTPClient.cxx
/flightgear/src/flightgear-flightgear/src/Network/HTTPClient.cxx
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.cxx
/flightgear/src/flightgear-flightgear/src/Network/http/httpd.cxx
/flightgear/src/flightgear-flightgear/src/Network/Swift/swift_connection.cxx
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.cxx
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.cxx
/flightgear/src/flightgear-flightgear/src/Scripting/NasalSys.cxx
/flightgear/src/flightgear-flightgear/src/Scripting/NasalSys.cxx
Line 2,391: Line 2,395:


{{collapsible script
{{collapsible script
| type  = Grep for a subsystem dependency (SGSky)
| type  = Grep output
| title  = Searching for SGSky dependencies for all subsystems.
| title  = Searching for SGSky dependencies for all subsystems.
| intro  = This is an example to show how to use the file listing outputs of the script to hunt down subsystem dependencies.
| intro  = This is an example to show how to use the file listing outputs of the script to hunt down subsystem dependencies.
Line 2,431: Line 2,435:
/flightgear/src/flightgear-flightgear/src/Environment/environment_mgr.hxx:class SGSky;
/flightgear/src/flightgear-flightgear/src/Environment/environment_mgr.hxx:class SGSky;
/flightgear/src/flightgear-flightgear/src/Environment/environment_mgr.hxx:    SGSky* _sky;
/flightgear/src/flightgear-flightgear/src/Environment/environment_mgr.hxx:    SGSky* _sky;
/flightgear/src/flightgear-flightgear/src/Environment/precipitation_mgr.cxx:        {"SGSky", SGSubsystemMgr::Dependency::NONSUBSYSTEM_HARD}
/flightgear/src/flightgear-flightgear/src/Environment/precipitation_mgr.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Environment/precipitation_mgr.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.cxx:        {"SGSky", SGSubsystemMgr::Dependency::NONSUBSYSTEM_HARD}
/flightgear/src/flightgear-flightgear/src/Environment/precipitation_mgr.cxx:    {"SGSky", SGSubsystemMgr::Dependency::NONSUBSYSTEM_HARD}{{cbr}});
/flightgear/src/flightgear-flightgear/src/Scenery/scenery.cxx:        {"SGSky", SGSubsystemMgr::Dependency::NONSUBSYSTEM_HARD}{{cbr}});
/flightgear/src/flightgear-flightgear/src/Time/light.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Time/light.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Time/light.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Time/light.cxx:    SGSky* thesky = globals->get_renderer()->getSky();
/flightgear/src/flightgear-flightgear/src/Time/light.hxx:            {"SGSky", SGSubsystemMgr::Dependency::NONSUBSYSTEM_HARD}
}}
}}


{{collapsible script
{{collapsible script
| type  = Grep output
| type  = Grep output
| title  = Searching for all subsystem instantiations.
| title  = Searching for all direct subsystem instantiations.
| lang  = c
| lang  = c
| script =  
| script =  
$ ./find_subsystems.py --classes {{!}} sort {{!}} xargs -I{} grep "new.*{}" -rI src
$ ./find_subsystems.py --classes 2> /dev/null {{!}} xargs -I{} grep -nrI "new.*\<{}\>" src {{!}} sort -u
Finding all primary classes in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:134:     componentForge["pid-controller"]      = new CreateAndConfigureFunctor<PIDController,Component>();
Finding all primary groups in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:135:      componentForge["pi-simple-controller"] = new CreateAndConfigureFunctor<PISimpleController,Component>();
Finding all secondary classes in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:136:     componentForge["predict-simple"]      = new CreateAndConfigureFunctor<Predictor,Component>();
Finding all secondary groups in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:137:     componentForge["filter"]              = new CreateAndConfigureFunctor<DigitalFilter,Component>();
Finding all tertiary classes in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:138:     componentForge["logic"]                = new CreateAndConfigureFunctor<Logic,Component>();
Finding all tertiary groups in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:139:      componentForge["flipflop"]            = new CreateAndConfigureFunctor<FlipFlop,Component>();
Finding all quaternary classes in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilot.cxx:87:    return new StateMachineComponent(cfg, prop_root);
Finding all quaternary groups in: /flightgear/src/flightgear-simgear
src/Autopilot/autopilotgroup.cxx:229: return new FGXMLAutopilotGroupImplementation(nodeName);
Finding all primary classes in: /flightgear/src/flightgear-flightgear
src/Autopilot/autopilotgroup.cxx:82:  Autopilot* ap = new Autopilot(apNode, config);
Finding all primary groups in: /flightgear/src/flightgear-flightgear
src/Cockpit/cockpitDisplayManager.cxx:100:            set_subsystem( id, new wxRadarBg ( node ) );
Finding all secondary classes in: /flightgear/src/flightgear-flightgear
src/Cockpit/cockpitDisplayManager.cxx:103:            set_subsystem( id, new GroundRadar( node ) );
Skipping: 'src/FDM/SP/AISim.hpp:       : public FGInterface'
src/Cockpit/cockpitDisplayManager.cxx:106:            set_subsystem( id, new agRadar( node ) );
Finding all secondary groups in: /flightgear/src/flightgear-flightgear
src/Cockpit/cockpitDisplayManager.cxx:109:            set_subsystem( id, new NavDisplay( node ) );
Finding all tertiary classes in: /flightgear/src/flightgear-flightgear
src/Cockpit/panel_io.cxx:657:  FGPanel * panel = new FGPanel();
Finding all tertiary groups in: /flightgear/src/flightgear-flightgear
src/Environment/environment_ctrl.cxx:349:    return new LayerInterpolateControllerImplementation( rootNode );
Finding all quaternary classes in: /flightgear/src/flightgear-flightgear
src/Environment/environment_mgr.cxx:93set_subsystem("precipitation", new FGPrecipitationMgr);
Finding all quaternary groups in: /flightgear/src/flightgear-flightgear
src/Environment/environment_mgr.cxx:96: set_subsystem("ridgelift", new FGRidgeLift);
src/Instrumentation/instrument_mgr.cxx:           set_subsystem( id, new ADF( node ), 0.15 );
src/Environment/environment_mgr.cxx:98:  set_subsystem("magvar", new FGMagVarManager);
src/Cockpit/cockpitDisplayManager.cxx:           set_subsystem( id, new agRadar( node ) );
src/Environment/realwx_ctrl.cxx:515:  return new NoaaMetarRealWxController( rootNode );
src/Main/fg_init.cxx:   globals->add_new_subsystem<flightgear::AirportDynamicsManager>();
src/Environment/terrainsampler.cxx:381:        set_subsystem( areaSubsystemName(i), new AreaSampler( areaNodes[i] ) );
src/Instrumentation/instrument_mgr.cxx:           set_subsystem( id, new AirspeedIndicator( node ) );
src/Environment/terrainsampler.cxx:430:    return new TerrainSamplerImplementation( rootNode );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new Altimeter( node, "altimeter" ) );
src/FDM/fdm_shell.cxx:278:   _impl = new FGUFO( dt );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new Altimeter( node, "encoder" ), 0.15 );
src/FDM/fdm_shell.cxx:282:    _impl = new FGNullFDM( dt );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new RadarAltimeter( node ) );
src/FDM/fdm_shell.cxx:315:    _impl = new FGExternalNet( dt, host, port1, port2, port3 );
src/Environment/terrainsampler.cxx:       set_subsystem( areaSubsystemName(i), new AreaSampler( areaNodes[i] ) );
src/FDM/fdm_shell.cxx:318:   // /* old */ _impl = new FGExternalPipe( dt, pipe_path );
src/Instrumentation/instrument_mgr.cxx:           set_subsystem( id, new AttitudeIndicator( node ) );
src/FDM/fdm_shell.cxx:332:    _impl = new FGExternalPipe( dt, pipe_path, pipe_protocol );
src/Autopilot/autopilotgroup.cxx: Autopilot* ap = new Autopilot(apNode, config);
src/FDM/fdm_shell.cxx:334:    _impl = new FGNullFDM( dt );
src/Autopilot/autopilotgroup.cxx:  return new FGXMLAutopilotGroupImplementation(nodeName);
src/FDM/fdm_shell.cxx:338:        _impl = new FGLaRCsim( dt );
src/AIModel/submodel.cxx:           sm->x_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:345:        _impl = new FGJSBsim( dt );
src/AIModel/submodel.cxx:           sm->y_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:352:        _impl = new FGADA( dt );
src/AIModel/submodel.cxx:           sm->z_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:354:        _impl = new FGACMS( dt );
src/AIModel/submodel.cxx:           sm->yaw_offset  = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:356:        _impl = new FGBalloonSim( dt );
src/AIModel/submodel.cxx:           sm->pitch_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:358:        _impl = new FGMagicCarpet( dt );
src/AIModel/submodel.cxx:           sm->x_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:360://      _impl = new FGAISim( dt );
src/AIModel/submodel.cxx:           sm->y_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/fdm_shell.cxx:370:        _impl = new YASim( dt );
src/AIModel/submodel.cxx:           sm->z_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/JSBSim/FGFDMExec.cpp:230Models[eInput]            = new FGInput(this);
src/AIModel/submodel.cxx:           sm->yaw_offset  = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/JSBSim/models/FGInput.cpp:79:  // are not intended to create new properties. For that reason, FGInput
src/AIModel/submodel.cxx:           sm->pitch_offset = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/FDM/YASim/Airplane.cpp:802:               // For new YASim, the solver drag factor is only applied to
src/AIModel/submodel.cxx:        sm->azimuth_error  = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/Input/input.cxx:65:    set_subsystem( FGMouseInput::staticSubsystemClassId(), new FGMouseInput() );
src/AIModel/submodel.cxx:        sm->elevation_error = new FGXMLAutopilot::InputValue(*prop_root, b ? *b : n);
src/Input/input.cxx:71:    set_subsystem( "input-keyboard", new FGKeyboardInput() );
src/AIModel/submodel.cxx:        sm->cd_randomness  = new FGXMLAutopilot::InputValue(*prop_root, *b);
src/Input/input.cxx:78:    set_subsystem( "input-joystick", new FGJoystickInput() );
src/AIModel/submodel.cxx:        sm->life_randomness = new FGXMLAutopilot::InputValue(*prop_root, *b);
src/Input/input.cxx:94:    set_subsystem( "input-event-hid", new FGHIDEventInput() );
src/Main/fg_init.cxx:   globals->add_subsystem("Canvas", new CanvasMgr, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:812:    mgr->add("performance-mon", new SGPerformanceMonitor(mgr, fgGetNode("/sim/performance-monitor", true)));
src/Main/fg_init.cxx:   globals->add_subsystem("Canvas", new CanvasMgr, SGSubsystemMgr::DISPLAY);
src/Main/globals.cxx:147:    subsystem_mgr( new SGSubsystemMgr ),
src/Instrumentation/instrument_mgr.cxx:           set_subsystem( id, new Clock( node ), 0.25 );
src/Main/globals.cxx:148:    event_mgr( new SGEventMgr ),
src/Main/fg_init.cxx:   globals->add_subsystem("cockpit-displays", new flightgear::CockpitDisplayManager, SGSubsystemMgr::DISPLAY);
src/Network/http/httpd.cxx:642:  return new MongooseHttpd(configNode);
src/Instrumentation/commradio.cxxreturn new CommRadioImpl(rootNode);
src/Systems/system_mgr.cxx:77:                          new FGElectricalSystem( node ) );
src/Instrumentation/commradio.cxxreturn new CommRadioImpl(rootNode);
src/Systems/system_mgr.cxx:80:                          new PitotSystem( node ) );
src/Autopilot/autopilot.cxx:    return new StateMachineComponent(cfg, prop_root);
src/Systems/system_mgr.cxx:83:                          new StaticSystem( node ) );
src/Autopilot/autopilot.cxx:     componentForge["pid-controller"]      = new CreateAndConfigureFunctor<PIDController,Component>();
src/Systems/system_mgr.cxx:86:                          new VacuumSystem( node ) );
src/Autopilot/autopilot.cxx:     componentForge["pi-simple-controller"] = new CreateAndConfigureFunctor<PISimpleController,Component>();
src/Viewer/view.cxx:170:        v = new View ( FG_LOOKAT, from_model, from_model_index,
src/Autopilot/autopilot.cxx:     componentForge["predict-simple"]      = new CreateAndConfigureFunctor<Predictor,Component>();
src/Viewer/view.cxx:182:       v = new View ( FG_LOOKFROM, from_model, from_model_index,
src/Autopilot/autopilot.cxx:     componentForge["filter"]              = new CreateAndConfigureFunctor<DigitalFilter,Component>();
}}
src/Autopilot/autopilot.cxx:     componentForge["logic"]                = new CreateAndConfigureFunctor<Logic,Component>();
 
src/Autopilot/autopilot.cxx:     componentForge["flipflop"]            = new CreateAndConfigureFunctor<FlipFlop,Component>();
== Refactoring ==
src/GUI/QQuickDrawable.cxx:    d->qmlComponent = new QQmlComponent(d->qmlEngine, url);
 
src/Autopilot/digitalfilter.cxx: return new DigitalFilterType();
To check that all subsystems on a branch have been updated or refactored:
src/Autopilot/autopilot.cxx:     componentForge["filter"]              = new CreateAndConfigureFunctor<DigitalFilter,Component>();
 
src/Instrumentation/instrument_mgr.cxx:           set_subsystem( id, new DME( node ), 1.0 );
src/Instrumentation/dme.cxx:       _audioIdent = new DMEAudioIdent( temp.str() );
src/Instrumentation/rnav_waypt_controller.cxx:   return new DMEInterceptCtl(aRNAV, aWpt);
src/Navaids/route.cxx:   r = new DMEIntercept(aOwner);
src/Navaids/LevelDXML.cxx:   wp = new DMEIntercept(owner, _wayptName, pos, _courseOrHeading, _dmeDistance);
src/FDM/JSBSim/FGFDMExec.cpp: // Populate that childData element with a new FDMExec object
src/FDM/JSBSim/FGFDMExec.cpp: child->exec = new FGFDMExec(Root, FDMctr);
src/FDM/JSBSim/JSBSim.cpp:  FDMExec = new JSBSim::FGFDMExec();
src/FDM/JSBSim/JSBSim.cpp:    trimmer = new JSBSim::FGTrim( FDMExec );
src/FDM/JSBSim/initialization/FGTrim.h:    FGFDMExec* FDMExec = new FGFDMExec();
src/FDM/JSBSim/initialization/FGTrim.h:    FGInitialCondition* fgic = new FGInitialCondition(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    FGOutputTextFile* OutputTextFile = new FGOutputTextFile(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    FGOutputTextFile* OutputTextFile = new FGOutputTextFile(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputSocket(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputFG(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGUDPOutputSocket(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputTextFile(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputTextFile(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputSocket(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGOutputFG(FDMExec);
src/FDM/JSBSim/models/FGOutput.cpp:    Output = new FGUDPOutputSocket(FDMExec);
src/FDM/JSBSim/models/FGGroundReactions.cpp:    lGear[idx] = new FGLGear(contact_element, FDMExec, num++, in);
src/FDM/JSBSim/models/FGExternalReactions.cpp:    Forces.push_back(new FGExternalForce(FDMExec));
src/FDM/JSBSim/models/FGExternalReactions.cpp:    Forces.push_back(new FGExternalForce(FDMExec));
src/FDM/JSBSim/models/FGInput.cpp:    Input = new FGInputSocket(FDMExec);
src/FDM/JSBSim/models/FGInput.cpp:    Input = new FGUDPInputSocket(FDMExec);
src/FDM/JSBSim/models/FGPropulsion.cpp:    Tanks.push_back(new FGTank(FDMExec, tank_element, numTanks));
src/FDM/JSBSim/models/FGPropulsion.cpp:        Engines.push_back(new FGPiston(FDMExec, element, numEngines, in));
src/FDM/JSBSim/models/FGPropulsion.cpp:        Engines.push_back(new FGTurbine(FDMExec, element, numEngines, in));
src/FDM/JSBSim/models/FGPropulsion.cpp:        Engines.push_back(new FGTurboProp(FDMExec, element, numEngines, in));
src/FDM/JSBSim/models/FGPropulsion.cpp:        Engines.push_back(new FGRocket(FDMExec, element, numEngines, in));
src/FDM/JSBSim/models/FGPropulsion.cpp:        Engines.push_back(new FGElectric(FDMExec, element, numEngines, in));
src/FDM/JSBSim/models/FGBuoyantForces.cpp:    Cells.push_back(new FGGasCell(FDMExec, gas_cell_element, Cells.size(), in));
src/FDM/JSBSim/JSBSim.cxx:    fdmex = new FGFDMExec( PropertyManager );
src/FDM/JSBSim/FGFDMExec.h:    fdmex = new FGFDMExec( ... );
src/FDM/JSBSim/FGFDMExec.h:    FDMExec = new JSBSim::FGFDMExec();
src/Main/fg_init.cxx:    globals->add_new_subsystem<Ephemeris>();
src/Environment/ephemeris.cxx:  _impl.reset(new SGEphemeris(ephem_data_path.local8BitStr()));
src/Main/fg_init.cxx:    globals->add_subsystem("flight", new FDMShell, SGSubsystemMgr::FDM);
src/FDM/fdm_shell.cxx:        _impl = new FGACMS( dt );
src/FDM/fdm_shell.cxx:        _impl = new FGADA( dt );
src/Main/fg_init.cxx:    globals->add_subsystem("ai-model", new FGAIManager, SGSubsystemMgr::POST_FDM);
src/FDM/fdm_shell.cxx://      _impl = new FGAISim( dt );
src/Main/fg_init.cxx:    globals->add_subsystem("ATC", new FGATCManager, SGSubsystemMgr::POST_FDM);
src/FDM/fdm_shell.cxx:        _impl = new FGBalloonSim( dt );
src/Main/fg_init.cxx:    globals->add_subsystem("fgcom", new FGCom);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGControls>(SGSubsystemMgr::GENERAL);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGDNSClient>();
src/Systems/system_mgr.cxx:                          new FGElectricalSystem( node ) );
src/Main/fg_init.cxx:    globals->add_subsystem("environment", new FGEnvironmentMgr);
src/Instrumentation/testgps.cxx: // FGEnvironmentMgr* envMgr = new FGEnvironmentMgr;
src/FDM/fdm_shell.cxx:    _impl = new FGExternalNet( dt, host, port1, port2, port3 );
src/FDM/fdm_shell.cxx:    // /* old */ _impl = new FGExternalPipe( dt, pipe_path );
src/FDM/fdm_shell.cxx:    _impl = new FGExternalPipe( dt, pipe_path, pipe_protocol );
src/Main/fg_init.cxx:    globals->add_subsystem("history", new FGFlightHistory);
src/Input/FGHIDEventInput.cxx:    d(new FGHIDEventInputPrivate)
src/Input/input.cxx:    set_subsystem( "input-event-hid", new FGHIDEventInput() );
src/Main/fg_init.cxx:        globals->add_new_subsystem<FGHTTPClient>();
src/GUI/QtLauncher.cxx:    FGHTTPClient* http = globals->add_new_subsystem<FGHTTPClient>();
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGInput>(SGSubsystemMgr::GENERAL);
src/FDM/JSBSim/FGFDMExec.cpp:  Models[eInput]            = new FGInput(this);
src/FDM/JSBSim/models/FGInput.cpp:  // are not intended to create new properties. For that reason, FGInput
src/FDM/JSBSim/models/FGInput.cpp:    Input = new FGInputSocket(FDMExec);
src/Input/FGEventInput.cxx:  return new FGInputEvent( device, node );
src/Main/fg_init.cxx:    globals->add_subsystem("instrumentation", new FGInstrumentMgr, SGSubsystemMgr::FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("prop-interpolator", new FGInterpolator, SGSubsystemMgr::INIT);
src/Main/fg_init.cxx:    globals->add_subsystem( "io", new FGIO );
src/Input/input.cxx:    set_subsystem( "input-joystick", new FGJoystickInput() );
src/FDM/fdm_shell.cxx:        _impl = new FGJSBsim( dt );
src/Input/input.cxx:    set_subsystem( "input-keyboard", new FGKeyboardInput() );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new FGKR_87( node ) );
src/FDM/fdm_shell.cxx:        _impl = new FGLaRCsim( dt );
src/Viewer/renderer.cxx:    lightSource->setUpdateCallback(new FGLightSourceUpdateCallback);
src/Viewer/renderer.cxx:    sunLight->setUpdateCallback(new FGLightSourceUpdateCallback(true));
src/Viewer/renderer.cxx:    lightModel->setUpdateCallback(new FGLightModelUpdateCallback);
src/Main/fg_init.cxx:    globals->add_subsystem("logger", new FGLogger);
src/Input/FGMacOSXEventInput.cxx:    d(new FGMacOSXEventInputPrivate)
src/FDM/fdm_shell.cxx:        _impl = new FGMagicCarpet( dt );
src/Environment/environment_mgr.cxx:  set_subsystem("magvar", new FGMagVarManager);
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new FGMarkerBeacon( node ), 0.2 );
src/Navaids/testnavs.cxx:    FGMarkerBeacons *current_beacons = new FGMarkerBeacons;
src/Navaids/NavDataCache.cxx:      return new FGMarkerBeaconRecord(rowId, ty, runway, pos);
src/Input/input.cxx:    set_subsystem( FGMouseInput::staticSubsystemClassId(), new FGMouseInput() );
src/Input/FGMouseInput.cxx:  d.reset(new FGMouseInputPrivate());
src/Main/fg_init.cxx:    globals->add_subsystem("mp", new FGMultiplayMgr, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    FGNasalSys* nasal = globals->add_new_subsystem<FGNasalSys>(SGSubsystemMgr::INIT);
src/Instrumentation/newnavradio.cxx:    return new FGNavRadio( rootNode );
src/FDM/fdm_shell.cxx:    _impl = new FGNullFDM( dt );
src/FDM/fdm_shell.cxx:    _impl = new FGNullFDM( dt );
src/Model/panelnode.cxx:    userData->setPickCallback(new FGPanelPickCallback(panel));
src/Model/panelnode.cxx:  FGPanelNode* drawable = new FGPanelNode;
src/Model/panelnode.cxx:  ps->setUpdateCallback(new FGPanelSwitchCallback(drawable));
src/Model/panelnode.cxx:  FGPanelNode* drawable = new FGPanelNode(n);
src/Cockpit/panel_io.cxx:  FGPanelAction * action = new FGPanelAction(button, x, y, w, h, repeatable);
src/Cockpit/panel_io.cxx:  FGPanelTransformation * t = new FGPanelTransformation;
src/Cockpit/panel_io.cxx:  FGPanel * panel = new FGPanel();
src/Environment/environment_mgr.cxx:  set_subsystem("precipitation", new FGPrecipitationMgr);
src/Main/fg_init.cxx:    globals->add_subsystem("properties", new FGProperties);
src/Main/fg_init.cxx:    globals->add_subsystem("replay", new FGReplay);
src/Environment/environment_mgr.cxx:  set_subsystem("ridgelift", new FGRidgeLift);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGRouteMgr>();
src/Instrumentation/testgps.cxx:  FGRouteMgr* rm = new FGRouteMgr;
src/Main/main.cxx:        globals->add_new_subsystem<FGScenery>(SGSubsystemMgr::DISPLAY);
src/Viewer/fgviewer.cxx:    FGScenery* scenery = globals->add_new_subsystem<FGScenery>();
src/Viewer/renderer.cxx:    sw->setUpdateCallback(new FGScenerySwitchCallback);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGSoundManager>(SGSubsystemMgr::SOUND);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGSoundManager>(SGSubsystemMgr::SOUND);
src/Main/fg_init.cxx:    globals->add_subsystem("submodel-mgr", new FGSubmodelMgr, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("systems", new FGSystemMgr, SGSubsystemMgr::FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("traffic-manager", new FGTrafficManager, SGSubsystemMgr::POST_FDM);
src/FDM/fdm_shell.cxx:    _impl = new FGUFO( dt );
src/Main/fg_init.cxx:    globals->add_subsystem("voice", new FGVoiceMgr, SGSubsystemMgr::DISPLAY);
src/Autopilot/autopilotgroup.cxx:  return new FGXMLAutopilotGroupImplementation(nodeName);
src/Autopilot/autopilotgroup.cxx:  return new FGXMLAutopilotGroupImplementation(nodeName);
src/Autopilot/autopilot.cxx:      componentForge["flipflop"]            = new CreateAndConfigureFunctor<FlipFlop,Component>();
src/Autopilot/flipflop.cxx:    componentForge["RS"] = new CreateAndConfigureFunctor<RSFlipFlopImplementation,FlipFlopImplementation>();
src/Autopilot/flipflop.cxx:    componentForge["SR"] = new CreateAndConfigureFunctor<SRFlipFlopImplementation,FlipFlopImplementation>();
src/Autopilot/flipflop.cxx:    componentForge["JK"] = new CreateAndConfigureFunctor<JKFlipFlopImplementation,FlipFlopImplementation>();
src/Autopilot/flipflop.cxx:    componentForge["D"]  = new CreateAndConfigureFunctor<DFlipFlopImplementation, FlipFlopImplementation>();
src/Autopilot/flipflop.cxx:    componentForge["T"]  = new CreateAndConfigureFunctor<TFlipFlopImplementation, FlipFlopImplementation>();
src/Autopilot/flipflop.cxx:    componentForge["monostable"]  = new CreateAndConfigureFunctor<MonoFlopImplementation, FlipFlopImplementation>();
src/Instrumentation/instrument_mgr.cxx:    set_subsystem("gps[0]", new GPS(nd, true /* default GPS mode */));
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new GPS( node, true /* default GPS mode */ ) );
src/Instrumentation/KLN89/kln89_page_fpl.cxx:                GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89_page_fpl.cxx:                GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89_page_fpl.cxx:                GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89.cxx:            GPSFlightPlan* fp = new GPSFlightPlan;
src/Instrumentation/KLN89/kln89_page_apt.cxx:                          GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89_page_apt.cxx:                                          wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89_page_apt.cxx:                          GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/KLN89/kln89_page_apt.cxx:                                          wp = new GPSWaypoint;
src/Instrumentation/dclgps.cxx:  return new GPSWaypoint(aPos->ident(),
src/Instrumentation/dclgps.cxx: _approachFP = new GPSFlightPlan;
src/Instrumentation/dclgps.cxx:                                                                                        wp = new GPSWaypoint;
src/Instrumentation/dclgps.cxx:                                                                                wp = new GPSWaypoint;
src/Instrumentation/dclgps.cxx:                                                                                        fp = new GPSFlightPlan;
src/Instrumentation/dclgps.cxx:                                                                        wp = new GPSWaypoint;
src/Instrumentation/dclgps.cxx:                                                                                fp = new GPSFlightPlan;
src/Instrumentation/dclgps.cxx: if(fp == NULL) fp = new GPSFlightPlan;
src/Instrumentation/dclgps.cxx:        GPSWaypoint* wp = new GPSWaypoint;
src/Instrumentation/testgps.cxx:  GPS* gps = new GPS(nd);
src/Cockpit/cockpitDisplayManager.cxx:            set_subsystem( id, new GroundRadar( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new GSDI( node ) );
src/Main/fg_init.cxx:    globals->add_subsystem("CanvasGUI", new GUIMgr, SGSubsystemMgr::DISPLAY);
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new HeadingIndicator( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new HeadingIndicatorFG( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new HeadingIndicatorDG( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new HeadingIndicatorDG( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new HeadingIndicatorFG( node ) );
src/Main/fg_init.cxx:    globals->add_subsystem("hud", new HUD, SGSubsystemMgr::DISPLAY);
src/Viewer/renderer.cxx:  virtual osg::Object* cloneType() const { return new SGHUDDrawable; }
src/Viewer/renderer.cxx:  virtual osg::Object* clone(const osg::CopyOp&) const { return new SGHUDDrawable; }
src/Viewer/renderer.cxx:        geode->addDrawable(new SGHUDDrawable);
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new InstVerticalSpeedIndicator( node ) );
src/Instrumentation/KLN89/kln89_page_act.cxx:  _aptPage = new KLN89AptPage(parent);
src/Instrumentation/KLN89/kln89_page_act.cxx:  _vorPage = new KLN89VorPage(parent);
src/Instrumentation/KLN89/kln89_page_act.cxx:  _ndbPage = new KLN89NDBPage(parent);
src/Instrumentation/KLN89/kln89_page_act.cxx:  _intPage = new KLN89IntPage(parent);
src/Instrumentation/KLN89/kln89_page_act.cxx:  _usrPage = new KLN89UsrPage(parent);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* apt_page = new KLN89AptPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* vor_page = new KLN89VorPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* ndb_page = new KLN89NDBPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* int_page = new KLN89IntPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* usr_page = new KLN89UsrPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* act_page = new KLN89ActPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* nav_page = new KLN89NavPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* fpl_page = new KLN89FplPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* cal_page = new KLN89CalPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* set_page = new KLN89SetPage(this);
src/Instrumentation/KLN89/kln89.cxx:    KLN89Page* oth_page = new KLN89OthPage(this);
src/Instrumentation/KLN89/kln89.cxx:    _alt_page = new KLN89AltPage(this);
src/Instrumentation/KLN89/kln89.cxx:    _dir_page = new KLN89DirPage(this);
src/Instrumentation/KLN89/kln89.cxx:    _nrst_page = new KLN89NrstPage(this);
src/Instrumentation/dclgps.hxx:// up between current FG code and new KLN89-specific code and removed.
src/Instrumentation/dclgps.cxx:// up between current FG code and new KLN89-specific code and removed.
src/Cockpit/panel_io.cxx:                        gps = new KLN89(instrument);
src/Environment/environment_ctrl.cxx:    return new LayerInterpolateControllerImplementation( rootNode );
src/Environment/environment_ctrl.cxx:    return new LayerInterpolateControllerImplementation( rootNode );
src/Autopilot/autopilot.cxx:      componentForge["logic"]                = new CreateAndConfigureFunctor<Logic,Component>();
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new MagCompass( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new MasterReferenceGyro( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new MK_VIII( node ), 0.2);
src/Network/http/httpd.cxx:  return new MongooseHttpd(configNode);
src/Cockpit/cockpitDisplayManager.cxx:            set_subsystem( id, new NavDisplay( node ) );
src/Instrumentation/newnavradio.cxx:        return new NavRadioImpl( rootNode );
src/Instrumentation/newnavradio.cxx:    return new FGNavRadio( rootNode );
src/Instrumentation/newnavradio.cxx:        return new NavRadioImpl( rootNode );
src/Main/fg_init.cxx:    globals->add_subsystem("gui", new NewGUI, SGSubsystemMgr::INIT);
src/Environment/realwx_ctrl.cxx:  return new NoaaMetarRealWxController( rootNode );
src/Main/fg_init.cxx:    globals->add_new_subsystem<PerformanceDB>(SGSubsystemMgr::POST_FDM);
src/Autopilot/autopilot.cxx:      componentForge["pid-controller"]      = new CreateAndConfigureFunctor<PIDController,Component>();
src/Autopilot/autopilot.cxx:      componentForge["pi-simple-controller"] = new CreateAndConfigureFunctor<PISimpleController,Component>();
src/Systems/system_mgr.cxx:                          new PitotSystem( node ) );
src/Autopilot/autopilot.cxx:      componentForge["predict-simple"]      = new CreateAndConfigureFunctor<Predictor,Component>();
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new RadarAltimeter( node ) );
src/Environment/realwx_ctrl.cxx:  return new NoaaMetarRealWxController( rootNode );
src/Main/globals.cxx:    event_mgr( new SGEventMgr ),
src/Main/fg_init.cxx:            new SGPerformanceMonitor(globals->get_subsystem_mgr(),
src/Main/main.cxx:        globals->add_new_subsystem<TimeManager>(SGSubsystemMgr::INIT);
src/Main/main.cxx:        globals->add_new_subsystem<FGScenery>(SGSubsystemMgr::DISPLAY);
src/Main/globals.cxx:    subsystem_mgr( new SGSubsystemMgr ),
src/Main/globals.hxx:    T* add_new_subsystem (SGSubsystemMgr::GroupType
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGSoundManager>(SGSubsystemMgr::SOUND);
src/Main/fg_init.cxx:    globals->add_subsystem("prop-interpolator", new FGInterpolator, SGSubsystemMgr::INIT);
src/Main/fg_init.cxx:    globals->add_subsystem("flight", new FDMShell, SGSubsystemMgr::FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("systems", new FGSystemMgr, SGSubsystemMgr::FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("instrumentation", new FGInstrumentMgr, SGSubsystemMgr::FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("hud", new HUD, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:    globals->add_subsystem("cockpit-displays", new flightgear::CockpitDisplayManager, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:    globals->add_subsystem("gui", new NewGUI, SGSubsystemMgr::INIT);
src/Main/fg_init.cxx:    globals->add_subsystem("Canvas", new CanvasMgr, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:    globals->add_subsystem("CanvasGUI", new GUIMgr, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:    globals->add_new_subsystem<PerformanceDB>(SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("ATC", new FGATCManager, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("mp", new FGMultiplayMgr, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("ai-model", new FGAIManager, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("submodel-mgr", new FGSubmodelMgr, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_subsystem("traffic-manager", new FGTrafficManager, SGSubsystemMgr::POST_FDM);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGControls>(SGSubsystemMgr::GENERAL);
src/Main/fg_init.cxx:    globals->add_new_subsystem<FGInput>(SGSubsystemMgr::GENERAL);
src/Main/fg_init.cxx:    globals->add_subsystem("voice", new FGVoiceMgr, SGSubsystemMgr::DISPLAY);
src/Main/fg_init.cxx:    FGNasalSys* nasal = globals->add_new_subsystem<FGNasalSys>(SGSubsystemMgr::INIT);
src/Main/main.cxx:    simgear::SGTerraSync* terra_sync = new simgear::SGTerraSync();
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new SlipSkidBall( node ), 0.03 );
src/Autopilot/autopilot.cxx:    return new StateMachineComponent(cfg, prop_root);
src/Systems/system_mgr.cxx:                          new StaticSystem( node ) );
src/Main/fg_init.cxx:  FGTACANList *channellist = new FGTACANList;
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new TACAN( node ), 0.2 );
src/Navaids/navdb.cxx:        FGTACANRecord *r = new FGTACANRecord;
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new TCAS( node ), 0.2);
src/Environment/terrainsampler.cxx:    return new TerrainSamplerImplementation( rootNode );
src/Environment/terrainsampler.cxx:    return new TerrainSamplerImplementation( rootNode );
src/Main/main.cxx:        globals->add_new_subsystem<TimeManager>(SGSubsystemMgr::INIT);
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new Transponder( node ), 0.2 );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new TurnIndicator( node ) );
src/Systems/system_mgr.cxx:                          new VacuumSystem( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new VerticalSpeedIndicator( node ) );
src/Instrumentation/instrument_mgr.cxx:            set_subsystem( id, new InstVerticalSpeedIndicator( node ) );
src/Viewer/CameraGroup.hxx:          viewInverse( new osg::Uniform( "fg_ViewMatrixInverse",osg::Matrixf() ) ),
src/Viewer/CameraGroup.hxx:          view( new osg::Uniform( "fg_ViewMatrix",osg::Matrixf() ) ),
src/Viewer/fgviewer.cxx:    viewer.addEventHandler(new osgViewer::HelpHandler);
src/Viewer/fgviewer.cxx:    viewer.addEventHandler(new osgViewer::StatsHandler);
src/Viewer/fgviewer.cxx:    // viewer.addEventHandler(new osgViewer::ThreadingHandler);
src/Viewer/fgviewer.cxx:    viewer.addEventHandler(new osgViewer::LODScaleHandler);
src/Viewer/fgviewer.cxx:    viewer.addEventHandler(new osgViewer::ScreenCaptureHandler);
src/Viewer/view.cxx:        v = new View ( FG_LOOKAT, from_model, from_model_index,
src/Viewer/view.cxx:        v = new View ( FG_LOOKFROM, from_model, from_model_index,
src/Viewer/renderer.cxx:    camera->setViewport( new osg::Viewport );
src/Viewer/renderer.cxx:    camera->setViewport(new Viewport);
src/Viewer/renderer.cxx:    camera->setViewport( new osg::Viewport );
src/Viewer/renderer.cxx:    camera->setViewport(new Viewport);
src/Viewer/fg_os_osgviewer.cxx:    viewer = new osgViewer::Viewer;
src/Viewer/CameraGroup.cxx:    camera->setViewport(new Viewport);
src/Viewer/CameraGroup.cxx:    info->viewportListener = new CameraViewportListener(info, viewportNode, window->gc->getTraits());
src/Viewer/CameraGroup.cxx:    camera->setViewport(new Viewport);
src/Viewer/CameraGroup.cxx:    result->viewportListener = new CameraViewportListener(result, viewportNode,
src/Viewer/WindowBuilder.cxx:        traits->inheritedWindowData = new osgViewer::GraphicsWindowCocoa::WindowData(flags);
src/Viewer/PUICamera.cxx:    _resizeCullCallback = new UpdateViewportAndFBOAfterTextureResizeCallback;
src/GUI/LauncherMainWindow.cxx:    m_viewCommandLinePage = new ViewCommandLinePage;
src/Cockpit/cockpitDisplayManager.cxx:            set_subsystem( id, new wxRadarBg ( node ) );
src/FDM/fdm_shell.cxx:        _impl = new YASim( dt );
src/FDM/YASim/Airplane.cpp:                // For new YASim, the solver drag factor is only applied to
}}
 
== Refactoring ==
 
To check that all subsystems on a branch have been updated or refactored:
 
{{collapsible script
{{collapsible script
| type  = Python script
| type  = Python script
Line 2,797: Line 2,532:


         # First find all subsystems.
         # First find all subsystems.
         subsystems = FindSubsystems()
         sub = FindSubsystems()


         # Generate a list of files to skip.
         # Generate a list of files to skip.
Line 2,811: Line 2,546:
             blacklist.append(file_name)
             blacklist.append(file_name)


         # Loop over all derived classes.
         # Loop over all derived class declarations.
         print("\nYet to be updated:")
         print("\nYet to be updated:")
         for storage_list in subsystems.subsystems + subsystems.groups:
         for subsystem in sub.subsystems[0] + sub.subsystems[1] + sub.subsystems[2] + sub.subsystems[3] + sub.groups[0] + sub.groups[1] + sub.groups[2] + sub.groups[3]:
             for subsystem in storage_list:
             if subsystem.declaration_file not in blacklist:
                if subsystem.file_name not in blacklist:
                print("    %s: %s" % (subsystem.declaration_file, subsystem))
                    print("    %s: %s" % (subsystem.file_name, subsystem))




Line 2,823: Line 2,557:
if __name__ == "__main__":
if __name__ == "__main__":
     ToUpdate()
     ToUpdate()
}}
== Automated test suite test creation ==
This script was used to generate the instanced and non-instanced subsystem system tests:
{{collapsible script
| type  = Python script
| title  = Python script for generating the code for the system tests
| lang  = python
| script =
#! /usr/bin/env python3
# Other module imports.
from find_subsystems import FindSubsystems
class TestSuite:
    """Class for generating the code for the system tests."""
    def __init__(self):
        """Auto-generate the C++ code."""
        # First find all subsystems.
        sub = FindSubsystems(output=False)
        # The test name and test code.
        name = []
        code = []
        # Loop over all derived class declarations.
        max_width = 0
        for subsystem in sub.subsystems[0] + sub.subsystems[1] + sub.subsystems[2] + sub.subsystems[3] + sub.groups[0] + sub.groups[1] + sub.groups[2] + sub.groups[3]:
            # Skip non-instantiated base classes.
            if not subsystem.staticSubsystemClassId:
                continue
            # Add the test suite text.
            name.append("test%s" % (subsystem.name))
            code.append("{ create(\"%s\"); }" % (subsystem.staticSubsystemClassId))
            # Formatting.
            max_width = max(len(name[-1]), max_width)
        # Test setup printout.
        print("\n")
        print("    CPPUNIT_TEST_SUITE(NonInstancedSubsystemTests);")
        for i in range(len(name)):
            print("    CPPUNIT_TEST(%s);" % name[i])
        print("    CPPUNIT_TEST_SUITE_END();")
        # Test declaration printout.
        print("\n")
        print("    // The subsystem tests.")
        for i in range(len(name)):
            print("    void %s();" % name[i])
        # Test implementation printout.
        print("\n")
        format_str = "void NonInstancedSubsystemTests::%%-%is() %%-s" % max_width
        for i in range(len(name)):
            print(format_str % (name[i], code[i]))
# Instantiate the class if run as a script.
if __name__ == "__main__":
    TestSuite()
}}
}}

Revision as of 13:44, 1 July 2019

Tracking down subsystems

Script

The following script is for finding all FlightGear dependencies:

All subsystems

The result is:

Refactoring

To check that all subsystems on a branch have been updated or refactored:

Automated test suite test creation

This script was used to generate the instanced and non-instanced subsystem system tests: