mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-31 23:19:44 +08:00
2b6bd5a532
* [audio] added sdl audio backend and in-tree atrac9 decoder * [input] replaced per-platform pad readers with sdl gamepad input * [video] added sdl window and host display plumbing * [gui] added host display options and per-game render settings * [bink] synced host movie playback to the guest audio clock * [cpu] hooked windows write faults into guest image tracking * [perf] added guest and render profiling, reserved host cpu lanes * [kernel] fixed stale pthread mutex handle alias * [host] wired the sdl session, save-data paths and project references * [audio] hoisted ajm trace stackalloc out of its loop * [video] Add guest image sync setting * [build] Strip native symbols * reuse
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
// SPDX-License-Identifier: MIT
|
|
#nullable disable
|
|
namespace LibAtrac9
|
|
{
|
|
internal static class Stereo
|
|
{
|
|
public static void ApplyIntensityStereo(Block block)
|
|
{
|
|
if (block.BlockType != BlockType.Stereo) return;
|
|
|
|
int totalUnits = block.QuantizationUnitCount;
|
|
int stereoUnits = block.StereoQuantizationUnit;
|
|
if (stereoUnits >= totalUnits) return;
|
|
|
|
Channel source = block.PrimaryChannel;
|
|
Channel dest = block.SecondaryChannel;
|
|
|
|
for (int i = stereoUnits; i < totalUnits; i++)
|
|
{
|
|
int sign = block.JointStereoSigns[i];
|
|
for (int sb = Tables.QuantUnitToCoeffIndex[i]; sb < Tables.QuantUnitToCoeffIndex[i + 1]; sb++)
|
|
{
|
|
if (sign > 0)
|
|
{
|
|
dest.Spectra[sb] = -source.Spectra[sb];
|
|
}
|
|
else
|
|
{
|
|
dest.Spectra[sb] = source.Spectra[sb];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|