MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ detect_data_modality() [2/2]

DataModality MayaFlux::Kakshya::detect_data_modality ( const std::vector< DataDimension > &  dimensions,
const DataVariant source 
)

Detect data modality from dimensions and source variant scalar type.

Resolves ambiguous cases where dimension roles alone are insufficient, primarily the TIME-only case where decimal, integer, and complex types would otherwise all collapse to the same result.

Parameters
dimensionsVector of data dimensions with role information.
sourceOriginal DataVariant used to produce the dimensions.
Returns
Detected DataModality type.

Definition at line 284 of file DataUtils.cpp.

287{
288 const DataModality base = detect_data_modality(dimensions);
289
290 if (base != DataModality::AUDIO_1D && base != DataModality::TENSOR_ND) {
291 return base;
292 }
293
294 return std::visit([&base](const auto& vec) {
295 using V = typename std::decay_t<decltype(vec)>::value_type;
296
297 if constexpr (ComplexData<V>) {
298 return DataModality::SPECTRAL_2D;
299 } else if constexpr (IntegerData<V>) {
300 return DataModality::TENSOR_ND;
301 } else {
302 return base;
303 }
304 },
305 source);
306}
DataModality
Data modality types for cross-modal analysis.
Definition NDData.hpp:164
DataModality detect_data_modality(const std::vector< DataDimension > &dimensions)
Detects data modality from dimension information.
Source source()
Begin a Source chain.
Definition Plot.hpp:128

References AUDIO_1D, detect_data_modality(), SPECTRAL_2D, and TENSOR_ND.

+ Here is the call graph for this function: