mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-24 09:14:04 +02:00
Minor code rearrangement in preparation for some updates.
This commit is contained in:
+20
-13
@@ -50339,6 +50339,26 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer,
|
|||||||
/* Clamp the gain. */
|
/* Clamp the gain. */
|
||||||
gain = ma_clamp(gain, ma_spatializer_get_min_gain(pSpatializer), ma_spatializer_get_max_gain(pSpatializer));
|
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
|
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
|
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
|
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.
|
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
|
Calculate our per-channel gains. We do this based on the normalized relative position of the sound and it's
|
||||||
|
|||||||
Reference in New Issue
Block a user