14#include <simgear/compiler.h>
15#include <simgear/io/HTTPFileRequest.hxx>
16#include <simgear/io/iostreams/gzcontainerfile.hxx>
17#include <simgear/math/sg_types.hxx>
18#include <simgear/props/props.hxx>
19#include <simgear/structure/subsystem_mgr.hxx>
116 bool start(
bool NewTape =
false);
118 bool saveTape(
const SGPropertyNode* ConfigData);
119 bool loadTape(
const SGPropertyNode* ConfigData);
122 const std::string& path,
124 SGPropertyNode* properties);
127 const SGPath& filename,
131 SGPropertyNode& meta_meta,
132 simgear::HTTP::FileRequestRef file_request =
nullptr);
134 static std::string
makeTapePath(
const std::string& tape_name);
215 const SGPropertyNode* extra,
219 int continuous_compression = 0);
const char *const FlightRecorderFileMagic
Magic string to verify valid FG flight recorder tapes.
SGPropertyNode_ptr saveSetup(const SGPropertyNode *extra, const SGPath &path, double duration, FGTapeType tape_type, int continuous_compression=0)
std::ostream & operator<<(std::ostream &out, const FGFrameInfo &frame_info)
SGPath makeSavePath(FGTapeType type, SGPath *path_timeless=nullptr)
bool has_extra_properties
size_t m_num_multiplayer_messages
std::vector< std::shared_ptr< std::vector< char > > > multiplayer_messages
static SGPropertyNode_ptr s_prop_num
std::vector< char > extra_properties
static size_t s_bytes_multiplayer_messages
static void resetStatisticsProperties()
std::map< std::string, std::string > replay_extra_property_changes
static size_t s_bytes_raw_data
static SGPropertyNode_ptr s_prop_bytes_raw_data
static SGPropertyNode_ptr s_prop_bytes_multiplayer_messages
std::vector< std::string > replay_extra_property_removals
std::vector< char > raw_data
size_t m_bytes_multiplayer_messages
static size_t s_num_multiplayer_messages
bool load_extra_properties
static SGPropertyNode_ptr s_prop_num_multiplayer_messages
SGPropertyNode_ptr m_sim_startup_xpos
FGMultiplayMgr * m_MultiplayMgr
SGPropertyNode_ptr m_recovery_period
SGPropertyNode_ptr m_replay_multiplayer
std::unique_ptr< struct Continuous > m_continuous
SGPropertyNode_ptr m_replay_time
SGPropertyNode_ptr m_record_normal_begin
double m_replay_time_prev
SGPropertyNode_ptr m_replay_time_str
SGPropertyNode_ptr m_replay_duration_act
SGPropertyNode_ptr m_log_frame_times
virtual ~FGReplayInternal()
SGPropertyNode_ptr m_replay_master
SGPropertyNode_ptr m_replay_master_eof
bool start(bool NewTape=false)
Start replay session.
SGPropertyNode_ptr m_record_normal_end
static const char * staticSubsystemClassId()
static int loadContinuousHeader(const std::string &path, std::istream *in, SGPropertyNode *properties)
SGPropertyNode_ptr m_speed_up
SGPropertyNode_ptr m_sim_startup_ypos
std::vector< FGReplayMessages >::iterator m_current_msg
std::deque< FGReplayData * > m_medium_term
std::deque< FGReplayData * > m_long_term
SGPropertyNode_ptr m_sim_startup_ysize
SGPropertyNode_ptr m_sim_startup_xsize
static std::string makeTapePath(const std::string &tape_name)
std::deque< FGReplayData * > m_short_term
std::shared_ptr< FGFlightRecorder > m_flight_recorder
bool m_was_finished_already
bool loadTape(const SGPropertyNode *ConfigData)
Load a flight recorder tape from disk.
SGPropertyNode_ptr m_simple_time_enabled
double m_medium_sample_rate
SGPropertyNode_ptr m_replay_error
SGPropertyNode_ptr m_disable_replay
std::vector< FGReplayMessages > m_replay_messages
SGPropertyNode_ptr m_replay_looped
std::deque< FGReplayData * > m_recycler
double m_long_sample_rate
bool saveTape(const SGPropertyNode *ConfigData)
Write flight recorder tape to disk.