Maps SDK for C++ 1.0.0
Loading...
Searching...
No Matches
gem::RecorderConfiguration Struct Reference

Structure describing recorder configuration properties. More...

Collaboration diagram for gem::RecorderConfiguration:

Public Attributes

sense::DataSourcePtr dataSource
 The data source used for recording.
String logsDir
 The directory used to keep the logs.
std::map< EHardwareSpecification, StringhardwareSpecifications
 The device hardware specifications.
sense::DataTypeList recordedTypes
 The types of data to be recorded If one or more of the specified types are not produced by the data source, the recording will not start.
LargeUnsignedInteger chunkDurationSeconds = INFINITE_RECORDING
 The chunk duration time in seconds.
LargeUnsignedInteger minDurationSeconds = MINIMUM_DURATION_SECONDS
 The minimum recording duration for it to be saved.
sense::EResolution::Enum videoQuality = sense::EResolution::UNKNOWN
 The video quality of the recording.
bool bContinuousRecording = true
 Whether the recording should continue automatically after reaching the chunk duration.
bool bEnableAudio = false
 Flag indicating whether audio should be recorded.
LargeUnsignedInteger maxDiskSpaceUsed = IGNORE_DISK_LIMIT
 Maximum disk space that recordings can occupy.
LargeUnsignedInteger keepMinSeconds = KEEP_ALL_RECORDINGS
 Minimum seconds of recordings to retain on disk.
bool deleteOlderThanKeepMin = false
 Flag to delete older logs exceeding the keepMinSeconds threshold.
CollectUserMetadataCallback collectUserMetadataCallback = {}
 Callback function for collecting user metadata during recording.
ERecordingTransportMode transportMode = ERecordingTransportMode::Unknown
 Initialized to Unknown, indicating that the transport mode was not set.

Static Public Attributes

static constexpr const LargeUnsignedInteger INFINITE_RECORDING = 0
 Recording will not be split in chunks.
static constexpr const LargeUnsignedInteger MINIMUM_DURATION_SECONDS = 30
 Minimum duration for a recording to be saved.
static constexpr const int IGNORE_DISK_LIMIT = 0
 Ignore disk limit.
static constexpr const bool KEEP_ALL_RECORDINGS = 0
 Keep all recordings.

Detailed Description

Structure describing recorder configuration properties.

This structure contains all configuration options for controlling the recorder. It includes settings for recording duration, disk usage, audio and video preferences, and metadata

Member Data Documentation

◆ bContinuousRecording

bool gem::RecorderConfiguration::bContinuousRecording = true

Whether the recording should continue automatically after reaching the chunk duration.

If true, a new recording will start automatically when the current chunk ends.

◆ bEnableAudio

bool gem::RecorderConfiguration::bEnableAudio = false

Flag indicating whether audio should be recorded.

If true, an audio track is created during the recording setup. Audio recording can then be controlled using:

  • StartAudioRecording(): Starts recording audio segments.
  • StopAudioRecording(): Suspends audio recording if a recording session is active and audio is enabled.

This allows flexibility in recording audio in specific portions of the recording session.

◆ chunkDurationSeconds

LargeUnsignedInteger gem::RecorderConfiguration::chunkDurationSeconds = INFINITE_RECORDING

The chunk duration time in seconds.

If set to INFINITE_RECORDING, the recording will not be split into chunks. When the duration is reached, the recording stops. If bContinuousRecording is true, a new recording starts automatically.

◆ collectUserMetadataCallback

CollectUserMetadataCallback gem::RecorderConfiguration::collectUserMetadataCallback = {}

Callback function for collecting user metadata during recording.

This is invoked when the internal stop occurs, allowing additional metadata to be included in the logs.

◆ dataSource

sense::DataSourcePtr gem::RecorderConfiguration::dataSource

The data source used for recording.

This defines the source providing the data to be recorded.

◆ deleteOlderThanKeepMin

bool gem::RecorderConfiguration::deleteOlderThanKeepMin = false

Flag to delete older logs exceeding the keepMinSeconds threshold.

If true, older logs will be deleted even if there is sufficient disk space. Default is false.

◆ hardwareSpecifications

std::map<EHardwareSpecification, String> gem::RecorderConfiguration::hardwareSpecifications

The device hardware specifications.

This map stores key-value pairs representing hardware-related metadata collected at the time of the recording. These details are useful for debugging, performance analysis, and device compatibility tracking. Keys are defined by the EHardwareSpecification enum.

◆ keepMinSeconds

LargeUnsignedInteger gem::RecorderConfiguration::keepMinSeconds = KEEP_ALL_RECORDINGS

Minimum seconds of recordings to retain on disk.

When this threshold is reached, older recordings will be deleted if there is insufficient space. To force deletion regardless of space, set deleteOlderThanKeepMin to true.

◆ logsDir

String gem::RecorderConfiguration::logsDir

The directory used to keep the logs.

This should be an absolute path.

◆ maxDiskSpaceUsed

LargeUnsignedInteger gem::RecorderConfiguration::maxDiskSpaceUsed = IGNORE_DISK_LIMIT

Maximum disk space that recordings can occupy.

Specifies the maximum total size (in bytes) that all recordings can occupy on disk. When this limit is reached, recording stops to prevent exceeding the specified space.

Special Behavior:

  • If set to IGNORE_DISK_LIMIT, no disk space checks are performed, and recordings will continue without considering available disk space.
  • Set this value in bytes (e.g., 100 * 1024 * 1024 for 100 MB).
Note
This value ensures disk space usage is controlled, except when explicitly ignored.

◆ minDurationSeconds

LargeUnsignedInteger gem::RecorderConfiguration::minDurationSeconds = MINIMUM_DURATION_SECONDS

The minimum recording duration for it to be saved.

If the recording is shorter than this duration, it will be discarded.

◆ videoQuality

sense::EResolution::Enum gem::RecorderConfiguration::videoQuality = sense::EResolution::UNKNOWN

The video quality of the recording.

Determines the resolution of recorded video (e.g., SD, HD, FullHD). If set to sense::EResolution::UNKNOWN and EDataType::Camera is requested, video recording will not proceed.