Skip to content

Commit 6329c34

Browse files
Merge branch 'main' into add-clipboard-cpuinfo-dialog
2 parents f6b717c + 96c09d7 commit 6329c34

16 files changed

+7918
-4
lines changed

tests/testaudiomacros.pas

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
This file is part of:
3+
4+
SDL3 for Pascal
5+
(https://github.com/PascalGameDevelopment/SDL3-for-Pascal)
6+
SPDX-License-Identifier: Zlib
7+
}
8+
9+
{ Test some macros from SDL_audio.inc }
10+
11+
program testaudiomacros;
12+
13+
uses
14+
SDL3;
15+
16+
begin
17+
18+
SDL_Log('SDL_AUDIO_BITSIZE(SDL_AUDIO_S16) returns: %d (should be 16)',[SDL_AUDIO_BITSIZE(SDL_AUDIO_S16)]);
19+
SDL_Log('SDL_AUDIO_BITSIZE(SDL_AUDIO_F32LE) returns: %d (should be 32)',[SDL_AUDIO_BITSIZE(SDL_AUDIO_F32LE)]);
20+
SDL_Log('SDL_AUDIO_BYTESIZE(SDL_AUDIO_S16) returns: %d (should be 2)',[SDL_AUDIO_BYTESIZE(SDL_AUDIO_S16)]);
21+
SDL_Log('SDL_AUDIO_ISFLOAT(SDL_AUDIO_S16) returns: %d (should be 0)',[SDL_AUDIO_ISFLOAT(SDL_AUDIO_S16)]);
22+
SDL_Log('SDL_AUDIO_ISBIGENDIAN(SDL_AUDIO_S16LE) returns: %d (should be 0)',[SDL_AUDIO_ISBIGENDIAN(SDL_AUDIO_S16LE)]);
23+
SDL_Log('SDL_AUDIO_ISBIGENDIAN(SDL_AUDIO_S16BE) returns: %d (should be )',[SDL_AUDIO_ISBIGENDIAN(SDL_AUDIO_S16BE)]);
24+
SDL_Log('SDL_AUDIO_ISLITTLEENDIAN(SDL_AUDIO_S16BE) returns: %d (should be 0)',[SDL_AUDIO_ISLITTLEENDIAN(SDL_AUDIO_S16BE)]);
25+
SDL_Log('SDL_AUDIO_ISLITTLEENDIAN(SDL_AUDIO_S16LE) returns: %d (should be )',[SDL_AUDIO_ISLITTLEENDIAN(SDL_AUDIO_S16LE)]);
26+
SDL_Log('SDL_AUDIO_ISSIGNED(SDL_AUDIO_U8) returns: %d (should be 0)',[SDL_AUDIO_ISSIGNED(SDL_AUDIO_U8)]);
27+
SDL_Log('SDL_AUDIO_ISINT(SDL_AUDIO_F32) returns: %d (should be 0)',[SDL_AUDIO_ISINT(SDL_AUDIO_F32)]);
28+
SDL_Log('SDL_AUDIO_ISUNSIGNED(SDL_AUDIO_S16) returns: %d (should be 0)',[SDL_AUDIO_ISUNSIGNED(SDL_AUDIO_S16)]);
29+
30+
end.
31+

units/SDL3.pas

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ interface
7979
{$I SDL_log.inc} // 3.1.6-prev
8080
{$I SDL_version.inc} // 3.1.6-prev
8181
{$I SDL_revision.inc} // 3.1.6-prev
82+
{$I SDL_guid.inc} // 3.1.6-prev
8283
{$I SDL_stdinc.inc} // 3.1.6-prev (unfinished)
8384
{$I SDL_rect.inc} // 3.1.6-prev
8485
{$I SDL_properties.inc} // 3.1.6-prev
@@ -87,9 +88,21 @@ interface
8788
{$I SDL_iostream.inc} // 3.1.6-prev (unfinished)
8889
{$I SDL_surface.inc} // 3.1.6-prev
8990
{$I SDL_video.inc} // 3.1.6-prev
90-
{$I SDL_render.inc} // 3.1.6-prev
9191
{$I SDL_timer.inc} // 3.1.6-prev
9292
{$I SDL_error.inc} // 3.1.6-prev
93+
{$I SDL_power.inc} // 3.1.6-prev
94+
{$I SDL_audio.inc} // 3.1.6-prev
95+
{$I SDL_sensor.inc} // 3.1.6-prev
96+
{$I SDL_scancode.inc} // 3.1.6-prev
97+
{$I SDL_keycode.inc} // 3.1.6-prev
98+
{$I SDL_mouse.inc} // 3.1.6-prev
99+
{$I SDL_keyboard.inc} // 3.1.6-prev
100+
{$I SDL_joystick.inc} // 3.1.6-prev
101+
{$I SDL_pen.inc} // 3.1.6-prev
102+
{$I SDL_touch.inc} // 3.1.6-prev
103+
{$I SDL_camera.inc} // 3.1.6-prev
104+
{$I SDL_events.inc} // 3.1.6-prev
105+
{$I SDL_render.inc} // 3.1.6-prev
93106
{$I SDL_clipboard.inc} // 3.2.0
94107
{$I SDL_cpuinfo.inc} // 3.2.0
95108
{$I SDL_dialog.inc} // 3.2.0
@@ -219,6 +232,64 @@ function SDL_NS_TO_US(NS: Integer): Integer;
219232
SDL_NS_TO_US:=NS div SDL_NS_PER_US;
220233
end;
221234

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

0 commit comments

Comments
 (0)