Allow filesystem path directly in ar recorder

This commit is contained in:
Georg Hagen
2024-06-17 13:36:04 +02:00
parent c7a4b4a684
commit 29a5fd9ed7
2 changed files with 21 additions and 10 deletions

View File

@@ -26,7 +26,7 @@ namespace OpenVulkano::AR
namespace
{
constexpr std::string_view RECORDING_METADATA_FILENAME = "ArRecording.xml";
std::filesystem::path GeneratePath(const std::filesystem::path& baseDir, std::string_view name)
{
std::stringstream ss;
@@ -185,18 +185,17 @@ namespace OpenVulkano::AR
}
}
void ArRecorder::SetRecordingPath(const std::string& path)
void ArRecorder::SetRecordingPath(const std::filesystem::path& path)
{
if (!m_session) return;
if (!m_colorWriter)
{
std::filesystem::path p(path);
for (MultiPartArchiveWriter* writer: { m_colorWriter.get(), m_depthWriter.get(), m_confidenceWriter.get(), m_metadataWriter.get(), m_highResWriter.get() })
{
if (writer) writer->Move(p);
if (writer) writer->Move(path);
}
if (std::filesystem::exists(m_settings.path / RECORDING_METADATA_FILENAME))
std::filesystem::rename(m_settings.path / RECORDING_METADATA_FILENAME, p / RECORDING_METADATA_FILENAME);
std::filesystem::rename(m_settings.path / RECORDING_METADATA_FILENAME, path / RECORDING_METADATA_FILENAME);
}
m_persistent = true;

View File

@@ -109,7 +109,19 @@ namespace OpenVulkano::AR
* If path is changed after starting the recording, the already running recording will be moved to the new path.
* @param path The path to be used to store the recording
*/
void SetRecordingPath(const std::string& path);
void SetRecordingPath(const std::string& path)
{
std::filesystem::path p(path);
SetRecordingPath(p);
}
/**
* Sets the directory into which the AR recording should be stored.
* The path needs to be set to make the recording persistent.
* If path is changed after starting the recording, the already running recording will be moved to the new path.
* @param path The path to be used to store the recording
*/
void SetRecordingPath(const std::filesystem::path& path);
/**
* Gets the current recording path
@@ -145,11 +157,11 @@ namespace OpenVulkano::AR
/**
* If enabled color images will be reduced to 1/4 of the original resolution (both axes will have half the resolution).
* This option can be used to reduce the used storage space and storage bandwidth during recording.
*
* @param downsample true = downsample images; false = no downsampling
*
* @param downsample true = downsample images; false = no downsampling
*/
void SetDownsampleColorImages(bool downsample = true) { m_settings.downsampleColor = downsample; }
/**
* Checks if color image downsampling is enabled.
* @return true = downsample images; false = no downsampling
@@ -161,7 +173,7 @@ namespace OpenVulkano::AR
* @param separateArchive true = using the separate archive file; false = using the normal archive files
*/
void SetHighResFramesInSeparateArchive(bool separateArchive = true) { m_settings.highResFramesInSeparateArchive = separateArchive; }
/**
* Checks if a separate archive is used for the high res frames.
* @return true = using the separate archive file; false = using the normal archive files