From 05335fad8473b342bf3ff313f6828c8e521ea67c Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Thu, 27 Mar 2025 11:21:08 -0400 Subject: [PATCH] Add ability to load new LDM records into preexisting Ar2vFile objects for L2 chunks --- wxdata/include/scwx/wsr88d/ar2v_file.hpp | 3 +++ wxdata/source/scwx/wsr88d/ar2v_file.cpp | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/wxdata/include/scwx/wsr88d/ar2v_file.hpp b/wxdata/include/scwx/wsr88d/ar2v_file.hpp index 1f3ab0cc..34d50b32 100644 --- a/wxdata/include/scwx/wsr88d/ar2v_file.hpp +++ b/wxdata/include/scwx/wsr88d/ar2v_file.hpp @@ -53,6 +53,9 @@ public: bool LoadFile(const std::string& filename); bool LoadData(std::istream& is); + bool LoadLDMRecords(std::istream& is); + bool IndexFile(); + private: std::unique_ptr p; }; diff --git a/wxdata/source/scwx/wsr88d/ar2v_file.cpp b/wxdata/source/scwx/wsr88d/ar2v_file.cpp index ed976c24..db04feba 100644 --- a/wxdata/source/scwx/wsr88d/ar2v_file.cpp +++ b/wxdata/source/scwx/wsr88d/ar2v_file.cpp @@ -519,5 +519,25 @@ void Ar2vFileImpl::IndexFile() } } +bool Ar2vFile::LoadLDMRecords(std::istream& is) { + size_t decompressedRecords = p->DecompressLDMRecords(is); + if (decompressedRecords == 0) + { + p->ParseLDMRecord(is); + } + else + { + p->ParseLDMRecords(); + } + + return true; +} + +bool Ar2vFile::IndexFile() +{ + p->IndexFile(); + return true; +} + } // namespace wsr88d } // namespace scwx