MayaFlux 0.4.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 184 of file DataUtils.cpp.

187{
188 const DataModality base = detect_data_modality(dimensions);
189
190 if (base != DataModality::AUDIO_1D && base != DataModality::TENSOR_ND) {
191 return base;
192 }
193
194 return std::visit([&base](const auto& vec) {
195 using V = typename std::decay_t<decltype(vec)>::value_type;
196
197 if constexpr (ComplexData<V>) {
198 return DataModality::SPECTRAL_2D;
199 } else if constexpr (IntegerData<V>) {
200 return DataModality::TENSOR_ND;
201 } else {
202 return base;
203 }
204 },
205 source);
206}
DataModality
Data modality types for cross-modal analysis.
Definition NDData.hpp:81
DataModality detect_data_modality(const std::vector< DataDimension > &dimensions)
Detects data modality from dimension information.
Definition DataUtils.cpp:72

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

+ Here is the call graph for this function: