Skip to content

Commit a81998b

Browse files
committed
add audio event handler
1 parent 4b502df commit a81998b

File tree

9 files changed

+107
-7
lines changed

9 files changed

+107
-7
lines changed

api/AltV.Net.CApi/Events/ClientEvents.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace AltV.Net.CApi.ClientEvents
1212
public delegate void WebViewEventModuleDelegate(IntPtr webView, string name, IntPtr args, ulong size);
1313
public delegate void RmlEventModuleDelegate(IntPtr rmlElement, string name, IntPtr args);
1414
public delegate void WebSocketEventModuleDelegate(IntPtr webSocket, string name, IntPtr args, ulong size);
15+
public delegate void AudioEventModuleDelegate(IntPtr audio, string name, IntPtr args, ulong size);
1516
public delegate void ConsoleCommandModuleDelegate(string name, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] string[] args, int argsSize);
1617

1718
public delegate void PlayerSpawnModuleDelegate();

api/AltV.Net.CApi/Libraries/ClientLibrary.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ public unsafe interface IClientLibrary
258258
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceErrorModuleDelegate, void> Event_SetAnyResourceErrorDelegate { get; }
259259
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStartModuleDelegate, void> Event_SetAnyResourceStartDelegate { get; }
260260
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStopModuleDelegate, void> Event_SetAnyResourceStopDelegate { get; }
261+
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AudioEventModuleDelegate, void> Event_SetAudioEventDelegate { get; }
261262
public delegate* unmanaged[Cdecl]<nint, ClientEvents.CheckpointModuleDelegate, void> Event_SetCheckpointDelegate { get; }
262263
public delegate* unmanaged[Cdecl]<nint, ClientEvents.ClientEventModuleDelegate, void> Event_SetClientEventDelegate { get; }
263264
public delegate* unmanaged[Cdecl]<nint, ClientEvents.ColShapeModuleDelegate, void> Event_SetColShapeDelegate { get; }
@@ -875,7 +876,7 @@ public unsafe interface IClientLibrary
875876

876877
public unsafe class ClientLibrary : IClientLibrary
877878
{
878-
public readonly uint Methods = 1648;
879+
public readonly uint Methods = 1649;
879880
public delegate* unmanaged[Cdecl]<nint, nint, void> Audio_AddOutput { get; }
880881
public delegate* unmanaged[Cdecl]<nint, nint> Audio_GetBaseObject { get; }
881882
public delegate* unmanaged[Cdecl]<nint, double> Audio_GetCurrentTime { get; }
@@ -1124,6 +1125,7 @@ public unsafe class ClientLibrary : IClientLibrary
11241125
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceErrorModuleDelegate, void> Event_SetAnyResourceErrorDelegate { get; }
11251126
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStartModuleDelegate, void> Event_SetAnyResourceStartDelegate { get; }
11261127
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStopModuleDelegate, void> Event_SetAnyResourceStopDelegate { get; }
1128+
public delegate* unmanaged[Cdecl]<nint, ClientEvents.AudioEventModuleDelegate, void> Event_SetAudioEventDelegate { get; }
11271129
public delegate* unmanaged[Cdecl]<nint, ClientEvents.CheckpointModuleDelegate, void> Event_SetCheckpointDelegate { get; }
11281130
public delegate* unmanaged[Cdecl]<nint, ClientEvents.ClientEventModuleDelegate, void> Event_SetClientEventDelegate { get; }
11291131
public delegate* unmanaged[Cdecl]<nint, ClientEvents.ColShapeModuleDelegate, void> Event_SetColShapeDelegate { get; }
@@ -2233,6 +2235,8 @@ public unsafe class ClientLibrary : IClientLibrary
22332235
private static void Event_SetAnyResourceStartDelegateFallback(nint _resource, ClientEvents.AnyResourceStartModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStartDelegate", "Event_SetAnyResourceStartDelegate SDK method is outdated. Please update your module nuget");
22342236
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceStopDelegateDelegate(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate);
22352237
private static void Event_SetAnyResourceStopDelegateFallback(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStopDelegate", "Event_SetAnyResourceStopDelegate SDK method is outdated. Please update your module nuget");
2238+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAudioEventDelegateDelegate(nint _resource, ClientEvents.AudioEventModuleDelegate _delegate);
2239+
private static void Event_SetAudioEventDelegateFallback(nint _resource, ClientEvents.AudioEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAudioEventDelegate", "Event_SetAudioEventDelegate SDK method is outdated. Please update your module nuget");
22362240
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCheckpointDelegateDelegate(nint _resource, ClientEvents.CheckpointModuleDelegate _delegate);
22372241
private static void Event_SetCheckpointDelegateFallback(nint _resource, ClientEvents.CheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCheckpointDelegate", "Event_SetCheckpointDelegate SDK method is outdated. Please update your module nuget");
22382242
[UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetClientEventDelegateDelegate(nint _resource, ClientEvents.ClientEventModuleDelegate _delegate);
@@ -3468,7 +3472,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
34683472
public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
34693473
{
34703474
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
3471-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10156954479038056230UL) Outdated = true;
3475+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 5645779348269713775UL) Outdated = true;
34723476
Audio_AddOutput = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Audio_AddOutputDelegate>(funcTable, 9914412815391408844UL, Audio_AddOutputFallback);
34733477
Audio_GetBaseObject = (delegate* unmanaged[Cdecl]<nint, nint>) GetUnmanagedPtr<Audio_GetBaseObjectDelegate>(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback);
34743478
Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]<nint, double>) GetUnmanagedPtr<Audio_GetCurrentTimeDelegate>(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback);
@@ -3717,6 +3721,7 @@ public ClientLibrary(Dictionary<ulong, IntPtr> funcTable)
37173721
Event_SetAnyResourceErrorDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceErrorModuleDelegate, void>) GetUnmanagedPtr<Event_SetAnyResourceErrorDelegateDelegate>(funcTable, 14079997901958077241UL, Event_SetAnyResourceErrorDelegateFallback);
37183722
Event_SetAnyResourceStartDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStartModuleDelegate, void>) GetUnmanagedPtr<Event_SetAnyResourceStartDelegateDelegate>(funcTable, 18259284189737259993UL, Event_SetAnyResourceStartDelegateFallback);
37193723
Event_SetAnyResourceStopDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.AnyResourceStopModuleDelegate, void>) GetUnmanagedPtr<Event_SetAnyResourceStopDelegateDelegate>(funcTable, 13707820718504089625UL, Event_SetAnyResourceStopDelegateFallback);
3724+
Event_SetAudioEventDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.AudioEventModuleDelegate, void>) GetUnmanagedPtr<Event_SetAudioEventDelegateDelegate>(funcTable, 4093947101499582977UL, Event_SetAudioEventDelegateFallback);
37203725
Event_SetCheckpointDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.CheckpointModuleDelegate, void>) GetUnmanagedPtr<Event_SetCheckpointDelegateDelegate>(funcTable, 9134925632861949057UL, Event_SetCheckpointDelegateFallback);
37213726
Event_SetClientEventDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.ClientEventModuleDelegate, void>) GetUnmanagedPtr<Event_SetClientEventDelegateDelegate>(funcTable, 8284770729125093177UL, Event_SetClientEventDelegateFallback);
37223727
Event_SetColShapeDelegate = (delegate* unmanaged[Cdecl]<nint, ClientEvents.ColShapeModuleDelegate, void>) GetUnmanagedPtr<Event_SetColShapeDelegateDelegate>(funcTable, 1859619355480397883UL, Event_SetColShapeDelegateFallback);

api/AltV.Net.CApi/Libraries/ServerLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ public unsafe interface IServerLibrary
438438

439439
public unsafe class ServerLibrary : IServerLibrary
440440
{
441-
public readonly uint Methods = 1648;
441+
public readonly uint Methods = 1649;
442442
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
443443
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
444444
public delegate* unmanaged[Cdecl]<nint, nint, void> Blip_AddTargetPlayer { get; }
@@ -1720,7 +1720,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
17201720
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
17211721
{
17221722
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1723-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10156954479038056230UL) Outdated = true;
1723+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 5645779348269713775UL) Outdated = true;
17241724
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
17251725
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
17261726
Blip_AddTargetPlayer = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<Blip_AddTargetPlayerDelegate>(funcTable, 12411235729553386187UL, Blip_AddTargetPlayerFallback);

api/AltV.Net.CApi/Libraries/SharedLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ public unsafe interface ISharedLibrary
375375

376376
public unsafe class SharedLibrary : ISharedLibrary
377377
{
378-
public readonly uint Methods = 1648;
378+
public readonly uint Methods = 1649;
379379
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
380380
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
381381
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1468,7 +1468,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
14681468
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
14691469
{
14701470
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1471-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10156954479038056230UL) Outdated = true;
1471+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 5645779348269713775UL) Outdated = true;
14721472
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
14731473
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
14741474
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.Client/Alt.Events.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,5 +416,48 @@ public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(this IWebSoc
416416

417417
#endregion
418418

419+
#region Audio
420+
421+
public static void On(this IAudio audio, string eventName, Function function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, function);
422+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> function) =>
423+
CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
424+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> function) =>
425+
CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
426+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> function) =>
427+
CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
428+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
429+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
430+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
431+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
432+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8, T9> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
433+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7, T8> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
434+
public static void On<T1, T2, T3, T4, T5, T6, T7>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6, T7> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
435+
public static void On<T1, T2, T3, T4, T5, T6>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5, T6> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
436+
public static void On<T1, T2, T3, T4, T5>(this IAudio audio, string eventName, Action<T1, T2, T3, T4, T5> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
437+
public static void On<T1, T2, T3, T4>(this IAudio audio, string eventName, Action<T1, T2, T3, T4> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
438+
public static void On<T1, T2, T3>(this IAudio audio, string eventName, Action<T1, T2, T3> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
439+
public static void On<T1, T2>(this IAudio audio, string eventName, Action<T1, T2> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
440+
public static void On<T1>(this IAudio audio, string eventName, Action<T1> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
441+
public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
442+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> function) =>
443+
CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
444+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> function) =>
445+
CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
446+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
447+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
448+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
449+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
450+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
451+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8, T9>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
452+
public static void On<T1, T2, T3, T4, T5, T6, T7, T8>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7, T8> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
453+
public static void On<T1, T2, T3, T4, T5, T6, T7>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6, T7> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
454+
public static void On<T1, T2, T3, T4, T5, T6>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5, T6> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
455+
public static void On<T1, T2, T3, T4, T5>(this IAudio audio, string eventName, Func<T1, T2, T3, T4, T5> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
456+
public static void On<T1, T2, T3, T4>(this IAudio audio, string eventName, Func<T1, T2, T3, T4> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
457+
public static void On<T1, T2, T3>(this IAudio audio, string eventName, Func<T1, T2, T3> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
458+
public static void On<T1, T2>(this IAudio audio, string eventName, Func<T1, T2> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
459+
public static void On<T1>(this IAudio audio, string eventName, Func<T1> function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function));
460+
461+
#endregion
419462
}
420463
}

0 commit comments

Comments
 (0)