From fe90a64085d1c981427a6ef42ce19eee739f30e5 Mon Sep 17 00:00:00 2001
From: dmbrestel <uiswu@student.kit.edu>
Date: Tue, 31 Jan 2023 14:22:30 +0100
Subject: [PATCH] Extend getAllRecordings() in ArVizStorage

---
 source/RobotAPI/components/ArViz/ArVizStorage.cpp | 7 +++++--
 source/RobotAPI/components/ArViz/ArVizStorage.h   | 2 +-
 source/RobotAPI/interface/ArViz/Component.ice     | 9 ++++++++-
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/source/RobotAPI/components/ArViz/ArVizStorage.cpp b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
index 8630c8a9f..3f4ff4644 100644
--- a/source/RobotAPI/components/ArViz/ArVizStorage.cpp
+++ b/source/RobotAPI/components/ArViz/ArVizStorage.cpp
@@ -599,8 +599,9 @@ void armarx::ArVizStorage::stopRecording(const Ice::Current&)
     recordingMetaData.firstTimestampInMicroSeconds = -1;
 }
 
-armarx::viz::data::RecordingSeq armarx::ArVizStorage::getAllRecordings(const Ice::Current&)
+armarx::viz::data::RecordingsInfo armarx::ArVizStorage::getAllRecordings(const Ice::Current&)
 {
+    viz::data::RecordingsInfo recordingsInfo;
     viz::data::RecordingSeq result;
 
     for (std::filesystem::directory_entry const& entry : std::filesystem::directory_iterator(historyPath))
@@ -619,8 +620,10 @@ armarx::viz::data::RecordingSeq armarx::ArVizStorage::getAllRecordings(const Ice
         }
     }
 
+    recordingsInfo.recordings = result;
+    recordingsInfo.recordingsPath = historyPath;
 
-    return result;
+    return recordingsInfo;
 }
 
 armarx::viz::data::RecordingBatch armarx::ArVizStorage::getRecordingBatch(std::string const& recordingID, Ice::Long batchIndex, const Ice::Current&)
diff --git a/source/RobotAPI/components/ArViz/ArVizStorage.h b/source/RobotAPI/components/ArViz/ArVizStorage.h
index c484b6d21..27bb6b1fc 100644
--- a/source/RobotAPI/components/ArViz/ArVizStorage.h
+++ b/source/RobotAPI/components/ArViz/ArVizStorage.h
@@ -92,7 +92,7 @@ namespace armarx
                 const Ice::Current&) override;
         std::string startRecording(std::string const& prefix, const Ice::Current&) override;
         void stopRecording(const Ice::Current&) override;
-        viz::data::RecordingSeq getAllRecordings(const Ice::Current&) override;
+        viz::data::RecordingsInfo getAllRecordings(const Ice::Current&) override;
         viz::data::RecordingBatch getRecordingBatch(const std::string&, Ice::Long, const Ice::Current&) override;
 
     private:
diff --git a/source/RobotAPI/interface/ArViz/Component.ice b/source/RobotAPI/interface/ArViz/Component.ice
index 33fd7ca57..6ba528b4f 100644
--- a/source/RobotAPI/interface/ArViz/Component.ice
+++ b/source/RobotAPI/interface/ArViz/Component.ice
@@ -106,6 +106,13 @@ struct RecordingBatch
 
 sequence<Recording> RecordingSeq;
 
+struct RecordingsInfo
+{
+    data::RecordingSeq recordings;
+    // Equivalent to the property "HistoryPath" of ArVizStorage.
+    string recordingsPath;
+};
+
 };
 
 interface StorageInterface
@@ -121,7 +128,7 @@ interface StorageInterface
 
     void stopRecording();
 
-    data::RecordingSeq getAllRecordings();
+    data::RecordingsInfo getAllRecordings();
 
     data::RecordingBatch getRecordingBatch(string recordingID, long batchIndex);
 };
-- 
GitLab