audio: Cleanup Ryujinx.Audio and fix OpenAL issue (#1746)
* audio: Cleanup SoundIO and fix OpenAL issue * fix tabs by spaces * Fix extra spaces * Fix SoundIO.cs * Fix ContainsAudioOutBuffer
This commit is contained in:
parent
0108004691
commit
7b66cb0d90
25 changed files with 1459 additions and 1322 deletions
|
@ -1,99 +1,116 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace SoundIOSharp
|
||||
{
|
||||
public struct SoundIOChannelLayout
|
||||
{
|
||||
public static int BuiltInCount {
|
||||
get { return Natives.soundio_channel_layout_builtin_count (); }
|
||||
}
|
||||
public struct SoundIOChannelLayout
|
||||
{
|
||||
public static int BuiltInCount
|
||||
{
|
||||
get { return Natives.soundio_channel_layout_builtin_count(); }
|
||||
}
|
||||
|
||||
public static SoundIOChannelLayout GetBuiltIn (int index)
|
||||
{
|
||||
return new SoundIOChannelLayout (Natives.soundio_channel_layout_get_builtin (index));
|
||||
}
|
||||
public static SoundIOChannelLayout GetBuiltIn(int index)
|
||||
{
|
||||
return new SoundIOChannelLayout(Natives.soundio_channel_layout_get_builtin(index));
|
||||
}
|
||||
|
||||
public static SoundIOChannelLayout GetDefault (int channelCount)
|
||||
{
|
||||
var handle = Natives.soundio_channel_layout_get_default (channelCount);
|
||||
return new SoundIOChannelLayout (handle);
|
||||
}
|
||||
public static SoundIOChannelLayout GetDefault(int channelCount)
|
||||
{
|
||||
var handle = Natives.soundio_channel_layout_get_default(channelCount);
|
||||
|
||||
public static SoundIOChannelId ParseChannelId (string name)
|
||||
{
|
||||
var ptr = Marshal.StringToHGlobalAnsi (name);
|
||||
try {
|
||||
return (SoundIOChannelId)Natives.soundio_parse_channel_id (ptr, name.Length);
|
||||
} finally {
|
||||
Marshal.FreeHGlobal (ptr);
|
||||
}
|
||||
}
|
||||
return new SoundIOChannelLayout (handle);
|
||||
}
|
||||
|
||||
// instance members
|
||||
public static SoundIOChannelId ParseChannelId(string name)
|
||||
{
|
||||
var ptr = Marshal.StringToHGlobalAnsi(name);
|
||||
|
||||
internal SoundIOChannelLayout (Pointer<SoundIoChannelLayout> handle)
|
||||
{
|
||||
this.handle = handle;
|
||||
}
|
||||
try
|
||||
{
|
||||
return (SoundIOChannelId)Natives.soundio_parse_channel_id(ptr, name.Length);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Marshal.FreeHGlobal(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
readonly Pointer<SoundIoChannelLayout> handle;
|
||||
// instance members
|
||||
|
||||
public bool IsNull {
|
||||
get { return handle.Handle == IntPtr.Zero; }
|
||||
}
|
||||
internal SoundIOChannelLayout(Pointer<SoundIoChannelLayout> handle)
|
||||
{
|
||||
this.handle = handle;
|
||||
}
|
||||
|
||||
internal IntPtr Handle {
|
||||
get { return handle; }
|
||||
}
|
||||
readonly Pointer<SoundIoChannelLayout> handle;
|
||||
|
||||
public int ChannelCount {
|
||||
get { return IsNull ? 0 : Marshal.ReadInt32 ((IntPtr) handle + channel_count_offset); }
|
||||
}
|
||||
static readonly int channel_count_offset = (int) Marshal.OffsetOf<SoundIoChannelLayout> ("channel_count");
|
||||
public bool IsNull
|
||||
{
|
||||
get { return handle.Handle == IntPtr.Zero; }
|
||||
}
|
||||
|
||||
public string Name {
|
||||
get { return IsNull ? null : Marshal.PtrToStringAnsi (Marshal.ReadIntPtr ((IntPtr) handle + name_offset)); }
|
||||
}
|
||||
static readonly int name_offset = (int)Marshal.OffsetOf<SoundIoChannelLayout> ("name");
|
||||
internal IntPtr Handle
|
||||
{
|
||||
get { return handle; }
|
||||
}
|
||||
|
||||
public IEnumerable<SoundIOChannelId> Channels {
|
||||
get {
|
||||
if (IsNull)
|
||||
yield break;
|
||||
for (int i = 0; i < 24; i++)
|
||||
yield return (SoundIOChannelId) Marshal.ReadInt32 ((IntPtr) handle + channels_offset + sizeof (SoundIoChannelId) * i);
|
||||
}
|
||||
}
|
||||
static readonly int channels_offset = (int)Marshal.OffsetOf<SoundIoChannelLayout> ("channels");
|
||||
public int ChannelCount
|
||||
{
|
||||
get { return IsNull ? 0 : Marshal.ReadInt32((IntPtr)handle + channel_count_offset); }
|
||||
}
|
||||
|
||||
public override bool Equals (object other)
|
||||
{
|
||||
if (!(other is SoundIOChannelLayout))
|
||||
return false;
|
||||
var s = (SoundIOChannelLayout) other;
|
||||
return handle == s.handle || Natives.soundio_channel_layout_equal (handle, s.handle);
|
||||
}
|
||||
static readonly int channel_count_offset = (int)Marshal.OffsetOf<SoundIoChannelLayout>("channel_count");
|
||||
|
||||
public override int GetHashCode ()
|
||||
{
|
||||
return handle.GetHashCode ();
|
||||
}
|
||||
public string Name
|
||||
{
|
||||
get { return IsNull ? null : Marshal.PtrToStringAnsi(Marshal.ReadIntPtr((IntPtr)handle + name_offset)); }
|
||||
}
|
||||
|
||||
public string DetectBuiltInName ()
|
||||
{
|
||||
if (IsNull)
|
||||
throw new InvalidOperationException ();
|
||||
return Natives.soundio_channel_layout_detect_builtin (handle) ? Name : null;
|
||||
}
|
||||
static readonly int name_offset = (int)Marshal.OffsetOf<SoundIoChannelLayout>("name");
|
||||
|
||||
public int FindChannel (SoundIOChannelId channel)
|
||||
{
|
||||
if (IsNull)
|
||||
throw new InvalidOperationException ();
|
||||
return Natives.soundio_channel_layout_find_channel (handle, (SoundIoChannelId) channel);
|
||||
}
|
||||
}
|
||||
}
|
||||
public IEnumerable<SoundIOChannelId> Channels
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsNull) yield break;
|
||||
|
||||
for (int i = 0; i < 24; i++)
|
||||
{
|
||||
yield return (SoundIOChannelId)Marshal.ReadInt32((IntPtr)handle + channels_offset + sizeof(SoundIoChannelId) * i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static readonly int channels_offset = (int)Marshal.OffsetOf<SoundIoChannelLayout>("channels");
|
||||
|
||||
public override bool Equals(object other)
|
||||
{
|
||||
if (!(other is SoundIOChannelLayout)) return false;
|
||||
|
||||
var s = (SoundIOChannelLayout) other;
|
||||
|
||||
return handle == s.handle || Natives.soundio_channel_layout_equal(handle, s.handle);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return handle.GetHashCode();
|
||||
}
|
||||
|
||||
public string DetectBuiltInName()
|
||||
{
|
||||
if (IsNull) throw new InvalidOperationException();
|
||||
|
||||
return Natives.soundio_channel_layout_detect_builtin(handle) ? Name : null;
|
||||
}
|
||||
|
||||
public int FindChannel(SoundIOChannelId channel)
|
||||
{
|
||||
if (IsNull) throw new InvalidOperationException();
|
||||
|
||||
return Natives.soundio_channel_layout_find_channel(handle, (SoundIoChannelId)channel);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue