Skip to content

Commit 8dc832f

Browse files
committed
add AudioCategory
1 parent c297739 commit 8dc832f

File tree

8 files changed

+531
-7
lines changed

8 files changed

+531
-7
lines changed

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

Lines changed: 152 additions & 2 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
@@ -429,7 +429,7 @@ public unsafe interface IServerLibrary
429429

430430
public unsafe class ServerLibrary : IServerLibrary
431431
{
432-
public readonly uint Methods = 1588;
432+
public readonly uint Methods = 1618;
433433
public delegate* unmanaged[Cdecl]<nint, nint, void> BaseObject_DeleteSyncedMetaData { get; }
434434
public delegate* unmanaged[Cdecl]<nint, nint, nint, void> BaseObject_SetSyncedMetaData { get; }
435435
public delegate* unmanaged[Cdecl]<nint, nint, void> Blip_AddTargetPlayer { get; }
@@ -1684,7 +1684,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
16841684
public ServerLibrary(Dictionary<ulong, IntPtr> funcTable)
16851685
{
16861686
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1687-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16265449092514201536UL) Outdated = true;
1687+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16364655961139363244UL) Outdated = true;
16881688
BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, void>) GetUnmanagedPtr<BaseObject_DeleteSyncedMetaDataDelegate>(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback);
16891689
BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]<nint, nint, nint, void>) GetUnmanagedPtr<BaseObject_SetSyncedMetaDataDelegate>(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback);
16901690
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
@@ -364,7 +364,7 @@ public unsafe interface ISharedLibrary
364364

365365
public unsafe class SharedLibrary : ISharedLibrary
366366
{
367-
public readonly uint Methods = 1588;
367+
public readonly uint Methods = 1618;
368368
public delegate* unmanaged[Cdecl]<nint, uint> Audio_GetID { get; }
369369
public delegate* unmanaged[Cdecl]<nint, uint> AudioAttachedOutput_GetID { get; }
370370
public delegate* unmanaged[Cdecl]<nint, uint> AudioFilter_GetID { get; }
@@ -1424,7 +1424,7 @@ private IntPtr GetUnmanagedPtr<T>(IDictionary<ulong, IntPtr> funcTable, ulong ha
14241424
public SharedLibrary(Dictionary<ulong, IntPtr> funcTable)
14251425
{
14261426
if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;
1427-
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16265449092514201536UL) Outdated = true;
1427+
else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 16364655961139363244UL) Outdated = true;
14281428
Audio_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<Audio_GetIDDelegate>(funcTable, 4464042055475980737UL, Audio_GetIDFallback);
14291429
AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioAttachedOutput_GetIDDelegate>(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback);
14301430
AudioFilter_GetID = (delegate* unmanaged[Cdecl]<nint, uint>) GetUnmanagedPtr<AudioFilter_GetIDDelegate>(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback);

api/AltV.Net.Client/Core.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,11 @@ public IntPtr CreateMarkerPtr(out uint id, MarkerType type, Position pos, Rgba c
202202
return new HandlingData(this, modelHash);
203203
}
204204

205+
public AudioCategory GetAudioCategoryByName(string audioCategory)
206+
{
207+
return new AudioCategory(this, audioCategory);
208+
}
209+
205210
public WeaponData? GetWeaponDataByWeaponHash(uint weaponHash)
206211
{
207212
return new WeaponData(this, weaponHash);
Lines changed: 347 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,347 @@
1+
using System.Runtime.InteropServices;
2+
using AltV.Net.Shared.Utils;
3+
4+
namespace AltV.Net.Client.Elements.Data;
5+
6+
public class AudioCategory : IAudioCategory
7+
{
8+
private readonly ICore core;
9+
private readonly string name;
10+
11+
internal AudioCategory(ICore core, string name)
12+
{
13+
this.core = core;
14+
this.name = name;
15+
}
16+
17+
public float Volume
18+
{
19+
get
20+
{
21+
unsafe
22+
{
23+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
24+
var result = core.Library.Client.AudioCategory_GetVolume(namePtr);
25+
Marshal.FreeHGlobal(namePtr);
26+
return result;
27+
}
28+
}
29+
set
30+
{
31+
unsafe
32+
{
33+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
34+
core.Library.Client.AudioCategory_SetVolume(namePtr, value);
35+
Marshal.FreeHGlobal(namePtr);
36+
}
37+
}
38+
}
39+
40+
public float DistanceRolloffScale
41+
{
42+
get
43+
{
44+
unsafe
45+
{
46+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
47+
var result = core.Library.Client.AudioCategory_GetDistanceRolloffScale(namePtr);
48+
Marshal.FreeHGlobal(namePtr);
49+
return result;
50+
}
51+
}
52+
set
53+
{
54+
unsafe
55+
{
56+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
57+
core.Library.Client.AudioCategory_SetDistanceRolloffScale(namePtr, value);
58+
Marshal.FreeHGlobal(namePtr);
59+
}
60+
}
61+
}
62+
63+
public float PlateauRolloffScale
64+
{
65+
get
66+
{
67+
unsafe
68+
{
69+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
70+
var result = core.Library.Client.AudioCategory_GetPlateauRolloffScale(namePtr);
71+
Marshal.FreeHGlobal(namePtr);
72+
return result;
73+
}
74+
}
75+
set
76+
{
77+
unsafe
78+
{
79+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
80+
core.Library.Client.AudioCategory_SetPlateauRolloffScale(namePtr, value);
81+
Marshal.FreeHGlobal(namePtr);
82+
}
83+
}
84+
}
85+
86+
public float OcclusionDamping
87+
{
88+
get
89+
{
90+
unsafe
91+
{
92+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
93+
var result = core.Library.Client.AudioCategory_GetOcclusionDamping(namePtr);
94+
Marshal.FreeHGlobal(namePtr);
95+
return result;
96+
}
97+
}
98+
set
99+
{
100+
unsafe
101+
{
102+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
103+
core.Library.Client.AudioCategory_SetOcclusionDamping(namePtr, value);
104+
Marshal.FreeHGlobal(namePtr);
105+
}
106+
}
107+
}
108+
109+
public float EnvironmentalFilterDamping
110+
{
111+
get
112+
{
113+
unsafe
114+
{
115+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
116+
var result = core.Library.Client.AudioCategory_GetEnvironmentalFilterDamping(namePtr);
117+
Marshal.FreeHGlobal(namePtr);
118+
return result;
119+
}
120+
}
121+
set
122+
{
123+
unsafe
124+
{
125+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
126+
core.Library.Client.AudioCategory_SetEnvironmentalFilterDamping(namePtr, value);
127+
Marshal.FreeHGlobal(namePtr);
128+
}
129+
}
130+
}
131+
132+
public float SourceReverbDamping
133+
{
134+
get
135+
{
136+
unsafe
137+
{
138+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
139+
var result = core.Library.Client.AudioCategory_GetSourceReverbDamping(namePtr);
140+
Marshal.FreeHGlobal(namePtr);
141+
return result;
142+
}
143+
}
144+
set
145+
{
146+
unsafe
147+
{
148+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
149+
core.Library.Client.AudioCategory_SetSourceReverbDamping(namePtr, value);
150+
Marshal.FreeHGlobal(namePtr);
151+
}
152+
}
153+
}
154+
155+
public float DistanceReverbDamping
156+
{
157+
get
158+
{
159+
unsafe
160+
{
161+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
162+
var result = core.Library.Client.AudioCategory_GetDistanceReverbDamping(namePtr);
163+
Marshal.FreeHGlobal(namePtr);
164+
return result;
165+
}
166+
}
167+
set
168+
{
169+
unsafe
170+
{
171+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
172+
core.Library.Client.AudioCategory_SetDistanceReverbDamping(namePtr, value);
173+
Marshal.FreeHGlobal(namePtr);
174+
}
175+
}
176+
}
177+
178+
public float InteriorReverbDamping
179+
{
180+
get
181+
{
182+
unsafe
183+
{
184+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
185+
var result = core.Library.Client.AudioCategory_GetInteriorReverbDamping(namePtr);
186+
Marshal.FreeHGlobal(namePtr);
187+
return result;
188+
}
189+
}
190+
set
191+
{
192+
unsafe
193+
{
194+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
195+
core.Library.Client.AudioCategory_SetInteriorReverbDamping(namePtr, value);
196+
Marshal.FreeHGlobal(namePtr);
197+
}
198+
}
199+
}
200+
201+
public float EnvironmentalLoudness
202+
{
203+
get
204+
{
205+
unsafe
206+
{
207+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
208+
var result = core.Library.Client.AudioCategory_GetEnvironmentalLoudness(namePtr);
209+
Marshal.FreeHGlobal(namePtr);
210+
return result;
211+
}
212+
}
213+
set
214+
{
215+
unsafe
216+
{
217+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
218+
core.Library.Client.AudioCategory_SetEnvironmentalLoudness(namePtr, value);
219+
Marshal.FreeHGlobal(namePtr);
220+
}
221+
}
222+
}
223+
224+
public float UnderwaterWetLevel
225+
{
226+
get
227+
{
228+
unsafe
229+
{
230+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
231+
var result = core.Library.Client.AudioCategory_GetUnderwaterWetLevel(namePtr);
232+
Marshal.FreeHGlobal(namePtr);
233+
return result;
234+
}
235+
}
236+
set
237+
{
238+
unsafe
239+
{
240+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
241+
core.Library.Client.AudioCategory_SetUnderwaterWetLevel(namePtr, value);
242+
Marshal.FreeHGlobal(namePtr);
243+
}
244+
}
245+
}
246+
247+
public float StonedWetLevel
248+
{
249+
get
250+
{
251+
unsafe
252+
{
253+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
254+
var result = core.Library.Client.AudioCategory_GetStonedWetLevel(namePtr);
255+
Marshal.FreeHGlobal(namePtr);
256+
return result;
257+
}
258+
}
259+
set
260+
{
261+
unsafe
262+
{
263+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
264+
core.Library.Client.AudioCategory_SetStonedWetLevel(namePtr, value);
265+
Marshal.FreeHGlobal(namePtr);
266+
}
267+
}
268+
}
269+
270+
public short Pitch
271+
{
272+
get
273+
{
274+
unsafe
275+
{
276+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
277+
var result = core.Library.Client.AudioCategory_GetPitch(namePtr);
278+
Marshal.FreeHGlobal(namePtr);
279+
return result;
280+
}
281+
}
282+
set
283+
{
284+
unsafe
285+
{
286+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
287+
core.Library.Client.AudioCategory_SetPitch(namePtr, value);
288+
Marshal.FreeHGlobal(namePtr);
289+
}
290+
}
291+
}
292+
293+
public short LowPassFilterCutoff
294+
{
295+
get
296+
{
297+
unsafe
298+
{
299+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
300+
var result = core.Library.Client.AudioCategory_GetLowPassFilterCutoff(namePtr);
301+
Marshal.FreeHGlobal(namePtr);
302+
return result;
303+
}
304+
}
305+
set
306+
{
307+
unsafe
308+
{
309+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
310+
core.Library.Client.AudioCategory_SetLowPassFilterCutoff(namePtr, value);
311+
Marshal.FreeHGlobal(namePtr);
312+
}
313+
}
314+
}
315+
316+
public short HighPassFilterCutoff
317+
{
318+
get
319+
{
320+
unsafe
321+
{
322+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
323+
var result = core.Library.Client.AudioCategory_GetHighPassFilterCutoff(namePtr);
324+
Marshal.FreeHGlobal(namePtr);
325+
return result;
326+
}
327+
}
328+
set
329+
{
330+
unsafe
331+
{
332+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
333+
core.Library.Client.AudioCategory_SetHighPassFilterCutoff(namePtr, value);
334+
Marshal.FreeHGlobal(namePtr);
335+
}
336+
}
337+
}
338+
public void Reset()
339+
{
340+
unsafe
341+
{
342+
var namePtr = MemoryUtils.StringToHGlobalUtf8(name);
343+
core.Library.Client.AudioCategory_Reset(namePtr);
344+
Marshal.FreeHGlobal(namePtr);
345+
}
346+
}
347+
}

0 commit comments

Comments
 (0)