mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-11-18 11:46:41 +00:00
1825bd87b4
This is the first commit of a series of reformat around the codebase as discussed internally some weeks ago. This project being one that isn't touched that much, it shouldn't cause conflict with any opened PRs.
97 lines
No EOL
2.9 KiB
C#
97 lines
No EOL
2.9 KiB
C#
using Ryujinx.Audio.Renderer.Common;
|
|
using Ryujinx.Common.Utilities;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Ryujinx.Audio.Renderer.Parameter
|
|
{
|
|
/// <summary>
|
|
/// Input information for an effect version 2. (added with REV9)
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct EffectInParameterVersion2 : IEffectInParameter
|
|
{
|
|
/// <summary>
|
|
/// Type of the effect.
|
|
/// </summary>
|
|
public EffectType Type;
|
|
|
|
/// <summary>
|
|
/// Set to true if the effect is new.
|
|
/// </summary>
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool IsNew;
|
|
|
|
/// <summary>
|
|
/// Set to true if the effect must be active.
|
|
/// </summary>
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool IsEnabled;
|
|
|
|
/// <summary>
|
|
/// Reserved/padding.
|
|
/// </summary>
|
|
private byte _reserved1;
|
|
|
|
/// <summary>
|
|
/// The target mix id of the effect.
|
|
/// </summary>
|
|
public int MixId;
|
|
|
|
/// <summary>
|
|
/// Address of the processing workbuffer.
|
|
/// </summary>
|
|
/// <remarks>This is additional data that could be required by the effect processing.</remarks>
|
|
public ulong BufferBase;
|
|
|
|
/// <summary>
|
|
/// Size of the processing workbuffer.
|
|
/// </summary>
|
|
/// <remarks>This is additional data that could be required by the effect processing.</remarks>
|
|
public ulong BufferSize;
|
|
|
|
/// <summary>
|
|
/// Position of the effect while processing effects.
|
|
/// </summary>
|
|
public uint ProcessingOrder;
|
|
|
|
/// <summary>
|
|
/// Reserved/padding.
|
|
/// </summary>
|
|
private uint _reserved2;
|
|
|
|
/// <summary>
|
|
/// Specific data storage.
|
|
/// </summary>
|
|
private SpecificDataStruct _specificDataStart;
|
|
|
|
[StructLayout(LayoutKind.Sequential, Size = 0xA0, Pack = 1)]
|
|
private struct SpecificDataStruct { }
|
|
|
|
public Span<byte> SpecificData => SpanHelpers.AsSpan<SpecificDataStruct, byte>(ref _specificDataStart);
|
|
|
|
EffectType IEffectInParameter.Type => Type;
|
|
|
|
bool IEffectInParameter.IsNew => IsNew;
|
|
|
|
bool IEffectInParameter.IsEnabled => IsEnabled;
|
|
|
|
int IEffectInParameter.MixId => MixId;
|
|
|
|
ulong IEffectInParameter.BufferBase => BufferBase;
|
|
|
|
ulong IEffectInParameter.BufferSize => BufferSize;
|
|
|
|
uint IEffectInParameter.ProcessingOrder => ProcessingOrder;
|
|
|
|
/// <summary>
|
|
/// Check if the given channel count is valid.
|
|
/// </summary>
|
|
/// <param name="channelCount">The channel count to check</param>
|
|
/// <returns>Returns true if the channel count is valid.</returns>
|
|
public static bool IsChannelCountValid(int channelCount)
|
|
{
|
|
return channelCount == 1 || channelCount == 2 || channelCount == 4 || channelCount == 6;
|
|
}
|
|
}
|
|
} |