Audio Renderer improvements (#210)

* Partial voice implementation on audio renderer

* Implemented audren resampler (based on original impl)

* Fix BiquadFilter struct

* Pause audio playback on last stream buffer

* Split audren/audout files into separate folders, some minor cleanup

* Use AudioRendererParameter on GetWorkBufferSize aswell

* Bump audren version to REV4, name a few things, increase sample buffer size

* Remove useless new lines
This commit is contained in:
gdkchan 2018-07-14 23:57:41 -03:00 committed by GitHub
parent be31f5b46d
commit 98c6ceede5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 1168 additions and 271 deletions

View file

@ -2,12 +2,12 @@ namespace Ryujinx.HLE.OsHle.Utilities
{
static class IntUtils
{
public static int RoundUp(int Value, int Size)
public static int AlignUp(int Value, int Size)
{
return (Value + (Size - 1)) & ~(Size - 1);
}
public static long RoundUp(long Value, int Size)
public static long AlignUp(long Value, int Size)
{
return (Value + (Size - 1)) & ~((long)Size - 1);
}

View file

@ -0,0 +1,45 @@
using ChocolArm64.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.OsHle.Utilities
{
class StructReader
{
private AMemory Memory;
public long Position { get; private set; }
public StructReader(AMemory Memory, long Position)
{
this.Memory = Memory;
this.Position = Position;
}
public T Read<T>() where T : struct
{
T Value = AMemoryHelper.Read<T>(Memory, Position);
Position += Marshal.SizeOf<T>();
return Value;
}
public T[] Read<T>(int Size) where T : struct
{
int StructSize = Marshal.SizeOf<T>();
int Count = Size / StructSize;
T[] Output = new T[Count];
for (int Index = 0; Index < Count; Index++)
{
Output[Index] = AMemoryHelper.Read<T>(Memory, Position);
Position += StructSize;
}
return Output;
}
}
}

View file

@ -0,0 +1,25 @@
using ChocolArm64.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.OsHle.Utilities
{
class StructWriter
{
private AMemory Memory;
public long Position { get; private set; }
public StructWriter(AMemory Memory, long Position)
{
this.Memory = Memory;
this.Position = Position;
}
public void Write<T>(T Value) where T : struct
{
AMemoryHelper.Write(Memory, Position, Value);
Position += Marshal.SizeOf<T>();
}
}
}