mirror of
https://github.com/raylib-cs/raylib-cs
synced 2025-07-02 19:13:43 -04:00
AttachAudioMixedProcessor Utils for easy callback (#215)
This commit is contained in:
23
Raylib-cs/types/AudioMixed.cs
Normal file
23
Raylib-cs/types/AudioMixed.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Raylib_cs;
|
||||
|
||||
internal static unsafe class AudioMixed
|
||||
{
|
||||
public static AudioCallback<float> Callback = null;
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = new[]
|
||||
{
|
||||
typeof(CallConvCdecl),
|
||||
})]
|
||||
public static void Processor(void* buffer, uint frames)
|
||||
{
|
||||
// The buffer is stereo audio, so we need to double our frame count.
|
||||
frames = Math.Min(frames * 2, int.MaxValue);
|
||||
|
||||
Span<float> floats = new(buffer, (int)frames);
|
||||
Callback?.Invoke(floats);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user