mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-05-17 10:45:46 +00:00
audio effects fix and audio object pooling (ryubing/ryujinx!192)
See merge request ryubing/ryujinx!192
This commit is contained in:
@@ -174,19 +174,6 @@ namespace Ryujinx.Audio.Renderer.Server.Effect
|
||||
|
||||
updateErrorInfo = new ErrorInfo();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update the internal state from a user version 3 parameter.
|
||||
/// </summary>
|
||||
/// <param name="updateErrorInfo">The possible <see cref="ErrorInfo"/> that was generated.</param>
|
||||
/// <param name="parameter">The user parameter.</param>
|
||||
/// <param name="mapper">The mapper to use.</param>
|
||||
public virtual void Update(out ErrorInfo updateErrorInfo, in EffectInParameterVersion3 parameter, PoolMapper mapper)
|
||||
{
|
||||
Debug.Assert(IsTypeValid(in parameter));
|
||||
|
||||
updateErrorInfo = new ErrorInfo();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the work buffer DSP address at the given index.
|
||||
|
||||
@@ -25,13 +25,19 @@ namespace Ryujinx.Audio.Renderer.Server.Effect
|
||||
/// </summary>
|
||||
public Memory<BiquadFilterState> State { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The biquad filter effect version.
|
||||
/// </summary>
|
||||
public int BiquadFilterEffectVersion;
|
||||
|
||||
/// <summary>
|
||||
/// Create a new <see cref="BiquadFilterEffect"/>.
|
||||
/// </summary>
|
||||
public BiquadFilterEffect()
|
||||
public BiquadFilterEffect(int version)
|
||||
{
|
||||
Parameter = new BiquadFilterEffectParameter2();
|
||||
State = new BiquadFilterState[Constants.ChannelCountMax];
|
||||
BiquadFilterEffectVersion = version;
|
||||
}
|
||||
|
||||
public override EffectType TargetEffectType => EffectType.BiquadFilter;
|
||||
@@ -45,11 +51,6 @@ namespace Ryujinx.Audio.Renderer.Server.Effect
|
||||
{
|
||||
Update(out updateErrorInfo, in parameter, mapper);
|
||||
}
|
||||
|
||||
public override void Update(out BehaviourParameter.ErrorInfo updateErrorInfo, in EffectInParameterVersion3 parameter, PoolMapper mapper)
|
||||
{
|
||||
Update(out updateErrorInfo, in parameter, mapper);
|
||||
}
|
||||
|
||||
public void Update<T>(out BehaviourParameter.ErrorInfo updateErrorInfo, in T parameter, PoolMapper mapper) where T : unmanaged, IEffectInParameter
|
||||
{
|
||||
@@ -57,7 +58,7 @@ namespace Ryujinx.Audio.Renderer.Server.Effect
|
||||
|
||||
UpdateParameterBase(in parameter);
|
||||
|
||||
if (typeof(T) == typeof(EffectInParameterVersion3))
|
||||
if (BiquadFilterEffectVersion == 2)
|
||||
{
|
||||
Parameter = MemoryMarshal.Cast<byte, BiquadFilterEffectParameter2>(parameter.SpecificData)[0];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user