Skip to content

Commit bc0a7ee

Browse files
committed
Merge branch 'dev' into rc
2 parents 2fad85b + 828f664 commit bc0a7ee

File tree

19 files changed

+228
-40
lines changed

19 files changed

+228
-40
lines changed

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

Lines changed: 38 additions & 8 deletions
Large diffs are not rendered by default.

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 = 1641;
441+
public readonly uint Methods = 1647;
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 != 9382033170143343053UL) Outdated = true;
1723+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 4271963963690998474UL) 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
@@ -374,7 +374,7 @@ public unsafe interface ISharedLibrary
374374

375375
public unsafe class SharedLibrary : ISharedLibrary
376376
{
377-
public readonly uint Methods = 1641;
377+
public readonly uint Methods = 1647;
378378
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
379379
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
380380
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1464,7 +1464,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
14641464
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
14651465
{
14661466
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1467-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 9382033170143343053UL) Outdated = true;
1467+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 4271963963690998474UL) Outdated = true;
14681468
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
14691469
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
14701470
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.CApi/Native/AltV.Resource.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,15 @@ internal delegate void VehicleHornDelegate(IntPtr eventPointer, IntPtr targetPoi
112112
internal delegate void RemoveBaseObjectDelegate(IntPtr baseObject, BaseObjectType type);
113113

114114

115+
internal delegate void RequestSyncedSceneDelegate(IntPtr eventPointer, IntPtr source, int sceneId);
116+
117+
internal delegate void StartSyncedSceneDelegate(IntPtr source, int sceneId, Position startPosition, Rotation startRotation, uint animDictHash, IntPtr[] entites, BaseObjectType[] types, uint[] animHashes, ulong size);
118+
119+
internal delegate void StopSyncedSceneDelegate(IntPtr source, int sceneId);
120+
121+
internal delegate void UpdateSyncedSceneDelegate(IntPtr source, float startRate, int sceneId);
122+
123+
115124
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
116125
internal static extern void CSharpResourceImpl_SetMainDelegate(IntPtr resource,
117126
MainDelegate @delegate);
@@ -287,6 +296,10 @@ internal static extern void CSharpResourceImpl_SetCreateBaseObjectDelegate(IntPt
287296
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
288297
internal static extern void CSharpResourceImpl_SetRemoveBaseObjectDelegate(IntPtr resource,
289298
RemoveBaseObjectDelegate @delegate);
299+
300+
[DllImport(DllName, CallingConvention = NativeCallingConvention)]
301+
internal static extern void CSharpResourceImpl_SetRequestSyncedSceneDelegate(IntPtr resource,
302+
RequestSyncedSceneDelegate @delegate);
290303
}
291304
}
292305
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public partial class Alt
1616
public static IWebView CreateWebView(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) => Core.CreateWebView(url, isOverlay, pos, size);
1717
public static IWebView CreateWebView(string url, uint propHash, string targetTexture) => Core.CreateWebView(url, propHash, targetTexture);
1818
public static IRmlDocument CreateRmlDocument(string url) => Core.CreateRmlDocument(url);
19-
public static IAudio CreateAudio(string source, float volume) => Core.CreateAudio(source, volume);
19+
public static IAudio CreateAudio(string source, float volume, bool isRadio = false, string basePath = "") => Core.CreateAudio(source, volume, isRadio, basePath);
2020
public static IAudioFilter CreateAudioFilter(uint hash) => Core.CreateAudioFilter(hash);
2121
public static IAudioFrontendOutput CreateFrontendOutput(uint categoryHash) => Core.CreateFrontendOutput(categoryHash);
2222
public static IAudioWorldOutput CreateWorldOutput(uint categoryHash, Position pos) => Core.CreateWorldOutput(categoryHash, pos);

api/AltV.Net.Client/Core.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -364,22 +364,24 @@ public ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 ne
364364
return PoolManager.Checkpoint.Create(this, ptr, id);
365365
}
366366

367-
public IntPtr CreateAudioPtr(out uint id, string source, float volume)
367+
public IntPtr CreateAudioPtr(out uint id, string source, float volume, bool isRadio = false, string basePath = "")
368368
{
369369
unsafe
370370
{
371371
uint pId = default;
372372
var sourcePtr = MemoryUtils.StringToHGlobalUtf8(source);
373-
var ptr = Library.Client.Core_CreateAudio(NativePointer, sourcePtr, volume, Resource.NativePointer, &pId);
373+
var basePathPtr = MemoryUtils.StringToHGlobalUtf8(basePath);
374+
var ptr = Library.Client.Core_CreateAudio(NativePointer, sourcePtr, volume, isRadio ?(byte)1:(byte)0, basePathPtr, Resource.NativePointer, &pId);
374375
id = pId;
376+
Marshal.FreeHGlobal(basePathPtr);
375377
Marshal.FreeHGlobal(sourcePtr);
376378
return ptr;
377379
}
378380
}
379381

380-
public IAudio CreateAudio(string source, float volume)
382+
public IAudio CreateAudio(string source, float volume, bool isRadio = false, string basePath = "")
381383
{
382-
var ptr = CreateAudioPtr(out var id, source, volume);
384+
var ptr = CreateAudioPtr(out var id, source, volume, isRadio, basePath);
383385
if (ptr == IntPtr.Zero) return null;
384386
return PoolManager.Audio.Create(this, ptr, id);
385387
}

api/AltV.Net.Client/Elements/Entities/Player.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,35 @@ public Player(ICore core, IntPtr playerPointer, uint id, BaseObjectType baseObje
3131
}
3232

3333
public virtual bool IsLocal => false;
34+
public void AddFilter(IAudioFilter filter)
35+
{
36+
unsafe
37+
{
38+
CheckIfEntityExists();
39+
Core.Library.Client.Player_AddFilter(PlayerNativePointer, filter.AudioFilterNativePointer);
40+
}
41+
}
42+
43+
public void RemoveFilter()
44+
{
45+
unsafe
46+
{
47+
CheckIfEntityExists();
48+
Core.Library.Client.Player_RemoveFilter(PlayerNativePointer);
49+
}
50+
}
51+
52+
public IAudioFilter GetFilter()
53+
{
54+
unsafe
55+
{
56+
CheckIfEntityExistsOrCached();
57+
var ptr = Core.Library.Client.Player_GetFilter(PlayerNativePointer);
58+
if (ptr == IntPtr.Zero) return null;
59+
60+
return Alt.Core.PoolManager.AudioFilter.Get(ptr);
61+
}
62+
}
3463

3564
public IVehicle? Vehicle
3665
{

api/AltV.Net.Client/Elements/Entities/WebView.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,36 @@ public void Emit(string eventName, params object[] args)
241241
}
242242
}
243243

244+
public void AddOutput(IAudioOutput ouput)
245+
{
246+
unsafe
247+
{
248+
CheckIfEntityExists();
249+
Core.Library.Client.WebView_AddOutput(WebViewNativePointer, ouput.AudioOutputNativePointer);
250+
}
251+
}
252+
253+
public void RemoveOutput(IAudioOutput ouput)
254+
{
255+
unsafe
256+
{
257+
CheckIfEntityExists();
258+
Core.Library.Client.WebView_RemoveOutput(WebViewNativePointer, ouput.AudioOutputNativePointer);
259+
}
260+
}
261+
262+
public List<IAudioOutput> GetOutputs()
263+
{
264+
unsafe
265+
{
266+
CheckIfEntityExists();
267+
var mvalue = new MValueConst(Core, MValueConst.Type.List, Core.Library.Client.WebView_GetOutputs(WebViewNativePointer));
268+
var mList = mvalue.GetList();
269+
270+
return mList.Select(mValueConst => Core.PoolManager.AudioOutput.Get(mValueConst.nativePointer)).ToList();
271+
}
272+
}
273+
244274
#endregion
245275

246276
}

api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ public interface IPlayer : ISharedPlayer, IEntity
1111
float NonSpatialVolume { get; set; }
1212
float SpatialVolume { get; set; }
1313
bool IsLocal { get; }
14+
15+
void AddFilter(IAudioFilter filter);
16+
void RemoveFilter();
17+
IAudioFilter GetFilter();
1418
}
1519
}

api/AltV.Net.Client/Elements/Interfaces/IWebView.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,9 @@ public interface IWebView : IBaseObject
1717
void Focus();
1818
void Unfocus();
1919
void Emit(string eventName, params object[] args);
20+
21+
void AddOutput(IAudioOutput ouput);
22+
void RemoveOutput(IAudioOutput ouput);
23+
List<IAudioOutput> GetOutputs();
2024
}
2125
}

0 commit comments

Comments
 (0)