MCPcopy Create free account
hub / github.com/ValveSoftware/steam-audio / reconstruct

Method reconstruct

core/src/core/api_reconstructor.cpp:62–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60}
61
62void CReconstructor::reconstruct(IPLint32 numInputs, const IPLReconstructorInputs* inputs,
63 const IPLReconstructorSharedInputs* sharedInputs, IPLReconstructorOutputs* outputs)
64{
65 if (!inputs || !sharedInputs || !outputs)
66 return;
67
68 mTempEnergyFields.resize(numInputs);
69 mTempDistanceAttenuation.resize(numInputs);
70 mTempAirAbsorption.resize(numInputs);
71 mTempImpulseResponses.resize(numInputs);
72 for (auto i = 0; i < numInputs; ++i)
73 {
74 if (!inputs[i].energyField || !outputs[i].impulseResponse)
75 return;
76
77 auto _energyField = static_cast<CEnergyField*>(reinterpret_cast<IEnergyField*>(inputs[i].energyField))->mHandle.get();
78 auto _impulseResponse = static_cast<CImpulseResponse*>(reinterpret_cast<IImpulseResponse*>(outputs[i].impulseResponse))->mHandle.get();
79
80 if (!_energyField || !_impulseResponse)
81 return;
82
83 mTempEnergyFields[i] = _energyField.get();
84 mTempDistanceAttenuation[i] = nullptr;
85 mTempAirAbsorption[i] = AirAbsorptionModel{};
86 mTempImpulseResponses[i] = _impulseResponse.get();
87 }
88
89 auto _reconstructor = mHandle.get();
90 auto _numIRs = numInputs;
91 const auto* _energyFields = mTempEnergyFields.data();
92 const auto* _distanceAttenuationCorrectionCurves = mTempDistanceAttenuation.data();
93 const auto* _airAbsorptionModels = mTempAirAbsorption.data();
94 const auto* _impulseResponses = mTempImpulseResponses.data();
95 auto _reconstructionType = ReconstructionType::Linear;
96 auto _duration = sharedInputs->duration;
97 auto _order = sharedInputs->order;
98
99 if (!_reconstructor)
100 return;
101
102 _reconstructor->reconstruct(_numIRs, _energyFields, _distanceAttenuationCorrectionCurves, _airAbsorptionModels,
103 _impulseResponses, _reconstructionType, _duration, _order);
104}
105
106
107// --------------------------------------------------------------------------------------------------------------------

Callers

nothing calls this directly

Calls 3

resizeMethod · 0.45
getMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected