Commit 15aa7769 authored by David Reid's avatar David Reid

Minor code rearrangement in preparation for some updates.

parent 4cd06680
......@@ -50339,6 +50339,26 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer,
/* Clamp the gain. */
gain = ma_clamp(gain, ma_spatializer_get_min_gain(pSpatializer), ma_spatializer_get_max_gain(pSpatializer));
/*
The gain needs to be applied per-channel here. The spatialization code below will be changing the per-channel
gains which will then eventually be passed into the gainer which will deal with smoothing the gain transitions
to avoid harsh changes in gain.
*/
for (iChannel = 0; iChannel < channelsOut; iChannel += 1) {
pSpatializer->pNewChannelGainsOut[iChannel] = gain;
}
/*
Convert to our output channel count. If the listener is disabled we just output silence here. We cannot ignore
the whole section of code here because we need to update some internal spatialization state.
*/
if (ma_spatializer_listener_is_enabled(pListener)) {
ma_channel_map_apply_f32((float*)pFramesOut, pChannelMapOut, channelsOut, (const float*)pFramesIn, pChannelMapIn, channelsIn, frameCount, ma_channel_mix_mode_rectangular, ma_mono_expansion_mode_default);
} else {
ma_silence_pcm_frames(pFramesOut, frameCount, ma_format_f32, pSpatializer->channelsOut);
}
/*
Panning. This is where we'll apply the gain and convert to the output channel count. We have an optimized path for
when we're converting to a mono stream. In that case we don't really need to do any panning - we just apply the
......@@ -50360,19 +50380,6 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer,
be +1 on the X axis. A dot product is performed against the direction vector of the channel and the normalized
position of the sound.
*/
for (iChannel = 0; iChannel < channelsOut; iChannel += 1) {
pSpatializer->pNewChannelGainsOut[iChannel] = gain;
}
/*
Convert to our output channel count. If the listener is disabled we just output silence here. We cannot ignore
the whole section of code here because we need to update some internal spatialization state.
*/
if (ma_spatializer_listener_is_enabled(pListener)) {
ma_channel_map_apply_f32((float*)pFramesOut, pChannelMapOut, channelsOut, (const float*)pFramesIn, pChannelMapIn, channelsIn, frameCount, ma_channel_mix_mode_rectangular, ma_mono_expansion_mode_default);
} else {
ma_silence_pcm_frames(pFramesOut, frameCount, ma_format_f32, pSpatializer->channelsOut);
}
/*
Calculate our per-channel gains. We do this based on the normalized relative position of the sound and it's
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment