Skip to content

Commit 987c3a5

Browse files
Finishs SDL_audio.inc
1 parent 23768d8 commit 987c3a5

File tree

2 files changed

+2113
-2
lines changed

2 files changed

+2113
-2
lines changed

units/SDL3.pas

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ interface
9191
{$I SDL_timer.inc} // 3.1.6-prev
9292
{$I SDL_error.inc} // 3.1.6-prev
9393
{$I SDL_power.inc} // 3.1.6-prev
94-
{$I SDL_audio.inc} // 3.1.6-prev (unfinished)
94+
{$I SDL_audio.inc} // 3.1.6-prev
9595
{$I SDL_sensor.inc} // 3.1.6-prev
9696
{$I SDL_scancode.inc} // 3.1.6-prev
9797
{$I SDL_keycode.inc} // 3.1.6-prev
@@ -227,6 +227,58 @@ function SDL_NS_TO_US(NS: Integer): Integer;
227227
SDL_NS_TO_US:=NS div SDL_NS_PER_US;
228228
end;
229229

230+
{ Macros from SDL_audio.h }
231+
function SDL_DEFINE_AUDIO_FORMAT(signed: cuint16; bigendian: cuint16;
232+
float: cuint16; size: Integer): TSDL_AudioFormat;
233+
begin
234+
Result:=(signed shl 15) or (bigendian shl 12) or (float shl 8) or (size and SDL_AUDIO_MASK_BITSIZE);
235+
end;
236+
237+
function SDL_AUDIO_BITSIZE(x: TSDL_AudioFormat): Integer;
238+
begin
239+
Result:=x and SDL_AUDIO_MASK_BITSIZE;
240+
end;
241+
242+
function SDL_AUDIO_BYTESIZE(x: TSDL_AudioFormat): Integer;
243+
begin
244+
Result:=SDL_AUDIO_BITSIZE(x) div 8;
245+
end;
246+
247+
function SDL_AUDIO_ISFLOAT(x: TSDL_AudioFormat): Integer;
248+
begin
249+
Result:=x and SDL_AUDIO_MASK_FLOAT;
250+
end;
251+
252+
function SDL_AUDIO_ISBIGENDIAN(x: TSDL_AudioFormat): Integer;
253+
begin
254+
Result:=x and SDL_AUDIO_MASK_BIG_ENDIAN;
255+
end;
256+
257+
function SDL_AUDIO_ISLITTLEENDIAN(x: TSDL_AudioFormat): Integer;
258+
begin
259+
Result:=not(x) and SDL_AUDIO_MASK_BIG_ENDIAN;
260+
end;
261+
262+
function SDL_AUDIO_ISSIGNED(x: TSDL_AudioFormat): Integer;
263+
begin
264+
Result:=x and SDL_AUDIO_MASK_SIGNED;
265+
end;
266+
267+
function SDL_AUDIO_ISINT(x: TSDL_AudioFormat): Integer;
268+
begin
269+
Result:=not(x) and SDL_AUDIO_MASK_FLOAT;
270+
end;
271+
272+
function SDL_AUDIO_ISUNSIGNED(x: TSDL_AudioFormat): Integer;
273+
begin
274+
Result:=not(x) and SDL_AUDIO_MASK_SIGNED;
275+
end;
276+
277+
function SDL_AUDIO_FRAMESIZE(x: TSDL_AudioSpec): Integer;
278+
begin
279+
Result:=SDL_AUDIO_BYTESIZE(x.format * x.channels);
280+
end;
281+
230282
{ Macros from SDL_keycode.h }
231283
function SDL_SCANCODE_TO_KEYCODE(X: TSDL_Scancode): TSDL_Keycode;
232284
begin

0 commit comments

Comments
 (0)