{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.YdgdwPvz/b1/allegro5_5.2.9.1+dfsg-2_arm64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.YdgdwPvz/b2/allegro5_5.2.9.1+dfsg-2_arm64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,9 +1,9 @@\n \n- 07765c13bb315a6f89460df85338936c 1402480 doc optional allegro5-doc_5.2.9.1+dfsg-2_all.deb\n+ 1dbdc9bb58612e5838707c4338f42e6c 1394376 doc optional allegro5-doc_5.2.9.1+dfsg-2_all.deb\n 6b00acf5f9eee09980ae3253a40edfc8 18612 libdevel optional liballegro-acodec5-dev_5.2.9.1+dfsg-2_arm64.deb\n edb760eb4d4de71446910b1db7e7520c 61904 debug optional liballegro-acodec5.2t64-dbgsym_5.2.9.1+dfsg-2_arm64.deb\n ed1646f7ef04d546ad16fe409e8d88a7 36540 libs optional liballegro-acodec5.2t64_5.2.9.1+dfsg-2_arm64.deb\n 487239f6fd08d199d31715ab1d1e644a 21416 libdevel optional liballegro-audio5-dev_5.2.9.1+dfsg-2_arm64.deb\n 5b9d9c6676fe5102f6055d7b751e714d 106764 debug optional liballegro-audio5.2t64-dbgsym_5.2.9.1+dfsg-2_arm64.deb\n c9beb6da55609180fc76853d8b2d2d5a 56272 libs optional liballegro-audio5.2t64_5.2.9.1+dfsg-2_arm64.deb\n 9f846c7116745f5fec3095fc8a1bb437 19656 libdevel optional liballegro-dialog5-dev_5.2.9.1+dfsg-2_arm64.deb\n"}, {"source1": "allegro5-doc_5.2.9.1+dfsg-2_all.deb", "source2": "allegro5-doc_5.2.9.1+dfsg-2_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-05-03 10:28:35.000000 debian-binary\n--rw-r--r-- 0 0 0 31568 2024-05-03 10:28:35.000000 control.tar.xz\n--rw-r--r-- 0 0 0 1370720 2024-05-03 10:28:35.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 31556 2024-05-03 10:28:35.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 1362628 2024-05-03 10:28:35.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./control", "source2": "./control", "unified_diff": "@@ -1,13 +1,13 @@\n Package: allegro5-doc\n Source: allegro5\n Version: 2:5.2.9.1+dfsg-2\n Architecture: all\n Maintainer: Debian Games Team \n-Installed-Size: 5756\n+Installed-Size: 5603\n Depends: fonts-dejavu-core\n Section: doc\n Priority: optional\n Multi-Arch: foreign\n Homepage: https://liballeg.org/\n Description: documentation for the Allegro 5 library\n This package contains the Allegro documentation in various formats,\n"}, {"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -198,401 +198,401 @@\n -rw-r--r-- 0 root (0) root (0) 5396 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/ex_window_maximized.c\n -rw-r--r-- 0 root (0) root (0) 2660 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/ex_window_title.c\n -rw-r--r-- 0 root (0) root (0) 6446 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/ex_windows.c\n -rw-r--r-- 0 root (0) root (0) 1674 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/ex_winfull.c\n -rw-r--r-- 0 root (0) root (0) 19521 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/nihgui.cpp\n -rw-r--r-- 0 root (0) root (0) 6456 2024-01-20 03:16:21.000000 ./usr/share/doc/allegro5-doc/examples/nihgui.hpp\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/\n--rw-r--r-- 0 root (0) root (0) 11804 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html\n--rw-r--r-- 0 root (0) root (0) 280145 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/audio.html\n+-rw-r--r-- 0 root (0) root (0) 11781 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html\n+-rw-r--r-- 0 root (0) root (0) 231960 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/audio.html\n -rw-r--r-- 0 root (0) root (0) 36350 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/autosuggest.js\n--rw-r--r-- 0 root (0) root (0) 86551 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/color.html\n--rw-r--r-- 0 root (0) root (0) 38403 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/config.html\n+-rw-r--r-- 0 root (0) root (0) 66986 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/color.html\n+-rw-r--r-- 0 root (0) root (0) 37787 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/config.html\n -rw-r--r-- 0 root (0) root (0) 17711 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/direct3d.html\n--rw-r--r-- 0 root (0) root (0) 85996 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/display.html\n--rw-r--r-- 0 root (0) root (0) 83532 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/events.html\n--rw-r--r-- 0 root (0) root (0) 62815 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/file.html\n--rw-r--r-- 0 root (0) root (0) 56731 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fixed.html\n--rw-r--r-- 0 root (0) root (0) 118316 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/font.html\n--rw-r--r-- 0 root (0) root (0) 43135 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fshook.html\n--rw-r--r-- 0 root (0) root (0) 13649 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html\n+-rw-r--r-- 0 root (0) root (0) 85624 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/display.html\n+-rw-r--r-- 0 root (0) root (0) 81432 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/events.html\n+-rw-r--r-- 0 root (0) root (0) 62307 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/file.html\n+-rw-r--r-- 0 root (0) root (0) 56555 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fixed.html\n+-rw-r--r-- 0 root (0) root (0) 95348 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/font.html\n+-rw-r--r-- 0 root (0) root (0) 42368 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fshook.html\n+-rw-r--r-- 0 root (0) root (0) 13487 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html\n -rw-r--r-- 0 root (0) root (0) 17054 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/getting_started.html\n--rw-r--r-- 0 root (0) root (0) 224738 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html\n--rw-r--r-- 0 root (0) root (0) 70454 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/haptic.html\n--rw-r--r-- 0 root (0) root (0) 13269 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/image.html\n+-rw-r--r-- 0 root (0) root (0) 223208 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html\n+-rw-r--r-- 0 root (0) root (0) 69779 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/haptic.html\n+-rw-r--r-- 0 root (0) root (0) 12422 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/image.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/\n -rw-r--r-- 0 root (0) root (0) 21480 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/LINE_CAP.png\n -rw-r--r-- 0 root (0) root (0) 15893 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/LINE_JOIN.png\n -rw-r--r-- 0 root (0) root (0) 65065 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/audio.png\n -rw-r--r-- 0 root (0) root (0) 16058 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/primitives1.png\n -rw-r--r-- 0 root (0) root (0) 25805 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/images/primitives2.png\n -rw-r--r-- 0 root (0) root (0) 6772 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/index.html\n -rw-r--r-- 0 root (0) root (0) 110368 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/index_all.html\n--rw-r--r-- 0 root (0) root (0) 35824 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/joystick.html\n--rw-r--r-- 0 root (0) root (0) 24335 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/keyboard.html\n+-rw-r--r-- 0 root (0) root (0) 35288 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/joystick.html\n+-rw-r--r-- 0 root (0) root (0) 24123 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/keyboard.html\n -rw-r--r-- 0 root (0) root (0) 9012 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/main.html\n--rw-r--r-- 0 root (0) root (0) 11155 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html\n--rw-r--r-- 0 root (0) root (0) 27357 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memory.html\n--rw-r--r-- 0 root (0) root (0) 10568 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/misc.html\n--rw-r--r-- 0 root (0) root (0) 18032 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/monitor.html\n--rw-r--r-- 0 root (0) root (0) 41904 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html\n--rw-r--r-- 0 root (0) root (0) 92460 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/native_dialog.html\n+-rw-r--r-- 0 root (0) root (0) 10520 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html\n+-rw-r--r-- 0 root (0) root (0) 24141 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memory.html\n+-rw-r--r-- 0 root (0) root (0) 10393 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/misc.html\n+-rw-r--r-- 0 root (0) root (0) 17870 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/monitor.html\n+-rw-r--r-- 0 root (0) root (0) 41698 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html\n+-rw-r--r-- 0 root (0) root (0) 78259 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/native_dialog.html\n -rw-r--r-- 0 root (0) root (0) 27232 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/opengl.html\n -rw-r--r-- 0 root (0) root (0) 3973 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/pandoc.css\n -rw-r--r-- 0 root (0) root (0) 38118 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/path.html\n--rw-r--r-- 0 root (0) root (0) 12286 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html\n+-rw-r--r-- 0 root (0) root (0) 11853 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html\n -rw-r--r-- 0 root (0) root (0) 26616 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/platform.html\n--rw-r--r-- 0 root (0) root (0) 175122 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/primitives.html\n+-rw-r--r-- 0 root (0) root (0) 145969 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/primitives.html\n -rw-r--r-- 0 root (0) root (0) 72016 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/search_index.js\n--rw-r--r-- 0 root (0) root (0) 46531 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/shader.html\n--rw-r--r-- 0 root (0) root (0) 16223 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/state.html\n--rw-r--r-- 0 root (0) root (0) 71545 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/system.html\n--rw-r--r-- 0 root (0) root (0) 36033 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/threads.html\n--rw-r--r-- 0 root (0) root (0) 12829 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/time.html\n--rw-r--r-- 0 root (0) root (0) 28578 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/timer.html\n--rw-r--r-- 0 root (0) root (0) 23244 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/touch.html\n--rw-r--r-- 0 root (0) root (0) 82634 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html\n--rw-r--r-- 0 root (0) root (0) 103643 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/utf8.html\n--rw-r--r-- 0 root (0) root (0) 37238 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/video.html\n+-rw-r--r-- 0 root (0) root (0) 45919 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/shader.html\n+-rw-r--r-- 0 root (0) root (0) 15870 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/state.html\n+-rw-r--r-- 0 root (0) root (0) 71004 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/system.html\n+-rw-r--r-- 0 root (0) root (0) 35451 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/threads.html\n+-rw-r--r-- 0 root (0) root (0) 12631 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/time.html\n+-rw-r--r-- 0 root (0) root (0) 26614 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/timer.html\n+-rw-r--r-- 0 root (0) root (0) 22266 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/touch.html\n+-rw-r--r-- 0 root (0) root (0) 82432 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html\n+-rw-r--r-- 0 root (0) root (0) 103250 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/utf8.html\n+-rw-r--r-- 0 root (0) root (0) 31894 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/video.html\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/share/doc-base/\n -rw-r--r-- 0 root (0) root (0) 300 2024-03-20 15:11:29.000000 ./usr/share/doc-base/allegro5-doc.allegro5\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/share/man/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/share/man/man3/\n--rw-r--r-- 0 root (0) root (0) 408 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEPTH.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 258 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEVICE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 556 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_EVENT_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 559 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_PAN_NONE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 478 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 951 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_STREAM.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 250 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 461 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP_WRAP.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 252 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BPM_TO_SECS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 249 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BPS_TO_SECS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 283 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CHANNEL_CONF.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 249 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 239 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG_ENTRY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG_SECTION.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 251 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 461 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY_MODE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 5014 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 369 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_QUEUE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_SOURCE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_TYPE_IS_USER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 252 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 775 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE_INTERFACE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE_MODE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 413 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 422 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 318 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FS_ENTRY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 511 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FS_INTERFACE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 692 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GET_EVENT_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 789 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 431 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 816 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_CONSTANTS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 3144 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT_ID.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_INDEX_BUFFER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_KEYBOARD_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 430 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LINE_CAP.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 406 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LINE_JOIN.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 798 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LOCKED_REGION.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MEMORY_INTERFACE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 293 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 709 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU_INFO.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 506 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER_QUALITY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 464 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MONITOR_INFO.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 448 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MOUSE_EMULATION_MODE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 458 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MOUSE_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MSECS_TO_SECS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 240 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 296 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 2161 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PIXEL_FORMAT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1140 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_ATTR.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 571 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 360 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_QUALITY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 904 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_STORAGE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 485 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_RENDER_FUNCTION.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 862 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_RENDER_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 412 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 337 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE_ID.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 601 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE_INSTANCE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 459 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 514 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER_PLATFORM.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 702 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 685 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE_FLAGS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 389 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SYSTEM_ID.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 251 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 241 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMEOUT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 251 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 275 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 275 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 466 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USECS_TO_SECS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 672 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USER_EVENT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 311 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 318 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR_INFO.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 593 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 358 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_BUFFER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 416 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_CACHE_SIZE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_DECL.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 889 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_ELEMENT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 518 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VIDEO_EVENT_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 558 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VIDEO_POSITION_TYPE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 388 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 384 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_WRITE_MASK_FLAGS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 405 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEPTH.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 254 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEVICE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 554 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_EVENT_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 554 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_PAN_NONE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 474 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 947 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_STREAM.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 459 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP_WRAP.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 250 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BPM_TO_SECS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 245 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BPS_TO_SECS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 281 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CHANNEL_CONF.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 313 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 244 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 235 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG_ENTRY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG_SECTION.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 458 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY_MODE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 5011 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 364 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_QUEUE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_SOURCE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT_TYPE_IS_USER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 248 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 772 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE_INTERFACE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE_MODE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 409 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FS_ENTRY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 509 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FS_INTERFACE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 689 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GET_EVENT_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 786 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 426 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 813 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_CONSTANTS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 3142 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 453 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT_ID.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_INDEX_BUFFER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 335 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 275 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 413 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 453 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_KEYBOARD_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 428 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LINE_CAP.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 404 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LINE_JOIN.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 794 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_LOCKED_REGION.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 368 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MEMORY_INTERFACE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 289 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 706 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU_INFO.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 502 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 296 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER_QUALITY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 461 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MONITOR_INFO.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 445 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MOUSE_EMULATION_MODE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 455 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MOUSE_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 243 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MSECS_TO_SECS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 236 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 2159 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PIXEL_FORMAT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 467 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1138 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_ATTR.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 568 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 358 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_QUALITY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 902 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_STORAGE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 484 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PRIM_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 334 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_RENDER_FUNCTION.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 859 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_RENDER_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 332 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE_ID.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 597 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE_INSTANCE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 456 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 510 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER_PLATFORM.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 699 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 680 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE_FLAGS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 386 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SYSTEM_ID.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 238 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMEOUT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 462 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TOUCH_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 243 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USECS_TO_SECS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 669 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USER_EVENT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR_INFO.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 588 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_BUFFER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 412 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_CACHE_SIZE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_DECL.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 884 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX_ELEMENT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 516 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VIDEO_EVENT_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 553 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VIDEO_POSITION_TYPE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 381 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_WRITE_MASK_FLAGS.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 477 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_acknowledge_drawing_halt.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_acknowledge_drawing_resume.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 554 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_acknowledge_resize.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 420 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_add_config_comment.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_add_config_section.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_add_new_bitmap_flag.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 371 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_add_timer_count.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_android_get_activity.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 625 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_android_get_jni_env.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_android_get_os_version.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_android_set_apk_file_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 494 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_android_set_apk_fs_interface.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_append_menu_item.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_append_native_text_log.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_append_menu_item.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 452 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_append_native_text_log.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_append_path_component.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 629 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_apply_window_constraints.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_audio_stream_to_mixer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 572 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_audio_stream_to_voice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 442 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_mixer_to_mixer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 381 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_mixer_to_voice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_sample_instance_to_mixer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 556 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_sample_instance_to_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 340 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_audio_stream_to_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 567 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_audio_stream_to_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 438 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_mixer_to_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 377 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_mixer_to_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_sample_instance_to_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 551 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_sample_instance_to_voice.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1752 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_shader_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_attach_shader_source_file.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 607 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_backup_dirty_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 344 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_backup_dirty_bitmaps.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_broadcast_cond.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 816 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_build_camera_transform.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 441 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_build_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 437 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_build_menu.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 526 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_build_shader.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 568 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_build_transform.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1242 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_arc.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 666 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_ribbon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 626 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_spline.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1237 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_arc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 660 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_ribbon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 620 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calculate_spline.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 333 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 351 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calloc_with_context.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_can_get_mouse_cursor_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 281 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_can_set_keyboard_leds.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_change_directory.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 896 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_check_inverse.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 560 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clear_depth_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 643 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clear_keyboard_state.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clear_to_color.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clipboard_has_text.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 422 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 359 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_menu.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_menu_for_popup.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_menu_for_popup.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_clone_path.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_close_directory.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_close_native_text_log.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 293 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_close_video.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_cmyk.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_cmyk_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 719 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_distance_ciede2000.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 369 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsl.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 408 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsl_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 400 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsv_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 440 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_html.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 503 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_html_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 578 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lab.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lab_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 535 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lch.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lch_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 760 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_linear.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 328 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_linear_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1219 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_name_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 491 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_oklab.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_oklab_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 428 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_cmyk.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 355 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_hsl.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_hsv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 514 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_html.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_lab.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_lch.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_linear.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 322 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_oklab.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_xyy.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_xyz.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_yuv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 397 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyy.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyy_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 538 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyz.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyz_to_rgb.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_yuv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_yuv_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_close_native_text_log.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 289 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_close_video.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_cmyk.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_cmyk_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 715 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_distance_ciede2000.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 365 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsl.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 404 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsl_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsv.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 396 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_hsv_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 436 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_html.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 499 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_html_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 574 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lab.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lab_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 531 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lch.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_lch_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 756 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_linear.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 325 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_linear_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_name.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1213 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_name_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 486 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_oklab.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_oklab_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 424 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_cmyk.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_hsl.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_hsv.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 509 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_html.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_lab.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_lch.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_linear.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_name.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_oklab.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_xyy.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_xyz.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_rgb_to_yuv.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 391 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyy.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyy_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 533 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyz.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_xyz_to_rgb.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_yuv.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 292 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_color_yuv_to_rgb.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 477 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_compose_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 473 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_convert_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_convert_mask_to_alpha.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 549 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_convert_memory_bitmaps.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_copy_transform.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1028 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_audio_recorder.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1257 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1022 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_audio_recorder.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1252 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_audio_stream.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1605 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 594 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_builtin_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 590 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_builtin_font.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_cond.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_config.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 562 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_display.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_event_queue.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 420 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_file_handle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_fs_entry.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 782 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_index_buffer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 322 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_menu.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 578 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 776 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_index_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 318 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 572 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_mixer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 406 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_mouse_cursor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_mutex.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 468 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_mutex_recursive.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1105 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_native_file_dialog.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1100 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_native_file_dialog.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 404 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_path.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_path_for_directory.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_popup_menu.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 793 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_sample_instance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 370 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_popup_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 787 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_sample_instance.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 628 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_shader.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 711 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_sub_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 396 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_thread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 503 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_thread_with_stacksize.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 504 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_timer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 783 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_vertex_buffer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_vertex_decl.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 707 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 778 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_vertex_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 414 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_vertex_decl.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 701 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_create_voice.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 660 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_cstr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 395 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_cstr_dup.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 433 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_audio_recorder.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 429 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_audio_recorder.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_audio_stream.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_cond.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_config.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 416 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_display.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 378 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_event_queue.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 288 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_font.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_fs_entry.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_index_buffer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 360 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_menu.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 257 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_index_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 253 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_mixer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_mouse_cursor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 318 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_mutex.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_native_file_dialog.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 264 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_native_file_dialog.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_path.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 406 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_sample_instance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_sample_instance.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 456 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_shader.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 335 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_thread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 354 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_timer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_user_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 311 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_vertex_buffer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 331 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_vertex_decl.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_voice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_audio_stream.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_mixer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 351 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_sample_instance.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_voice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 325 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_disable_menu_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 929 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_do_multiline_text.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_do_multiline_ustr.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 359 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_drain_audio_stream.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 498 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_arc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_vertex_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_vertex_decl.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_destroy_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 317 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 283 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_sample_instance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_detach_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_disable_menu_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 922 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_do_multiline_text.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_do_multiline_ustr.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 355 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_drain_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 493 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_arc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 729 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 455 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_bitmap_region.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 403 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_circle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 406 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ellipse.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 522 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_elliptical_arc.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 350 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_circle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_ellipse.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 477 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_pieslice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 509 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_polygon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 953 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_polygon_with_holes.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_rectangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 400 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_rounded_rectangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_triangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 640 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_glyph.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 728 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_indexed_buffer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 630 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_indexed_prim.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 575 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_text.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 387 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_textf.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_ustr.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_line.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1241 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_text.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 409 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_textf.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 390 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_ustr.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 525 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_pieslice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 399 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_circle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ellipse.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 517 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_elliptical_arc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_circle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_ellipse.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 472 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_pieslice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 505 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_polygon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 944 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_polygon_with_holes.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 369 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_rectangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 395 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_rounded_rectangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_filled_triangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 635 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_glyph.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 722 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_indexed_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 624 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_indexed_prim.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 570 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_text.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_textf.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 359 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_justified_ustr.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 403 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_line.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1236 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_text.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 405 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_textf.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_multiline_ustr.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 520 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_pieslice.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 620 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_pixel.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 574 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_polygon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 801 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_polyline.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 762 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_prim.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 421 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_rectangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 586 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ribbon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 570 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_polygon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 795 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_polyline.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 756 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_prim.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 417 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_rectangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 580 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ribbon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 677 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_rotated_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 454 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_rounded_rectangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 449 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_rounded_rectangle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 463 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_scaled_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 546 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_scaled_rotated_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 818 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_soft_line.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1058 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_soft_triangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 423 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_spline.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 702 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_text.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 368 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_textf.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 811 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_soft_line.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1048 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_soft_triangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 419 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_spline.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 697 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_text.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_textf.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 507 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 375 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_bitmap_region.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_rotated_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 380 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_scaled_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 388 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_scaled_rotated_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 531 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_tinted_scaled_rotated_bitmap_region.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 414 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_triangle.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ustr.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 638 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_vertex_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 409 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_triangle.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 362 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_ustr.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 617 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_draw_vertex_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 332 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_drop_next_event.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_drop_path_tail.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 972 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_emit_user_event.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_enable_menu_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 397 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_enable_menu_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 427 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fclearerr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fclose.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 478 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_feof.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 365 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ferrmsg.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ferror.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fflush.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 462 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fget_ustr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 281 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fgetc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 544 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fgets.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_filename_exists.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 377 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fill_silence.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 408 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_find_menu.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 518 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_find_menu_item.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 371 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fill_silence.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 403 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_find_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 513 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_find_menu_item.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixacos.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 638 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixadd.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 602 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixasin.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 406 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixatan.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 590 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixatan2.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixceil.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 429 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixcos.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 697 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixdiv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 895 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 891 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 385 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixfloor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 318 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixhypot.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 670 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixmul.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 409 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsin.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 292 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsqrt.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 651 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsub.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 464 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixtan.3alleg5.gz\n@@ -610,76 +610,76 @@\n -rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fputc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 503 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fputs.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread16be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 400 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread16le.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 397 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread32be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 400 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread32le.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 458 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_free.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 454 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_free.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_free_with_context.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fs_entry_exists.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 546 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fseek.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 256 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fsize.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ftell.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 513 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ftofix.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 547 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fungetc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 393 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite16be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 330 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite16le.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite32be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 330 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite32le.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 252 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_acodec_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_audio_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_color_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_font_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_image_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_memfile_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 275 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_native_dialog_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_physfs_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_primitives_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_ttf_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_acodec_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_audio_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_color_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_font_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_image_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_memfile_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_native_dialog_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_physfs_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_primitives_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_ttf_version.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 544 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_video_version.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_allegro_video_version.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 256 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_app_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_depth_size.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_device_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_output_device.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_recorder_event.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 351 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_recorder_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_attached.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_channels.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 277 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_depth.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 337 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 711 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_fragment.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 343 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_fragments.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_length.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 379 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_length_secs.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_pan.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_played_samples.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_playmode.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_position_secs.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 288 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_speed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 354 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_available_audio_stream_fragments.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_depth_size.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_device_name.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 277 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_output_device.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_recorder_event.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_recorder_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_attached.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_channels.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_depth.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 333 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 707 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_fragment.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 340 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_fragments.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 263 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_length.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_length_secs.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_pan.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_played_samples.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_playmode.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_position_secs.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_audio_stream_speed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 350 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_available_audio_stream_fragments.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 577 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_backbuffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_blend_color.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_depth.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 266 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 282 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_format.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 246 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_height.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_samples.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 246 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_x.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_bitmap_y.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_blend_color.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_blender.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_channel_count.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_channel_count.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 519 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_clipboard_text.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_clipping_rectangle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 417 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_config_value.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 664 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_cpu_count.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_current_directory.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_current_display.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 426 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_current_inverse_transform.3alleg5.gz\n@@ -687,59 +687,59 @@\n -rw-r--r-- 0 root (0) root (0) 294 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_current_shader.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_current_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 332 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_d3d_device.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_d3d_system_texture.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_d3d_texture_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 374 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_d3d_texture_size.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_d3d_video_texture.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_menu_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 363 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_menu_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_mixer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_shader_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 283 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_default_voice.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 315 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 456 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 266 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_format.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_height.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_menu.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 433 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_mode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_option.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_orientation.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 262 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_refresh_rate.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_display_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_errno.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_event_source_data.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fallback_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fallback_font.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_file_userdata.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 425 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_first_config_entry.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 475 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_first_config_section.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_ascent.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_descent.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 546 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_line_height.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 505 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_ranges.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 275 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_ascent.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_descent.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 543 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_line_height.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_font_ranges.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 404 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_atime.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_ctime.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_mode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_mtime.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 540 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_entry_size.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_fs_interface.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 516 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1230 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_advance.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1087 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_dimensions.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 385 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_width.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 511 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1225 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_advance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1082 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_dimensions.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 381 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_glyph_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 710 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_autocenter.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 440 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_capabilities.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 463 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_effect_duration.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 416 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_from_display.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 525 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_from_joystick.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 420 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_from_keyboard.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 413 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_from_mouse.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 425 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_from_touch_input.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 577 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_haptic_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_index_buffer_size.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 282 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_index_buffer_size.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 481 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 385 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_active.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_axis_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 343 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_button_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 293 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_num_axes.3alleg5.gz\n@@ -747,38 +747,38 @@\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_num_sticks.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_state.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_stick_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_joystick_stick_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_keyboard_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_keyboard_state.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 459 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_max_haptic_effects.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_caption.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_flags.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_icon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_attached.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 281 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_channels.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_depth.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 277 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_quality.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_caption.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_flags.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 403 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_menu_item_icon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 325 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_attached.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 277 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_channels.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_depth.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mixer_quality.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 281 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_monitor_dpi.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 460 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_monitor_info.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 355 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_monitor_refresh_rate.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 411 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_cursor_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 401 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_emulation_mode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 313 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_num_axes.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_num_buttons.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 476 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_state.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_state_axis.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 278 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_mouse_wheel_precision.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 289 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_file_dialog_count.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_file_dialog_path.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 474 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_text_log_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_file_dialog_count.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 346 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_file_dialog_path.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_native_text_log_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 370 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_bitmap_depth.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 258 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_bitmap_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 278 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_bitmap_format.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 370 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_bitmap_samples.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 330 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_bitmap_wrap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 344 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_display_adapter.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 282 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_display_flags.3alleg5.gz\n@@ -786,15 +786,15 @@\n -rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_display_refresh_rate.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_file_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_window_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 450 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_new_window_title.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_next_config_entry.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_next_config_section.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_next_event.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_num_audio_output_devices.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 288 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_num_audio_output_devices.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_num_display_modes.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_num_joysticks.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 436 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_num_video_adapters.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 773 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_opengl_extension_list.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 528 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_opengl_fbo.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 697 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_opengl_proc_address.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_opengl_program_object.3alleg5.gz\n@@ -815,315 +815,315 @@\n -rw-r--r-- 0 root (0) root (0) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel_block_height.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel_block_size.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel_block_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 331 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel_format_bits.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 331 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_pixel_size.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 707 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_ram_size.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 450 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_channels.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_data.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_depth.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_attached.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_channels.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_depth.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 288 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_length.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 282 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_pan.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 325 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_playmode.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 294 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_position.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_speed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 315 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_time.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_length.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 446 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 311 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_channels.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_data.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_depth.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 316 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_attached.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 309 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_channels.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_depth.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 287 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_length.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_pan.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_playmode.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_position.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_speed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_instance_time.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_sample_length.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 377 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_separate_bitmap_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_separate_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_shader_log.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_shader_platform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1433 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_standard_path.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 719 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_system_config.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_system_id.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 261 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_target_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 534 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_text_dimensions.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 325 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_text_width.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 528 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_text_dimensions.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_text_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 428 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_thread_should_stop.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 320 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_time.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 287 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_timer_count.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_timer_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_timer_speed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 258 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_timer_started.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 328 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_touch_input_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 444 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_touch_input_mouse_emulation_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_touch_input_state.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_ustr_dimensions.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_ustr_width.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 287 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_vertex_buffer_size.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 266 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_audio_rate.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_fps.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 548 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_frame.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_position.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_scaled_height.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 360 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_scaled_width.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 283 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_channels.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_depth.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 277 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 343 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_position.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_ustr_dimensions.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 288 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_ustr_width.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 284 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_vertex_buffer_size.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 262 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_audio_rate.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_event_source.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 292 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_fps.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 544 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_frame.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 331 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_position.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 358 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_scaled_height.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_video_scaled_width.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_channels.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_depth.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_voice_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 266 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_win_window_handle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 514 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_window_borders.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_window_constraints.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 290 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_window_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_get_x_window_id.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1192 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_grab_font_from_bitmap.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1188 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_grab_font_from_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 438 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_grab_mouse.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 322 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_have_d3d_non_pow2_texture_support.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_have_d3d_non_square_texture_support.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 423 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_have_opengl_extension.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 371 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_hide_mouse_cursor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 755 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_hold_bitmap_drawing.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_horizontal_shear_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 541 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_bitmap_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 407 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 541 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_sample_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 387 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_video.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 481 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_video_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 404 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 538 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_sample_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_video.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 476 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identify_video_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 380 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_identity_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_inhibit_screensaver.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 506 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 675 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_acodec_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 521 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_font_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 615 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_image_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 476 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_native_dialog_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_primitives_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 672 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_acodec_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 518 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_font_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 614 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_image_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 472 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_native_dialog_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 296 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_primitives_addon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 370 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_timeout.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_ttf_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 319 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_ttf_addon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 772 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_user_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 239 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_video_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 794 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_insert_menu_item.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 238 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init_video_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 787 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_insert_menu_item.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 410 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_insert_path_component.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_audio.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_audio.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 657 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 287 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_joystick.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_keyboard.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_mouse.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 732 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_system.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_install_touch_input.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 462 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_invert_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_iphone_get_view.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 271 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_iphone_get_window.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 351 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_iphone_set_statusbar_orientation.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_acodec_addon_initialized.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_audio_installed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 343 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_audio_recorder_recording.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_acodec_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 262 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_audio_installed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_audio_recorder_recording.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_bitmap_drawing_held.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 287 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_bitmap_locked.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_color_valid.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 575 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_compatible_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_d3d_device_lost.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 443 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_display_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_event_queue_empty.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_event_queue_paused.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_event_source_registered.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_font_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_font_addon_initialized.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 389 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_haptic_active.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 475 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_haptic_capable.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 443 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_haptic_effect_ok.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 505 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_haptic_effect_playing.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 373 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_haptic_installed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_image_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_image_addon_initialized.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 387 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_joystick_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 250 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_joystick_installed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 387 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_keyboard_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 250 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_keyboard_installed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_mouse_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 246 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_mouse_installed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_native_dialog_addon_initialized.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_primitives_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_native_dialog_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_primitives_addon_initialized.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 295 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_sub_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 250 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_system_installed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 401 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_touch_input_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 261 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_touch_input_installed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 301 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_ttf_addon_initialized.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_video_addon_initialized.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_video_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_ttf_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 268 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_video_addon_initialized.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 262 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_is_video_playing.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 529 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_itofix.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 480 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_join_paths.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 401 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_join_thread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_key_down.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_keycode_to_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 657 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_audio_stream.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 777 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_audio_stream_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 650 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 771 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_audio_stream_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 540 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 602 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1751 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 591 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_flags_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 429 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_font.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_font_flags.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 425 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_bitmap_font_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 328 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_config_file.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_config_file_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 479 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_font.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 526 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 616 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_sample_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 824 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 439 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 543 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_stretch.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 474 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_stretch_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 474 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 522 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 611 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_sample_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 820 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 434 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 538 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_stretch.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 468 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_load_ttf_font_stretch_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1178 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 559 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_bitmap_blocked.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 640 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_bitmap_region.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 386 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_bitmap_region_blocked.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 521 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_index_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 517 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_index_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 500 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_mutex.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 587 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_sample_id.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 519 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_vertex_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 583 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_sample_id.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 515 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_lock_vertex_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 378 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_make_directory.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 440 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_make_path_canonical.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 517 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_make_temp_file.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 360 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_malloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 355 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_malloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_malloc_with_context.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_map_rgb.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 332 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_map_rgb_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_map_rgba.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 328 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_map_rgba_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_merge_config.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_merge_config_into.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 343 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_mixer_has_attachments.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_mixer_has_attachments.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 346 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_mouse_button_down.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 334 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_directory.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 419 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_fs_entry.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 565 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_memfile.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 587 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_native_text_log.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 317 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_video.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 559 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_memfile.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 582 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_native_text_log.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 313 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_open_video.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 835 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_orthographic_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 279 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_osx_get_window.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 477 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_path_cstr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 485 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_path_ustr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 484 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_pause_event_queue.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 409 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_peek_next_event.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_perspective_transform.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 612 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_audio_stream.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 732 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_audio_stream_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 608 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 727 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_audio_stream_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 598 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_haptic_effect.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 703 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_sample_instance.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 680 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_popup_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 698 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 294 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_play_sample_instance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 675 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_popup_menu.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 622 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_premul_rgba.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 605 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_premul_rgba_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_put_blended_pixel.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 408 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_put_pixel.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 363 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_radtofix_r.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 465 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_read_directory.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 340 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_realloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 335 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_realloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_realloc_with_context.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 451 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rebase_path.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 785 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reconfigure_joysticks.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ref_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 531 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ref_cstr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 610 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ref_ustr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_assert_handler.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 550 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_audio_stream_loader.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 553 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_audio_stream_loader_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 544 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_audio_stream_loader.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 548 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_audio_stream_loader_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 684 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_bitmap_identifier.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 508 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_bitmap_loader.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 502 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_bitmap_loader_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 507 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_bitmap_saver.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_bitmap_saver_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 373 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_event_source.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_font_loader.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 700 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_identifier.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 505 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_loader.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 499 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_loader_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 512 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_saver.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 506 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_saver_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 496 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_font_loader.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 695 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_identifier.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 502 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_loader.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 495 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_loader_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 509 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_saver.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 501 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_sample_saver_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 447 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_register_trace_handler.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 604 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_release_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 718 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_release_haptic_effect.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_release_joystick.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 335 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_config_key.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_config_section.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 385 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_display_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_display_menu.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 392 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_filename.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_fs_entry.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 490 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_menu_item.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 485 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_menu_item.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_opengl_fbo.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 373 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_remove_path_component.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 522 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reparent_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_replace_path_component.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 614 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reserve_samples.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 612 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reserve_samples.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reset_bitmap_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reset_clipping_rectangle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 260 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_reset_new_display_options.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 391 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_resize_display.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 411 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rest.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 453 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_restore_default_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 450 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_restore_default_mixer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 274 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_restore_state.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 384 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_resume_timer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rewind_audio_stream.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rewind_audio_stream.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rotate_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rotate_transform_3d.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 798 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rumble_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_run_detached_thread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 483 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_run_main.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 449 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 523 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_bitmap_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 311 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_config_file.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 330 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_config_file_f.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 474 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 515 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_sample_f.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 470 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 511 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_save_sample_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_scale_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 330 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_scale_transform_3d.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_seek_audio_stream_secs.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 308 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_seek_video.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 379 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_seek_audio_stream_secs.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_seek_video.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 357 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_app_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_channel_matrix.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_fragment.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 346 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 350 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_loop_secs.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 496 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_pan.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 312 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 327 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_playmode.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 365 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_speed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_fragment.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_loop_secs.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 491 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_pan.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_playmode.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 361 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_audio_stream_speed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 339 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_bitmap_blend_color.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_bitmap_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 324 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_blend_color.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1432 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 315 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_clipboard_text.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_clipping_rectangle.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 539 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_config_value.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 512 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_current_opengl_context.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 419 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_d3d_device_release_callback.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 400 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_d3d_device_restore_callback.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 426 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_default_mixer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_default_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 420 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_default_mixer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 363 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_default_voice.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 490 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_flag.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 306 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_icon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 530 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_icons.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 642 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_menu.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 637 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_menu.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 580 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_display_option.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 227 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_errno.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_event_source_data.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_exe_name.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_fallback_font.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 393 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_fallback_font.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 294 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_fs_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 771 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_haptic_autocenter.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 595 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_haptic_gain.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 434 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_keyboard_leds.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_memory_interface.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_caption.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_flags.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 465 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_icon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_frequency.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 303 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 470 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_postprocess_callback.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_quality.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 344 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_caption.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_flags.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 463 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_menu_item_icon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_frequency.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 321 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 465 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_postprocess_callback.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mixer_quality.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 344 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_axis.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 395 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_cursor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 394 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_emulation_mode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_w.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 746 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_wheel_precision.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 378 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_xy.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 283 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_mouse_z.3alleg5.gz\n@@ -1139,25 +1139,25 @@\n -rw-r--r-- 0 root (0) root (0) 337 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_new_file_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 399 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_new_window_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 396 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_new_window_title.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 363 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_org_name.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 310 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_path_drive.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 446 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_path_extension.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 335 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_path_filename.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 673 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_physfs_file_interface.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 671 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_physfs_file_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 368 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_render_state.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 598 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 755 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_channel_matrix.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_gain.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 418 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_length.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 551 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_pan.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 360 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_playmode.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_position.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_speed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 593 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 751 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_channel_matrix.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_gain.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 414 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_length.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 546 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_pan.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 332 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_playmode.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 326 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_position.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 368 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_sample_instance_speed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 437 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_separate_bitmap_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 397 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_separate_blender.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_shader_bool.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_shader_float.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 322 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_shader_float_vector.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 353 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_shader_int.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 689 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_shader_int_vector.3alleg5.gz\n@@ -1167,64 +1167,64 @@\n -rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_standard_fs_interface.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 596 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_system_mouse_cursor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 280 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_target_backbuffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 1461 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_target_bitmap.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 300 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_thread_should_stop.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 352 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_timer_count.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 446 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_timer_speed.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 263 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_video_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 401 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_voice_playing.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 365 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_voice_position.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 260 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_video_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 395 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_voice_playing.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 359 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_voice_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 451 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_window_constraints.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 291 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_window_position.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 276 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_set_window_title.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 334 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_show_mouse_cursor.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 437 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_show_native_file_dialog.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1148 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_show_native_message_box.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 302 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_font_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 285 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_image_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_native_dialog_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_primitives_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 259 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_ttf_addon.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 296 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_video_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 434 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_show_native_file_dialog.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1142 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_show_native_message_box.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 298 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_font_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 282 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_image_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_native_dialog_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 304 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_primitives_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 257 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_ttf_addon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 292 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_shutdown_video_addon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 338 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_signal_cond.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 433 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_audio_recorder.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 429 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_audio_recorder.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 336 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_thread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 398 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_timer.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 272 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_video.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 289 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_video_with_voice.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 497 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_audio_recorder.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 270 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_video.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 286 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_start_video_with_voice.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 492 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_audio_recorder.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 450 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_haptic_effect.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 267 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_sample.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 273 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_sample_instance.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 251 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_samples.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 265 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_sample.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 269 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_sample_instance.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 247 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_samples.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_stop_timer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 525 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_store_state.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 492 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_toggle_menu_item_flags.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 487 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_toggle_menu_item_flags.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 342 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_transform_coordinates.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 419 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_transform_coordinates_3d.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 769 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_transform_coordinates_3d_projective.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 365 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_transform_coordinates_4d.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 333 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_translate_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_translate_transform_3d.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 445 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_transpose_transform.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 815 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_triangulate_polygon.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 808 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_triangulate_polygon.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 307 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ungrab_mouse.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 246 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_audio.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 243 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_audio.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 482 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_haptic.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_joystick.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 323 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_keyboard.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 305 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_mouse.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 292 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_system.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 315 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_uninstall_touch_input.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_bitmap.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 297 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_index_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 293 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_index_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 333 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_mutex.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_sample_id.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 299 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_vertex_buffer.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 452 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_sample_id.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 294 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unlock_vertex_buffer.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 356 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unmap_rgb.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 348 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unmap_rgb_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 349 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unmap_rgba.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 344 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unmap_rgba_f.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 380 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unref_user_event.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 383 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_unregister_event_source.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 454 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_update_display_region.3alleg5.gz\n@@ -1293,15 +1293,15 @@\n -rw-r--r-- 0 root (0) root (0) 385 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ustr_vappendf.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 434 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_utf16_encode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 341 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_utf16_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 423 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_utf8_encode.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 347 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_utf8_width.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 350 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_vertical_shear_transform.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 345 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_vfprintf.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 329 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_voice_has_attachments.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 324 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_voice_has_attachments.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 654 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_cond.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_cond_until.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 392 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_for_event.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 541 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_for_event_timed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 547 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_for_event_until.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 416 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_wait_for_vsync.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 599 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_win_add_window_callback.3alleg5.gz\n"}, {"source1": "./usr/share/doc/allegro5-doc/refman/acodec.html", "source2": "./usr/share/doc/allegro5-doc/refman/acodec.html", "unified_diff": "@@ -181,16 +181,15 @@\n id=\"toc-al_get_allegro_acodec_version\">al_get_allegro_acodec_version\n \n \n

These functions are declared in the following header file. Link with\n allegro_acodec.

\n
 #include <allegro5/allegro_acodec.h>
\n

al_init_acodec_addon

\n-
bool al_init_acodec_addon(void)\n-bool al_init_acodec_addon(void)
\n+
bool al_init_acodec_addon(void)
\n

Source\n Code

\n

This function registers all the known audio file type handlers for al_load_sample, al_save_sample, al_load_audio_stream,\n@@ -221,25 +220,27 @@\n

  • ex_acodec_multi.c
  • \n
  • ex_kcm_direct.c
  • \n \n al_is_acodec_addon_initialized\n-
    bool al_is_acodec_addon_initialized(void)\n-bool al_is_acodec_addon_initialized(void)
    \n+
    bool al_is_acodec_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the acodec addon is initialized, otherwise returns\n false.

    \n

    Since: 5.2.6

    \n al_get_allegro_acodec_version\n-

    Source Code

    \n+
    uint32_t al_get_allegro_acodec_version(void)
    \n+

    Source\n+Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    \n Allegro version 5.2.9\n - Last updated: 2024-05-03 10:28:35 UTC\n

    \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -47,15 +47,14 @@\n * _\ba_\bl_\b__\bi_\bs_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn_\b__\bi_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bz_\be_\bd\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bv_\be_\br_\bs_\bi_\bo_\bn\n These functions are declared in the following header file. Link with\n allegro_acodec.\n #include \n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_a\bac\bco\bod\bde\bec\bc_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n bool al_init_acodec_addon(void)\n-bool al_init_acodec_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function registers all the known audio file type handlers for\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, etc.\n Depending on what libraries are available, the full set of recognised\n extensions is: .wav, .flac, .ogg, .opus, .it, .mod, .s3m, .xm, .voc.\n L\bLi\bim\bmi\bit\bta\bat\bti\bio\bon\bns\bs:\b:\n * Saving is only supported for wav files.\n@@ -71,16 +70,16 @@\n Return true on success.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_a\bac\bco\bod\bde\bec\bc_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b**\b*\n bool al_is_acodec_addon_initialized(void)\n-bool al_is_acodec_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the acodec addon is initialized, otherwise returns false.\n Since: 5.2.6\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_a\bac\bco\bod\bde\bec\bc_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n-Source Code\n+uint32_t al_get_allegro_acodec_version(void)\n+_\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/audio.html", "source2": "./usr/share/doc/allegro5-doc/refman/audio.html", "unified_diff": "@@ -554,16 +554,15 @@\n

    If you want to play large audio files (e.g.\u00a0background music) without\n loading the whole file at once you can use al_play_audio_stream (after\n calling al_reserve_samples).\n This will load and play an ALLEGRO_AUDIO_STREAM. Note that\n the basic API only supports one such audio stream playing at once.

    \n

    ALLEGRO_SAMPLE_ID

    \n-
    typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n-typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;
    \n+
    typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;
    \n

    Source\n Code

    \n

    An ALLEGRO_SAMPLE_ID represents a sample being played via al_play_sample. It can be used to\n later stop the sample with al_stop_sample. The underlying\n@@ -571,16 +570,15 @@\n href=\"audio.html#al_lock_sample_id\">al_lock_sample_id.

    \n

    Examples:

    \n
      \n
    • ex_audio_simple.c
    • \n
    \n

    al_install_audio

    \n-
    bool al_install_audio(void)\n-bool al_install_audio(void)
    \n+
    bool al_install_audio(void)
    \n

    Source\n Code

    \n

    Install the audio subsystem.

    \n

    Returns true on success, false on failure.

    \n
    \n

    Note: most users will call ex_audio_devices.c\n

  • ex_saw.c
  • \n
  • ex_stream_file.c
  • \n \n

    al_uninstall_audio

    \n-
    void al_uninstall_audio(void)\n-void al_uninstall_audio(void)
    \n+
    void al_uninstall_audio(void)
    \n

    Source\n Code

    \n

    Uninstalls the audio subsystem.

    \n

    See also: al_install_audio

    \n

    Examples:

    \n@@ -617,25 +614,23 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_saw.c#L116\">ex_saw.c\n
  • ex_stream_file.c
  • \n
  • ex_acodec_multi.c
  • \n \n

    al_is_audio_installed

    \n-
    bool al_is_audio_installed(void)\n-bool al_is_audio_installed(void)
    \n+
    bool al_is_audio_installed(void)
    \n

    Source\n Code

    \n

    Returns true if al_install_audio was called\n previously and returned successfully.

    \n

    al_reserve_samples

    \n-
    bool al_reserve_samples(int reserve_samples)\n-bool al_reserve_samples(int reserve_samples)
    \n+
    bool al_reserve_samples(int reserve_samples)
    \n

    Source\n Code

    \n

    Reserves a number of sample instances, attaching them to the default\n mixer. If no default mixer is set when this function is called, then it\n will create one and attach it to the default voice. If no default voice\n has been set, it, too, will be created.

    \n@@ -663,17 +658,15 @@\n
  • ex_audio_props.cpp
  • \n
  • ex_resample_test.c
  • \n \n

    al_play_sample

    \n
    bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n-   ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n-bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n-   ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)
    \n+ ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n

    Source\n Code

    \n

    Plays a sample on one of the sample instances created by al_reserve_samples. Returns\n true on success, false on failure. Playback may fail because all the\n reserved sample instances are currently used.

    \n@@ -706,16 +699,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L107\">ex_acodec_multi.c\n
  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_stop_sample

    \n-
    void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)
    \n+
    void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)
    \n

    Source\n Code

    \n

    Stop the sample started by al_play_sample.

    \n

    See also: al_stop_samples

    \n@@ -725,30 +717,28 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L123\">ex_acodec_multi.c\n
  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_stop_samples

    \n-
    void al_stop_samples(void)\n-void al_stop_samples(void)
    \n+
    void al_stop_samples(void)
    \n

    Source\n Code

    \n

    Stop all samples started by al_play_sample.

    \n

    See also: al_stop_sample

    \n

    Examples:

    \n
      \n
    • ex_audio_simple.c
    • \n
    \n

    al_lock_sample_id

    \n-
    ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)
    \n+
    ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)
    \n

    Source\n Code

    \n

    Locks a ALLEGRO_SAMPLE_ID,\n returning the underlying ALLEGRO_SAMPLE_INSTANCE.\n This allows you to adjust the various properties of the instance (such\n@@ -770,16 +760,15 @@\n

    \n

    Examples:

    \n
      \n
    • ex_audio_simple.c
    • \n
    \n

    al_unlock_sample_id

    \n-
    void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)
    \n+
    void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)
    \n

    Source\n Code

    \n

    Unlocks a ALLEGRO_SAMPLE_ID, allowing\n future calls to al_play_sample\n to reuse it if possible. Note that after the id is unlocked, the \n

    Examples:

    \n
      \n
    • ex_audio_simple.c
    • \n
    \n

    al_play_audio_stream

    \n-
    ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)
    \n+
    ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)
    \n

    Source\n Code

    \n

    Loads and plays an audio file, streaming from disk as it is needed.\n This API can only play one audio stream at a time. This requires a\n default mixer to be set, which is typically done via al_reserve_samples, but can\n@@ -830,16 +818,15 @@\n \n

    Examples:

    \n
      \n
    • ex_audio_simple.c
    • \n
    \n

    al_play_audio_stream_f

    \n-
    ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char *ident)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char *ident)
    \n+
    ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char *ident)
    \n

    Source\n Code

    \n

    Loads and plays an audio file from ALLEGRO_FILE stream, streaming it is\n needed. This API can only play one audio stream at a time. This requires\n a default mixer to be set, which is typically done via Since: 5.2.8

    \n
    \n

    Unstable\n API: New API.

    \n
    \n

    Samples

    \n

    ALLEGRO_SAMPLE

    \n-
    typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n-typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;
    \n+
    typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;
    \n

    Source\n Code

    \n

    An ALLEGRO_SAMPLE object stores the data necessary for playing\n pre-defined digital audio. It holds a user-specified PCM data buffer and\n information about its format (data length, depth, frequency, channel\n configuration). You can have the same ALLEGRO_SAMPLE playing multiple\n@@ -888,18 +874,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L21\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n \n

    al_create_sample

    \n
    ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n    unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n-   ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n-ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n-   unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n-   ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)
    \n+ ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n

    Source\n Code

    \n

    Create a sample data structure from the supplied buffer. If\n free_buf is true then the buffer will be freed with al_free when the sample data structure is\n destroyed. For portability (especially Windows), the buffer should have\n@@ -929,16 +912,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L83\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_load_sample

    \n-
    ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n-ALLEGRO_SAMPLE *al_load_sample(const char *filename)
    \n+
    ALLEGRO_SAMPLE *al_load_sample(const char *filename)
    \n

    Source\n Code

    \n

    Loads a few different audio file formats based on their\n extension.

    \n

    Note that this stores the entire file in memory at once, which may be\n time consuming. To read the file as it is needed, use ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_load_sample_f

    \n-
    ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)\n-ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)
    \n+
    ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)
    \n

    Source\n Code

    \n

    Loads an audio file from an ALLEGRO_FILE stream into an ALLEGRO_SAMPLE. The file type is\n determined by the passed \u2018ident\u2019 parameter, which is a file name\n@@ -985,16 +966,15 @@\n file formats by default. You must use the allegro_acodec addon, or\n register your own format handler.

    \n \n

    See also: al_register_sample_loader_f,\n al_init_acodec_addon

    \n

    al_save_sample

    \n-
    bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)
    \n+
    bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Writes a sample into a file. Currently, wav is the only supported\n format, and the extension must be \u201c.wav\u201d.

    \n

    Returns true on success, false on error.

    \n
    \n@@ -1003,16 +983,15 @@\n register your own format handler.

    \n
    \n

    See also: al_save_sample_f,\n al_register_sample_saver,\n al_init_acodec_addon

    \n

    al_save_sample_f

    \n-
    bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)
    \n+
    bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Writes a sample into a ALLEGRO_FILE filestream. Currently,\n wav is the only supported format, and the extension must be \u201c.wav\u201d.

    \n

    Returns true on success, false on error. The file remains open\n@@ -1022,16 +1001,15 @@\n file formats by default. You must use the allegro_acodec addon, or\n register your own format handler.

    \n \n

    See also: al_save_sample, al_register_sample_saver_f,\n al_init_acodec_addon

    \n

    al_destroy_sample

    \n-
    void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n-void al_destroy_sample(ALLEGRO_SAMPLE *spl)
    \n+
    void al_destroy_sample(ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Free the sample data structure. If it was created with the\n free_buf parameter set to true, then the buffer will be\n freed with al_free.

    \n

    This function will stop any sample instances which may be playing the\n@@ -1047,66 +1025,61 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L86\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_get_sample_channels

    \n-
    ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)
    \n+
    ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Return the channel configuration of the sample.

    \n

    See also: ALLEGRO_CHANNEL_CONF, al_get_sample_depth, al_get_sample_frequency,\n al_get_sample_length, al_get_sample_data

    \n

    al_get_sample_depth

    \n-
    ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)
    \n+
    ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Return the audio depth of the sample.

    \n

    See also: ALLEGRO_AUDIO_DEPTH, al_get_sample_channels, al_get_sample_frequency,\n al_get_sample_length, al_get_sample_data

    \n

    al_get_sample_frequency

    \n-
    unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)
    \n+
    unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Return the frequency (in Hz) of the sample.

    \n

    See also: al_get_sample_channels, al_get_sample_depth, al_get_sample_length, al_get_sample_data

    \n

    al_get_sample_length

    \n-
    unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)
    \n+
    unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Return the length of the sample in sample values.

    \n

    See also: al_get_sample_channels, al_get_sample_depth, al_get_sample_frequency,\n al_get_sample_data

    \n

    al_get_sample_data

    \n-
    void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n-void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)
    \n+
    void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)
    \n

    Source\n Code

    \n

    Return a pointer to the raw sample data.

    \n

    See also: al_get_sample_channels, al_get_sample_depth, al_set_default_mixer.

    \n

    Sample instances

    \n

    ALLEGRO_SAMPLE_INSTANCE

    \n-
    typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n-typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;
    \n+
    typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;
    \n

    Source\n Code

    \n

    An ALLEGRO_SAMPLE_INSTANCE object represents a playable instance of a\n predefined sound effect. It holds information about how the effect\n should be played: These playback parameters consist of the looping mode,\n loop start/end points, playing position, speed, gain, pan and the\n@@ -1234,16 +1206,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L22\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_create_sample_instance

    \n-
    ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)\n-ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)
    \n+
    ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)
    \n

    Source\n Code

    \n

    Creates a sample instance, using the supplied sample data. The\n instance must be attached to a mixer (or voice) in order to actually\n produce output.

    \n

    The argument may be NULL. You can then set the sample data later with\n@@ -1256,16 +1227,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L83\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_destroy_sample_instance

    \n-
    void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Detaches the sample instance from anything it may be attached to and\n frees it (the sample data, i.e.\u00a0its ALLEGRO_SAMPLE, is not\n freed!).

    \n

    See also: ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_play_sample_instance

    \n-
    bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Play the sample instance. Returns true on success, false on\n failure.

    \n

    See also: al_stop_sample_instance

    \n@@ -1295,16 +1264,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L107\">ex_acodec_multi.c\n
  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_stop_sample_instance

    \n-
    bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Stop an sample instance playing.

    \n

    See also: al_play_sample_instance

    \n

    Examples:

    \n@@ -1315,17 +1283,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_kcm_direct.c#L88\">ex_kcm_direct.c\n
  • ex_mixer_chain.c
  • \n \n al_get_sample_instance_channels\n
    ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n-   const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n-   const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+ const ALLEGRO_SAMPLE_INSTANCE *spl)\n

    Source\n Code

    \n

    Return the channel configuration of the sample instance\u2019s sample\n data.

    \n

    See also: ALLEGRO_CHANNEL_CONF.

    \n@@ -1333,45 +1299,42 @@\n
      \n
    • ex_kcm_direct.c
    • \n
    • ex_acodec.c
    • \n
    \n

    al_get_sample_instance_depth

    \n-
    ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the audio depth of the sample instance\u2019s sample data.

    \n

    See also: ALLEGRO_AUDIO_DEPTH.

    \n

    Examples:

    \n
      \n
    • ex_kcm_direct.c
    • \n
    \n al_get_sample_instance_frequency\n-
    unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the frequency (in Hz) of the sample instance\u2019s sample\n data.

    \n

    Examples:

    \n
      \n
    • ex_kcm_direct.c
    • \n
    \n al_get_sample_instance_length\n-
    unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the length of the sample instance in sample values. This\n property may differ from the length of the instance\u2019s sample data.

    \n

    See also: al_set_sample_instance_length,\n@@ -1383,17 +1346,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_audio_props.cpp#L196\">ex_audio_props.cpp\n

  • ex_audio_simple.c
  • \n \n al_set_sample_instance_length\n
    bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   unsigned int val)\n-bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   unsigned int val)
    \n+ unsigned int val)\n

    Source\n Code

    \n

    Set the length of the sample instance in sample values. This can be\n used to play only parts of the underlying sample. Be careful not to\n exceed the actual length of the sample data, though.

    \n

    Return true on success, false on failure. Will fail if the sample\n@@ -1403,33 +1364,30 @@\n

    Examples:

    \n
      \n
    • ex_audio_props.cpp
    • \n
    \n al_get_sample_instance_position\n-
    unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Get the playback position of a sample instance.

    \n

    See also: al_set_sample_instance_position

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n al_set_sample_instance_position\n
    bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   unsigned int val)\n-bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   unsigned int val)
    \n+ unsigned int val)\n

    Source\n Code

    \n

    Set the playback position of a sample instance.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_get_sample_instance_position

    \n@@ -1437,25 +1395,23 @@\n
      \n
    • ex_audio_simple.c
    • \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_get_sample_instance_speed

    \n-
    float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the relative playback speed of the sample instance.

    \n

    See also: al_set_sample_instance_speed

    \n

    al_set_sample_instance_speed

    \n-
    bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n+
    bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n

    Source\n Code

    \n

    Set the relative playback speed of the sample instance. 1.0 means\n normal speed.

    \n

    Return true on success, false on failure. Will fail if the sample\n instance is attached directly to a voice.

    \n@@ -1465,30 +1421,28 @@\n
      \n
    • ex_audio_props.cpp
    • \n
    • ex_audio_simple.c
    • \n
    \n

    al_get_sample_instance_gain

    \n-
    float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the playback gain of the sample instance.

    \n

    See also: al_set_sample_instance_gain

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_set_sample_instance_gain

    \n-
    bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n+
    bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n

    Source\n Code

    \n

    Set the playback gain of the sample instance.

    \n

    Returns true on success, false on failure. Will fail if the sample\n instance is attached directly to a voice.

    \n

    See also: ex_mixer_chain.c\n

  • ex_acodec.c
  • \n
  • ex_audio_props.cpp
  • \n \n

    al_get_sample_instance_pan

    \n-
    float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Get the pan value of the sample instance.

    \n

    See also: al_set_sample_instance_pan.

    \n

    al_set_sample_instance_pan

    \n-
    bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n+
    bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
    \n

    Source\n Code

    \n

    Set the pan value on a sample instance. A value of -1.0 means to play\n the sample only through the left speaker; +1.0 means only through the\n right speaker; 0.0 means the sample is centre balanced. A special value\n ALLEGRO_AUDIO_PAN_NONE\n@@ -1537,16 +1489,15 @@\n

      \n
    • ex_audio_props.cpp
    • \n
    • ex_audio_simple.c
    • \n
    \n

    al_get_sample_instance_time

    \n-
    float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the length of the sample instance in seconds, assuming a\n playback speed of 1.0.

    \n

    See also: al_get_sample_instance_length

    \n@@ -1557,29 +1508,26 @@\n
  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n al_get_sample_instance_playmode\n-
    ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the playback mode of the sample instance.

    \n

    See also: ALLEGRO_PLAYMODE,\n al_set_sample_instance_playmode

    \n al_set_sample_instance_playmode\n
    bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   ALLEGRO_PLAYMODE val)\n-bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n-   ALLEGRO_PLAYMODE val)
    \n+ ALLEGRO_PLAYMODE val)\n

    Source\n Code

    \n

    Set the playback mode of the sample instance.

    \n

    Returns true on success, false on failure.

    \n

    See also: ALLEGRO_PLAYMODE,\n ex_mixer_chain.c\n

  • ex_acodec.c
  • \n \n al_get_sample_instance_playing\n-
    bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return true if the sample instance is in the playing state. This may\n be true even if the instance is not attached to anything.

    \n

    See also: al_set_sample_instance_playing

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n al_set_sample_instance_playing\n-
    bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)\n-bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)
    \n+
    bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)
    \n

    Source\n Code

    \n

    Change whether the sample instance is playing.

    \n

    The instance does not need to be attached to anything (since:\n 5.1.8).

    \n

    Returns true on success, false on failure.

    \n@@ -1627,29 +1573,27 @@\n
  • ex_audio_props.cpp
  • \n
  • ex_audio_chain.cpp
  • \n \n al_get_sample_instance_attached\n-
    bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return whether the sample instance is attached to something.

    \n

    See also: al_attach_sample_instance_to_mixer,\n al_attach_sample_instance_to_voice,\n al_detach_sample_instance

    \n

    al_detach_sample_instance

    \n-
    bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Detach the sample instance from whatever it\u2019s attached to, if\n anything.

    \n

    Returns true on success.

    \n

    See also: al_get_sample_instance_attached

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_get_sample

    \n-
    ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n+
    ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)
    \n

    Source\n Code

    \n

    Return the sample data that the sample instance plays.

    \n

    Note this returns a pointer to an internal structure, not\n the ALLEGRO_SAMPLE that you may\n have passed to al_set_sample.\n@@ -1685,16 +1628,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L109\">ex_acodec_multi.c\n

  • ex_kcm_direct.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_set_sample

    \n-
    bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)\n-bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)
    \n+
    bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)
    \n

    Source\n Code

    \n

    Change the sample data that a sample instance plays. This can be\n quite an involved process.

    \n

    First, the sample is stopped if it is not already.

    \n

    Next, if data is NULL, the sample is detached from its parent (if\n@@ -1716,16 +1658,15 @@\n

  • ex_mixer_chain.c
  • \n
  • ex_acodec.c
  • \n \n al_set_sample_instance_channel_matrix\n-
    bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const float *matrix)\n-bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const float *matrix)
    \n+
    bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const float *matrix)
    \n

    Source\n Code

    \n

    Set the matrix used to mix the channels coming from this instance\n into the mixer it is attached to. Normally Allegro derives the values of\n this matrix from the gain and pan settings, as well as the channel\n configurations of this instance and the mixer it is attached to, but\n@@ -1755,16 +1696,15 @@\n

    Examples:

    \n
      \n
    • ex_acodec.c
    • \n
    \n

    Audio streams

    \n

    ALLEGRO_AUDIO_STREAM

    \n-
    typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n-typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;
    \n+
    typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;
    \n

    Source\n Code

    \n

    An ALLEGRO_AUDIO_STREAM object is used to stream generated audio to\n the sound device, in real-time. This is done by reading from a buffer,\n which is split into a number of fragments. Whenever a fragment has\n finished playing, the user can refill it with new data.

    \n@@ -1810,18 +1750,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_stream_file.c#L79\">ex_stream_file.c\n
  • ex_resample_test.c
  • \n \n

    al_create_audio_stream

    \n
    ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n    unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n-   ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n-   unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n-   ALLEGRO_CHANNEL_CONF chan_conf)
    \n+ ALLEGRO_CHANNEL_CONF chan_conf)\n

    Source\n Code

    \n

    Creates an ALLEGRO_AUDIO_STREAM. The\n stream will be set to play by default. It will feed audio data from a\n buffer, which is split into a number of fragments.

    \n@@ -1877,17 +1814,15 @@\n
  • ex_resample_test.c
  • \n
  • ex_synth.cpp
  • \n \n

    al_load_audio_stream

    \n
    ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n-   size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n-   size_t buffer_count, unsigned int samples)
    \n+ size_t buffer_count, unsigned int samples)\n

    Source\n Code

    \n

    Loads an audio file from disk as it is needed.

    \n

    Unlike regular streams, the one returned by this function need not be\n fed by the user; the library will automatically read more of the file as\n it is needed. The stream will contain buffer_count buffers with\n@@ -1913,17 +1848,15 @@\n

  • ex_mixer_pp.c
  • \n
  • ex_stream_seek.c
  • \n \n

    al_load_audio_stream_f

    \n
    ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char *ident,\n-   size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char *ident,\n-   size_t buffer_count, unsigned int samples)
    \n+ size_t buffer_count, unsigned int samples)\n

    Source\n Code

    \n

    Loads an audio file from ALLEGRO_FILE stream as it is\n needed.

    \n

    Unlike regular streams, the one returned by this function need not be\n@@ -1945,16 +1878,15 @@\n register your own format handler.

    \n \n

    See also: al_load_audio_stream, al_register_audio_stream_loader_f,\n al_init_acodec_addon

    \n

    al_destroy_audio_stream

    \n-
    void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Destroy an audio stream which was created with al_create_audio_stream or\n al_load_audio_stream.

    \n
    \n@@ -1972,17 +1904,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_stream_file.c#L124\">ex_stream_file.c\n
  • ex_resample_test.c
  • \n \n al_get_audio_stream_event_source\n
    ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n-   ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n-   ALLEGRO_AUDIO_STREAM *stream)
    \n+ ALLEGRO_AUDIO_STREAM *stream)\n

    Source\n Code

    \n

    Retrieve the associated event source.

    \n

    See al_get_audio_stream_fragment\n for a description of the ex_saw.c\n

  • ex_stream_file.c
  • \n
  • ex_resample_test.c
  • \n \n

    al_drain_audio_stream

    \n-
    void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    You should call this to finalise an audio stream that you will no\n longer be feeding, to wait for all pending buffers to finish playing.\n The stream\u2019s playing state will change to false.

    \n

    See also: ex_saw.c\n

  • ex_resample_test.c
  • \n
  • ex_record.c
  • \n \n

    al_rewind_audio_stream

    \n-
    bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Set the streaming file playing position to the beginning. Returns\n true on success. Currently this can only be called on streams created\n with al_load_audio_stream,\n al_play_audio_stream, Examples:

    \n
      \n
    • ex_stream_seek.c
    • \n
    \n al_get_audio_stream_frequency\n-
    unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the stream frequency (in Hz).

    \n

    al_get_audio_stream_channels

    \n
    ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n-   const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n-   const ALLEGRO_AUDIO_STREAM *stream)
    \n+ const ALLEGRO_AUDIO_STREAM *stream)\n

    Source\n Code

    \n

    Return the stream channel configuration.

    \n

    See also: ALLEGRO_CHANNEL_CONF.

    \n

    al_get_audio_stream_depth

    \n
    ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n-   const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n-   const ALLEGRO_AUDIO_STREAM *stream)
    \n+ const ALLEGRO_AUDIO_STREAM *stream)\n

    Source\n Code

    \n

    Return the stream audio depth.

    \n

    See also: ALLEGRO_AUDIO_DEPTH.

    \n

    al_get_audio_stream_length

    \n-
    unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the stream length in samples.

    \n

    Examples:

    \n
      \n
    • ex_stream_seek.c
    • \n
    \n

    al_get_audio_stream_speed

    \n-
    float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the relative playback speed of the stream.

    \n

    See also: al_set_audio_stream_speed.

    \n

    al_set_audio_stream_speed

    \n-
    bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n+
    bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n

    Source\n Code

    \n

    Set the relative playback speed of the stream. 1.0 means normal\n speed.

    \n

    Return true on success, false on failure. Will fail if the audio\n stream is attached directly to a voice.

    \n

    See also: al_get_audio_stream_speed.

    \n

    al_get_audio_stream_gain

    \n-
    float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the playback gain of the stream.

    \n

    See also: al_set_audio_stream_gain.

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_set_audio_stream_gain

    \n-
    bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n+
    bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n

    Source\n Code

    \n

    Set the playback gain of the stream.

    \n

    Returns true on success, false on failure. Will fail if the audio\n stream is attached directly to a voice.

    \n

    See also: \n

  • ex_synth.cpp
  • \n
  • ex_audio_chain.cpp
  • \n \n

    al_get_audio_stream_pan

    \n-
    float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Get the pan value of the stream.

    \n

    See also: al_set_audio_stream_pan.

    \n

    al_set_audio_stream_pan

    \n-
    bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n+
    bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)
    \n

    Source\n Code

    \n

    Set the pan value on an audio stream. A value of -1.0 means to play\n the stream only through the left speaker; +1.0 means only through the\n right speaker; 0.0 means the sample is centre balanced. A special value\n ALLEGRO_AUDIO_PAN_NONE\n@@ -2159,16 +2075,15 @@\n href=\"audio.html#allegro_audio_pan_none\">ALLEGRO_AUDIO_PAN_NONE

    \n

    Examples:

    \n
      \n
    • ex_synth.cpp
    • \n
    \n

    al_get_audio_stream_playing

    \n-
    bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return true if the stream is playing.

    \n

    See also: al_set_audio_stream_playing.

    \n

    Examples:

    \n@@ -2177,16 +2092,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_record.c#L274\">ex_record.c\n
  • ex_stream_seek.c
  • \n
  • ex_audio_chain.cpp
  • \n \n

    al_set_audio_stream_playing

    \n-
    bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)\n-bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)
    \n+
    bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)
    \n

    Source\n Code

    \n

    Change whether the stream is playing.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_get_audio_stream_playing

    \n@@ -2197,29 +2111,25 @@\n
  • ex_record.c
  • \n
  • ex_stream_seek.c
  • \n \n

    al_get_audio_stream_playmode

    \n
    ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n-   const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n-   const ALLEGRO_AUDIO_STREAM *stream)
    \n+ const ALLEGRO_AUDIO_STREAM *stream)\n

    Source\n Code

    \n

    Return the playback mode of the stream.

    \n

    See also: ALLEGRO_PLAYMODE,\n al_set_audio_stream_playmode.

    \n

    al_set_audio_stream_playmode

    \n
    bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n-   ALLEGRO_PLAYMODE val)\n-bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n-   ALLEGRO_PLAYMODE val)
    \n+ ALLEGRO_PLAYMODE val)\n

    Source\n Code

    \n

    Set the playback mode of the stream.

    \n

    Returns true on success, false on failure.

    \n

    See also: ALLEGRO_PLAYMODE,\n ex_stream_file.c\n

  • ex_mixer_pp.c
  • \n
  • ex_stream_seek.c
  • \n \n

    al_get_audio_stream_attached

    \n-
    bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return whether the stream is attached to something.

    \n

    See also: al_attach_audio_stream_to_mixer,\n al_attach_audio_stream_to_voice,\n al_detach_audio_stream.

    \n

    al_detach_audio_stream

    \n-
    bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Detach the stream from whatever it\u2019s attached to, if anything.

    \n

    See also: al_attach_audio_stream_to_mixer,\n Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n al_get_audio_stream_played_samples\n-
    uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)\n-uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Get the number of samples consumed by the parent since the audio\n stream was started.

    \n

    Since: 5.1.8

    \n

    al_get_audio_stream_fragment

    \n-
    void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)\n-void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    When using Allegro\u2019s audio streaming, you will use this function to\n continuously provide new sample data to a stream.

    \n

    If the stream is ready for new data, the function will return the\n address of an internal buffer to be filled with audio data. The length\n@@ -2318,16 +2224,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_saw.c#L39\">ex_saw.c\n

  • ex_resample_test.c
  • \n
  • ex_synth.cpp
  • \n \n

    al_set_audio_stream_fragment

    \n-
    bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)\n-bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)
    \n+
    bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)
    \n

    Source\n Code

    \n

    This function needs to be called for every successful call of al_get_audio_stream_fragment\n to indicate that the buffer (pointed to by val) is filled\n with new data.

    \n@@ -2340,43 +2245,39 @@\n
  • ex_resample_test.c
  • \n
  • ex_synth.cpp
  • \n \n al_get_audio_stream_fragments\n-
    unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)
    \n+
    unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Returns the number of fragments this stream uses. This is the same\n value as passed to al_create_audio_stream when\n a new stream is created.

    \n

    See also: al_get_available_audio_stream_fragments

    \n al_get_available_audio_stream_fragments\n
    unsigned int al_get_available_audio_stream_fragments(\n-   const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_available_audio_stream_fragments(\n-   const ALLEGRO_AUDIO_STREAM *stream)
    \n+ const ALLEGRO_AUDIO_STREAM *stream)\n

    Source\n Code

    \n

    Returns the number of available fragments in the stream, that is,\n fragments which are not currently filled with data for playback.

    \n

    See also: al_get_audio_stream_fragment,\n al_get_audio_stream_fragments

    \n

    al_seek_audio_stream_secs

    \n-
    bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)\n-bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)
    \n+
    bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)
    \n

    Source\n Code

    \n

    Set the streaming file playing position to time. Returns true on\n success. Currently this can only be called on streams created with al_load_audio_stream, al_play_audio_stream, Examples:

    \n
      \n
    • ex_stream_seek.c
    • \n
    \n al_get_audio_stream_position_secs\n-
    double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the position of the stream in seconds. Currently this can only\n be called on streams created with al_load_audio_stream, al_play_audio_stream, Examples:

    \n
      \n
    • ex_stream_seek.c
    • \n
    \n al_get_audio_stream_length_secs\n-
    double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)
    \n+
    double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)
    \n

    Source\n Code

    \n

    Return the length of the stream in seconds, if known. Otherwise\n returns zero.

    \n

    Currently this can only be called on streams created with al_load_audio_stream, \n

  • ex_stream_seek.c
  • \n \n al_set_audio_stream_loop_secs\n
    bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n-   double start, double end)\n-bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n-   double start, double end)
    \n+ double start, double end)\n

    Source\n Code

    \n

    Sets the loop points for the stream in seconds. Currently this can\n only be called on streams created with al_load_audio_stream, al_play_audio_stream, \n

    Unstable\n API: New API.

    \n
    \n

    Advanced audio file I/O

    \n

    al_register_sample_loader

    \n
    bool al_register_sample_loader(const char *ext,\n-   ALLEGRO_SAMPLE *(*loader)(const char *filename))\n-bool al_register_sample_loader(const char *ext,\n-   ALLEGRO_SAMPLE *(*loader)(const char *filename))
    \n+ ALLEGRO_SAMPLE *(*loader)(const char *filename))\n

    Source\n Code

    \n

    Register a handler for al_load_sample. The given function\n will be used to handle the loading of sample files with the given\n extension.

    \n@@ -2488,17 +2383,15 @@\n unregistering an entry that doesn\u2019t exist.

    \n

    See also: al_register_sample_loader_f,\n al_register_sample_saver

    \n

    al_register_sample_loader_f

    \n
    bool al_register_sample_loader_f(const char *ext,\n-   ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n-bool al_register_sample_loader_f(const char *ext,\n-   ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))
    \n+ ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n

    Source\n Code

    \n

    Register a handler for al_load_sample_f. The given\n function will be used to handle the loading of sample files with the\n given extension.

    \n@@ -2508,17 +2401,15 @@\n entry.

    \n

    Returns true on success, false on error. Returns false if\n unregistering an entry that doesn\u2019t exist.

    \n

    See also: al_register_sample_loader

    \n

    al_register_sample_saver

    \n
    bool al_register_sample_saver(const char *ext,\n-   bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver(const char *ext,\n-   bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))
    \n+ bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n

    Source\n Code

    \n

    Register a handler for al_save_sample. The given function\n will be used to handle the saving of sample files with the given\n extension.

    \n@@ -2530,17 +2421,15 @@\n unregistering an entry that doesn\u2019t exist.

    \n

    See also: al_register_sample_saver_f,\n al_register_sample_loader

    \n

    al_register_sample_saver_f

    \n
    bool al_register_sample_saver_f(const char *ext,\n-   bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver_f(const char *ext,\n-   bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))
    \n+ bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n

    Source\n Code

    \n

    Register a handler for al_save_sample_f. The given\n function will be used to handle the saving of sample files with the\n given extension.

    \n@@ -2553,18 +2442,15 @@\n

    See also: al_register_sample_saver

    \n al_register_audio_stream_loader\n
    bool al_register_audio_stream_loader(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n- size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n- size_t buffer_count, unsigned int samples))
    \n+ size_t buffer_count, unsigned int samples))\n

    Source\n Code

    \n

    Register a handler for al_load_audio_stream and al_play_audio_stream. The\n given function will be used to open streams from files with the given\n@@ -2578,18 +2464,15 @@\n

    See also: al_register_audio_stream_loader_f

    \n al_register_audio_stream_loader_f\n
    bool al_register_audio_stream_loader_f(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n- size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader_f(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n- size_t buffer_count, unsigned int samples))
    \n+ size_t buffer_count, unsigned int samples))\n

    Source\n Code

    \n

    Register a handler for al_load_audio_stream_f and\n al_play_audio_stream_f.\n The given function will be used to open streams from files with the\n@@ -2602,17 +2485,15 @@\n unregistering an entry that doesn\u2019t exist.

    \n

    See also: al_register_audio_stream_loader

    \n al_register_sample_identifier\n
    bool al_register_sample_identifier(const char *ext,\n- bool (*identifier)(ALLEGRO_FILE* fp))\n-bool al_register_sample_identifier(const char *ext,\n- bool (*identifier)(ALLEGRO_FILE* fp))
    \n+ bool (*identifier)(ALLEGRO_FILE* fp))\n

    Source\n Code

    \n

    Register an identify handler for al_identify_sample. The given\n function will be used to detect files for the given extension. It will\n be called with a single argument of type Returns true on success, false on error. Returns false if\n unregistering an entry that doesn\u2019t exist.

    \n

    Since: 5.2.8

    \n

    See also: al_identify_bitmap

    \n

    al_identify_sample

    \n
    char const *al_identify_sample(char const *filename)\n-char const *al_identify_sample(char const *filename)
    \n+class=\"sourceCode c\">char const *al_identify_sample(char const *filename)\n

    Source\n Code

    \n

    This works exactly as al_identify_sample_f but you\n specify the filename of the file for which to detect the type and not a\n file handle. The extension, if any, of the passed filename is not taken\n@@ -2646,16 +2526,15 @@\n

    Since: 5.2.8

    \n

    See also: al_init_acodec_addon, al_identify_sample_f, al_register_sample_identifier

    \n

    al_identify_sample_f

    \n
    char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n-char const *al_identify_sample_f(ALLEGRO_FILE *fp)
    \n+class=\"sourceCode c\">char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n

    Source\n Code

    \n

    Tries to guess the audio file type of the open ALLEGRO_FILE by\n reading the first few bytes. By default Allegro cannot recognize any\n file types, but calling al_init_acodec_addon will\n@@ -2677,16 +2556,15 @@\n add a small amount of latency. However, for most applications that small\n overhead will not adversely affect performance.

    \n

    Recording is supported by the ALSA, AudioQueue, DirectSound8, and\n PulseAudio drivers. Enumerating or choosing other recording devices is\n not yet supported.

    \n

    ALLEGRO_AUDIO_RECORDER

    \n
    typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n-typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;
    \n+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n

    Source\n Code

    \n

    An opaque datatype that represents a recording device.

    \n

    Since: 5.1.1

    \n
    \n

    Unstable\n@@ -2697,16 +2575,15 @@\n

  • ex_record_name.c
  • \n
  • ex_record.c
  • \n \n

    ALLEGRO_AUDIO_RECORDER_EVENT

    \n
    typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n-typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;
    \n+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n

    Source\n Code

    \n

    Structure that holds the audio recorder event data. Every event type\n will contain:

    \n
      \n
    • .source: pointer to the audio recorder
    • \n@@ -2730,18 +2607,15 @@\n
    • ex_record.c
    • \n
    \n

    al_create_audio_recorder

    \n
    ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n unsigned int samples, unsigned int frequency,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n- unsigned int samples, unsigned int frequency,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)
    \n+ ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n

    Source\n Code

    \n

    Creates an audio recorder using the system\u2019s default recording\n device. (So if the returned device does not work, try updating the\n system\u2019s default recording device.)

    \n

    Allegro will internally buffer several seconds of captured audio with\n@@ -2778,16 +2652,15 @@\n

  • ex_record_name.c
  • \n
  • ex_record.c
  • \n \n

    al_start_audio_recorder

    \n
    bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)
    \n+class=\"sourceCode c\">bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n

    Source\n Code

    \n

    Begin recording into the fragment buffer. Once a complete fragment\n has been captured (as specified in al_create_audio_recorder),\n an ex_record_name.c\n

  • ex_record.c
  • \n \n

    al_stop_audio_recorder

    \n
    void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)
    \n+class=\"sourceCode c\">void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n

    Source\n Code

    \n

    Stop capturing audio data. Note that the audio recorder is still\n active and consuming resources, so if you are finished recording you\n should destroy it with al_destroy_audio_recorder.

    \n@@ -2825,30 +2697,28 @@\n
    \n

    Unstable\n API: The API may need a slight redesign.

    \n
    \n al_is_audio_recorder_recording\n
    bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)
    \n+class=\"sourceCode c\">bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n

    Source\n Code

    \n

    Returns true if the audio recorder is currently capturing data and\n generating events.

    \n

    Since: 5.1.1

    \n
    \n

    Unstable\n API: The API may need a slight redesign.

    \n
    \n

    al_get_audio_recorder_event

    \n
    ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n-ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)
    \n+class=\"sourceCode c\">ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n

    Source\n Code

    \n

    Returns the event as an ALLEGRO_AUDIO_RECORDER_EVENT.

    \n

    Since: 5.1.1

    \n
    \n@@ -2861,16 +2731,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_record_name.c#L131\">ex_record_name.c\n
  • ex_record.c
  • \n \n al_get_audio_recorder_event_source\n
    ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER *r)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER *r)
    \n+class=\"sourceCode c\">ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER *r)\n

    Source\n Code

    \n

    Returns the event source for the recorder that generates the various\n recording events.

    \n

    Since: 5.1.1

    \n
    \n@@ -2882,16 +2751,15 @@\n
  • ex_record_name.c
  • \n
  • ex_record.c
  • \n \n

    al_destroy_audio_recorder

    \n
    void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)
    \n+class=\"sourceCode c\">void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n

    Source\n Code

    \n

    Destroys the audio recorder and frees all resources associated with\n it. It is safe to destroy a recorder that is recording.

    \n

    You may receive events after the recorder has been destroyed. They\n must be ignored, as the fragment buffer will no longer be valid.

    \n@@ -2906,74 +2774,69 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_record_name.c#L215\">ex_record_name.c\n
  • ex_record.c
  • \n \n

    Audio devices

    \n

    ALLEGRO_AUDIO_DEVICE

    \n
    typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n-typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;
    \n+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n

    Source\n Code

    \n

    An opaque datatype that represents an audio device.

    \n

    Examples:

    \n
      \n
    • ex_audio_devices.c
    • \n
    \n al_get_num_audio_output_devices\n
    int al_get_num_audio_output_devices()\n-int al_get_num_audio_output_devices()
    \n+class=\"sourceCode c\">int al_get_num_audio_output_devices()\n

    Source\n Code

    \n

    Get the number of available audio output devices on the system.

    \n

    Since: 5.2.8

    \n

    return -1 for unsupported drivers.

    \n

    Examples:

    \n
      \n
    • ex_audio_devices.c
    • \n
    \n

    al_get_audio_output_device

    \n
    const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n-const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)
    \n+class=\"sourceCode c\">const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n

    Source\n Code

    \n

    Get the output audio device of the specified index.

    \n

    Since: 5.2.8

    \n

    Examples:

    \n
      \n
    • ex_audio_devices.c
    • \n
    \n

    al_get_audio_device_name

    \n
    const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n-const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)
    \n+class=\"sourceCode c\">const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n

    Source\n Code

    \n

    Get the user friendly display name of the device.

    \n

    Since: 5.2.8

    \n

    Examples:

    \n
      \n
    • ex_audio_devices.c
    • \n
    \n

    Voices

    \n

    ALLEGRO_VOICE

    \n
    typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n-typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;
    \n+class=\"sourceCode c\">typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n

    Source\n Code

    \n

    A voice represents an audio device on the system, which may be a real\n device, or an abstract device provided by the operating system. To play\n back audio, you would attach a mixer, sample instance or audio stream to\n a voice.

    \n@@ -2988,17 +2851,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_acodec_multi.c#L24\">ex_acodec_multi.c\n
  • ex_kcm_direct.c
  • \n \n

    al_create_voice

    \n
    ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)
    \n+ ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n

    Source\n Code

    \n

    Creates a voice structure and allocates a voice from the digital\n sound driver. The passed frequency (in Hz), sample format and channel\n configuration are used as a hint to what kind of data will be sent to\n the voice. However, the underlying sound driver is free to use\n@@ -3021,16 +2882,15 @@\n

  • ex_acodec_multi.c
  • \n
  • ex_kcm_direct.c
  • \n \n

    al_destroy_voice

    \n
    void al_destroy_voice(ALLEGRO_VOICE *voice)\n-void al_destroy_voice(ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">void al_destroy_voice(ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Destroys the voice and deallocates it from the digital driver. Does\n nothing if the voice is NULL.

    \n

    See also: al_create_voice

    \n@@ -3041,16 +2901,15 @@\n
  • ex_acodec_multi.c
  • \n
  • ex_kcm_direct.c
  • \n \n

    al_detach_voice

    \n
    void al_detach_voice(ALLEGRO_VOICE *voice)\n-void al_detach_voice(ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">void al_detach_voice(ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Detaches the mixer, sample instance or audio stream from the\n voice.

    \n

    See also: al_attach_mixer_to_voice,\n@@ -3058,17 +2917,15 @@\n href=\"audio.html#al_attach_sample_instance_to_voice\">al_attach_sample_instance_to_voice,\n al_attach_audio_stream_to_voice

    \n al_attach_audio_stream_to_voice\n
    bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_VOICE *voice)\n-bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_VOICE *voice)
    \n+ ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Attaches an audio stream to a voice. The same rules as al_attach_sample_instance_to_voice\n apply. This may fail if the driver can\u2019t create a voice with the buffer\n count and buffer size the stream uses.

    \n@@ -3086,16 +2943,15 @@\n
  • ex_stream_file.c
  • \n
  • ex_audio_chain.cpp
  • \n \n

    al_attach_mixer_to_voice

    \n
    bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n-bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Attaches a mixer to a voice. It must have the same frequency and\n channel configuration, but the depth may be different.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_detach_voice,\n@@ -3110,17 +2966,15 @@\n

  • ex_mixer_chain.c
  • \n \n al_attach_sample_instance_to_voice\n
    bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_VOICE *voice)\n-bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_VOICE *voice)
    \n+ ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Attaches a sample instance to a voice, and allows it to play. The\n instance\u2019s gain and loop mode will be ignored, and it must have the same\n frequency, channel configuration and depth (including signed-ness) as\n the voice. This function may fail if the selected driver doesn\u2019t support\n@@ -3136,59 +2990,54 @@\n

  • ex_kcm_direct.c
  • \n
  • ex_audio_chain.cpp
  • \n \n

    al_get_voice_frequency

    \n
    unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Return the frequency of the voice (in Hz), e.g.\u00a044100.

    \n

    al_get_voice_channels

    \n
    ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n-ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Return the channel configuration of the voice.

    \n

    See also: ALLEGRO_CHANNEL_CONF.

    \n

    al_get_voice_depth

    \n
    ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n-ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Return the audio depth of the voice.

    \n

    See also: ALLEGRO_AUDIO_DEPTH.

    \n

    al_get_voice_playing

    \n
    bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n-bool al_get_voice_playing(const ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    Return true if the voice is currently playing.

    \n

    See also: al_set_voice_playing

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_set_voice_playing

    \n
    bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n-bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)
    \n+class=\"sourceCode c\">bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n

    Source\n Code

    \n

    Change whether a voice is playing or not. This can only work if the\n voice has a non-streaming object attached to it, e.g.\u00a0a sample instance.\n On success the voice\u2019s current sample position is reset.

    \n

    Returns true on success, false on failure.

    \n@@ -3197,56 +3046,52 @@\n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_get_voice_position

    \n
    unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    When the voice has a non-streaming object attached to it, e.g.\u00a0a\n sample, returns the voice\u2019s current sample position. Otherwise, returns\n zero.

    \n

    See also: al_set_voice_position.

    \n

    al_set_voice_position

    \n
    bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n-bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)
    \n+class=\"sourceCode c\">bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n

    Source\n Code

    \n

    Set the voice position. This can only work if the voice has a\n non-streaming object attached to it, e.g.\u00a0a sample instance.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_get_voice_position.

    \n

    al_voice_has_attachments

    \n
    bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n-bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)
    \n+class=\"sourceCode c\">bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n

    Source\n Code

    \n

    Returns true if the voice has something attached to it.

    \n

    See also: al_attach_mixer_to_voice,\n al_attach_sample_instance_to_voice,\n al_attach_audio_stream_to_voice

    \n

    Since: 5.2.9

    \n

    Mixers

    \n

    ALLEGRO_MIXER

    \n
    typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n-typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;
    \n+class=\"sourceCode c\">typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n

    Source\n Code

    \n

    A mixer mixes together attached streams into a single buffer. In the\n process, it converts channel configurations, sample frequencies and\n audio depths of the attached sample instances and audio streams\n accordingly. You can control the quality of this conversion using\n@@ -3263,31 +3108,28 @@\n

  • ex_acodec_multi.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    ALLEGRO_MIXER_QUALITY

    \n
    enum ALLEGRO_MIXER_QUALITY\n-enum ALLEGRO_MIXER_QUALITY
    \n+class=\"sourceCode c\">enum ALLEGRO_MIXER_QUALITY\n

    Source\n Code

    \n
      \n
    • ALLEGRO_MIXER_QUALITY_POINT - point sampling
    • \n
    • ALLEGRO_MIXER_QUALITY_LINEAR - linear interpolation
    • \n
    • ALLEGRO_MIXER_QUALITY_CUBIC - cubic interpolation (since: 5.0.8,\n 5.1.4)
    • \n
    \n

    al_create_mixer

    \n
    ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)
    \n+ ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n

    Source\n Code

    \n

    Creates a mixer to attach sample instances, audio streams, or other\n mixers to. It will mix into a buffer at the requested frequency (in Hz)\n and channel count.

    \n

    The only supported audio depths are ALLEGRO_AUDIO_DEPTH_FLOAT32 and\n@@ -3309,16 +3151,15 @@\n

  • ex_acodec_multi.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_destroy_mixer

    \n
    void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n-void al_destroy_mixer(ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Destroys the mixer.

    \n

    See also: al_create_mixer

    \n

    Examples:

    \n@@ -3328,16 +3169,15 @@\n
  • ex_acodec_multi.c
  • \n
  • ex_mixer_chain.c
  • \n \n

    al_get_default_mixer

    \n
    ALLEGRO_MIXER *al_get_default_mixer(void)\n-ALLEGRO_MIXER *al_get_default_mixer(void)
    \n+class=\"sourceCode c\">ALLEGRO_MIXER *al_get_default_mixer(void)\n

    Source\n Code

    \n

    Return the default mixer, or NULL if one has not been set. Although\n different configurations of mixers and voices can be used, in most cases\n a single mixer attached to a voice is what you want. The default mixer\n is used by al_play_sample.

    \n@@ -3353,16 +3193,15 @@\n
  • ex_audio_props.cpp
  • \n
  • ex_resample_test.c
  • \n \n

    al_set_default_mixer

    \n
    bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n-bool al_set_default_mixer(ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Sets the default mixer. All samples started with al_play_sample will be stopped and\n all sample instances returned by al_lock_sample_id will be\n@@ -3373,16 +3212,15 @@\n

    See also: al_reserve_samples, al_play_sample, al_get_default_mixer, al_restore_default_mixer

    \n

    al_restore_default_mixer

    \n
    bool al_restore_default_mixer(void)\n-bool al_restore_default_mixer(void)
    \n+class=\"sourceCode c\">bool al_restore_default_mixer(void)\n

    Source\n Code

    \n

    Restores Allegro\u2019s default mixer and attaches it to the default\n voice. If the default mixer hasn\u2019t been created before, it will be\n created. If the default voice hasn\u2019t been set via al_set_default_voice or\n@@ -3394,40 +3232,37 @@\n

    Returns true on success, false on error.

    \n

    See also: al_get_default_mixer, al_set_default_mixer, al_reserve_samples.

    \n

    al_get_default_voice

    \n
    ALLEGRO_VOICE *al_get_default_voice(void)\n-ALLEGRO_VOICE *al_get_default_voice(void)
    \n+class=\"sourceCode c\">ALLEGRO_VOICE *al_get_default_voice(void)\n

    Source\n Code

    \n

    Returns the default voice or NULL if there is none.

    \n

    Since: 5.1.13

    \n

    See also: al_get_default_mixer

    \n

    al_set_default_voice

    \n
    void al_set_default_voice(ALLEGRO_VOICE *voice)\n-void al_set_default_voice(ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">void al_set_default_voice(ALLEGRO_VOICE *voice)\n

    Source\n Code

    \n

    You can call this before calling al_restore_default_mixer to provide\n the voice which should be used. Any previous voice will be destroyed.\n You can also pass NULL to destroy the current default voice.

    \n

    Since: 5.1.13

    \n

    See also: al_get_default_mixer

    \n

    al_attach_mixer_to_mixer

    \n
    bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n-bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Attaches the mixer passed as the first argument onto the mixer passed\n as the second argument. The first mixer (that is going to be attached)\n must not already be attached to anything. Both mixers must use the same\n frequency, audio depth and channel configuration.

    \n@@ -3442,17 +3277,15 @@\n
  • ex_audio_chain.cpp
  • \n \n al_attach_sample_instance_to_mixer\n
    bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_MIXER *mixer)\n-bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_MIXER *mixer)
    \n+ ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Attach a sample instance to a mixer. The instance must not already be\n attached to anything.

    \n

    Returns true on success, false on failure.

    \n

    See also: ex_mixer_chain.c\n

  • ex_acodec.c
  • \n \n al_attach_audio_stream_to_mixer\n
    bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)\n-bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Attach an audio stream to a mixer. The stream must not already be\n attached to anything.

    \n

    Returns true on success, false on failure.

    \n

    See also: ex_stream_file.c\n

  • ex_resample_test.c
  • \n \n

    al_get_mixer_frequency

    \n
    unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n-unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return the mixer frequency (in Hz).

    \n

    See also: al_set_mixer_frequency

    \n

    al_set_mixer_frequency

    \n
    bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n-bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)
    \n+class=\"sourceCode c\">bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n

    Source\n Code

    \n

    Set the mixer frequency (in Hz). This will only work if the mixer is\n not attached to anything.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_get_mixer_frequency

    \n

    al_get_mixer_channels

    \n
    ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return the mixer channel configuration.

    \n

    See also: ALLEGRO_CHANNEL_CONF.

    \n

    Examples:

    \n
      \n
    • ex_synth.cpp
    • \n
    \n

    al_get_mixer_depth

    \n
    ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return the mixer audio depth.

    \n

    See also: ALLEGRO_AUDIO_DEPTH.

    \n

    Examples:

    \n
      \n
    • ex_synth.cpp
    • \n
    \n

    al_get_mixer_gain

    \n
    float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n-float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return the mixer gain (amplification factor). The default is 1.0.

    \n

    Since: 5.0.6, 5.1.0

    \n

    See also: al_set_mixer_gain.

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_set_mixer_gain

    \n
    bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n-bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)
    \n+class=\"sourceCode c\">bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n

    Source\n Code

    \n

    Set the mixer gain (amplification factor).

    \n

    Returns true on success, false on failure.

    \n

    Since: 5.0.6, 5.1.0

    \n

    See also: ex_audio_props.cpp\n

  • ex_audio_chain.cpp
  • \n \n

    al_get_mixer_quality

    \n
    ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return the mixer quality.

    \n

    See also: ALLEGRO_MIXER_QUALITY, al_set_mixer_quality

    \n

    al_set_mixer_quality

    \n
    bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)\n-bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)
    \n+class=\"sourceCode c\">bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)\n

    Source\n Code

    \n

    Set the mixer quality. This can only succeed if the mixer does not\n have anything attached to it.

    \n

    Returns true on success, false on failure.

    \n

    See also: ALLEGRO_MIXER_QUALITY, al_get_mixer_quality

    \n

    al_get_mixer_playing

    \n
    bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return true if the mixer is playing.

    \n

    See also: al_set_mixer_playing.

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_set_mixer_playing

    \n
    bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n-bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)
    \n+class=\"sourceCode c\">bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n

    Source\n Code

    \n

    Change whether the mixer is playing.

    \n

    Returns true on success, false on failure.

    \n

    See also: al_get_mixer_playing.

    \n

    Examples:

    \n
      \n
    • ex_audio_chain.cpp
    • \n
    \n

    al_get_mixer_attached

    \n
    bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Return true if the mixer is attached to something.

    \n

    See also: al_mixer_has_attachments,\n al_attach_audio_stream_to_mixer,\n al_attach_mixer_to_mixer,\n al_detach_mixer

    \n

    al_mixer_has_attachments

    \n
    bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n-bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)
    \n+class=\"sourceCode c\">bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n

    Source\n Code

    \n

    Returns true if the mixer has something attached to it.

    \n

    See also: al_get_mixer_attached, al_attach_sample_instance_to_mixer,\n@@ -3662,16 +3482,15 @@\n href=\"audio.html#al_attach_audio_stream_to_mixer\">al_attach_audio_stream_to_mixer,\n al_attach_mixer_to_mixer,\n al_detach_mixer

    \n

    Since: 5.2.9

    \n

    al_detach_mixer

    \n
    bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n-bool al_detach_mixer(ALLEGRO_MIXER *mixer)
    \n+class=\"sourceCode c\">bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n

    Source\n Code

    \n

    Detach the mixer from whatever it is attached to, if anything.

    \n

    See also: al_attach_mixer_to_mixer.

    \n

    Examples:

    \n@@ -3680,18 +3499,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_audio_chain.cpp#L460\">ex_audio_chain.cpp\n \n al_set_mixer_postprocess_callback\n
    bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n void (*pp_callback)(void *buf, unsigned int samples, void *data),\n- void *pp_callback_userdata)\n-bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n- void (*pp_callback)(void *buf, unsigned int samples, void *data),\n- void *pp_callback_userdata)
    \n+ void *pp_callback_userdata)\n

    Source\n Code

    \n

    Sets a post-processing filter function that\u2019s called after the\n attached streams have been mixed. The buffer\u2019s format will be whatever\n the mixer was created with. The sample count and user-data pointer is\n also passed.

    \n@@ -3707,16 +3523,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_synth.cpp#L500\">ex_synth.cpp\n
  • ex_mixer_pp.c
  • \n \n

    Miscelaneous

    \n

    ALLEGRO_AUDIO_DEPTH

    \n
    enum ALLEGRO_AUDIO_DEPTH\n-enum ALLEGRO_AUDIO_DEPTH
    \n+class=\"sourceCode c\">enum ALLEGRO_AUDIO_DEPTH\n

    Source\n Code

    \n

    Sample depth and type as well as signedness. Mixers only use 32-bit\n signed float (-1..+1), or 16-bit signed integers. Signedness is\n determined by an \u201cunsigned\u201d bit-flag applied to the depth value.

    \n
      \n@@ -3739,16 +3554,15 @@\n
    • ex_stream_file.c
    • \n
    • ex_acodec_multi.c
    • \n
    \n

    ALLEGRO_AUDIO_PAN_NONE

    \n
    #define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n-#define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)
    \n+class=\"sourceCode c\">#define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n

    Source\n Code

    \n

    A special value for the pan property of sample instances and audio\n streams. Use this value to disable panning on sample instances and audio\n streams, and play them without attentuation implied by panning\n support.

    \n@@ -3762,16 +3576,15 @@\n

    Examples:

    \n
      \n
    • ex_audio_props.cpp
    • \n
    \n

    ALLEGRO_CHANNEL_CONF

    \n
    enum ALLEGRO_CHANNEL_CONF\n-enum ALLEGRO_CHANNEL_CONF
    \n+class=\"sourceCode c\">enum ALLEGRO_CHANNEL_CONF\n

    Source\n Code

    \n

    Speaker configuration (mono, stereo, 2.1, etc).

    \n
      \n
    • ALLEGRO_CHANNEL_CONF_1
    • \n
    • ALLEGRO_CHANNEL_CONF_2
    • \n@@ -3788,16 +3601,15 @@\n
    • ex_stream_file.c
    • \n
    • ex_acodec_multi.c
    • \n
    \n

    ALLEGRO_PLAYMODE

    \n
    enum ALLEGRO_PLAYMODE\n-enum ALLEGRO_PLAYMODE
    \n+class=\"sourceCode c\">enum ALLEGRO_PLAYMODE\n

    Source\n Code

    \n

    Sample and stream playback mode.

    \n
      \n
    • ALLEGRO_PLAYMODE_ONCE - the sample/stream is played from start to\n finish an then it stops.
    • \n@@ -3819,16 +3631,15 @@\n
    • ex_kcm_direct.c
    • \n
    • ex_mixer_chain.c
    • \n
    \n

    ALLEGRO_AUDIO_EVENT_TYPE

    \n
    enum ALLEGRO_AUDIO_EVENT_TYPE\n-enum ALLEGRO_AUDIO_EVENT_TYPE
    \n+class=\"sourceCode c\">enum ALLEGRO_AUDIO_EVENT_TYPE\n

    Source\n Code

    \n

    Events sent by al_get_audio_stream_event_source\n or al_get_audio_recorder_event_source.

    \n@@ -3851,57 +3662,52 @@\n

    Since: 5.1.1

    \n
    \n

    Unstable\n API: The API may need a slight redesign.

    \n
    \n

    al_get_allegro_audio_version

    \n
    uint32_t al_get_allegro_audio_version(void)\n-uint32_t al_get_allegro_audio_version(void)
    \n+class=\"sourceCode c\">uint32_t al_get_allegro_audio_version(void)\n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    al_get_audio_depth_size

    \n
    size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n-size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)
    \n+class=\"sourceCode c\">size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n

    Source\n Code

    \n

    Return the size of a sample, in bytes, for the given format. The\n format is one of the values listed under ALLEGRO_AUDIO_DEPTH.

    \n

    Examples:

    \n
      \n
    • ex_synth.cpp
    • \n
    \n

    al_get_channel_count

    \n
    size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n-size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)
    \n+class=\"sourceCode c\">size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n

    Source\n Code

    \n

    Return the number of channels for the given channel configuration,\n which is one of the values listed under ALLEGRO_CHANNEL_CONF.

    \n

    Examples:

    \n
      \n
    • ex_acodec.c
    • \n
    \n

    al_fill_silence

    \n
    void al_fill_silence(void *buf, unsigned int samples,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-void al_fill_silence(void *buf, unsigned int samples,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)
    \n+ ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n

    Source\n Code

    \n

    Fill a buffer with silence, for the given format and channel\n configuration. The buffer must have enough space for the given number of\n samples, and be properly aligned.

    \n

    Since: 5.1.8

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -228,54 +228,49 @@\n samples, you can use the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bD that al_play_sample returns.\n If you want to play large audio files (e.g.\u00a0background music) without loading\n the whole file at once you can use _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm (after calling\n _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs). This will load and play an ALLEGRO_AUDIO_STREAM. Note that\n the basic API only supports one such audio stream playing at once.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSA\bAM\bMP\bPL\bLE\bE_\b_I\bID\bD *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n-typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_SAMPLE_ID represents a sample being played via _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be. It\n can be used to later stop the sample with _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be. The underlying\n ALLEGRO_SAMPLE_INSTANCE can be extracted using _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bns\bst\bta\bal\bll\bl_\b_a\bau\bud\bdi\bio\bo *\b**\b**\b**\b**\b*\n bool al_install_audio(void)\n-bool al_install_audio(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Install the audio subsystem.\n Returns true on success, false on failure.\n Note: most users will call _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs and\n _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn after this.\n See also: _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, _\ba_\bl_\b__\bu_\bn_\bi_\bn_\bs_\bt_\ba_\bl_\bl_\b__\ba_\bu_\bd_\bi_\bo, _\ba_\bl_\b__\bi_\bs_\b__\ba_\bu_\bd_\bi_\bo_\b__\bi_\bn_\bs_\bt_\ba_\bl_\bl_\be_\bd,\n _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bd_\be_\bv_\bi_\bc_\be_\bs_\b._\bc\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_u\bun\bni\bin\bns\bst\bta\bal\bll\bl_\b_a\bau\bud\bdi\bio\bo *\b**\b**\b**\b**\b*\n void al_uninstall_audio(void)\n-void al_uninstall_audio(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Uninstalls the audio subsystem.\n See also: _\ba_\bl_\b__\bi_\bn_\bs_\bt_\ba_\bl_\bl_\b__\ba_\bu_\bd_\bi_\bo\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_a\bau\bud\bdi\bio\bo_\b_i\bin\bns\bst\bta\bal\bll\ble\bed\bd *\b**\b**\b**\b**\b*\n bool al_is_audio_installed(void)\n-bool al_is_audio_installed(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if _\ba_\bl_\b__\bi_\bn_\bs_\bt_\ba_\bl_\bl_\b__\ba_\bu_\bd_\bi_\bo was called previously and returned\n successfully.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bes\bse\ber\brv\bve\be_\b_s\bsa\bam\bmp\bpl\ble\bes\bs *\b**\b**\b**\b**\b*\n bool al_reserve_samples(int reserve_samples)\n-bool al_reserve_samples(int reserve_samples)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Reserves a number of sample instances, attaching them to the default mixer. If\n no default mixer is set when this function is called, then it will create one\n and attach it to the default voice. If no default voice has been set, it, too,\n will be created.\n If you call this function a second time with a smaller number of samples, then\n the excess internal sample instances will be destroyed causing some sounds to\n@@ -292,16 +287,14 @@\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_p\bpl\bla\bay\by_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n-bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n- ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Plays a sample on one of the sample instances created by _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs.\n Returns true on success, false on failure. Playback may fail because all the\n reserved sample instances are currently used.\n Parameters:\n * gain - relative volume at which the sample is played; 1.0 is normal.\n * pan - 0.0 is centred, -1.0 is left, 1.0 is right, or\n@@ -317,33 +310,30 @@\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bD, _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd.\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bto\bop\bp_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Stop the sample started by _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be.\n See also: _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bto\bop\bp_\b_s\bsa\bam\bmp\bpl\ble\bes\bs *\b**\b**\b**\b**\b*\n void al_stop_samples(void)\n-void al_stop_samples(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Stop all samples started by _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be.\n See also: _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boc\bck\bk_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bid\bd *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Locks a _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bD, returning the underlying _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bN_\bS_\bT_\bA_\bN_\bC_\bE.\n This allows you to adjust the various properties of the instance (such as\n volume, pan, etc) while the sound is playing.\n This function will return NULL if the sound corresponding to the id is no\n longer playing.\n While locked, ALLEGRO_SAMPLE_ID will be unavailable to additional calls to\n@@ -353,28 +343,26 @@\n See also: _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bu_\bn_\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd\n Since: 5.2.3\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_u\bun\bnl\blo\boc\bck\bk_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bid\bd *\b**\b**\b**\b**\b*\n void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Unlocks a _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bD, allowing future calls to _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be to reuse\n it if possible. Note that after the id is unlocked, the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bN_\bS_\bT_\bA_\bN_\bC_\bE\n that was previously returned by _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd will possibly be playing a\n different sound, so you should only use it after locking the id again.\n See also: _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd\n Since: 5.2.3\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_p\bpl\bla\bay\by_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads and plays an audio file, streaming from disk as it is needed. This API\n can only play one audio stream at a time. This requires a default mixer to be\n set, which is typically done via _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, but can also be done via\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br.\n Returns the stream on success, NULL on failure. You must not destroy the\n returned stream, it will be automatically destroyed when the addon is shut\n@@ -386,16 +374,14 @@\n Since: 5.2.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_p\bpl\bla\bay\by_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bf *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char\n *ident)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char\n-*ident)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads and plays an audio file from _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE stream, streaming it is needed.\n This API can only play one audio stream at a time. This requires a default\n mixer to be set, which is typically done via _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, but can also\n be done via _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br.\n The file type is determined by the passed \u2018ident\u2019 parameter, which is a file\n name extension including the leading dot.\n@@ -409,32 +395,28 @@\n register your own format handler.\n See also: _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf\n Since: 5.2.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n *\b**\b**\b**\b**\b**\b* S\bSa\bam\bmp\bpl\ble\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSA\bAM\bMP\bPL\bLE\bE *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n-typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_SAMPLE object stores the data necessary for playing pre-defined\n digital audio. It holds a user-specified PCM data buffer and information about\n its format (data length, depth, frequency, channel configuration). You can have\n the same ALLEGRO_SAMPLE playing multiple times simultaneously.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bN_\bS_\bT_\bA_\bN_\bC_\bE\n Examples:\n * _\be_\bx_\b__\bg_\bl_\be_\bx_\bt_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n-ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n- unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n- ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Create a sample data structure from the supplied buffer. If free_buf is true\n then the buffer will be freed with _\ba_\bl_\b__\bf_\br_\be_\be when the sample data structure is\n destroyed. For portability (especially Windows), the buffer should have been\n allocated with _\ba_\bl_\b__\bm_\ba_\bl_\bl_\bo_\bc. Otherwise you should free the sample data yourself.\n A sample that is referred to by the samples parameter refers to a sequence\n channel intensities. E.g. if you\u2019re making a stereo sample with the samples set\n@@ -450,15 +432,14 @@\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bs_\ba_\bm_\bp_\bl_\be, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n-ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads a few different audio file formats based on their extension.\n Note that this stores the entire file in memory at once, which may be time\n consuming. To read the file as it is needed, use _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm or\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm.\n Returns the sample on success, NULL on failure.\n N\bNo\bot\bte\be:\b: the allegro_audio library does not support any audio file\n@@ -467,15 +448,14 @@\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\bo_\ba_\bd_\be_\br, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_s\bsa\bam\bmp\bpl\ble\be_\b_f\bf *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)\n-ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads an audio file from an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE stream into an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE. The\n file type is determined by the passed \u2018ident\u2019 parameter, which is a file name\n extension including the leading dot.\n Note that this stores the entire file in memory at once, which may be time\n consuming. To read the file as it is needed, use _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n@@ -483,78 +463,70 @@\n afterwards.\n N\bNo\bot\bte\be:\b: the allegro_audio library does not support any audio file\n formats by default. You must use the allegro_acodec addon, or\n register your own format handler.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\bo_\ba_\bd_\be_\br_\b__\bf, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsa\bav\bve\be_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Writes a sample into a file. Currently, wav is the only supported format, and\n the extension must be \u201c.wav\u201d.\n Returns true on success, false on error.\n N\bNo\bot\bte\be:\b: the allegro_audio library does not support any audio file\n formats by default. You must use the allegro_acodec addon, or\n register your own format handler.\n See also: _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bs_\ba_\bv_\be_\br, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsa\bav\bve\be_\b_s\bsa\bam\bmp\bpl\ble\be_\b_f\bf *\b**\b**\b**\b**\b*\n bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Writes a sample into a _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE filestream. Currently, wav is the only\n supported format, and the extension must be \u201c.wav\u201d.\n Returns true on success, false on error. The file remains open afterwards.\n N\bNo\bot\bte\be:\b: the allegro_audio library does not support any audio file\n formats by default. You must use the allegro_acodec addon, or\n register your own format handler.\n See also: _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bs_\ba_\bv_\be_\br_\b__\bf, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n-void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Free the sample data structure. If it was created with the free_buf parameter\n set to true, then the buffer will be freed with _\ba_\bl_\b__\bf_\br_\be_\be.\n This function will stop any sample instances which may be playing the buffer\n referenced by the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE.\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be, _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_c\bch\bha\ban\bnn\bne\bel\bls\bs *\b**\b**\b**\b**\b*\n ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the channel configuration of the sample.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\be_\bp_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\be_\bn_\bg_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\ba_\bt_\ba\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_d\bde\bep\bpt\bth\bh *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the audio depth of the sample.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bc_\bh_\ba_\bn_\bn_\be_\bl_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\be_\bn_\bg_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\ba_\bt_\ba\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the frequency (in Hz) of the sample.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bc_\bh_\ba_\bn_\bn_\be_\bl_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\be_\bp_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\be_\bn_\bg_\bt_\bh,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\ba_\bt_\ba\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_l\ble\ben\bng\bgt\bth\bh *\b**\b**\b**\b**\b*\n unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the length of the sample in sample values.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bc_\bh_\ba_\bn_\bn_\be_\bl_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\be_\bp_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\ba_\bt_\ba\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_d\bda\bat\bta\ba *\b**\b**\b**\b**\b*\n void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n-void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return a pointer to the raw sample data.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bc_\bh_\ba_\bn_\bn_\be_\bl_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\be_\bp_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\be_\bn_\bg_\bt_\bh\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bt_\bi_\bm_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAd\bdv\bva\ban\bnc\bce\bed\bd A\bAu\bud\bdi\bio\bo *\b**\b**\b**\b**\b**\b*\n@@ -628,15 +600,14 @@\n al_play_sample is called, it\u2019ll use one of these internal sample instances that\n is not currently playing to play the requested sample. All of these sample\n instances will be attached to the default mixer, which can be changed via\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br.\n *\b**\b**\b**\b**\b**\b* S\bSa\bam\bmp\bpl\ble\be i\bin\bns\bst\bta\ban\bnc\bce\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSA\bAM\bMP\bPL\bLE\bE_\b_I\bIN\bNS\bST\bTA\bAN\bNC\bCE\bE *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n-typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_SAMPLE_INSTANCE object represents a playable instance of a\n predefined sound effect. It holds information about how the effect should be\n played: These playback parameters consist of the looping mode, loop start/end\n points, playing position, speed, gain, pan and the playmode. Whether a sample\n instance is currently playing or paused is also one of its properties.\n An instance uses the data from an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE object. Multiple instances may\n@@ -647,178 +618,155 @@\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)\n-ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a sample instance, using the supplied sample data. The instance must be\n attached to a mixer (or voice) in order to actually produce output.\n The argument may be NULL. You can then set the sample data later with\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be.\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detaches the sample instance from anything it may be attached to and frees it\n (the sample data, i.e.\u00a0its ALLEGRO_SAMPLE, is n\bno\bot\bt freed!).\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_p\bpl\bla\bay\by_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Play the sample instance. Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bs_\bt_\bo_\bp_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bto\bop\bp_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Stop an sample instance playing.\n See also: _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_c\bch\bha\ban\bnn\bne\bel\bls\bs *\b**\b**\b**\b**\b*\n ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n- const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the channel configuration of the sample instance\u2019s sample data.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF.\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_d\bde\bep\bpt\bth\bh *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE\n *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE\n-*spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the audio depth of the sample instance\u2019s sample data.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH.\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE\n *spl)\n-unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE\n-*spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the frequency (in Hz) of the sample instance\u2019s sample data.\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_l\ble\ben\bng\bgt\bth\bh *\b**\b**\b**\b**\b*\n unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the length of the sample instance in sample values. This property may\n differ from the length of the instance\u2019s sample data.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bl_\be_\bn_\bg_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bi_\bm_\be\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_l\ble\ben\bng\bgt\bth\bh *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n unsigned int val)\n-bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n- unsigned int val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the length of the sample instance in sample values. This can be used to\n play only parts of the underlying sample. Be careful not to exceed the actual\n length of the sample data, though.\n Return true on success, false on failure. Will fail if the sample instance is\n currently playing.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bl_\be_\bn_\bg_\bt_\bh\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE\n *spl)\n-unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE\n-*spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the playback position of a sample instance.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n unsigned int val)\n-bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n- unsigned int val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the playback position of a sample instance.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_s\bsp\bpe\bee\bed\bd *\b**\b**\b**\b**\b*\n float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the relative playback speed of the sample instance.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bs_\bp_\be_\be_\bd\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_s\bsp\bpe\bee\bed\bd *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the relative playback speed of the sample instance. 1.0 means normal speed.\n Return true on success, false on failure. Will fail if the sample instance is\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bs_\bp_\be_\be_\bd\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the playback gain of the sample instance.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bg_\ba_\bi_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the playback gain of the sample instance.\n Returns true on success, false on failure. Will fail if the sample instance is\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bg_\ba_\bi_\bn\n Examples:\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpa\ban\bn *\b**\b**\b**\b**\b*\n float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the pan value of the sample instance.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\ba_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpa\ban\bn *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the pan value on a sample instance. A value of -1.0 means to play the\n sample only through the left speaker; +1.0 means only through the right\n speaker; 0.0 means the sample is centre balanced. A special value\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bP_\bA_\bN_\b__\bN_\bO_\bN_\bE disables panning and plays the sample at its original\n level. This will be louder than a pan value of 0.0.\n Note: panning samples with more than two channels doesn\u2019t work yet.\n@@ -826,99 +774,88 @@\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\ba_\bn, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bP_\bA_\bN_\b__\bN_\bO_\bN_\bE\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_t\bti\bim\bme\be *\b**\b**\b**\b**\b*\n float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the length of the sample instance in seconds, assuming a playback speed\n of 1.0.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bl_\be_\bn_\bg_\bt_\bh\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpl\bla\bay\bym\bmo\bod\bde\be *\b**\b**\b**\b**\b*\n ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE\n *spl)\n-ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE\n-*spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the playback mode of the sample instance.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bL_\bA_\bY_\bM_\bO_\bD_\bE, _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bl_\ba_\by_\bm_\bo_\bd_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpl\bla\bay\bym\bmo\bod\bde\be *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_PLAYMODE val)\n-bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_PLAYMODE val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the playback mode of the sample instance.\n Returns true on success, false on failure.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bL_\bA_\bY_\bM_\bO_\bD_\bE, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bl_\ba_\by_\bm_\bo_\bd_\be\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return true if the sample instance is in the playing state. This may be true\n even if the instance is not attached to anything.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)\n-bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Change whether the sample instance is playing.\n The instance does not need to be attached to anything (since: 5.1.8).\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_a\bat\btt\bta\bac\bch\bhe\bed\bd *\b**\b**\b**\b**\b*\n bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return whether the sample instance is attached to something.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bet\bta\bac\bch\bh_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detach the sample instance from whatever it\u2019s attached to, if anything.\n Returns true on success.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\ba_\bt_\bt_\ba_\bc_\bh_\be_\bd\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the sample data that the sample instance plays.\n Note this returns a pointer to an internal structure, n\bno\bot\bt the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE\n that you may have passed to _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be. However, the sample buffer of the\n returned ALLEGRO_SAMPLE will be the same as the one that was used to create the\n sample (passed to _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bs_\ba_\bm_\bp_\bl_\be). You can use _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bd_\ba_\bt_\ba on the\n return value to retrieve and compare it.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)\n-bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Change the sample data that a sample instance plays. This can be quite an\n involved process.\n First, the sample is stopped if it is not already.\n Next, if data is NULL, the sample is detached from its parent (if any).\n If data is not NULL, the sample may be detached and reattached to its parent\n (if any). This is not necessary if the old sample data and new sample data have\n@@ -932,16 +869,14 @@\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_c\bch\bha\ban\bnn\bne\bel\bl_\b_m\bma\bat\btr\bri\bix\bx *\b**\b**\b**\b**\b*\n bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const\n float *matrix)\n-bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const\n-float *matrix)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the matrix used to mix the channels coming from this instance into the\n mixer it is attached to. Normally Allegro derives the values of this matrix\n from the gain and pan settings, as well as the channel configurations of this\n instance and the mixer it is attached to, but this allows you override that\n default value. Note that if you do set gain or pan of this instance or the\n mixer it is attached to, you\u2019ll need to call this function again.\n@@ -963,15 +898,14 @@\n Since: 5.2.3\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAu\bud\bdi\bio\bo s\bst\btr\bre\bea\bam\bms\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_S\bST\bTR\bRE\bEA\bAM\bM *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n-typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_AUDIO_STREAM object is used to stream generated audio to the sound\n device, in real-time. This is done by reading from a buffer, which is split\n into a number of fragments. Whenever a fragment has finished playing, the user\n can refill it with new data.\n As with _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE_\b__\bI_\bN_\bS_\bT_\bA_\bN_\bC_\bE objects, streams store information necessary\n for playback, so you may not play the same stream multiple times\n@@ -997,17 +931,14 @@\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n- unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n- ALLEGRO_CHANNEL_CONF chan_conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bS_\bT_\bR_\bE_\bA_\bM. The stream will be set to play by default. It\n will feed audio data from a buffer, which is split into a number of fragments.\n Parameters:\n * fragment_count - How many fragments to use for the audio stream. Usually\n only two fragments are required - splitting the audio buffer in two\n halves. But it means that the only time when new data can be supplied is\n@@ -1043,16 +974,14 @@\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n- size_t buffer_count, unsigned int samples)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads an audio file from disk as it is needed.\n Unlike regular streams, the one returned by this function need not be fed by\n the user; the library will automatically read more of the file as it is needed.\n The stream will contain b\bbu\buf\bff\bfe\ber\br_\b_c\bco\bou\bun\bnt\bt buffers with s\bsa\bam\bmp\bpl\ble\bes\bs samples.\n The audio stream will start in the playing state. It should be attached to a\n voice or mixer to generate any output. See _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bS_\bT_\bR_\bE_\bA_\bM for more\n@@ -1067,17 +996,14 @@\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bp_\bp_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bf *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char\n *ident,\n size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char\n-*ident,\n- size_t buffer_count, unsigned int samples)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads an audio file from _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE stream as it is needed.\n Unlike regular streams, the one returned by this function need not be fed by\n the user; the library will automatically read more of the file as it is needed.\n The stream will contain b\bbu\buf\bff\bfe\ber\br_\b_c\bco\bou\bun\bnt\bt buffers with s\bsa\bam\bmp\bpl\ble\bes\bs samples.\n The file type is determined by the passed \u2018ident\u2019 parameter, which is a file\n name extension including the leading dot.\n@@ -1090,209 +1016,182 @@\n N\bNo\bot\bte\be:\b: the allegro_audio library does not support any audio file\n formats by default. You must use the allegro_acodec addon, or\n register your own format handler.\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\bo_\ba_\bd_\be_\br_\b__\bf,\n _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroy an audio stream which was created with _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm or\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm.\n N\bNo\bot\bte\be:\b: If the stream is still attached to a mixer or voice,\n _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm is automatically called on it first.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bi_\bn_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm.\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n- ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Retrieve the associated event source.\n See _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt for a description of the\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bA_\bU_\bD_\bI_\bO_\b__\bS_\bT_\bR_\bE_\bA_\bM_\b__\bF_\bR_\bA_\bG_\bM_\bE_\bN_\bT event that audio streams emit.\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\bai\bin\bn_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n You should call this to finalise an audio stream that you will no longer be\n feeding, to wait for all pending buffers to finish playing. The stream\u2019s\n playing state will change to false.\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bew\bwi\bin\bnd\bd_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the streaming file playing position to the beginning. Returns true on\n success. Currently this can only be called on streams created with\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the stream frequency (in Hz).\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_c\bch\bha\ban\bnn\bne\bel\bls\bs *\b**\b**\b**\b**\b*\n ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n- const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the stream channel configuration.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_d\bde\bep\bpt\bth\bh *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n- const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the stream audio depth.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_l\ble\ben\bng\bgt\bth\bh *\b**\b**\b**\b**\b*\n unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the stream length in samples.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_s\bsp\bpe\bee\bed\bd *\b**\b**\b**\b**\b*\n float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the relative playback speed of the stream.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\bp_\be_\be_\bd.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_s\bsp\bpe\bee\bed\bd *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the relative playback speed of the stream. 1.0 means normal speed.\n Return true on success, false on failure. Will fail if the audio stream is\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\bp_\be_\be_\bd.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the playback gain of the stream.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bg_\ba_\bi_\bn.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the playback gain of the stream.\n Returns true on success, false on failure. Will fail if the audio stream is\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bg_\ba_\bi_\bn.\n Examples:\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpa\ban\bn *\b**\b**\b**\b**\b*\n float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the pan value of the stream.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\ba_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpa\ban\bn *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the pan value on an audio stream. A value of -1.0 means to play the stream\n only through the left speaker; +1.0 means only through the right speaker; 0.0\n means the sample is centre balanced. A special value _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bP_\bA_\bN_\b__\bN_\bO_\bN_\bE\n disables panning and plays the stream at its original level. This will be\n louder than a pan value of 0.0.\n Returns true on success, false on failure. Will fail if the audio stream is\n attached directly to a voice.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\ba_\bn, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bP_\bA_\bN_\b__\bN_\bO_\bN_\bE\n Examples:\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return true if the stream is playing.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)\n-bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Change whether the stream is playing.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bi_\bm_\bp_\bl_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpl\bla\bay\bym\bmo\bod\bde\be *\b**\b**\b**\b**\b*\n ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n- const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the playback mode of the stream.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bL_\bA_\bY_\bM_\bO_\bD_\bE, _\ba_\bl_\b__\bs_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bl_\ba_\by_\bm_\bo_\bd_\be.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpl\bla\bay\bym\bmo\bod\bde\be *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n ALLEGRO_PLAYMODE val)\n-bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_PLAYMODE val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the playback mode of the stream.\n Returns true on success, false on failure.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bL_\bA_\bY_\bM_\bO_\bD_\bE, _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bl_\ba_\by_\bm_\bo_\bd_\be.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bp_\bp_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_a\bat\btt\bta\bac\bch\bhe\bed\bd *\b**\b**\b**\b**\b*\n bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return whether the stream is attached to something.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be,\n _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bet\bta\bac\bch\bh_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm *\b**\b**\b**\b**\b*\n bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detach the stream from whatever it\u2019s attached to, if anything.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be,\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\ba_\bt_\bt_\ba_\bc_\bh_\be_\bd.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpl\bla\bay\bye\bed\bd_\b_s\bsa\bam\bmp\bpl\ble\bes\bs *\b**\b**\b**\b**\b*\n uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)\n-uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the number of samples consumed by the parent since the audio stream was\n started.\n Since: 5.1.8\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bfr\bra\bag\bgm\bme\ben\bnt\bt *\b**\b**\b**\b**\b*\n void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)\n-void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n When using Allegro\u2019s audio streaming, you will use this function to\n continuously provide new sample data to a stream.\n If the stream is ready for new data, the function will return the address of an\n internal buffer to be filled with audio data. The length and format of the\n buffer are specified with _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm or can be queried with the\n various functions described here. Once the buffer is filled, you must signal\n@@ -1308,75 +1207,66 @@\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bd_\be_\bp_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\be_\bn_\bg_\bt_\bh\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bfr\bra\bag\bgm\bme\ben\bnt\bt *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)\n-bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function needs to be called for every successful call of\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt to indicate that the buffer (pointed to by val) is\n filled with new data.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bfr\bra\bag\bgm\bme\ben\bnt\bts\bs *\b**\b**\b**\b**\b*\n unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the number of fragments this stream uses. This is the same value as\n passed to _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm when a new stream is created.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bv_\ba_\bi_\bl_\ba_\bb_\bl_\be_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt_\bs\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bav\bva\bai\bil\bla\bab\bbl\ble\be_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_f\bfr\bra\bag\bgm\bme\ben\bnt\bts\bs *\b**\b**\b**\b**\b*\n unsigned int al_get_available_audio_stream_fragments(\n const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_available_audio_stream_fragments(\n- const ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the number of available fragments in the stream, that is, fragments\n which are not currently filled with data for playback.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt, _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt_\bs\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bee\bek\bk_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_s\bse\bec\bcs\bs *\b**\b**\b**\b**\b*\n bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)\n-bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the streaming file playing position to time. Returns true on success.\n Currently this can only be called on streams created with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm,\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\b__\bs_\be_\bc_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\be_\bn_\bg_\bt_\bh_\b__\bs_\be_\bc_\bs\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn_\b_s\bse\bec\bcs\bs *\b**\b**\b**\b**\b*\n double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the position of the stream in seconds. Currently this can only be called\n on streams created with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm,\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\be_\bn_\bg_\bt_\bh_\b__\bs_\be_\bc_\bs\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_l\ble\ben\bng\bgt\bth\bh_\b_s\bse\bec\bcs\bs *\b**\b**\b**\b**\b*\n double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the length of the stream in seconds, if known. Otherwise returns zero.\n Currently this can only be called on streams created with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm,\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn_\b__\bs_\be_\bc_\bs\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_l\blo\boo\bop\bp_\b_s\bse\bec\bcs\bs *\b**\b**\b**\b**\b*\n bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n double start, double end)\n-bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n- double start, double end)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sets the loop points for the stream in seconds. Currently this can only be\n called on streams created with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm, _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm,\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf or _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_c\bch\bha\ban\bnn\bne\bel\bl_\b_m\bma\bat\btr\bri\bix\bx *\b**\b**\b**\b**\b*\n@@ -1384,105 +1274,89 @@\n Like _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bc_\bh_\ba_\bn_\bn_\be_\bl_\b__\bm_\ba_\bt_\br_\bi_\bx but for streams.\n Since: 5.2.3\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: New API.\n *\b**\b**\b**\b**\b**\b* A\bAd\bdv\bva\ban\bnc\bce\bed\bd a\bau\bud\bdi\bio\bo f\bfi\bil\ble\be I\bI/\b/O\bO *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_s\bsa\bam\bmp\bpl\ble\be_\b_l\blo\boa\bad\bde\ber\br *\b**\b**\b**\b**\b*\n bool al_register_sample_loader(const char *ext,\n ALLEGRO_SAMPLE *(*loader)(const char *filename))\n-bool al_register_sample_loader(const char *ext,\n- ALLEGRO_SAMPLE *(*loader)(const char *filename))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bs_\ba_\bm_\bp_\bl_\be. The given function will be used to\n handle the loading of sample files with the given extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The loader argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\bo_\ba_\bd_\be_\br_\b__\bf, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bs_\ba_\bv_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_s\bsa\bam\bmp\bpl\ble\be_\b_l\blo\boa\bad\bde\ber\br_\b_f\bf *\b**\b**\b**\b**\b*\n bool al_register_sample_loader_f(const char *ext,\n ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n-bool al_register_sample_loader_f(const char *ext,\n- ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf. The given function will be used to\n handle the loading of sample files with the given extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The loader argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\bo_\ba_\bd_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_s\bsa\bam\bmp\bpl\ble\be_\b_s\bsa\bav\bve\ber\br *\b**\b**\b**\b**\b*\n bool al_register_sample_saver(const char *ext,\n bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver(const char *ext,\n- bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be. The given function will be used to\n handle the saving of sample files with the given extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The saver argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bs_\ba_\bv_\be_\br_\b__\bf, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bl_\bo_\ba_\bd_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_s\bsa\bam\bmp\bpl\ble\be_\b_s\bsa\bav\bve\ber\br_\b_f\bf *\b**\b**\b**\b**\b*\n bool al_register_sample_saver_f(const char *ext,\n bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver_f(const char *ext,\n- bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf. The given function will be used to\n handle the saving of sample files with the given extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The saver argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bs_\ba_\bv_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_l\blo\boa\bad\bde\ber\br *\b**\b**\b**\b**\b*\n bool al_register_audio_stream_loader(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n- size_t buffer_count, unsigned int samples))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm and _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm. The given\n function will be used to open streams from files with the given extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The stream_loader argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\bo_\ba_\bd_\be_\br_\b__\bf\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_l\blo\boa\bad\bde\ber\br_\b_f\bf *\b**\b**\b**\b**\b*\n bool al_register_audio_stream_loader_f(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader_f(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n- size_t buffer_count, unsigned int samples))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register a handler for _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf and _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf. The\n given function will be used to open streams from files with the given\n extension.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The stream_loader argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bl_\bo_\ba_\bd_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bid\bde\ben\bnt\bti\bif\bfi\bie\ber\br *\b**\b**\b**\b**\b*\n bool al_register_sample_identifier(const char *ext,\n bool (*identifier)(ALLEGRO_FILE* fp))\n-bool al_register_sample_identifier(const char *ext,\n- bool (*identifier)(ALLEGRO_FILE* fp))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Register an identify handler for _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bs_\ba_\bm_\bp_\bl_\be. The given function will be\n used to detect files for the given extension. It will be called with a single\n argument of type _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE which is a file handle opened for reading and\n located at the first byte of the file. The handler should try to read as few\n bytes as possible to safely determine if the given file contents correspond to\n the type with the extension and return true in that case, false otherwise. The\n@@ -1493,25 +1367,23 @@\n The identifier argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bb_\bi_\bt_\bm_\ba_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bid\bde\ben\bnt\bti\bif\bfy\by_\b_s\bsa\bam\bmp\bpl\ble\be *\b**\b**\b**\b**\b*\n char const *al_identify_sample(char const *filename)\n-char const *al_identify_sample(char const *filename)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This works exactly as _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf but you specify the filename of the\n file for which to detect the type and not a file handle. The extension, if any,\n of the passed filename is not taken into account - only the file contents.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bf,\n _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\bi_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bid\bde\ben\bnt\bti\bif\bfy\by_\b_s\bsa\bam\bmp\bpl\ble\be_\b_f\bf *\b**\b**\b**\b**\b*\n char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n-char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Tries to guess the audio file type of the open ALLEGRO_FILE by reading the\n first few bytes. By default Allegro cannot recognize any file types, but\n calling _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\ba_\bd_\bd_\bo_\bn will add detection of the types it can read. You\n can also use _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\bi_\be_\br to add identification for custom\n file types.\n Returns a pointer to a static string with a file extension for the type,\n@@ -1526,25 +1398,23 @@\n specific implementation details with its own buffering, it will add a small\n amount of latency. However, for most applications that small overhead will not\n adversely affect performance.\n Recording is supported by the ALSA, AudioQueue, DirectSound8, and PulseAudio\n drivers. Enumerating or choosing other recording devices is not yet supported.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_R\bRE\bEC\bCO\bOR\bRD\bDE\bER\bR *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n-typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque datatype that represents a recording device.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_R\bRE\bEC\bCO\bOR\bRD\bDE\bER\bR_\b_E\bEV\bVE\bEN\bNT\bT *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n-typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Structure that holds the audio recorder event data. Every event type will\n contain:\n * .source: pointer to the audio recorder\n The following will be available depending on the event type:\n * .buffer: pointer to buffer containing the audio samples\n * .samples: number of samples (not bytes) that are available\n@@ -1554,17 +1424,14 @@\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n unsigned int samples, unsigned int frequency,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n- unsigned int samples, unsigned int frequency,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates an audio recorder using the system\u2019s default recording device. (So if\n the returned device does not work, try updating the system\u2019s default recording\n device.)\n Allegro will internally buffer several seconds of captured audio with minimal\n latency. (XXX: These settings need to be exposed via config or API calls.)\n Audio will be copied out of that private buffer into a fragment buffer of the\n@@ -1588,133 +1455,119 @@\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bta\bar\brt\bt_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br *\b**\b**\b**\b**\b*\n bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Begin recording into the fragment buffer. Once a complete fragment has been\n captured (as specified in _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\ba_\bu_\bd_\bi_\bo_\b__\br_\be_\bc_\bo_\br_\bd_\be_\br), an\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bA_\bU_\bD_\bI_\bO_\b__\bR_\bE_\bC_\bO_\bR_\bD_\bE_\bR_\b__\bF_\bR_\bA_\bG_\bM_\bE_\bN_\bT event will be triggered.\n Returns true if it was able to begin recording.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bto\bop\bp_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br *\b**\b**\b**\b**\b*\n void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Stop capturing audio data. Note that the audio recorder is still active and\n consuming resources, so if you are finished recording you should destroy it\n with _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\ba_\bu_\bd_\bi_\bo_\b__\br_\be_\bc_\bo_\br_\bd_\be_\br.\n You may still receive a few events after you call this function as the device\n flushes the buffer.\n If you restart the recorder, it will begin recording at the beginning of the\n next fragment buffer.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br_\b_r\bre\bec\bco\bor\brd\bdi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the audio recorder is currently capturing data and generating\n events.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br_\b_e\bev\bve\ben\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n-ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the event as an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bR_\bE_\bC_\bO_\bR_\bD_\bE_\bR_\b__\bE_\bV_\bE_\bN_\bT.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER\n *r)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER\n-*r)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the event source for the recorder that generates the various recording\n events.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_a\bau\bud\bdi\bio\bo_\b_r\bre\bec\bco\bor\brd\bde\ber\br *\b**\b**\b**\b**\b*\n void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys the audio recorder and frees all resources associated with it. It is\n safe to destroy a recorder that is recording.\n You may receive events after the recorder has been destroyed. They must be\n ignored, as the fragment buffer will no longer be valid.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n Examples:\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAu\bud\bdi\bio\bo d\bde\bev\bvi\bic\bce\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_D\bDE\bEV\bVI\bIC\bCE\bE *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n-typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque datatype that represents an audio device.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bd_\be_\bv_\bi_\bc_\be_\bs_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_n\bnu\bum\bm_\b_a\bau\bud\bdi\bio\bo_\b_o\bou\but\btp\bpu\but\bt_\b_d\bde\bev\bvi\bic\bce\bes\bs *\b**\b**\b**\b**\b*\n int al_get_num_audio_output_devices()\n-int al_get_num_audio_output_devices()\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the number of available audio output devices on the system.\n Since: 5.2.8\n return -1 for unsupported drivers.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bd_\be_\bv_\bi_\bc_\be_\bs_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_o\bou\but\btp\bpu\but\bt_\b_d\bde\bev\bvi\bic\bce\be *\b**\b**\b**\b**\b*\n const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n-const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the output audio device of the specified index.\n Since: 5.2.8\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bd_\be_\bv_\bi_\bc_\be_\bs_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_d\bde\bev\bvi\bic\bce\be_\b_n\bna\bam\bme\be *\b**\b**\b**\b**\b*\n const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n-const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get the user friendly display name of the device.\n Since: 5.2.8\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bd_\be_\bv_\bi_\bc_\be_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* V\bVo\boi\bic\bce\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVO\bOI\bIC\bCE\bE *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n-typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A voice represents an audio device on the system, which may be a real device,\n or an abstract device provided by the operating system. To play back audio, you\n would attach a mixer, sample instance or audio stream to a voice.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bM_\bI_\bX_\bE_\bR, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bA_\bM_\bP_\bL_\bE, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bS_\bT_\bR_\bE_\bA_\bM\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a voice structure and allocates a voice from the digital sound driver.\n The passed frequency (in Hz), sample format and channel configuration are used\n as a hint to what kind of data will be sent to the voice. However, the\n underlying sound driver is free to use non-matching values. For example, it may\n be the native format of the sound hardware.\n If a mixer is attached to the voice, the mixer will handle the conversion of\n@@ -1727,35 +1580,31 @@\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bv_\bo_\bi_\bc_\be\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n void al_destroy_voice(ALLEGRO_VOICE *voice)\n-void al_destroy_voice(ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys the voice and deallocates it from the digital driver. Does nothing if\n the voice is NULL.\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\bo_\bi_\bc_\be\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bet\bta\bac\bch\bh_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n void al_detach_voice(ALLEGRO_VOICE *voice)\n-void al_detach_voice(ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detaches the mixer, sample instance or audio stream from the voice.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_t\bto\bo_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n ALLEGRO_VOICE *voice)\n-bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attaches an audio stream to a voice. The same rules as\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be apply. This may fail if the driver can\u2019t\n create a voice with the buffer count and buffer size the stream uses.\n An audio stream attached directly to a voice has a number of limitations: The\n audio stream plays immediately and cannot be stopped. The stream position,\n speed, gain and panning cannot be changed. At this time, we don\u2019t recommend\n@@ -1763,29 +1612,26 @@\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\bv_\bo_\bi_\bc_\be_\b__\bh_\ba_\bs_\b__\ba_\bt_\bt_\ba_\bc_\bh_\bm_\be_\bn_\bt_\bs\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_m\bmi\bix\bxe\ber\br_\b_t\bto\bo_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n-bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attaches a mixer to a voice. It must have the same frequency and channel\n configuration, but the depth may be different.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\bv_\bo_\bi_\bc_\be_\b__\bh_\ba_\bs_\b__\ba_\bt_\bt_\ba_\bc_\bh_\bm_\be_\bn_\bt_\bs\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_t\bto\bo_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_VOICE *voice)\n-bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attaches a sample instance to a voice, and allows it to play. The instance\u2019s\n gain and loop mode will be ignored, and it must have the same frequency,\n channel configuration and depth (including signed-ness) as the voice. This\n function may fail if the selected driver doesn\u2019t support preloading sample\n data.\n At this time, we don\u2019t recommend attaching sample instances directly to voices.\n@@ -1793,75 +1639,66 @@\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\bv_\bo_\bi_\bc_\be_\b__\bh_\ba_\bs_\b__\ba_\bt_\bt_\ba_\bc_\bh_\bm_\be_\bn_\bt_\bs\n Examples:\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the frequency of the voice (in Hz), e.g.\u00a044100.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_c\bch\bha\ban\bnn\bne\bel\bls\bs *\b**\b**\b**\b**\b*\n ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n-ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the channel configuration of the voice.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_d\bde\bep\bpt\bth\bh *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n-ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the audio depth of the voice.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n-bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return true if the voice is currently playing.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bv_\bo_\bi_\bc_\be_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n-bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Change whether a voice is playing or not. This can only work if the voice has a\n non-streaming object attached to it, e.g.\u00a0a sample instance. On success the\n voice\u2019s current sample position is reset.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bo_\bi_\bc_\be_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n When the voice has a non-streaming object attached to it, e.g.\u00a0a sample,\n returns the voice\u2019s current sample position. Otherwise, returns zero.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bv_\bo_\bi_\bc_\be_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_v\bvo\boi\bic\bce\be_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n-bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the voice position. This can only work if the voice has a non-streaming\n object attached to it, e.g.\u00a0a sample instance.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bo_\bi_\bc_\be_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_v\bvo\boi\bic\bce\be_\b_h\bha\bas\bs_\b_a\bat\btt\bta\bac\bch\bhm\bme\ben\bnt\bts\bs *\b**\b**\b**\b**\b*\n bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n-bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the voice has something attached to it.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be\n Since: 5.2.9\n *\b**\b**\b**\b**\b**\b* M\bMi\bix\bxe\ber\brs\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMI\bIX\bXE\bER\bR *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n-typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A mixer mixes together attached streams into a single buffer. In the process,\n it converts channel configurations, sample frequencies and audio depths of the\n attached sample instances and audio streams accordingly. You can control the\n quality of this conversion using ALLEGRO_MIXER_QUALITY.\n When going from mono to stereo (and above), the mixer reduces the volume of\n both channels by sqrt(2). When going from stereo (and above) to mono, the mixer\n@@ -1869,24 +1706,21 @@\n to the center channel (if present).\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMI\bIX\bXE\bER\bR_\b_Q\bQU\bUA\bAL\bLI\bIT\bTY\bY *\b**\b**\b**\b**\b*\n enum ALLEGRO_MIXER_QUALITY\n-enum ALLEGRO_MIXER_QUALITY\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n * ALLEGRO_MIXER_QUALITY_POINT - point sampling\n * ALLEGRO_MIXER_QUALITY_LINEAR - linear interpolation\n * ALLEGRO_MIXER_QUALITY_CUBIC - cubic interpolation (since: 5.0.8, 5.1.4)\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a mixer to attach sample instances, audio streams, or other mixers to.\n It will mix into a buffer at the requested frequency (in Hz) and channel count.\n The only supported audio depths are ALLEGRO_AUDIO_DEPTH_FLOAT32 and\n ALLEGRO_AUDIO_DEPTH_INT16 (not yet complete).\n To actually produce any output, the mixer will have to be attached to a voice\n using _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bv_\bo_\bi_\bc_\be.\n@@ -1896,241 +1730,212 @@\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bm_\bi_\bx_\be_\br, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n-void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys the mixer.\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\bi_\bx_\be_\br\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n ALLEGRO_MIXER *al_get_default_mixer(void)\n-ALLEGRO_MIXER *al_get_default_mixer(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the default mixer, or NULL if one has not been set. Although different\n configurations of mixers and voices can be used, in most cases a single mixer\n attached to a voice is what you want. The default mixer is used by\n _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be.\n See also: _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\br_\be_\bs_\bt_\bo_\br_\be_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n-bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sets the default mixer. All samples started with _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be will be stopped\n and all sample instances returned by _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd will be invalidated. If\n you are using your own mixer, this should be called before _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs.\n Returns true on success, false on error.\n See also: _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs, _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be, _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\br_\be_\bs_\bt_\bo_\br_\be_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bes\bst\bto\bor\bre\be_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_restore_default_mixer(void)\n-bool al_restore_default_mixer(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Restores Allegro\u2019s default mixer and attaches it to the default voice. If the\n default mixer hasn\u2019t been created before, it will be created. If the default\n voice hasn\u2019t been set via _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bv_\bo_\bi_\bc_\be or created before, it will also\n be created. All samples started with _\ba_\bl_\b__\bp_\bl_\ba_\by_\b__\bs_\ba_\bm_\bp_\bl_\be will be stopped and all\n sample instances returned by _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bd will be invalidated.\n Returns true on success, false on error.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\br_\be_\bs_\be_\br_\bv_\be_\b__\bs_\ba_\bm_\bp_\bl_\be_\bs.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_VOICE *al_get_default_voice(void)\n-ALLEGRO_VOICE *al_get_default_voice(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the default voice or NULL if there is none.\n Since: 5.1.13\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b*\n void al_set_default_voice(ALLEGRO_VOICE *voice)\n-void al_set_default_voice(ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n You can call this before calling al_restore_default_mixer to provide the voice\n which should be used. Any previous voice will be destroyed. You can also pass\n NULL to destroy the current default voice.\n Since: 5.1.13\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\bi_\bx_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_m\bmi\bix\bxe\ber\br_\b_t\bto\bo_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n-bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attaches the mixer passed as the first argument onto the mixer passed as the\n second argument. The first mixer (that is going to be attached) must not\n already be attached to anything. Both mixers must use the same frequency, audio\n depth and channel configuration.\n Returns true on success, false on error.\n It is invalid to attach a mixer to itself.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br.\n Examples:\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_s\bsa\bam\bmp\bpl\ble\be_\b_i\bin\bns\bst\bta\ban\bnc\bce\be_\b_t\bto\bo_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_MIXER *mixer)\n-bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attach a sample instance to a mixer. The instance must not already be attached\n to anything.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be.\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bat\btt\bta\bac\bch\bh_\b_a\bau\bud\bdi\bio\bo_\b_s\bst\btr\bre\bea\bam\bm_\b_t\bto\bo_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream,\n ALLEGRO_MIXER *mixer)\n-bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream,\n-ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Attach an audio stream to a mixer. The stream must not already be attached to\n anything.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm.\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n-unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the mixer frequency (in Hz).\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_f\bfr\bre\beq\bqu\bue\ben\bnc\bcy\by *\b**\b**\b**\b**\b*\n bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n-bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the mixer frequency (in Hz). This will only work if the mixer is not\n attached to anything.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bf_\br_\be_\bq_\bu_\be_\bn_\bc_\by\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_c\bch\bha\ban\bnn\bne\bel\bls\bs *\b**\b**\b**\b**\b*\n ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the mixer channel configuration.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF.\n Examples:\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_d\bde\bep\bpt\bth\bh *\b**\b**\b**\b**\b*\n ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the mixer audio depth.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH.\n Examples:\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n-float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the mixer gain (amplification factor). The default is 1.0.\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bg_\ba_\bi_\bn.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_g\bga\bai\bin\bn *\b**\b**\b**\b**\b*\n bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n-bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the mixer gain (amplification factor).\n Returns true on success, false on failure.\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bg_\ba_\bi_\bn\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_q\bqu\bua\bal\bli\bit\bty\by *\b**\b**\b**\b**\b*\n ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the mixer quality.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bM_\bI_\bX_\bE_\bR_\b__\bQ_\bU_\bA_\bL_\bI_\bT_\bY, _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bq_\bu_\ba_\bl_\bi_\bt_\by\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_q\bqu\bua\bal\bli\bit\bty\by *\b**\b**\b**\b**\b*\n bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY\n new_quality)\n-bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY\n-new_quality)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Set the mixer quality. This can only succeed if the mixer does not have\n anything attached to it.\n Returns true on success, false on failure.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bM_\bI_\bX_\bE_\bR_\b__\bQ_\bU_\bA_\bL_\bI_\bT_\bY, _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bq_\bu_\ba_\bl_\bi_\bt_\by\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return true if the mixer is playing.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b*\n bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n-bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Change whether the mixer is playing.\n Returns true on success, false on failure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\bp_\bl_\ba_\by_\bi_\bn_\bg.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_a\bat\btt\bta\bac\bch\bhe\bed\bd *\b**\b**\b**\b**\b*\n bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return true if the mixer is attached to something.\n See also: _\ba_\bl_\b__\bm_\bi_\bx_\be_\br_\b__\bh_\ba_\bs_\b__\ba_\bt_\bt_\ba_\bc_\bh_\bm_\be_\bn_\bt_\bs, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br\n *\b**\b**\b**\b**\b* a\bal\bl_\b_m\bmi\bix\bxe\ber\br_\b_h\bha\bas\bs_\b_a\bat\btt\bta\bac\bch\bhm\bme\ben\bnt\bts\bs *\b**\b**\b**\b**\b*\n bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n-bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the mixer has something attached to it.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bi_\bx_\be_\br_\b__\ba_\bt_\bt_\ba_\bc_\bh_\be_\bd, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\ba_\bm_\bp_\bl_\be_\b__\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br,\n _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br, _\ba_\bl_\b__\bd_\be_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br\n Since: 5.2.9\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bet\bta\bac\bch\bh_\b_m\bmi\bix\bxe\ber\br *\b**\b**\b**\b**\b*\n bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n-bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detach the mixer from whatever it is attached to, if anything.\n See also: _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bm_\bi_\bx_\be_\br_\b__\bt_\bo_\b__\bm_\bi_\bx_\be_\br.\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bmi\bix\bxe\ber\br_\b_p\bpo\bos\bst\btp\bpr\bro\boc\bce\bes\bss\bs_\b_c\bca\bal\bll\blb\bba\bac\bck\bk *\b**\b**\b**\b**\b*\n bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n void (*pp_callback)(void *buf, unsigned int samples, void *data),\n void *pp_callback_userdata)\n-bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n- void (*pp_callback)(void *buf, unsigned int samples, void *data),\n- void *pp_callback_userdata)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sets a post-processing filter function that\u2019s called after the attached streams\n have been mixed. The buffer\u2019s format will be whatever the mixer was created\n with. The sample count and user-data pointer is also passed.\n N\bNo\bot\bte\be:\b: The callback is called from a dedicated audio thread.\n Examples:\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bp_\bp_\b._\bc\n *\b**\b**\b**\b**\b**\b* M\bMi\bis\bsc\bce\bel\bla\ban\bne\beo\bou\bus\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_D\bDE\bEP\bPT\bTH\bH *\b**\b**\b**\b**\b*\n enum ALLEGRO_AUDIO_DEPTH\n-enum ALLEGRO_AUDIO_DEPTH\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sample depth and type as well as signedness. Mixers only use 32-bit signed\n float (-1..+1), or 16-bit signed integers. Signedness is determined by an\n \u201cunsigned\u201d bit-flag applied to the depth value.\n * ALLEGRO_AUDIO_DEPTH_INT8\n * ALLEGRO_AUDIO_DEPTH_INT16\n * ALLEGRO_AUDIO_DEPTH_INT24\n@@ -2142,30 +1947,28 @@\n * ALLEGRO_AUDIO_DEPTH_UINT24\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_P\bPA\bAN\bN_\b_N\bNO\bON\bNE\bE *\b**\b**\b**\b**\b*\n #define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n-#define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A special value for the pan property of sample instances and audio streams. Use\n this value to disable panning on sample instances and audio streams, and play\n them without attentuation implied by panning support.\n ALLEGRO_AUDIO_PAN_NONE is different from a pan value of 0.0 (centered) because,\n when panning is enabled, we try to maintain a constant sound power level as a\n sample is panned from left to right. A sound coming out of one speaker should\n sound as loud as it does when split over two speakers. As a consequence, a\n sample with pan value 0.0 will be 3 dB softer than the original level.\n (Please correct us if this is wrong.)\n Examples:\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bp_\br_\bo_\bp_\bs_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCH\bHA\bAN\bNN\bNE\bEL\bL_\b_C\bCO\bON\bNF\bF *\b**\b**\b**\b**\b*\n enum ALLEGRO_CHANNEL_CONF\n-enum ALLEGRO_CHANNEL_CONF\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Speaker configuration (mono, stereo, 2.1, etc).\n * ALLEGRO_CHANNEL_CONF_1\n * ALLEGRO_CHANNEL_CONF_2\n * ALLEGRO_CHANNEL_CONF_3\n * ALLEGRO_CHANNEL_CONF_4\n * ALLEGRO_CHANNEL_CONF_5_1\n@@ -2173,15 +1976,14 @@\n * ALLEGRO_CHANNEL_CONF_7_1\n Examples:\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b__\bm_\bu_\bl_\bt_\bi_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPL\bLA\bAY\bYM\bMO\bOD\bDE\bE *\b**\b**\b**\b**\b*\n enum ALLEGRO_PLAYMODE\n-enum ALLEGRO_PLAYMODE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sample and stream playback mode.\n * ALLEGRO_PLAYMODE_ONCE - the sample/stream is played from start to finish\n an then it stops.\n * ALLEGRO_PLAYMODE_LOOP - the sample/stream is played from start to finish\n (or between the two loop points). When it reaches the end, it restarts\n from the beginning.\n@@ -2194,15 +1996,14 @@\n for streams.\n Examples:\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\bk_\bc_\bm_\b__\bd_\bi_\br_\be_\bc_\bt_\b._\bc\n * _\be_\bx_\b__\bm_\bi_\bx_\be_\br_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_A\bAU\bUD\bDI\bIO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b*\n enum ALLEGRO_AUDIO_EVENT_TYPE\n-enum ALLEGRO_AUDIO_EVENT_TYPE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Events sent by _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be or\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\br_\be_\bc_\bo_\br_\bd_\be_\br_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be.\n *\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_A\bAU\bUD\bDI\bIO\bO_\b_S\bST\bTR\bRE\bEA\bAM\bM_\b_F\bFR\bRA\bAG\bGM\bME\bEN\bNT\bT *\b**\b**\b**\b*\n Sent when a stream fragment is ready to be filled in. See\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bf_\br_\ba_\bg_\bm_\be_\bn_\bt.\n *\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_A\bAU\bUD\bDI\bIO\bO_\b_S\bST\bTR\bRE\bEA\bAM\bM_\b_F\bFI\bIN\bNI\bIS\bSH\bHE\bED\bD *\b**\b**\b**\b*\n@@ -2212,38 +2013,33 @@\n to _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bR_\bE_\bC_\bO_\bR_\bD_\bE_\bR_\b__\bE_\bV_\bE_\bN_\bT via _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bu_\bd_\bi_\bo_\b__\br_\be_\bc_\bo_\br_\bd_\be_\br_\b__\be_\bv_\be_\bn_\bt.\n You must always check the values for the buffer and samples as they are not\n guaranteed to be exactly what was originally specified.\n Since: 5.1.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: The API may need a slight redesign.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_a\bau\bud\bdi\bio\bo_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_audio_version(void)\n-uint32_t al_get_allegro_audio_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bau\bud\bdi\bio\bo_\b_d\bde\bep\bpt\bth\bh_\b_s\bsi\biz\bze\be *\b**\b**\b**\b**\b*\n size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n-size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the size of a sample, in bytes, for the given format. The format is one\n of the values listed under _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bD_\bE_\bP_\bT_\bH.\n Examples:\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_c\bch\bha\ban\bnn\bne\bel\bl_\b_c\bco\bou\bun\bnt\bt *\b**\b**\b**\b**\b*\n size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n-size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return the number of channels for the given channel configuration, which is one\n of the values listed under _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bH_\bA_\bN_\bN_\bE_\bL_\b__\bC_\bO_\bN_\bF.\n Examples:\n * _\be_\bx_\b__\ba_\bc_\bo_\bd_\be_\bc_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_f\bfi\bil\bll\bl_\b_s\bsi\bil\ble\ben\bnc\bce\be *\b**\b**\b**\b**\b*\n void al_fill_silence(void *buf, unsigned int samples,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-void al_fill_silence(void *buf, unsigned int samples,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Fill a buffer with silence, for the given format and channel configuration. The\n buffer must have enough space for the given number of samples, and be properly\n aligned.\n Since: 5.1.8\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/color.html", "source2": "./usr/share/doc/allegro5-doc/refman/color.html", "unified_diff": "@@ -263,16 +263,15 @@\n between the three color channels into account as well. In general, most\n monitors nowadays try to be close to the sRGB specification. And so if\n in an Allegro game you display something with color

    \n

    al_map_rgb_f(0.5, 0.5, 0,5)

    \n

    then it will appear at about half brightness (even though the actual\n brightness output of the monitor will be less than half).

    \n

    al_color_cmyk

    \n-
    ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)\n-ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)
    \n+
    ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from CMYK values (cyan, magenta, yellow, black).

    \n

    See also: al_color_cmyk_to_rgb, Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_cmyk_to_rgb

    \n
    void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n-    float key, float *red, float *green, float *blue)\n-void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n-    float key, float *red, float *green, float *blue)
    \n+ float key, float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert CMYK values to RGB values.

    \n

    See also: al_color_cmyk, al_color_rgb_to_cmyk

    \n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_hsl

    \n-
    ALLEGRO_COLOR al_color_hsl(float h, float s, float l)\n-ALLEGRO_COLOR al_color_hsl(float h, float s, float l)
    \n+
    ALLEGRO_COLOR al_color_hsl(float h, float s, float l)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from HSL (hue, saturation, lightness) values.

    \n

    Parameters:

    \n
      \n@@ -322,17 +318,15 @@\n
    • ex_clip.c
    • \n
    • ex_palette.c
    • \n
    \n

    al_color_hsl_to_rgb

    \n
    void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n-   float *red, float *green, float *blue)\n-void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n-   float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert values in HSL color model to RGB color model.

    \n

    Parameters:

    \n
      \n
    • hue - Color hue angle in the range 0..360
    • \n@@ -348,16 +342,15 @@\n
        \n
      • ex_color.cpp
      • \n
      • ex_palette.c
      • \n
      \n

      al_color_hsv

      \n-
      ALLEGRO_COLOR al_color_hsv(float h, float s, float v)\n-ALLEGRO_COLOR al_color_hsv(float h, float s, float v)
      \n+
      ALLEGRO_COLOR al_color_hsv(float h, float s, float v)
      \n

      Source\n Code

      \n

      Return an ALLEGRO_COLOR\n structure from HSV (hue, saturation, value) values.

      \n

      Parameters:

      \n
        \n@@ -375,17 +368,15 @@\n
      • ex_color.cpp
      • \n
      • ex_multisample.c
      • \n
      \n

      al_color_hsv_to_rgb

      \n
      void al_color_hsv_to_rgb(float hue, float saturation, float value,\n-   float *red, float *green, float *blue)\n-void al_color_hsv_to_rgb(float hue, float saturation, float value,\n-   float *red, float *green, float *blue)
      \n+ float *red, float *green, float *blue)\n

      Source\n Code

      \n

      Convert values in HSV color model to RGB color model.

      \n

      Parameters:

      \n
        \n
      • hue - Color hue angle in the range 0..360
      • \n@@ -399,16 +390,15 @@\n href=\"color.html#al_color_hsl_to_rgb\">al_color_hsl_to_rgb

        \n

        Examples:

        \n
          \n
        • ex_color.cpp
        • \n
        \n

        al_color_html

        \n-
        ALLEGRO_COLOR al_color_html(char const *string)\n-ALLEGRO_COLOR al_color_html(char const *string)
        \n+
        ALLEGRO_COLOR al_color_html(char const *string)
        \n

        Source\n Code

        \n

        Interprets an HTML-style hex number (e.g.\u00a0#00faff) as a color. The\n accepted format is the same as al_color_html_to_rgb.

        \n

        Returns the interpreted color, or\n@@ -419,17 +409,15 @@\n Allegro 5.0.x.

        \n
    \n

    See also: al_color_html_to_rgb, al_color_rgb_to_html

    \n

    al_color_html_to_rgb

    \n
    bool al_color_html_to_rgb(char const *string,\n-   float *red, float *green, float *blue)\n-bool al_color_html_to_rgb(char const *string,\n-   float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Interprets an HTML-style hex number (e.g.\u00a0#00faff) as a color. The\n only accepted formats are \u201c#RRGGBB\u201d and \u201cRRGGBB\u201d where R, G, B are\n hexadecimal digits [0-9A-Fa-f].

    \n

    Returns true on success, false on failure. On failure all components\n@@ -438,17 +426,15 @@\n

    Note: the behaviour on invalid strings is different from\n Allegro 5.0.x.

    \n
    \n

    See also: al_color_html, al_color_rgb_to_html

    \n

    al_color_rgb_to_html

    \n
    void al_color_rgb_to_html(float red, float green, float blue,\n-    char *string)\n-void al_color_rgb_to_html(float red, float green, float blue,\n-    char *string)
    \n+ char *string)\n

    Source\n Code

    \n

    Create an HTML-style string representation of an ALLEGRO_COLOR, e.g.\u00a0#00faff.

    \n

    Parameters:

    \n
      \n@@ -464,16 +450,15 @@\n href=\"color.html#al_color_html_to_rgb\">al_color_html_to_rgb

      \n

      Examples:

      \n
        \n
      • ex_color.cpp
      • \n
      \n

      al_color_name

      \n-
      ALLEGRO_COLOR al_color_name(char const *name)\n-ALLEGRO_COLOR al_color_name(char const *name)
      \n+
      ALLEGRO_COLOR al_color_name(char const *name)
      \n

      Source\n Code

      \n

      Return an ALLEGRO_COLOR\n with the given name. If the color is not found then black is\n returned.

      \n

      See ex_drag_and_drop.c\n

    • ex_multisample_target.c
    • \n
    • ex_clip.c
    • \n
    \n

    al_color_name_to_rgb

    \n-
    bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)\n-bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)
    \n+
    bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)
    \n

    Source\n Code

    \n

    Parameters:

    \n
      \n
    • name - The (lowercase) name of the color.
    • \n
    • r, g, b - If one of the recognized color names below is passed, the\n@@ -534,17 +518,15 @@\n lightgray = lightgrey, lightslategray = lightslategrey, slategray =\n slategrey

      \n

      Returns: true if a name from the list above was passed, else\n false.

      \n

      See also: al_color_name

      \n

      al_color_rgb_to_cmyk

      \n
      void al_color_rgb_to_cmyk(float red, float green, float blue,\n-   float *cyan, float *magenta, float *yellow, float *key)\n-void al_color_rgb_to_cmyk(float red, float green, float blue,\n-   float *cyan, float *magenta, float *yellow, float *key)
      \n+ float *cyan, float *magenta, float *yellow, float *key)\n

      Source\n Code

      \n

      Each RGB color can be represented in CMYK with a K component of 0\n with the following formula:

      \n
      C = 1 - R\n M = 1 - G\n@@ -557,17 +539,15 @@\n 

      Examples:

      \n
        \n
      • ex_color.cpp
      • \n
      \n

      al_color_rgb_to_hsl

      \n
      void al_color_rgb_to_hsl(float red, float green, float blue,\n-   float *hue, float *saturation, float *lightness)\n-void al_color_rgb_to_hsl(float red, float green, float blue,\n-   float *hue, float *saturation, float *lightness)
      \n+ float *hue, float *saturation, float *lightness)
      \n

      Source\n Code

      \n

      Given an RGB triplet with components in the range 0..1, return the\n hue in degrees from 0..360 and saturation and lightness in the range\n 0..1.

      \n

      See also: ex_color.cpp

    • \n
    • ex_palette.c
    • \n
    \n

    al_color_rgb_to_hsv

    \n
    void al_color_rgb_to_hsv(float red, float green, float blue,\n-   float *hue, float *saturation, float *value)\n-void al_color_rgb_to_hsv(float red, float green, float blue,\n-   float *hue, float *saturation, float *value)
    \n+ float *hue, float *saturation, float *value)\n

    Source\n Code

    \n

    Given an RGB triplet with components in the range 0..1, return the\n hue in degrees from 0..360 and saturation and value in the range\n 0..1.

    \n

    See also: \n

  • ex_color.cpp
  • \n
  • ex_color_gradient.c
  • \n \n

    al_color_rgb_to_name

    \n-
    char const *al_color_rgb_to_name(float r, float g, float b)\n-char const *al_color_rgb_to_name(float r, float g, float b)
    \n+
    char const *al_color_rgb_to_name(float r, float g, float b)
    \n

    Source\n Code

    \n

    Given an RGB triplet with components in the range 0..1, find a color\n name describing it approximately.

    \n

    See also: al_color_name_to_rgb, Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_rgb_to_xyz

    \n
    void al_color_rgb_to_xyz(float red, float green, float blue,\n-   float *x, float *y, float *z)\n-void al_color_rgb_to_xyz(float red, float green, float blue,\n-   float *x, float *y, float *z)
    \n+ float *x, float *y, float *z)\n

    Source\n Code

    \n

    Convert RGB values to XYZ color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_xyz, al_color_xyz_to_rgb

    \n

    al_color_xyz

    \n-
    ALLEGRO_COLOR al_color_xyz(float x, float y, float z)\n-ALLEGRO_COLOR al_color_xyz(float x, float y, float z)
    \n+
    ALLEGRO_COLOR al_color_xyz(float x, float y, float z)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from XYZ values. The CIE 1931 XYZ color space consists of\n three components in the range 0..1. The Y component corresponds to\n luminance and the X and Z components define the color.

    \n@@ -649,39 +623,34 @@\n
    \n

    Since: 5.2.3

    \n

    See also: al_color_xyz_to_rgb, al_color_rgb_to_xyz

    \n

    al_color_xyz_to_rgb

    \n
    void al_color_xyz_to_rgb(float x, float y, float z,\n-    float *red, float *green, float *blue)\n-void al_color_xyz_to_rgb(float x, float y, float z,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert XYZ color values to RGB color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_xyz, al_color_rgb_to_xyz

    \n

    al_color_rgb_to_xyy

    \n
    void al_color_rgb_to_xyy(float red, float green, float blue,\n-   float *x, float *y, float *y2)\n-void al_color_rgb_to_xyy(float red, float green, float blue,\n-   float *x, float *y, float *y2)
    \n+ float *x, float *y, float *y2)\n

    Source\n Code

    \n

    Convert RGB values to xyY color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_xyy, al_color_xyy_to_rgb

    \n

    al_color_xyy

    \n-
    ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)\n-ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)
    \n+
    ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from xyY values. The Y component in the xyY color space is the\n same as the Y in XYZ.

    \n

    However the x and y values are computed from XYZ like this:

    \n@@ -689,44 +658,39 @@\n y = Y / (X + Y + Z)\n

    Since: 5.2.3

    \n

    See also: al_color_xyy_to_rgb, al_color_rgb_to_xyy

    \n

    al_color_xyy_to_rgb

    \n
    void al_color_xyy_to_rgb(float x, float y, float y2,\n-    float *red, float *green, float *blue)\n-void al_color_xyy_to_rgb(float x, float y, float y2,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert xyY color values to RGB color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_xyy, al_color_rgb_to_xyy

    \n

    al_color_rgb_to_lab

    \n
    void al_color_rgb_to_lab(float red, float green, float blue,\n-   float *l, float *a, float *b)\n-void al_color_rgb_to_lab(float red, float green, float blue,\n-   float *l, float *a, float *b)
    \n+ float *l, float *a, float *b)\n

    Source\n Code

    \n

    Convert RGB values to L*a*b* color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_lab, al_color_lab_to_rgb

    \n

    Examples:

    \n
      \n
    • ex_color_gradient.c
    • \n
    \n

    al_color_lab

    \n-
    ALLEGRO_COLOR al_color_lab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_lab(float l, float a, float b)
    \n+
    ALLEGRO_COLOR al_color_lab(float l, float a, float b)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from CIE L*a*b* values. The L* component corresponds to\n luminance from 0..1. The a* and b* components are in the range\n -1..+1.

    \n@@ -752,49 +716,44 @@\n
  • ex_color2.c
  • \n
  • ex_color_gradient.c
  • \n \n

    al_color_lab_to_rgb

    \n
    void al_color_lab_to_rgb(float l, float a, float b,\n-    float *red, float *green, float *blue)\n-void al_color_lab_to_rgb(float l, float a, float b,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert CIE L*a*b* color values to RGB color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_lab, al_color_rgb_to_lab

    \n

    Examples:

    \n
      \n
    • ex_color2.c
    • \n
    \n

    al_color_rgb_to_lch

    \n
    void al_color_rgb_to_lch(float red, float green, float blue,\n-   float *l, float *c, float *h)\n-void al_color_rgb_to_lch(float red, float green, float blue,\n-   float *l, float *c, float *h)
    \n+ float *l, float *c, float *h)\n

    Source\n Code

    \n

    Convert RGB values to CIE LCH color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_lch, al_color_lch_to_rgb

    \n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_lch

    \n-
    ALLEGRO_COLOR al_color_lch(float l, float c, float h)\n-ALLEGRO_COLOR al_color_lch(float l, float c, float h)
    \n+
    ALLEGRO_COLOR al_color_lch(float l, float c, float h)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from CIE LCH values. LCH colors are very similar to HSL, with\n the same meaning of L and H and C corresponding to S. However LCH is\n more visually uniform. Furthermore, this function expects the angle for\n@@ -811,34 +770,30 @@\n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_lch_to_rgb

    \n
    void al_color_lch_to_rgb(float l, float c, float h,\n-    float *red, float *green, float *blue)\n-void al_color_lch_to_rgb(float l, float c, float h,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert CIE LCH color values to RGB color space.

    \n

    Since: 5.2.3

    \n

    See also: al_color_lch, al_color_rgb_to_lch

    \n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_distance_ciede2000

    \n
    double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n-      ALLEGRO_COLOR color2) {\n-double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n-      ALLEGRO_COLOR color2) {
    \n+ ALLEGRO_COLOR color2) {\n

    Source\n Code

    \n

    This function computes the CIEDE2000 color difference between two RGB\n colors. This is a visually uniform color difference, unlike for example\n the RGB distance.

    \n

    When using the RGB distance (Euklidean distance between two RGB\n@@ -861,31 +816,28 @@\n

    Examples:

    \n
      \n
    • ex_color2.c
    • \n
    \n

    al_color_rgb_to_yuv

    \n
    void al_color_rgb_to_yuv(float red, float green, float blue,\n-   float *y, float *u, float *v)\n-void al_color_rgb_to_yuv(float red, float green, float blue,\n-   float *y, float *u, float *v)
    \n+ float *y, float *u, float *v)\n

    Source\n Code

    \n

    Convert RGB values to YUV color space.

    \n

    See also: al_color_yuv, al_color_yuv_to_rgb

    \n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_yuv

    \n-
    ALLEGRO_COLOR al_color_yuv(float y, float u, float v)\n-ALLEGRO_COLOR al_color_yuv(float y, float u, float v)
    \n+
    ALLEGRO_COLOR al_color_yuv(float y, float u, float v)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from YUV values.

    \n

    See also: al_color_yuv_to_rgb, Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_color_yuv_to_rgb

    \n
    void al_color_yuv_to_rgb(float y, float u, float v,\n-    float *red, float *green, float *blue)\n-void al_color_yuv_to_rgb(float y, float u, float v,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert YUV color values to RGB color space.

    \n

    See also: al_color_yuv, al_color_rgb_to_yuv

    \n

    Examples:

    \n
      \n
    • ex_color.cpp
    • \n
    \n

    al_get_allegro_color_version

    \n-
    uint32_t al_get_allegro_color_version(void)\n-uint32_t al_get_allegro_color_version(void)
    \n+
    uint32_t al_get_allegro_color_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    al_is_color_valid

    \n

    Source Code

    \n

    Checks if all components of the color are between 0 and 1. Some of\n the color conversions in this addon support color spaces with more\n colors than can be represented in sRGB and when converted to RGB will\n result in invalid color components outside the 0..1 range.

    \n

    Since: 5.2.3

    \n

    al_color_rgb_to_oklab

    \n
    void al_color_rgb_to_oklab(float red, float green, float blue,\n-   float *ol, float *oa, float *ob)\n-void al_color_rgb_to_oklab(float red, float green, float blue,\n-   float *ol, float *oa, float *ob)
    \n+ float *ol, float *oa, float *ob)\n

    Source\n Code

    \n

    Convert RGB values to the Oklab color space.

    \n

    Since: 5.2.8

    \n

    See also: al_color_oklab, al_color_oklab_to_rgb

    \n

    Examples:

    \n
      \n
    • ex_color_gradient.c
    • \n
    \n

    al_color_oklab

    \n-
    ALLEGRO_COLOR al_color_oklab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_oklab(float l, float a, float b)
    \n+
    ALLEGRO_COLOR al_color_oklab(float l, float a, float b)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from Oklab values. The L component corresponds to luminance\n from 0..1. The a and b components are in the range -1..+1.

    \n
    \n@@ -966,29 +912,25 @@\n

    Examples:

    \n
      \n
    • ex_color_gradient.c
    • \n
    \n

    al_color_oklab_to_rgb

    \n
    void al_color_oklab_to_rgb(float ol, float oa, float ob,\n-    float *red, float *green, float *blue)\n-void al_color_oklab_to_rgb(float ol, float oa, float ob,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert Oklab color values to RGB.

    \n

    Since: 5.2.8

    \n

    See also: al_color_oklab, al_color_rgb_to_oklab

    \n

    al_color_rgb_to_linear

    \n
    void al_color_rgb_to_linear(float red, float green, float blue,\n-   float *r, float *g, float *b)\n-void al_color_rgb_to_linear(float red, float green, float blue,\n-   float *r, float *g, float *b)
    \n+ float *r, float *g, float *b)\n

    Source\n Code

    \n

    Convert gamma corrected sRGB values (i.e.\u00a0normal RGB) to linear sRGB\n space.

    \n

    Since: 5.2.8

    \n

    See also: al_color_linear,\n@@ -996,16 +938,15 @@\n href=\"color.html#al_color_linear_to_rgb\">al_color_linear_to_rgb

    \n

    Examples:

    \n
      \n
    • ex_color_gradient.c
    • \n
    \n

    al_color_linear

    \n-
    ALLEGRO_COLOR al_color_linear(float r, float g, float b)\n-ALLEGRO_COLOR al_color_linear(float r, float g, float b)
    \n+
    ALLEGRO_COLOR al_color_linear(float r, float g, float b)
    \n

    Source\n Code

    \n

    Return an ALLEGRO_COLOR\n structure from linear sRGB values. Allegro RGB values are assumed to be\n sRGB. The sRGB standard is in wide use by various display devices. It\n accounts for a standard gamma correction applied to RGB colors before\n@@ -1029,22 +970,23 @@\n

    Examples:

    \n
      \n
    • ex_color_gradient.c
    • \n
    \n

    al_color_linear_to_rgb

    \n
    void al_color_linear_to_rgb(float r, float g, float b,\n-    float *red, float *green, float *blue)\n-void al_color_linear_to_rgb(float r, float g, float b,\n-    float *red, float *green, float *blue)
    \n+ float *red, float *green, float *blue)\n

    Source\n Code

    \n

    Convert linear sRGB color values to gamma corrected (i.e.\u00a0normal) RGB\n values.

    \n

    Since: 5.2.8

    \n

    See also: [al_color_linera], al_color_rgb_to_linear

    \n-\n+

    \n+Allegro version 5.2.9\n+ - Last updated: 2024-05-03 10:28:35 UTC\n+

    \n \n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -99,120 +99,106 @@\n try to be close to the sRGB specification. And so if in an Allegro game you\n display something with color\n al_map_rgb_f(0.5, 0.5, 0,5)\n then it will appear at about half brightness (even though the actual brightness\n output of the monitor will be less than half).\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_c\bcm\bmy\byk\bk *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)\n-ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from CMYK values (cyan, magenta, yellow,\n black).\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bc_\bm_\by_\bk_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bc_\bm_\by_\bk\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_c\bcm\bmy\byk\bk_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n float key, float *red, float *green, float *blue)\n-void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n- float key, float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert CMYK values to RGB values.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bc_\bm_\by_\bk, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bc_\bm_\by_\bk\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bhs\bsl\bl *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_hsl(float h, float s, float l)\n-ALLEGRO_COLOR al_color_hsl(float h, float s, float l)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from HSL (hue, saturation, lightness) values.\n Parameters:\n * hue - Color hue angle in the range 0..360\n * saturation - Color saturation in the range 0..1\n * lightness - Color lightness in the range 0..1\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bc_\bl_\bi_\bp_\b._\bc\n * _\be_\bx_\b__\bp_\ba_\bl_\be_\bt_\bt_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bhs\bsl\bl_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n float *red, float *green, float *blue)\n-void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert values in HSL color model to RGB color model.\n Parameters:\n * hue - Color hue angle in the range 0..360\n * saturation - Color saturation in the range 0..1\n * lightness - Color lightness in the range 0..1\n * red, green, blue - returned RGB values in the range 0..1\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bh_\bs_\bl, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bp_\ba_\bl_\be_\bt_\bt_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bhs\bsv\bv *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_hsv(float h, float s, float v)\n-ALLEGRO_COLOR al_color_hsv(float h, float s, float v)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from HSV (hue, saturation, value) values.\n Parameters:\n * hue - Color hue angle in the range 0..360\n * saturation - Color saturation in the range 0..1\n * value - Color value in the range 0..1\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bm_\bu_\bl_\bt_\bi_\bs_\ba_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bhs\bsv\bv_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_hsv_to_rgb(float hue, float saturation, float value,\n float *red, float *green, float *blue)\n-void al_color_hsv_to_rgb(float hue, float saturation, float value,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert values in HSV color model to RGB color model.\n Parameters:\n * hue - Color hue angle in the range 0..360\n * saturation - Color saturation in the range 0..1\n * value - Color value in the range 0..1\n * red, green, blue - returned RGB values in the range 0..1\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bh_\bs_\bv, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bht\btm\bml\bl *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_html(char const *string)\n-ALLEGRO_COLOR al_color_html(char const *string)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Interprets an HTML-style hex number (e.g.\u00a0#00faff) as a color. The accepted\n format is the same as _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bt_\bm_\bl_\b__\bt_\bo_\b__\br_\bg_\bb.\n Returns the interpreted color, or al_map_rgba(0, 0, 0, 0) if the string could\n not be parsed.\n N\bNo\bot\bte\be: the behaviour on invalid strings is different from Allegro\n 5.0.x.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bt_\bm_\bl_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bh_\bt_\bm_\bl\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_h\bht\btm\bml\bl_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n bool al_color_html_to_rgb(char const *string,\n float *red, float *green, float *blue)\n-bool al_color_html_to_rgb(char const *string,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Interprets an HTML-style hex number (e.g.\u00a0#00faff) as a color. The only\n accepted formats are \u201c#RRGGBB\u201d and \u201cRRGGBB\u201d where R, G, B are hexadecimal\n digits [0-9A-Fa-f].\n Returns true on success, false on failure. On failure all components are set to\n zero.\n N\bNo\bot\bte\be: the behaviour on invalid strings is different from Allegro\n 5.0.x.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bt_\bm_\bl, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bh_\bt_\bm_\bl\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_h\bht\btm\bml\bl *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_html(float red, float green, float blue,\n char *string)\n-void al_color_rgb_to_html(float red, float green, float blue,\n- char *string)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Create an HTML-style string representation of an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR, e.g.\u00a0#00faff.\n Parameters:\n * red, green, blue - The color components in the range 0..1.\n * string - A pointer to a buffer of at least 8 bytes, into which the result\n will be written (including the NUL terminator).\n Example:\n@@ -220,26 +206,24 @@\n al_color_rgb_to_html(1, 0, 0, html);\n Now html will contain \u201c#ff0000\u201d.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bt_\bm_\bl, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bt_\bm_\bl_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_n\bna\bam\bme\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_name(char const *name)\n-ALLEGRO_COLOR al_color_name(char const *name)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR with the given name. If the color is not found then\n black is returned.\n See _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bn_\ba_\bm_\be_\b__\bt_\bo_\b__\br_\bg_\bb for the list of names.\n Examples:\n * _\be_\bx_\b__\bd_\br_\ba_\bg_\b__\ba_\bn_\bd_\b__\bd_\br_\bo_\bp_\b._\bc\n * _\be_\bx_\b__\bm_\bu_\bl_\bt_\bi_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\ba_\br_\bg_\be_\bt_\b._\bc\n * _\be_\bx_\b__\bc_\bl_\bi_\bp_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_n\bna\bam\bme\be_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)\n-bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Parameters:\n * name - The (lowercase) name of the color.\n * r, g, b - If one of the recognized color names below is passed, the\n corresponding RGB values in the range 0..1 are written.\n The 148 recognized names are:\n aliceblue, antiquewhite, aqua, aquamarine, azure, beige, bisque,\n@@ -272,16 +256,14 @@\n dimgray = dimgrey, fuchsia = purple, gray = grey, lightgray = lightgrey,\n lightslategray = lightslategrey, slategray = slategrey\n Returns: true if a name from the list above was passed, else false.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bn_\ba_\bm_\be\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_c\bcm\bmy\byk\bk *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_cmyk(float red, float green, float blue,\n float *cyan, float *magenta, float *yellow, float *key)\n-void al_color_rgb_to_cmyk(float red, float green, float blue,\n- float *cyan, float *magenta, float *yellow, float *key)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Each RGB color can be represented in CMYK with a K component of 0 with the\n following formula:\n C = 1 - R\n M = 1 - G\n Y = 1 - B\n K = 0\n@@ -289,119 +271,101 @@\n and minimal color components.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bc_\bm_\by_\bk, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bc_\bm_\by_\bk_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_h\bhs\bsl\bl *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_hsl(float red, float green, float blue,\n float *hue, float *saturation, float *lightness)\n-void al_color_rgb_to_hsl(float red, float green, float blue,\n- float *hue, float *saturation, float *lightness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Given an RGB triplet with components in the range 0..1, return the hue in\n degrees from 0..360 and saturation and lightness in the range 0..1.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bl\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bp_\ba_\bl_\be_\bt_\bt_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_h\bhs\bsv\bv *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_hsv(float red, float green, float blue,\n float *hue, float *saturation, float *value)\n-void al_color_rgb_to_hsv(float red, float green, float blue,\n- float *hue, float *saturation, float *value)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Given an RGB triplet with components in the range 0..1, return the hue in\n degrees from 0..360 and saturation and value in the range 0..1.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bh_\bs_\bv\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_n\bna\bam\bme\be *\b**\b**\b**\b**\b**\b*\n char const *al_color_rgb_to_name(float r, float g, float b)\n-char const *al_color_rgb_to_name(float r, float g, float b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Given an RGB triplet with components in the range 0..1, find a color name\n describing it approximately.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bn_\ba_\bm_\be_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bn_\ba_\bm_\be\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_x\bxy\byz\bz *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_xyz(float red, float green, float blue,\n float *x, float *y, float *z)\n-void al_color_rgb_to_xyz(float red, float green, float blue,\n- float *x, float *y, float *z)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to XYZ color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\bz, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\bz_\b__\bt_\bo_\b__\br_\bg_\bb\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_x\bxy\byz\bz *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_xyz(float x, float y, float z)\n-ALLEGRO_COLOR al_color_xyz(float x, float y, float z)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from XYZ values. The CIE 1931 XYZ color space\n consists of three components in the range 0..1. The Y component corresponds to\n luminance and the X and Z components define the color.\n RGB components are always assumed to be in sRGB space.\n N\bNo\bot\bte\be:\b:\n The XYZ color space can represent more colors than are visible in\n sRGB and therefore conversion may result in RGB values outside of the\n 0..1 range. You can check for that case with _\ba_\bl_\b__\bi_\bs_\b__\bc_\bo_\bl_\bo_\br_\b__\bv_\ba_\bl_\bi_\bd.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\bz_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bx_\by_\bz\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_x\bxy\byz\bz_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_xyz_to_rgb(float x, float y, float z,\n float *red, float *green, float *blue)\n-void al_color_xyz_to_rgb(float x, float y, float z,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert XYZ color values to RGB color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\bz, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bx_\by_\bz\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_x\bxy\byy\by *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_xyy(float red, float green, float blue,\n float *x, float *y, float *y2)\n-void al_color_rgb_to_xyy(float red, float green, float blue,\n- float *x, float *y, float *y2)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to xyY color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\by, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\by_\b__\bt_\bo_\b__\br_\bg_\bb\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_x\bxy\byy\by *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)\n-ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from xyY values. The Y component in the xyY\n color space is the same as the Y in XYZ.\n However the x and y values are computed from XYZ like this:\n x = X / (X + Y + Z)\n y = Y / (X + Y + Z)\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\by_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bx_\by_\by\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_x\bxy\byy\by_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_xyy_to_rgb(float x, float y, float y2,\n float *red, float *green, float *blue)\n-void al_color_xyy_to_rgb(float x, float y, float y2,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert xyY color values to RGB color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bx_\by_\by, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bx_\by_\by\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_l\bla\bab\bb *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_lab(float red, float green, float blue,\n float *l, float *a, float *b)\n-void al_color_rgb_to_lab(float red, float green, float blue,\n- float *l, float *a, float *b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to L*a*b* color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\ba_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\ba_\bb_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\bla\bab\bb *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_lab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_lab(float l, float a, float b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from CIE L*a*b* values. The L* component\n corresponds to luminance from 0..1. The a* and b* components are in the range -\n 1..+1.\n N\bNo\bot\bte\be:\b:\n The L*a*b* color space can represent more colors than are visible in\n sRGB and therefore conversion may result in RGB values outside of the\n@@ -414,36 +378,31 @@\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\ba_\bb_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\ba_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b2_\b._\bc\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\bla\bab\bb_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_lab_to_rgb(float l, float a, float b,\n float *red, float *green, float *blue)\n-void al_color_lab_to_rgb(float l, float a, float b,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert CIE L*a*b* color values to RGB color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\ba_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\ba_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b2_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_l\blc\bch\bh *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_lch(float red, float green, float blue,\n float *l, float *c, float *h)\n-void al_color_rgb_to_lch(float red, float green, float blue,\n- float *l, float *c, float *h)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to CIE LCH color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bc_\bh, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bc_\bh_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\blc\bch\bh *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_lch(float l, float c, float h)\n-ALLEGRO_COLOR al_color_lch(float l, float c, float h)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from CIE LCH values. LCH colors are very\n similar to HSL, with the same meaning of L and H and C corresponding to S.\n However LCH is more visually uniform. Furthermore, this function expects the\n angle for H in radians and not in degree.\n The CIE LCH color space is a cylindrical representation of the L*a*b* color\n space. The L component is the same and C and H are computed like this:\n@@ -452,27 +411,23 @@\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bc_\bh_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\bc_\bh\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\blc\bch\bh_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_lch_to_rgb(float l, float c, float h,\n float *red, float *green, float *blue)\n-void al_color_lch_to_rgb(float l, float c, float h,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert CIE LCH color values to RGB color space.\n Since: 5.2.3\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bc_\bh, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\bc_\bh\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_d\bdi\bis\bst\bta\ban\bnc\bce\be_\b_c\bci\bie\bed\bde\be2\b20\b00\b00\b0 *\b**\b**\b**\b**\b**\b*\n double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n ALLEGRO_COLOR color2) {\n-double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n- ALLEGRO_COLOR color2) {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function computes the CIEDE2000 color difference between two RGB colors.\n This is a visually uniform color difference, unlike for example the RGB\n distance.\n When using the RGB distance (Euklidean distance between two RGB triplets) there\n can be color pairs with the same distance, where the colors of one pair appear\n to be almost the same color, while the colors of the other pair look quite\n@@ -486,66 +441,57 @@\n seen).\n Since: 5.2.3\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b2_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_y\byu\buv\bv *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_yuv(float red, float green, float blue,\n float *y, float *u, float *v)\n-void al_color_rgb_to_yuv(float red, float green, float blue,\n- float *y, float *u, float *v)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to YUV color space.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\by_\bu_\bv, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\by_\bu_\bv_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_y\byu\buv\bv *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_yuv(float y, float u, float v)\n-ALLEGRO_COLOR al_color_yuv(float y, float u, float v)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from YUV values.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\by_\bu_\bv_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\by_\bu_\bv\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_y\byu\buv\bv_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_yuv_to_rgb(float y, float u, float v,\n float *red, float *green, float *blue)\n-void al_color_yuv_to_rgb(float y, float u, float v,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert YUV color values to RGB color space.\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\by_\bu_\bv, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\by_\bu_\bv\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_c\bco\bol\blo\bor\br_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_color_version(void)\n-uint32_t al_get_allegro_color_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_c\bco\bol\blo\bor\br_\b_v\bva\bal\bli\bid\bd *\b**\b**\b**\b**\b**\b*\n Source Code\n Checks if all components of the color are between 0 and 1. Some of the color\n conversions in this addon support color spaces with more colors than can be\n represented in sRGB and when converted to RGB will result in invalid color\n components outside the 0..1 range.\n Since: 5.2.3\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_o\bok\bkl\bla\bab\bb *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_oklab(float red, float green, float blue,\n float *ol, float *oa, float *ob)\n-void al_color_rgb_to_oklab(float red, float green, float blue,\n- float *ol, float *oa, float *ob)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert RGB values to the Oklab color space.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bo_\bk_\bl_\ba_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bo_\bk_\bl_\ba_\bb_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_o\bok\bkl\bla\bab\bb *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_oklab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_oklab(float l, float a, float b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from Oklab values. The L component\n corresponds to luminance from 0..1. The a and b components are in the range -\n 1..+1.\n N\bNo\bot\bte\be:\b:\n The Oklab color space can represent more colors than are visible in\n sRGB and therefore conversion may result in RGB values outside of the\n@@ -553,34 +499,29 @@\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bo_\bk_\bl_\ba_\bb_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bo_\bk_\bl_\ba_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_o\bok\bkl\bla\bab\bb_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_oklab_to_rgb(float ol, float oa, float ob,\n float *red, float *green, float *blue)\n-void al_color_oklab_to_rgb(float ol, float oa, float ob,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert Oklab color values to RGB.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bo_\bk_\bl_\ba_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bo_\bk_\bl_\ba_\bb\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_r\brg\bgb\bb_\b_t\bto\bo_\b_l\bli\bin\bne\bea\bar\br *\b**\b**\b**\b**\b**\b*\n void al_color_rgb_to_linear(float red, float green, float blue,\n float *r, float *g, float *b)\n-void al_color_rgb_to_linear(float red, float green, float blue,\n- float *r, float *g, float *b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert gamma corrected sRGB values (i.e.\u00a0normal RGB) to linear sRGB space.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bi_\bn_\be_\ba_\br, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bi_\bn_\be_\ba_\br_\b__\bt_\bo_\b__\br_\bg_\bb\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\bli\bin\bne\bea\bar\br *\b**\b**\b**\b**\b**\b*\n ALLEGRO_COLOR al_color_linear(float r, float g, float b)\n-ALLEGRO_COLOR al_color_linear(float r, float g, float b)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR structure from linear sRGB values. Allegro RGB values\n are assumed to be sRGB. The sRGB standard is in wide use by various display\n devices. It accounts for a standard gamma correction applied to RGB colors\n before they get displayed.\n Gamma correction means if for example we have a medium gray color specified\n with al_map_rgb_f(0.5,0.5,0.5) then we do not want the monitor to set the pixel\n@@ -596,13 +537,12 @@\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\bl_\bi_\bn_\be_\ba_\br_\b__\bt_\bo_\b__\br_\bg_\bb, _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\bi_\bn_\be_\ba_\br\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bco\bol\blo\bor\br_\b_l\bli\bin\bne\bea\bar\br_\b_t\bto\bo_\b_r\brg\bgb\bb *\b**\b**\b**\b**\b**\b*\n void al_color_linear_to_rgb(float r, float g, float b,\n float *red, float *green, float *blue)\n-void al_color_linear_to_rgb(float r, float g, float b,\n- float *red, float *green, float *blue)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert linear sRGB color values to gamma corrected (i.e.\u00a0normal) RGB values.\n Since: 5.2.8\n See also: [al_color_linera], _\ba_\bl_\b__\bc_\bo_\bl_\bo_\br_\b__\br_\bg_\bb_\b__\bt_\bo_\b__\bl_\bi_\bn_\be_\ba_\br\n+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/config.html", "source2": "./usr/share/doc/allegro5-doc/refman/config.html", "unified_diff": "@@ -253,32 +253,30 @@\n an actual program):

    \n
    ALLEGRO_CONFIG* cfg = al_load_config_file("test.cfg");\n printf("%s\\n", al_get_config_value(cfg, "", "monster name")); /* Prints: Allegro Developer */\n printf("%s\\n", al_get_config_value(cfg, "weapon 0", "damage")); /* Prints: 443 */\n printf("%s\\n", al_get_config_value(cfg, "weapon 1", "damage")); /* Prints: 503 */\n al_destroy_config(cfg);
    \n

    ALLEGRO_CONFIG

    \n-
    typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n-typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;
    \n+
    typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;
    \n

    Source\n Code

    \n

    An abstract configuration structure.

    \n

    Examples:

    \n
      \n
    • ex_config.c
    • \n
    • ex_vsync.c
    • \n
    • ex_stream_seek.c
    • \n
    \n

    ALLEGRO_CONFIG_SECTION

    \n-
    typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n-typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;
    \n+
    typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;
    \n

    Source\n Code

    \n

    An opaque structure used for iterating across sections in a\n configuration structure.

    \n

    See also: al_get_first_config_section,\n@@ -286,16 +284,15 @@\n href=\"config.html#al_get_next_config_section\">al_get_next_config_section

    \n

    Examples:

    \n
      \n
    • ex_config.c
    • \n
    \n

    ALLEGRO_CONFIG_ENTRY

    \n-
    typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n-typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;
    \n+
    typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;
    \n

    Source\n Code

    \n

    An opaque structure used for iterating across entries in a\n configuration section.

    \n

    See also: al_get_first_config_entry,\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -101,33 +101,30 @@\n printf(\"%s\\n\", al_get_config_value(cfg, \"weapon 0\", \"damage\")); /* Prints: 443\n */\n printf(\"%s\\n\", al_get_config_value(cfg, \"weapon 1\", \"damage\")); /* Prints: 503\n */\n al_destroy_config(cfg);\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCO\bON\bNF\bFI\bIG\bG *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n-typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An abstract configuration structure.\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b._\bc\n * _\be_\bx_\b__\bv_\bs_\by_\bn_\bc_\b._\bc\n * _\be_\bx_\b__\bs_\bt_\br_\be_\ba_\bm_\b__\bs_\be_\be_\bk_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCO\bON\bNF\bFI\bIG\bG_\b_S\bSE\bEC\bCT\bTI\bIO\bON\bN *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n-typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque structure used for iterating across sections in a configuration\n structure.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bi_\br_\bs_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b__\bs_\be_\bc_\bt_\bi_\bo_\bn, _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\be_\bx_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b__\bs_\be_\bc_\bt_\bi_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCO\bON\bNF\bFI\bIG\bG_\b_E\bEN\bNT\bTR\bRY\bY *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n-typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque structure used for iterating across entries in a configuration\n section.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bi_\br_\bs_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b__\be_\bn_\bt_\br_\by, _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\be_\bx_\bt_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b__\be_\bn_\bt_\br_\by\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bf_\bi_\bg_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_c\bco\bon\bnf\bfi\big\bg *\b**\b**\b**\b**\b**\b*\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/display.html", "source2": "./usr/share/doc/allegro5-doc/refman/display.html", "unified_diff": "@@ -334,16 +334,15 @@\n example.

    \n

    In order to write a well-behaved application, it is necessary to\n remember that displays will also inform you about important events via their event sources.

    \n

    Display creation

    \n

    ALLEGRO_DISPLAY

    \n-
    typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n-typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;
    \n+
    typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;
    \n

    Source\n Code

    \n

    An opaque type representing an open display or window.

    \n

    Examples:

    \n
      \n
    • ex_window_title.c
    • \n
    • ex_windows.c
    • \n
    \n ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE\n-
    #define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n-#define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255
    \n+
    #define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255
    \n

    Source\n Code

    \n

    This is the maximum size of the title that can be set with al_set_new_window_title.

    \n

    See also: al_set_new_window_title

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -123,15 +123,14 @@\n provides integration for both (see the OpenGL / Direct3D sections), so you can\n retrieve the underlying textures of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bB_\bI_\bT_\bM_\bA_\bPs, for example.\n In order to write a well-behaved application, it is necessary to remember that\n displays will also inform you about important _\be_\bv_\be_\bn_\bt_\bs via their _\be_\bv_\be_\bn_\bt_\b _\bs_\bo_\bu_\br_\bc_\be_\bs.\n *\b**\b**\b**\b**\b**\b* D\bDi\bis\bsp\bpl\bla\bay\by c\bcr\bre\bea\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_D\bDI\bIS\bSP\bPL\bLA\bAY\bY *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n-typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque type representing an open display or window.\n Examples:\n * _\be_\bx_\b__\bm_\bo_\bn_\bi_\bt_\bo_\br_\bi_\bn_\bf_\bo_\b._\bc\n * _\be_\bx_\b__\bd_\b3_\bd_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bk_\be_\by_\bb_\bo_\ba_\br_\bd_\b__\bf_\bo_\bc_\bu_\bs_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_d\bdi\bis\bsp\bpl\bla\bay\by *\b**\b**\b**\b**\b*\n@@ -740,15 +739,14 @@\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bN_\bE_\bW_\b__\bW_\bI_\bN_\bD_\bO_\bW_\b__\bT_\bI_\bT_\bL_\bE_\b__\bM_\bA_\bX_\b__\bS_\bI_\bZ_\bE\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bt_\bi_\bt_\bl_\be_\b._\bc\n * _\be_\bx_\b__\bw_\bi_\bn_\bd_\bo_\bw_\bs_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_N\bNE\bEW\bW_\b_W\bWI\bIN\bND\bDO\bOW\bW_\b_T\bTI\bIT\bTL\bLE\bE_\b_M\bMA\bAX\bX_\b_S\bSI\bIZ\bZE\bE *\b**\b**\b**\b**\b*\n #define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n-#define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is the maximum size of the title that can be set with\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bt_\bi_\bt_\bl_\be.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bt_\bi_\bt_\bl_\be\n Since: 5.1.12\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_n\bne\bew\bw_\b_w\bwi\bin\bnd\bdo\bow\bw_\b_t\bti\bit\btl\ble\be *\b**\b**\b**\b**\b*\n const char *al_get_new_window_title(void)\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/events.html", "source2": "./usr/share/doc/allegro5-doc/refman/events.html", "unified_diff": "@@ -315,16 +315,15 @@\n union according to the event type.

    \n

    In addition to the events sent by Allegro core, there\u2019s also events\n send by the addons, see ALLEGRO_AUDIO_EVENT_TYPE\n and ALLEGRO_VIDEO_EVENT_TYPE.

    \n

    ALLEGRO_EVENT

    \n-
    typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n-typedef union ALLEGRO_EVENT ALLEGRO_EVENT;
    \n+
    typedef union ALLEGRO_EVENT ALLEGRO_EVENT;
    \n

    Source\n Code

    \n

    An ALLEGRO_EVENT is a union of all builtin event structures, i.e.\u00a0it\n is an object large enough to hold the data of any event type. All events\n have the following fields in common:

    \n
    \n@@ -1006,16 +1005,15 @@\n

    Since: 5.2.9

    \n
    \n

    Unstable\n API: This is an experimental feature and currently only works\n for the X11 backend.

    \n
    \n

    ALLEGRO_USER_EVENT

    \n-
    typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n-typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;
    \n+
    typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;
    \n

    Source\n Code

    \n

    An event structure that can be emitted by user event sources. These\n are the public fields:

    \n
      \n
    • ALLEGRO_EVENT_SOURCE *source;
    • \n@@ -1056,16 +1054,15 @@\n href=\"events.html#al_init_user_event_source\">al_init_user_event_source

      \n

      Examples:

      \n
        \n
      • ex_user_events.c
      • \n
      \n

      ALLEGRO_EVENT_QUEUE

      \n-
      typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n-typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;
      \n+
      typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;
      \n

      Source\n Code

      \n

      An event queue holds events that have been generated by event sources\n that are registered with the queue. Events are stored in the order they\n are generated. Access is in a strictly FIFO (first-in-first-out)\n order.

      \n@@ -1078,16 +1075,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_inject_events.c#L18\">ex_inject_events.c\n
    • ex_enet_server.c
    • \n
    • ex_timer_pause.c
    • \n
    \n

    ALLEGRO_EVENT_SOURCE

    \n-
    typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n-typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;
    \n+
    typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;
    \n

    Source\n Code

    \n

    An event source is any object which can generate events. For example,\n an ALLEGRO_DISPLAY can generate events, and you can get the\n ALLEGRO_EVENT_SOURCE pointer from an ALLEGRO_DISPLAY with al_get_display_event_source.

    \n@@ -1102,26 +1098,24 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_inject_events.c#L17\">ex_inject_events.c\n
  • ex_user_events.c
  • \n
  • nihgui.cpp
  • \n \n

    ALLEGRO_EVENT_TYPE

    \n-
    typedef unsigned int ALLEGRO_EVENT_TYPE;\n-typedef unsigned int ALLEGRO_EVENT_TYPE;
    \n+
    typedef unsigned int ALLEGRO_EVENT_TYPE;
    \n

    Source\n Code

    \n

    An integer used to distinguish between different types of events.

    \n

    See also: ALLEGRO_EVENT, ALLEGRO_GET_EVENT_TYPE, ALLEGRO_EVENT_TYPE_IS_USER

    \n

    ALLEGRO_GET_EVENT_TYPE

    \n-
    #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d)   AL_ID(a, b, c, d)\n-#define ALLEGRO_GET_EVENT_TYPE(a, b, c, d)   AL_ID(a, b, c, d)
    \n+
    #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d)   AL_ID(a, b, c, d)
    \n

    Source\n Code

    \n

    Make an event type identifier, which is a 32-bit integer. Usually,\n but not necessarily, this will be made from four 8-bit character codes,\n for example:

    \n
    Examples:\n@@ -1148,16 +1142,15 @@\n    MEOW_EVENT,\n    SQUAWK_EVENT\n };
    \n

    See also: ALLEGRO_EVENT, ALLEGRO_USER_EVENT, ALLEGRO_EVENT_TYPE_IS_USER

    \n

    ALLEGRO_EVENT_TYPE_IS_USER

    \n-
    #define ALLEGRO_EVENT_TYPE_IS_USER(t)        ((t) >= 512)\n-#define ALLEGRO_EVENT_TYPE_IS_USER(t)        ((t) >= 512)
    \n+
    #define ALLEGRO_EVENT_TYPE_IS_USER(t)        ((t) >= 512)
    \n

    Source\n Code

    \n

    A macro which evaluates to true if the event type is not a builtin\n event type, i.e.\u00a0one of those described in ALLEGRO_EVENT_TYPE.

    \n

    al_create_event_queue

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -118,15 +118,14 @@\n events that can be generated by user-defined event sources.\n The appropriate reaction to an event is determined by examining the fields of\n the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT union according to the event type.\n In addition to the events sent by Allegro core, there\u2019s also events send by the\n addons, see _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bA_\bU_\bD_\bI_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE and _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bI_\bD_\bE_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT *\b**\b**\b**\b**\b**\b*\n typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n-typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_EVENT is a union of all builtin event structures, i.e.\u00a0it is an\n object large enough to hold the data of any event type. All events have the\n following fields in common:\n type (ALLEGRO_EVENT_TYPE)\n Indicates the type of event.\n any.source (ALLEGRO_EVENT_SOURCE *)\n@@ -489,15 +488,14 @@\n action. If i\bis\bs_\b_c\bco\bom\bmp\bpl\ble\bet\bte\be is set before receiving an event where t\bte\bex\bxt\bt was\n not NULL it means the user aborted the drag&drop.\n Since: 5.2.9\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: This is an experimental feature and currently only\n works for the X11 backend.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_U\bUS\bSE\bER\bR_\b_E\bEV\bVE\bEN\bNT\bT *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n-typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An event structure that can be emitted by user event sources. These are the\n public fields:\n * ALLEGRO_EVENT_SOURCE *source;\n * intptr_t data1;\n * intptr_t data2;\n * intptr_t data3;\n@@ -525,46 +523,42 @@\n documentation for _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bG_\bE_\bT_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE for the rules you should follow when\n assigning identifiers.\n See also: _\ba_\bl_\b__\be_\bm_\bi_\bt_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bG_\bE_\bT_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n Examples:\n * _\be_\bx_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_Q\bQU\bUE\bEU\bUE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n-typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An event queue holds events that have been generated by event sources that are\n registered with the queue. Events are stored in the order they are generated.\n Access is in a strictly FIFO (first-in-first-out) order.\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\be_\bv_\be_\bn_\bt_\b__\bq_\bu_\be_\bu_\be, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\be_\bv_\be_\bn_\bt_\b__\bq_\bu_\be_\bu_\be\n Examples:\n * _\be_\bx_\b__\bi_\bn_\bj_\be_\bc_\bt_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n * _\be_\bx_\b__\be_\bn_\be_\bt_\b__\bs_\be_\br_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bt_\bi_\bm_\be_\br_\b__\bp_\ba_\bu_\bs_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_S\bSO\bOU\bUR\bRC\bCE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n-typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An event source is any object which can generate events. For example, an\n ALLEGRO_DISPLAY can generate events, and you can get the ALLEGRO_EVENT_SOURCE\n pointer from an ALLEGRO_DISPLAY with _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be.\n You may create your own \u201cuser\u201d event sources that emit custom events.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be, _\ba_\bl_\b__\be_\bm_\bi_\bt_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt\n Examples:\n * _\be_\bx_\b__\bi_\bn_\bj_\be_\bc_\bt_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n * _\be_\bx_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n * _\bn_\bi_\bh_\bg_\bu_\bi_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b**\b*\n typedef unsigned int ALLEGRO_EVENT_TYPE;\n-typedef unsigned int ALLEGRO_EVENT_TYPE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An integer used to distinguish between different types of events.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bG_\bE_\bT_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE_\b__\bI_\bS_\b__\bU_\bS_\bE_\bR\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_G\bGE\bET\bT_\b_E\bEV\bVE\bEN\bNT\bT_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d) AL_ID(a, b, c, d)\n-#define ALLEGRO_GET_EVENT_TYPE(a, b, c, d) AL_ID(a, b, c, d)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Make an event type identifier, which is a 32-bit integer. Usually, but not\n necessarily, this will be made from four 8-bit character codes, for example:\n Examples:\n \n * [ex_user_events.c](https://github.com/liballeg/allegro5/blob/master/examples/\n ex_user_events.c#L10)\n@@ -587,15 +581,14 @@\n BARK_EVENT = ALLEGRO_GET_EVENT_TYPE('M','I','N','E'),\n MEOW_EVENT,\n SQUAWK_EVENT\n };\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bU_\bS_\bE_\bR_\b__\bE_\bV_\bE_\bN_\bT, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE_\b__\bI_\bS_\b__\bU_\bS_\bE_\bR\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_T\bTY\bYP\bPE\bE_\b_I\bIS\bS_\b_U\bUS\bSE\bER\bR *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n-#define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A macro which evaluates to true if the event type is not a builtin event type,\n i.e.\u00a0one of those described in _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_e\bev\bve\ben\bnt\bt_\b_q\bqu\bue\beu\bue\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_QUEUE *al_create_event_queue(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Create a new, empty event queue, returning a pointer to the newly created\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/file.html", "source2": "./usr/share/doc/allegro5-doc/refman/file.html", "unified_diff": "@@ -236,16 +236,15 @@\n id=\"toc-al_get_file_userdata\">al_get_file_userdata\n \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_FILE

    \n-
    typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n-typedef struct ALLEGRO_FILE ALLEGRO_FILE;
    \n+
    typedef struct ALLEGRO_FILE ALLEGRO_FILE;
    \n

    Source\n Code

    \n

    An opaque object representing an open file. This could be a real file\n on disk or a virtual file.

    \n

    Examples:

    \n
      \n@@ -253,16 +252,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_file.c#L23\">ex_file.c\n
    • ex_dir.c
    • \n
    • ex_memfile.c
    • \n
    \n

    ALLEGRO_FILE_INTERFACE

    \n-
    typedef struct ALLEGRO_FILE_INTERFACE\n-typedef struct ALLEGRO_FILE_INTERFACE
    \n+
    typedef struct ALLEGRO_FILE_INTERFACE
    \n

    Source\n Code

    \n

    A structure containing function pointers to handle a type of \u201cfile\u201d,\n real or virtual. See the full discussion in al_set_new_file_interface.

    \n

    The fields are:

    \n@@ -293,16 +291,15 @@\n char long buffer will be used.

    \n

    Examples:

    \n
      \n
    • ex_curl.c
    • \n
    \n

    ALLEGRO_SEEK

    \n-
    typedef enum ALLEGRO_SEEK\n-typedef enum ALLEGRO_SEEK
    \n+
    typedef enum ALLEGRO_SEEK
    \n

    Source\n Code

    \n
      \n
    • ALLEGRO_SEEK_SET - seek relative to beginning of file
    • \n
    • ALLEGRO_SEEK_CUR - seek relative to current file position
    • \n
    • ALLEGRO_SEEK_END - seek relative to end of file
    • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -85,25 +85,23 @@\n o _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\be_\bw_\b__\bf_\bi_\bl_\be_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be\n o _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bf_\bi_\bl_\be_\b__\bh_\ba_\bn_\bd_\bl_\be\n o _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bi_\bl_\be_\b__\bu_\bs_\be_\br_\bd_\ba_\bt_\ba\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFI\bIL\bLE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n-typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque object representing an open file. This could be a real file on disk\n or a virtual file.\n Examples:\n * _\be_\bx_\b__\bf_\bi_\bl_\be_\b._\bc\n * _\be_\bx_\b__\bd_\bi_\br_\b._\bc\n * _\be_\bx_\b__\bm_\be_\bm_\bf_\bi_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFI\bIL\bLE\bE_\b_I\bIN\bNT\bTE\bER\bRF\bFA\bAC\bCE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FILE_INTERFACE\n-typedef struct ALLEGRO_FILE_INTERFACE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A structure containing function pointers to handle a type of \u201cfile\u201d, real or\n virtual. See the full discussion in _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bf_\bi_\bl_\be_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be.\n The fields are:\n void* (*fi_fopen)(const char *path, const char *mode);\n bool (*fi_fclose)(ALLEGRO_FILE *f);\n size_t (*fi_fread)(ALLEGRO_FILE *f, void *ptr, size_t size);\n@@ -126,15 +124,14 @@\n free the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE handle.\n If fi_fungetc is NULL, then Allegro\u2019s default implementation of a 16 char long\n buffer will be used.\n Examples:\n * _\be_\bx_\b__\bc_\bu_\br_\bl_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSE\bEE\bEK\bK *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_SEEK\n-typedef enum ALLEGRO_SEEK\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n * ALLEGRO_SEEK_SET - seek relative to beginning of file\n * ALLEGRO_SEEK_CUR - seek relative to current file position\n * ALLEGRO_SEEK_END - seek relative to end of file\n See also: _\ba_\bl_\b__\bf_\bs_\be_\be_\bk\n Examples:\n * _\be_\bx_\b__\bf_\bi_\bl_\be_\b._\bc\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/fixed.html", "source2": "./usr/share/doc/allegro5-doc/refman/fixed.html", "unified_diff": "@@ -202,16 +202,15 @@\n
    • al_fixhypot
    • \n
    \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    al_fixed

    \n-
    typedef int32_t al_fixed;\n-typedef int32_t al_fixed;
    \n+
    typedef int32_t al_fixed;
    \n

    Source\n Code

    \n

    A fixed point number.

    \n

    Allegro provides some routines for working with fixed point numbers,\n and defines the type al_fixed to be a signed 32-bit\n integer. The high word is used for the integer part and the low word for\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -66,15 +66,14 @@\n o _\ba_\bl_\b__\bf_\bi_\bx_\ba_\bt_\ba_\bn_\b2\n o _\ba_\bl_\b__\bf_\bi_\bx_\bs_\bq_\br_\bt\n o _\ba_\bl_\b__\bf_\bi_\bx_\bh_\by_\bp_\bo_\bt\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_f\bfi\bix\bxe\bed\bd *\b**\b**\b**\b**\b**\b*\n typedef int32_t al_fixed;\n-typedef int32_t al_fixed;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A fixed point number.\n Allegro provides some routines for working with fixed point numbers, and\n defines the type al_fixed to be a signed 32-bit integer. The high word is used\n for the integer part and the low word for the fraction, giving a range of -\n 32768 to 32767 and an accuracy of about four or five decimal places. Fixed\n point numbers can be assigned, compared, added, subtracted, negated and shifted\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/font.html", "source2": "./usr/share/doc/allegro5-doc/refman/font.html", "unified_diff": "@@ -283,16 +283,15 @@\n \n \n

    These functions are declared in the following header file. Link with\n allegro_font.

    \n
     #include <allegro5/allegro_font.h>
    \n

    General font routines

    \n

    ALLEGRO_FONT

    \n-
    typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n-typedef struct ALLEGRO_FONT ALLEGRO_FONT;
    \n+
    typedef struct ALLEGRO_FONT ALLEGRO_FONT;
    \n

    Source\n Code

    \n

    A handle identifying any kind of font. Usually you will create it\n with al_load_font which supports\n loading all kinds of TrueType fonts supported by the FreeType library.\n If you instead pass the filename of a bitmap file, it will be loaded\n@@ -305,16 +304,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_disable_screensaver.c#L10\">ex_disable_screensaver.c\n

  • ex_font_justify.cpp
  • \n
  • ex_display_events.c
  • \n \n

    ALLEGRO_GLYPH

    \n-
    typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n-typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;
    \n+
    typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;
    \n

    Source\n Code

    \n

    A structure containing the properties of a character in a font.

    \n
    typedef struct ALLEGRO_GLYPH {\n    ALLEGRO_BITMAP *bitmap;   // the bitmap the character is on\n    int x;                    // the x position of the glyph on bitmap\n@@ -345,16 +343,15 @@\n 

    See also: al_get_glyph

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_init_font_addon

    \n-
    bool al_init_font_addon(void)\n-bool al_init_font_addon(void)
    \n+
    bool al_init_font_addon(void)
    \n

    Source\n Code

    \n

    Initialise the font addon.

    \n

    Note that if you intend to load bitmap fonts, you will need to\n initialise allegro_image separately (unless you are using another\n library to load images).

    \n@@ -374,38 +371,35 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_disable_screensaver.c#L28\">ex_disable_screensaver.c\n
  • ex_font_justify.cpp
  • \n
  • ex_display_events.c
  • \n \n

    al_is_font_addon_initialized

    \n-
    bool al_is_font_addon_initialized(void)\n-bool al_is_font_addon_initialized(void)
    \n+
    bool al_is_font_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the font addon is initialized, otherwise returns\n false.

    \n

    Since: 5.2.6

    \n

    See also: al_init_font_addon, al_shutdown_font_addon

    \n

    al_shutdown_font_addon

    \n-
    void al_shutdown_font_addon(void)\n-void al_shutdown_font_addon(void)
    \n+
    void al_shutdown_font_addon(void)
    \n

    Source\n Code

    \n

    Shut down the font addon. This is done automatically at program exit,\n but can be called any time the user wishes as well.

    \n

    See also: al_init_font_addon

    \n

    al_load_font

    \n-
    ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)
    \n+
    ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)
    \n

    Source\n Code

    \n

    Loads a font from disk. This will use al_load_bitmap_font_flags\n if you pass the name of a known bitmap format, or else al_load_ttf_font.

    \n@@ -424,16 +418,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_font_justify.cpp#L116\">ex_font_justify.cpp\n
  • ex_membmp.c
  • \n
  • ex_window_title.c
  • \n \n

    al_destroy_font

    \n-
    void al_destroy_font(ALLEGRO_FONT *f)\n-void al_destroy_font(ALLEGRO_FONT *f)
    \n+
    void al_destroy_font(ALLEGRO_FONT *f)
    \n

    Source\n Code

    \n

    Frees the memory being used by a font structure. Does nothing if\n passed NULL.

    \n

    See also: al_load_font

    \n

    Examples:

    \n@@ -443,33 +436,30 @@\n
  • ex_font_justify.cpp
  • \n
  • ex_cpu.c
  • \n \n

    al_register_font_loader

    \n
    bool al_register_font_loader(char const *extension,\n-   ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))\n-bool al_register_font_loader(char const *extension,\n-   ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))
    \n+ ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))
    \n

    Source\n Code

    \n

    Informs Allegro of a new font file type, telling it how to load files\n of this format.

    \n

    The extension should include the leading dot (\u2018.\u2019)\n character. It will be matched case-insensitively.

    \n

    The load_font argument may be NULL to unregister an\n entry.

    \n

    Returns true on success, false on error. Returns false if\n unregistering an entry that doesn\u2019t exist.

    \n

    See also: al_init_font_addon

    \n

    al_get_font_line_height

    \n-
    int al_get_font_line_height(const ALLEGRO_FONT *f)\n-int al_get_font_line_height(const ALLEGRO_FONT *f)
    \n+
    int al_get_font_line_height(const ALLEGRO_FONT *f)
    \n

    Source\n Code

    \n

    Returns the usual height of a line of text in the specified font. For\n bitmap fonts this is simply the height of all glyph bitmaps. For\n truetype fonts it is whatever the font file specifies. In particular,\n some special glyphs may be higher than the height returned here.

    \n@@ -495,46 +485,43 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_font_justify.cpp#L78\">ex_font_justify.cpp\n
  • ex_membmp.c
  • \n
  • ex_mouse_warp.c
  • \n \n

    al_get_font_ascent

    \n-
    int al_get_font_ascent(const ALLEGRO_FONT *f)\n-int al_get_font_ascent(const ALLEGRO_FONT *f)
    \n+
    int al_get_font_ascent(const ALLEGRO_FONT *f)
    \n

    Source\n Code

    \n

    Returns the ascent of the specified font.

    \n

    See also: al_get_font_descent, al_get_font_line_height

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_get_font_descent

    \n-
    int al_get_font_descent(const ALLEGRO_FONT *f)\n-int al_get_font_descent(const ALLEGRO_FONT *f)
    \n+
    int al_get_font_descent(const ALLEGRO_FONT *f)
    \n

    Source\n Code

    \n

    Returns the descent of the specified font.

    \n

    See also: al_get_font_ascent, al_get_font_line_height

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_get_text_width

    \n-
    int al_get_text_width(const ALLEGRO_FONT *f, const char *str)\n-int al_get_text_width(const ALLEGRO_FONT *f, const char *str)
    \n+
    int al_get_text_width(const ALLEGRO_FONT *f, const char *str)
    \n

    Source\n Code

    \n

    Calculates the length of a string in a particular font, in\n pixels.

    \n

    See also: al_get_ustr_width, ex_display_options.c\n

  • ex_record_name.c
  • \n
  • ex_color_gradient.c
  • \n \n

    al_get_ustr_width

    \n-
    int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)\n-int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)
    \n+
    int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)
    \n

    Source\n Code

    \n

    Like al_get_text_width but\n expects an ALLEGRO_USTR.

    \n

    See also: al_get_text_width, \n

  • nihgui.cpp
  • \n \n

    al_draw_text

    \n
    void al_draw_text(const ALLEGRO_FONT *font,\n    ALLEGRO_COLOR color, float x, float y, int flags,\n-   char const *text) \n-void al_draw_text(const ALLEGRO_FONT *font,\n-   ALLEGRO_COLOR color, float x, float y, int flags,\n-   char const *text) 
    \n+ char const *text) \n

    Source\n Code

    \n

    Writes the NUL-terminated string text onto the target\n bitmap at position x, y, using the specified\n font.

    \n

    The flags parameter can be 0 or one of the following\n@@ -609,18 +592,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_display_events.c#L67\">ex_display_events.c\n

  • ex_membmp.c
  • \n \n

    al_draw_ustr

    \n
    void al_draw_ustr(const ALLEGRO_FONT *font,\n    ALLEGRO_COLOR color, float x, float y, int flags,\n-   const ALLEGRO_USTR *ustr) \n-void al_draw_ustr(const ALLEGRO_FONT *font,\n-   ALLEGRO_COLOR color, float x, float y, int flags,\n-   const ALLEGRO_USTR *ustr) 
    \n+ const ALLEGRO_USTR *ustr) \n

    Source\n Code

    \n

    Like al_draw_text, except the\n text is passed as an ALLEGRO_USTR instead of a NUL-terminated char\n array.

    \n

    See also: al_draw_text, nihgui.cpp\n

  • ex_blend.c
  • \n \n

    al_draw_justified_text

    \n
    void al_draw_justified_text(const ALLEGRO_FONT *font,\n    ALLEGRO_COLOR color, float x1, float x2,\n-   float y, float diff, int flags, const char *text)\n-void al_draw_justified_text(const ALLEGRO_FONT *font,\n-   ALLEGRO_COLOR color, float x1, float x2,\n-   float y, float diff, int flags, const char *text)
    \n+ float y, float diff, int flags, const char *text)\n

    Source\n Code

    \n

    Like al_draw_text, but justifies\n the string to the region x1-x2.

    \n

    The diff parameter is the maximum amount of horizontal\n space to allow between words. If justisfying the text would exceed\n@@ -664,35 +641,29 @@\n

      \n
    • ex_font_justify.cpp
    • \n
    \n

    al_draw_justified_ustr

    \n
    void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n    ALLEGRO_COLOR color, float x1, float x2,\n-   float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n-   ALLEGRO_COLOR color, float x1, float x2,\n-   float y, float diff, int flags, const ALLEGRO_USTR *ustr)
    \n+ float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n

    Source\n Code

    \n

    Like al_draw_justified_text,\n except the text is passed as an ALLEGRO_USTR instead of a NUL-terminated\n char array.

    \n

    See also: al_draw_justified_text, al_draw_justified_textf.

    \n

    al_draw_textf

    \n
    void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n    float x, float y, int flags,\n-   const char *format, ...)\n-void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n-   float x, float y, int flags,\n-   const char *format, ...)
    \n+ const char *format, ...)\n

    Source\n Code

    \n

    Formatted text output, using a printf() style format string. All\n parameters have the same meaning as with al_draw_text otherwise.

    \n

    See also: al_draw_text, ex_display_events.c\n

  • ex_cpu.c
  • \n \n

    al_draw_justified_textf

    \n
    void al_draw_justified_textf(const ALLEGRO_FONT *f,\n    ALLEGRO_COLOR color, float x1, float x2, float y,\n-   float diff, int flags, const char *format, ...)\n-void al_draw_justified_textf(const ALLEGRO_FONT *f,\n-   ALLEGRO_COLOR color, float x1, float x2, float y,\n-   float diff, int flags, const char *format, ...)
    \n+ float diff, int flags, const char *format, ...)\n

    Source\n Code

    \n

    Formatted text output, using a printf() style format string. All\n parameters have the same meaning as with al_draw_justified_text\n otherwise.

    \n

    See also: al_draw_justified_text, al_draw_justified_ustr.

    \n

    al_get_text_dimensions

    \n
    void al_get_text_dimensions(const ALLEGRO_FONT *f,\n    char const *text,\n-   int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_text_dimensions(const ALLEGRO_FONT *f,\n-   char const *text,\n-   int *bbx, int *bby, int *bbw, int *bbh)
    \n+ int *bbx, int *bby, int *bbw, int *bbh)\n

    Source\n Code

    \n

    Sometimes, the al_get_text_width and al_get_font_line_height\n functions are not enough for exact text placement, so this function\n@@ -755,38 +720,33 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_ttf.c#L210\">ex_ttf.c\n

  • ex_logo.c
  • \n \n

    al_get_ustr_dimensions

    \n
    void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n    ALLEGRO_USTR const *ustr,\n-   int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n-   ALLEGRO_USTR const *ustr,\n-   int *bbx, int *bby, int *bbw, int *bbh)
    \n+ int *bbx, int *bby, int *bbw, int *bbh)\n

    Source\n Code

    \n

    Like al_get_text_dimensions,\n except the text is passed as an ALLEGRO_USTR instead of a NUL-terminated\n char array.

    \n

    See also: al_get_text_dimensions

    \n

    al_get_allegro_font_version

    \n-
    uint32_t al_get_allegro_font_version(void)\n-uint32_t al_get_allegro_font_version(void)
    \n+
    uint32_t al_get_allegro_font_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    al_get_font_ranges

    \n-
    int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)\n-int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)
    \n+
    int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)
    \n

    Source\n Code

    \n

    Gets information about all glyphs contained in a font, as a list of\n ranges. Ranges have the same format as with al_grab_font_from_bitmap.

    \n

    ranges_count is the maximum number of ranges that will\n@@ -802,16 +762,15 @@\n href=\"font.html#al_grab_font_from_bitmap\">al_grab_font_from_bitmap

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_set_fallback_font

    \n-
    void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)\n-void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)
    \n+
    void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)
    \n

    Source\n Code

    \n

    Sets a font which is used instead if a character is not present. Can\n be chained, but make sure there is no loop as that would crash the\n application! Pass NULL to remove a fallback font again.

    \n

    Since: 5.1.12

    \n@@ -821,16 +780,15 @@\n href=\"font.html#al_draw_text\">al_draw_text

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_get_fallback_font

    \n-
    ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n-ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)
    \n+
    ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)
    \n

    Source\n Code

    \n

    Retrieves the fallback font for this font or NULL.

    \n

    Since: 5.1.12

    \n

    See also: al_set_fallback_font

    \n@@ -844,17 +802,15 @@\n

    And it\u2019s also possible to get the kerning to use between two glyphs.\n These per glyph functions have less overhead than Allegro\u2019s per string\n text drawing and dimensioning functions. So, with these functions you\n can write your own efficient and precise custom text drawing\n functions.

    \n

    al_draw_glyph

    \n
    void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float y,\n-   int codepoint)\n-void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float y,\n-   int codepoint)
    \n+ int codepoint)\n

    Source\n Code

    \n

    Draws the glyph that corresponds with codepoint in the\n given color using the given font. If\n font does not have such a glyph, nothing will be drawn.

    \n

    To draw a string as left to right horizontal text you will need to\n@@ -878,31 +834,28 @@\n

      \n
    • ex_font.c
    • \n
    • ex_ttf.c
    • \n
    \n

    al_get_glyph_width

    \n-
    int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n-int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)
    \n+
    int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)
    \n

    Source\n+href=\"https://github.com/liballeg/allegro5/blob/master/addons/font/text.c#L385\">Source\n Code

    \n

    This function returns the width in pixels of the glyph that\n corresponds with codepoint in the font font.\n Returns zero if the font does not have such a glyph.

    \n

    Since: 5.1.12

    \n

    See also: al_draw_glyph, al_get_glyph_dimensions, al_get_glyph_advance.

    \n

    al_get_glyph_dimensions

    \n
    bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n-   int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n-bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n-   int codepoint, int *bbx, int *bby, int *bbw, int *bbh)
    \n+ int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n

    Source\n Code

    \n

    Sometimes, the al_get_glyph_width or al_get_glyph_advance functions\n are not enough for exact glyph placement, so this function returns some\n@@ -956,16 +909,15 @@\n href=\"font.html#al_get_glyph_advance\">al_get_glyph_advance.

    \n

    Examples:

    \n
      \n
    • ex_ttf.c
    • \n
    \n

    al_get_glyph_advance

    \n-
    int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)\n-int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)
    \n+
    int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)
    \n

    Source\n Code

    \n

    This function returns by how much the x position should be advanced\n for left to right text drawing when the glyph that corresponds to\n codepoint1 has been drawn, and the glyph that corresponds to codepoint2\n will be the next to be drawn. This takes into consideration the\n@@ -1036,18 +988,15 @@\n

  • ex_ttf.c
  • \n \n

    Multiline text drawing

    \n

    al_draw_multiline_text

    \n
    void al_draw_multiline_text(const ALLEGRO_FONT *font,\n      ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const char *text)\n-void al_draw_multiline_text(const ALLEGRO_FONT *font,\n-     ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const char *text)
    \n+ int flags, const char *text)\n

    Source\n Code

    \n

    Like al_draw_text, but this\n function supports drawing multiple lines of text. It will break\n text in lines based on its contents and the\n max_width parameter. The lines are then layed out\n@@ -1099,18 +1048,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_font_multiline.cpp#L158\">ex_font_multiline.cpp\n

  • ex_resize2.c
  • \n \n

    al_draw_multiline_ustr

    \n
    void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n      ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n-     ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const ALLEGRO_USTR *ustr)
    \n+ int flags, const ALLEGRO_USTR *ustr)\n

    Source\n Code

    \n

    Like al_draw_multiline_text,\n except the text is passed as an ALLEGRO_USTR instead of a NUL-terminated\n char array.

    \n@@ -1118,18 +1064,15 @@\n

    See also: al_draw_multiline_text, al_draw_multiline_textf, al_do_multiline_text

    \n

    al_draw_multiline_textf

    \n
    void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n      ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const char *format, ...)\n-void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n-     ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n-     int flags, const char *format, ...)
    \n+ int flags, const char *format, ...)\n

    Source\n Code

    \n

    Formatted text output, using a printf() style format string. All\n parameters have the same meaning as with al_draw_multiline_text\n otherwise.

    \n@@ -1143,19 +1086,15 @@\n
  • ex_resize2.c
  • \n \n

    al_do_multiline_text

    \n
    void al_do_multiline_text(const ALLEGRO_FONT *font,\n    float max_width, const char *text,\n    bool (*cb)(int line_num, const char *line, int size, void *extra),\n-   void *extra)\n-void al_do_multiline_text(const ALLEGRO_FONT *font,\n-   float max_width, const char *text,\n-   bool (*cb)(int line_num, const char *line, int size, void *extra),\n-   void *extra)
    \n+ void *extra)\n

    Source\n Code

    \n

    This function processes the text and splits it into\n lines as al_draw_multiline_text\n would, and then calls the callback cb once for every line.\n@@ -1194,34 +1133,28 @@\n

  • ex_font_multiline.cpp
  • \n \n

    al_do_multiline_ustr

    \n
    void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n    const ALLEGRO_USTR *ustr,\n    bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n-   void *extra)\n-void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n-   const ALLEGRO_USTR *ustr,\n-   bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n-   void *extra)
    \n+ void *extra)\n

    Source\n Code

    \n

    Like al_do_multiline_text, but\n using ALLEGRO_USTR instead of a NUL-terminated char array for text.

    \n

    Since: 5.1.9

    \n

    See also: al_draw_multiline_ustr

    \n

    Bitmap fonts

    \n

    al_grab_font_from_bitmap

    \n
    ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n-   int ranges_n, const int ranges[])\n-ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n-   int ranges_n, const int ranges[])
    \n+ int ranges_n, const int ranges[])\n

    Source\n Code

    \n

    Creates a new font from an Allegro bitmap. You can delete the bitmap\n after the function returns as the font will contain a copy for\n itself.

    \n

    Parameters:

    \n@@ -1278,16 +1211,15 @@\n
      \n
    • ex_font.c
    • \n
    • ex_ttf.c
    • \n
    \n

    al_load_bitmap_font

    \n-
    ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n-ALLEGRO_FONT *al_load_bitmap_font(const char *fname)
    \n+
    ALLEGRO_FONT *al_load_bitmap_font(const char *fname)
    \n

    Source\n Code

    \n

    Load a bitmap font from a file. This is done by first calling al_load_bitmap_flags and\n then al_grab_font_from_bitmap.

    \n@@ -1306,16 +1238,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_bitmap_flip.c#L105\">ex_bitmap_flip.c\n
  • ex_mouse_cursor.c
  • \n
  • ex_record_name.c
  • \n \n

    al_load_bitmap_font_flags

    \n-
    ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)\n-ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)
    \n+
    ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)
    \n

    Source\n Code

    \n

    Like al_load_bitmap_font\n but additionally takes a flags parameter which is a bitfield containing\n a combination of the following:

    \n
    \n@@ -1325,16 +1256,15 @@\n href=\"graphics.html#al_load_bitmap_flags\">al_load_bitmap_flags.\n \n
    \n

    See also: al_load_bitmap_font, al_load_bitmap_flags

    \n

    al_create_builtin_font

    \n-
    ALLEGRO_FONT *al_create_builtin_font(void)\n-ALLEGRO_FONT *al_create_builtin_font(void)
    \n+
    ALLEGRO_FONT *al_create_builtin_font(void)
    \n

    Source\n Code

    \n

    Creates a monochrome bitmap font (8x8 pixels per character).

    \n

    This font is primarily intended to be used for displaying information\n in environments or during early runtime states where no external font\n data is available or loaded (e.g.\u00a0for debugging).

    \n@@ -1360,16 +1290,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_cpu.c#L42\">ex_cpu.c\n \n

    TTF fonts

    \n

    These functions are declared in the following header file. Link with\n allegro_ttf.

    \n
     #include <allegro5/allegro_ttf.h>
    \n

    al_init_ttf_addon

    \n-
    bool al_init_ttf_addon(void)\n-bool al_init_ttf_addon(void)
    \n+
    bool al_init_ttf_addon(void)
    \n

    Source\n Code

    \n

    Call this after al_init_font_addon to make al_load_font recognize \u201c.ttf\u201d and\n other formats supported by ex_font_justify.cpp\n

  • ex_font_multiline.cpp
  • \n
  • ex_color.cpp
  • \n \n

    al_is_ttf_addon_initialized

    \n-
    bool al_is_ttf_addon_initialized(void)\n-bool al_is_ttf_addon_initialized(void)
    \n+
    bool al_is_ttf_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the TTF addon is initialized, otherwise returns\n false.

    \n

    Since: 5.2.6

    \n

    See also: al_init_ttf_addon, al_shutdown_ttf_addon

    \n

    al_shutdown_ttf_addon

    \n-
    void al_shutdown_ttf_addon(void)\n-void al_shutdown_ttf_addon(void)
    \n+
    void al_shutdown_ttf_addon(void)
    \n

    Source\n Code

    \n

    Unloads the ttf addon again. You normally don\u2019t need to call\n this.

    \n

    al_load_ttf_font

    \n-
    ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)
    \n+
    ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)
    \n

    Source\n Code

    \n

    Loads a TrueType font from a file using the FreeType library. Quoting\n from the FreeType FAQ this means support for many different font\n formats:

    \n

    TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF,\n@@ -1443,33 +1369,29 @@\n

  • ex_synth.cpp
  • \n
  • ex_audio_chain.cpp
  • \n \n

    al_load_ttf_font_f

    \n
    ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n-    char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n-    char const *filename, int size, int flags)
    \n+ char const *filename, int size, int flags)\n

    Source\n Code

    \n

    Like al_load_ttf_font, but\n the font is read from the file handle. The filename is only used to find\n possible additional files next to a font file.

    \n
    \n

    Note: The file handle is owned by the returned ALLEGRO_FONT\n object and must not be freed by the caller, as FreeType expects to be\n able to read from it at a later time.

    \n
    \n

    al_load_ttf_font_stretch

    \n
    ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n-   int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n-   int flags)
    \n+ int flags)\n

    Source\n Code

    \n

    Like al_load_ttf_font,\n except it takes separate width and height parameters instead of a single\n size parameter.

    \n

    If the height is a positive value, and the width zero or positive,\n@@ -1482,17 +1404,15 @@\n negative, or if the height is negative while the width is positive.

    \n

    Since: 5.0.6, 5.1.0

    \n

    See also: al_load_ttf_font,\n al_load_ttf_font_stretch_f

    \n

    al_load_ttf_font_stretch_f

    \n
    ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n-    char const *filename, int w, int h, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n-    char const *filename, int w, int h, int flags)
    \n+ char const *filename, int w, int h, int flags)\n

    Source\n Code

    \n

    Like al_load_ttf_font_stretch,\n but the font is read from the file handle. The filename is only used to\n find possible additional files next to a font file.

    \n@@ -1501,24 +1421,22 @@\n object and must not be freed by the caller, as FreeType expects to be\n able to read from it at a later time.

    \n
    \n

    Since: 5.0.6, 5.1.0

    \n

    See also: al_load_ttf_font_stretch

    \n

    al_get_allegro_ttf_version

    \n-
    uint32_t al_get_allegro_ttf_version(void)\n-uint32_t al_get_allegro_ttf_version(void)
    \n+
    uint32_t al_get_allegro_ttf_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    al_get_glyph

    \n-
    bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint, ALLEGRO_GLYPH *glyph)\n-bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint, ALLEGRO_GLYPH *glyph)
    \n+
    bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint, ALLEGRO_GLYPH *glyph)
    \n

    Source\n Code

    \n

    Gets all the information about a glyph, including the bitmap, needed\n to draw it yourself. prev_codepoint is the codepoint in the string\n before the one you want to draw and is used for kerning. codepoint is\n the character you want to get info about. You should clear the \u2018glyph\u2019\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -97,28 +97,26 @@\n o _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh\n These functions are declared in the following header file. Link with\n allegro_font.\n #include \n *\b**\b**\b**\b**\b**\b* G\bGe\ben\bne\ber\bra\bal\bl f\bfo\bon\bnt\bt r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFO\bON\bNT\bT *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n-typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A handle identifying any kind of font. Usually you will create it with\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bf_\bo_\bn_\bt which supports loading all kinds of TrueType fonts supported by\n the FreeType library. If you instead pass the filename of a bitmap file, it\n will be loaded with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp and a font in Allegro\u2019s bitmap font format\n will be created from it with _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp.\n Examples:\n * _\be_\bx_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_G\bGL\bLY\bYP\bPH\bH *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n-typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A structure containing the properties of a character in a font.\n typedef struct ALLEGRO_GLYPH {\n ALLEGRO_BITMAP *bitmap; // the bitmap the character is on\n int x; // the x position of the glyph on bitmap\n int y; // the y position of the glyph on bitmap\n int w; // the width of the glyph in pixels\n@@ -141,15 +139,14 @@\n Since: 5.2.1\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: This API is new and subject to refinement.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_f\bfo\bon\bnt\bt_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n bool al_init_font_addon(void)\n-bool al_init_font_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Initialise the font addon.\n Note that if you intend to load bitmap fonts, you will need to initialise\n allegro_image separately (unless you are using another library to load images).\n Similarly, if you wish to load truetype-fonts, do not forget to also call\n _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bt_\bt_\bf_\b__\ba_\bd_\bd_\bo_\bn.\n Returns true on success, false on failure. On the 5.0 branch, this function has\n@@ -159,68 +156,61 @@\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bi_\bm_\ba_\bg_\be_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bt_\bt_\bf_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_f\bfo\bon\bnt\bt_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b*\n bool al_is_font_addon_initialized(void)\n-bool al_is_font_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the font addon is initialized, otherwise returns false.\n Since: 5.2.6\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_f\bfo\bon\bnt\bt_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n void al_shutdown_font_addon(void)\n-void al_shutdown_font_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Shut down the font addon. This is done automatically at program exit, but can\n be called any time the user wishes as well.\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads a font from disk. This will use _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bo_\bn_\bt_\b__\bf_\bl_\ba_\bg_\bs if you pass the\n name of a known bitmap format, or else _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt.\n The flags parameter is passed through to either of those functions. Bitmap and\n TTF fonts are also affected by the current _\bb_\bi_\bt_\bm_\ba_\bp_\b _\bf_\bl_\ba_\bg_\bs at the time the font is\n loaded.\n See also: _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bf_\bo_\bn_\bt, _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bf_\bo_\bn_\bt_\b__\bl_\bo_\ba_\bd_\be_\br,\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bo_\bn_\bt_\b__\bf_\bl_\ba_\bg_\bs, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bm_\be_\bm_\bb_\bm_\bp_\b._\bc\n * _\be_\bx_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bt_\bi_\bt_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n void al_destroy_font(ALLEGRO_FONT *f)\n-void al_destroy_font(ALLEGRO_FONT *f)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Frees the memory being used by a font structure. Does nothing if passed NULL.\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bf_\bo_\bn_\bt\n Examples:\n * _\be_\bx_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bc_\bp_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\beg\bgi\bis\bst\bte\ber\br_\b_f\bfo\bon\bnt\bt_\b_l\blo\boa\bad\bde\ber\br *\b**\b**\b**\b**\b*\n bool al_register_font_loader(char const *extension,\n ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))\n-bool al_register_font_loader(char const *extension,\n- ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Informs Allegro of a new font file type, telling it how to load files of this\n format.\n The extension should include the leading dot (\u2018.\u2019) character. It will be\n matched case-insensitively.\n The load_font argument may be NULL to unregister an entry.\n Returns true on success, false on error. Returns false if unregistering an\n entry that doesn\u2019t exist.\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfo\bon\bnt\bt_\b_l\bli\bin\bne\be_\b_h\bhe\bei\big\bgh\bht\bt *\b**\b**\b**\b**\b*\n int al_get_font_line_height(const ALLEGRO_FONT *f)\n-int al_get_font_line_height(const ALLEGRO_FONT *f)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the usual height of a line of text in the specified font. For bitmap\n fonts this is simply the height of all glyph bitmaps. For truetype fonts it is\n whatever the font file specifies. In particular, some special glyphs may be\n higher than the height returned here.\n If the X is the position you specify to draw text, the meaning of ascent and\n descent and the line height is like in the figure below.\n@@ -238,53 +228,46 @@\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bm_\be_\bm_\bb_\bm_\bp_\b._\bc\n * _\be_\bx_\b__\bm_\bo_\bu_\bs_\be_\b__\bw_\ba_\br_\bp_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfo\bon\bnt\bt_\b_a\bas\bsc\bce\ben\bnt\bt *\b**\b**\b**\b**\b*\n int al_get_font_ascent(const ALLEGRO_FONT *f)\n-int al_get_font_ascent(const ALLEGRO_FONT *f)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the ascent of the specified font.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\bd_\be_\bs_\bc_\be_\bn_\bt, _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\bl_\bi_\bn_\be_\b__\bh_\be_\bi_\bg_\bh_\bt\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfo\bon\bnt\bt_\b_d\bde\bes\bsc\bce\ben\bnt\bt *\b**\b**\b**\b**\b*\n int al_get_font_descent(const ALLEGRO_FONT *f)\n-int al_get_font_descent(const ALLEGRO_FONT *f)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the descent of the specified font.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bs_\bc_\be_\bn_\bt, _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\bl_\bi_\bn_\be_\b__\bh_\be_\bi_\bg_\bh_\bt\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_t\bte\bex\bxt\bt_\b_w\bwi\bid\bdt\bth\bh *\b**\b**\b**\b**\b*\n int al_get_text_width(const ALLEGRO_FONT *f, const char *str)\n-int al_get_text_width(const ALLEGRO_FONT *f, const char *str)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Calculates the length of a string in a particular font, in pixels.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bu_\bs_\bt_\br_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\bl_\bi_\bn_\be_\b__\bh_\be_\bi_\bg_\bh_\bt, _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs\n Examples:\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bo_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b__\bg_\br_\ba_\bd_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_u\bus\bst\btr\br_\b_w\bwi\bid\bdt\bth\bh *\b**\b**\b**\b**\b*\n int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)\n-int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bw_\bi_\bd_\bt_\bh but expects an ALLEGRO_USTR.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bu_\bs_\bt_\br_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs\n Examples:\n * _\bn_\bi_\bh_\bg_\bu_\bi_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_t\bte\bex\bxt\bt *\b**\b**\b**\b**\b*\n void al_draw_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, int flags,\n char const *text)\n-void al_draw_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, int flags,\n- char const *text)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Writes the NUL-terminated string text onto the target bitmap at position x, y,\n using the specified font.\n The flags parameter can be 0 or one of the following flags:\n * ALLEGRO_ALIGN_LEFT - Draw the text left-aligned (same as 0).\n * ALLEGRO_ALIGN_CENTRE - Draw the text centered around the given position.\n * ALLEGRO_ALIGN_RIGHT - Draw the text right-aligned to the given position.\n@@ -299,32 +282,26 @@\n * _\be_\bx_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n * _\be_\bx_\b__\bm_\be_\bm_\bb_\bm_\bp_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_u\bus\bst\btr\br *\b**\b**\b**\b**\b*\n void al_draw_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, int flags,\n const ALLEGRO_USTR *ustr)\n-void al_draw_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, int flags,\n- const ALLEGRO_USTR *ustr)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt, except the text is passed as an ALLEGRO_USTR instead of a\n NUL-terminated char array.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bu_\bs_\bt_\br, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bu_\bs_\bt_\br\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b._\bc_\bp_\bp\n * _\bn_\bi_\bh_\bg_\bu_\bi_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_j\bju\bus\bst\bti\bif\bfi\bie\bed\bd_\b_t\bte\bex\bxt\bt *\b**\b**\b**\b**\b*\n void al_draw_justified_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x1, float x2,\n float y, float diff, int flags, const char *text)\n-void al_draw_justified_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x1, float x2,\n- float y, float diff, int flags, const char *text)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt, but justifies the string to the region x1-x2.\n The diff parameter is the maximum amount of horizontal space to allow between\n words. If justisfying the text would exceed diff pixels, or the string contains\n less than two words, then the string will be drawn left aligned.\n The flags parameter can be 0 or one of the following flags:\n * ALLEGRO_ALIGN_INTEGER - Draw text aligned to integer pixel positions.\n@@ -332,54 +309,42 @@\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt_\bf, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bu_\bs_\bt_\br\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_j\bju\bus\bst\bti\bif\bfi\bie\bed\bd_\b_u\bus\bst\btr\br *\b**\b**\b**\b**\b*\n void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x1, float x2,\n float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x1, float x2,\n- float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt, except the text is passed as an ALLEGRO_USTR\n instead of a NUL-terminated char array.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt_\bf.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_t\bte\bex\bxt\btf\bf *\b**\b**\b**\b**\b*\n void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n float x, float y, int flags,\n const char *format, ...)\n-void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n- float x, float y, int flags,\n- const char *format, ...)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Formatted text output, using a printf() style format string. All parameters\n have the same meaning as with _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt otherwise.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bu_\bs_\bt_\br\n Examples:\n * _\be_\bx_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bs_\bc_\br_\be_\be_\bn_\bs_\ba_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n * _\be_\bx_\b__\bc_\bp_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_j\bju\bus\bst\bti\bif\bfi\bie\bed\bd_\b_t\bte\bex\bxt\btf\bf *\b**\b**\b**\b**\b*\n void al_draw_justified_textf(const ALLEGRO_FONT *f,\n ALLEGRO_COLOR color, float x1, float x2, float y,\n float diff, int flags, const char *format, ...)\n-void al_draw_justified_textf(const ALLEGRO_FONT *f,\n- ALLEGRO_COLOR color, float x1, float x2, float y,\n- float diff, int flags, const char *format, ...)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Formatted text output, using a printf() style format string. All parameters\n have the same meaning as with _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt otherwise.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bj_\bu_\bs_\bt_\bi_\bf_\bi_\be_\bd_\b__\bu_\bs_\bt_\br.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_t\bte\bex\bxt\bt_\b_d\bdi\bim\bme\ben\bns\bsi\bio\bon\bns\bs *\b**\b**\b**\b**\b*\n void al_get_text_dimensions(const ALLEGRO_FONT *f,\n char const *text,\n int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_text_dimensions(const ALLEGRO_FONT *f,\n- char const *text,\n- int *bbx, int *bby, int *bbw, int *bbh)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sometimes, the _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bw_\bi_\bd_\bt_\bh and _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bo_\bn_\bt_\b__\bl_\bi_\bn_\be_\b__\bh_\be_\bi_\bg_\bh_\bt functions are not\n enough for exact text placement, so this function returns some additional\n information.\n Returned variables (all in pixels):\n * x, y - Offset to upper left corner of bounding box.\n * w, h - Dimensions of bounding box.\n@@ -389,30 +354,25 @@\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n * _\be_\bx_\b__\bl_\bo_\bg_\bo_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_u\bus\bst\btr\br_\b_d\bdi\bim\bme\ben\bns\bsi\bio\bon\bns\bs *\b**\b**\b**\b**\b*\n void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n ALLEGRO_USTR const *ustr,\n int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n- ALLEGRO_USTR const *ustr,\n- int *bbx, int *bby, int *bbw, int *bbh)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs, except the text is passed as an ALLEGRO_USTR\n instead of a NUL-terminated char array.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\be_\bx_\bt_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_f\bfo\bon\bnt\bt_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_font_version(void)\n-uint32_t al_get_allegro_font_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfo\bon\bnt\bt_\b_r\bra\ban\bng\bge\bes\bs *\b**\b**\b**\b**\b*\n int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)\n-int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Gets information about all glyphs contained in a font, as a list of ranges.\n Ranges have the same format as with _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp.\n ranges_count is the maximum number of ranges that will be returned.\n ranges should be an array with room for ranges_count * 2 elements. The even\n integers are the first unicode point in a range, the odd integers the last\n unicode point in a range.\n@@ -420,26 +380,24 @@\n ranges_count).\n Since: 5.1.4\n See also: _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_f\bfa\bal\bll\blb\bba\bac\bck\bk_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)\n-void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sets a font which is used instead if a character is not present. Can be\n chained, but make sure there is no loop as that would crash the application!\n Pass NULL to remove a fallback font again.\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\ba_\bl_\bl_\bb_\ba_\bc_\bk_\b__\bf_\bo_\bn_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bg_\bl_\by_\bp_\bh, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfa\bal\bll\blb\bba\bac\bck\bk_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n-ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Retrieves the fallback font for this font or NULL.\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bf_\ba_\bl_\bl_\bb_\ba_\bc_\bk_\b__\bf_\bo_\bn_\bt\n *\b**\b**\b**\b**\b**\b* P\bPe\ber\br g\bgl\bly\byp\bph\bh t\bte\bex\bxt\bt h\bha\ban\bnd\bdl\bli\bin\bng\bg *\b**\b**\b**\b**\b**\b*\n For some applications Allegro\u2019s text drawing functions may not be sufficient.\n For example, you would like to give a different color to every letter in a\n@@ -451,17 +409,14 @@\n glyph functions have less overhead than Allegro\u2019s per string text drawing and\n dimensioning functions. So, with these functions you can write your own\n efficient and precise custom text drawing functions.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_g\bgl\bly\byp\bph\bh *\b**\b**\b**\b**\b*\n void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float\n y,\n int codepoint)\n-void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float\n-y,\n- int codepoint)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws the glyph that corresponds with codepoint in the given color using the\n given font. If font does not have such a glyph, nothing will be drawn.\n To draw a string as left to right horizontal text you will need to use\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\ba_\bd_\bv_\ba_\bn_\bc_\be to determine the position of each glyph. For drawing\n strings in other directions, such as top to down, use _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs\n to determine the size and position of each glyph.\n@@ -472,26 +427,23 @@\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\ba_\bd_\bv_\ba_\bn_\bc_\be.\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b._\bc\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_g\bgl\bly\byp\bph\bh_\b_w\bwi\bid\bdt\bth\bh *\b**\b**\b**\b**\b*\n int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n-int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function returns the width in pixels of the glyph that corresponds with\n codepoint in the font font. Returns zero if the font does not have such a\n glyph.\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bg_\bl_\by_\bp_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bd_\bi_\bm_\be_\bn_\bs_\bi_\bo_\bn_\bs, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\ba_\bd_\bv_\ba_\bn_\bc_\be.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_g\bgl\bly\byp\bph\bh_\b_d\bdi\bim\bme\ben\bns\bsi\bio\bon\bns\bs *\b**\b**\b**\b**\b*\n bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n-bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n- int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sometimes, the _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bw_\bi_\bd_\bt_\bh or _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\ba_\bd_\bv_\ba_\bn_\bc_\be functions are not\n enough for exact glyph placement, so this function returns some additional\n information, particularly if you want to draw the font vertically.\n The function itself returns true if the character was present in font and false\n if the character was not present in font.\n Returned variables (all in pixel):\n@@ -531,15 +483,14 @@\n +---+-------+\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bg_\bl_\by_\bp_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bg_\bl_\by_\bp_\bh_\b__\ba_\bd_\bv_\ba_\bn_\bc_\be.\n Examples:\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_g\bgl\bly\byp\bph\bh_\b_a\bad\bdv\bva\ban\bnc\bce\be *\b**\b**\b**\b**\b*\n int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)\n-int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function returns by how much the x position should be advanced for left to\n right text drawing when the glyph that corresponds to codepoint1 has been\n drawn, and the glyph that corresponds to codepoint2 will be the next to be\n drawn. This takes into consideration the horizontal advance width of the glyph\n that corresponds with codepoint1 as well as the kerning between the glyphs of\n codepoint1 and codepoint2.\n@@ -597,17 +548,14 @@\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b._\bc\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b**\b* M\bMu\bul\blt\bti\bil\bli\bin\bne\be t\bte\bex\bxt\bt d\bdr\bra\baw\bwi\bin\bng\bg *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_m\bmu\bul\blt\bti\bil\bli\bin\bne\be_\b_t\bte\bex\bxt\bt *\b**\b**\b**\b**\b*\n void al_draw_multiline_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const char *text)\n-void al_draw_multiline_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const char *text)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt, but this function supports drawing multiple lines of text.\n It will break text in lines based on its contents and the max_width parameter.\n The lines are then layed out vertically depending on the line_height parameter\n and drawn each as if _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\be_\bx_\bt was called on them.\n A newline \\n in the text will cause a \u201chard\u201d line break after its occurrence in\n the string. The text after a hard break is placed on a new line. Carriage\n@@ -636,45 +584,35 @@\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\br_\be_\bs_\bi_\bz_\be_\b2_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_m\bmu\bul\blt\bti\bil\bli\bin\bne\be_\b_u\bus\bst\btr\br *\b**\b**\b**\b**\b*\n void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const ALLEGRO_USTR *ustr)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt, except the text is passed as an ALLEGRO_USTR\n instead of a NUL-terminated char array.\n Since: 5.1.9\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt_\bf, _\ba_\bl_\b__\bd_\bo_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_m\bmu\bul\blt\bti\bil\bli\bin\bne\be_\b_t\bte\bex\bxt\btf\bf *\b**\b**\b**\b**\b*\n void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const char *format, ...)\n-void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const char *format, ...)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Formatted text output, using a printf() style format string. All parameters\n have the same meaning as with _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt otherwise.\n Since: 5.1.9\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bu_\bs_\bt_\br, _\ba_\bl_\b__\bd_\bo_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt\n Examples:\n * _\be_\bx_\b__\br_\be_\bs_\bi_\bz_\be_\b2_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdo\bo_\b_m\bmu\bul\blt\bti\bil\bli\bin\bne\be_\b_t\bte\bex\bxt\bt *\b**\b**\b**\b**\b*\n void al_do_multiline_text(const ALLEGRO_FONT *font,\n float max_width, const char *text,\n bool (*cb)(int line_num, const char *line, int size, void *extra),\n void *extra)\n-void al_do_multiline_text(const ALLEGRO_FONT *font,\n- float max_width, const char *text,\n- bool (*cb)(int line_num, const char *line, int size, void *extra),\n- void *extra)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function processes the text and splits it into lines as\n _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt would, and then calls the callback cb once for every\n line. This is useful for custom drawing of multiline text, or for calculating\n the size of multiline text ahead of time. See the documentation on\n _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt for an explanation of the splitting algorithm.\n For every line that this function splits text into the callback cb will be\n@@ -696,29 +634,23 @@\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdo\bo_\b_m\bmu\bul\blt\bti\bil\bli\bin\bne\be_\b_u\bus\bst\btr\br *\b**\b**\b**\b**\b*\n void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n const ALLEGRO_USTR *ustr,\n bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n void *extra)\n-void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n- const ALLEGRO_USTR *ustr,\n- bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n- void *extra)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bd_\bo_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bt_\be_\bx_\bt, but using ALLEGRO_USTR instead of a NUL-terminated\n char array for text.\n Since: 5.1.9\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b__\bu_\bs_\bt_\br\n *\b**\b**\b**\b**\b**\b* B\bBi\bit\btm\bma\bap\bp f\bfo\bon\bnt\bts\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bgr\bra\bab\bb_\b_f\bfo\bon\bnt\bt_\b_f\bfr\bro\bom\bm_\b_b\bbi\bit\btm\bma\bap\bp *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n int ranges_n, const int ranges[])\n-ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n- int ranges_n, const int ranges[])\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a new font from an Allegro bitmap. You can delete the bitmap after the\n function returns as the font will contain a copy for itself.\n Parameters:\n * bmp: The bitmap with the glyphs drawn onto it\n * n: Number of unicode ranges in the bitmap.\n * ranges: \u2018n\u2019 pairs of first and last unicode point to map glyphs to for\n@@ -762,38 +694,35 @@\n characters found in the Allegro 4 font.)\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp, _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b._\bc\n * _\be_\bx_\b__\bt_\bt_\bf_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_b\bbi\bit\btm\bma\bap\bp_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n-ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Load a bitmap font from a file. This is done by first calling\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\ba_\bg_\bs and then _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp.\n If you wanted to load an old A4 font, for example, it would be better to load\n the bitmap yourself in order to call _\ba_\bl_\b__\bc_\bo_\bn_\bv_\be_\br_\bt_\b__\bm_\ba_\bs_\bk_\b__\bt_\bo_\b__\ba_\bl_\bp_\bh_\ba on it before\n passing it to _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bf_\bo_\bn_\bt_\b__\bf_\br_\bo_\bm_\b__\bb_\bi_\bt_\bm_\ba_\bp.\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bo_\bn_\bt_\b__\bf_\bl_\ba_\bg_\bs, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bf_\bo_\bn_\bt, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\ba_\bg_\bs\n Examples:\n * _\be_\bx_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\bi_\bp_\b._\bc\n * _\be_\bx_\b__\bm_\bo_\bu_\bs_\be_\b__\bc_\bu_\br_\bs_\bo_\br_\b._\bc\n * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_b\bbi\bit\btm\bma\bap\bp_\b_f\bfo\bon\bnt\bt_\b_f\bfl\bla\bag\bgs\bs *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)\n-ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bo_\bn_\bt but additionally takes a flags parameter which is a\n bitfield containing a combination of the following:\n ALLEGRO_NO_PREMULTIPLIED_ALPHA\n The same meaning as for _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\ba_\bg_\bs.\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bo_\bn_\bt, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\ba_\bg_\bs\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_b\bbu\bui\bil\blt\bti\bin\bn_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_create_builtin_font(void)\n-ALLEGRO_FONT *al_create_builtin_font(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a monochrome bitmap font (8x8 pixels per character).\n This font is primarily intended to be used for displaying information in\n environments or during early runtime states where no external font data is\n available or loaded (e.g.\u00a0for debugging).\n The builtin font contains the following unicode character ranges:\n 0x0020 to 0x007F (ASCII)\n@@ -811,38 +740,34 @@\n * _\be_\bx_\b__\bc_\bp_\bu_\b._\bc\n *\b**\b**\b**\b**\b**\b* T\bTT\bTF\bF f\bfo\bon\bnt\bts\bs *\b**\b**\b**\b**\b**\b*\n These functions are declared in the following header file. Link with\n allegro_ttf.\n #include \n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_t\btt\btf\bf_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n bool al_init_ttf_addon(void)\n-bool al_init_ttf_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Call this after _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bf_\bo_\bn_\bt_\b__\ba_\bd_\bd_\bo_\bn to make _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bf_\bo_\bn_\bt recognize \u201c.ttf\u201d and\n other formats supported by _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt.\n Returns true on success, false on failure.\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bm_\bu_\bl_\bt_\bi_\bl_\bi_\bn_\be_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bc_\bo_\bl_\bo_\br_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_t\btt\btf\bf_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b*\n bool al_is_ttf_addon_initialized(void)\n-bool al_is_ttf_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the TTF addon is initialized, otherwise returns false.\n Since: 5.2.6\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bt_\bt_\bf_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bt_\bt_\bf_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_t\btt\btf\bf_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n void al_shutdown_ttf_addon(void)\n-void al_shutdown_ttf_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Unloads the ttf addon again. You normally don\u2019t need to call this.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_t\btt\btf\bf_\b_f\bfo\bon\bnt\bt *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Loads a TrueType font from a file using the FreeType library. Quoting from the\n FreeType FAQ this means support for many different font formats:\n T\bTr\bru\bue\beT\bTy\byp\bpe\be,\b, O\bOp\bpe\ben\bnT\bTy\byp\bpe\be,\b, T\bTy\byp\bpe\be1\b1,\b, C\bCI\bID\bD,\b, C\bCF\bFF\bF,\b, W\bWi\bin\bnd\bdo\bow\bws\bs F\bFO\bON\bN/\b/F\bFN\bNT\bT,\b, X\bX1\b11\b1 P\bPC\bCF\bF,\b, a\ban\bnd\bd o\bot\bth\bhe\ber\brs\bs\n The size parameter determines the size the font will be rendered at, specified\n in pixels. The standard font size is measured in u\bun\bni\bit\bts\bs p\bpe\ber\br E\bEM\bM, if you instead\n want to specify the size as the total height of glyphs in pixels, pass it as a\n@@ -860,27 +785,23 @@\n Examples:\n * _\be_\bx_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf_\bl_\bi_\bp_\b._\bc\n * _\be_\bx_\b__\bs_\by_\bn_\bt_\bh_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_t\btt\btf\bf_\b_f\bfo\bon\bnt\bt_\b_f\bf *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n- char const *filename, int size, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt, but the font is read from the file handle. The filename\n is only used to find possible additional files next to a font file.\n N\bNo\bot\bte\be:\b: The file handle is owned by the returned ALLEGRO_FONT object\n and must not be freed by the caller, as FreeType expects to be able\n to read from it at a later time.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_t\btt\btf\bf_\b_f\bfo\bon\bnt\bt_\b_s\bst\btr\bre\bet\btc\bch\bh *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n- int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt, except it takes separate width and height parameters\n instead of a single size parameter.\n If the height is a positive value, and the width zero or positive, then font\n will be stretched according to those parameters. The width must not be negative\n if the height is positive.\n As with _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt, the height may be a negative value to specify the\n@@ -888,35 +809,30 @@\n Returns NULL if the height is positive while width is negative, or if the\n height is negative while the width is positive.\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt_\b__\bs_\bt_\br_\be_\bt_\bc_\bh_\b__\bf\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boa\bad\bd_\b_t\btt\btf\bf_\b_f\bfo\bon\bnt\bt_\b_s\bst\btr\bre\bet\btc\bch\bh_\b_f\bf *\b**\b**\b**\b**\b*\n ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n char const *filename, int w, int h, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n- char const *filename, int w, int h, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt_\b__\bs_\bt_\br_\be_\bt_\bc_\bh, but the font is read from the file handle. The\n filename is only used to find possible additional files next to a font file.\n N\bNo\bot\bte\be:\b: The file handle is owned by the returned ALLEGRO_FONT object\n and must not be freed by the caller, as FreeType expects to be able\n to read from it at a later time.\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bt_\bt_\bf_\b__\bf_\bo_\bn_\bt_\b__\bs_\bt_\br_\be_\bt_\bc_\bh\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_t\btt\btf\bf_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_ttf_version(void)\n-uint32_t al_get_allegro_ttf_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_g\bgl\bly\byp\bph\bh *\b**\b**\b**\b**\b*\n bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint,\n ALLEGRO_GLYPH *glyph)\n-bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint,\n-ALLEGRO_GLYPH *glyph)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Gets all the information about a glyph, including the bitmap, needed to draw it\n yourself. prev_codepoint is the codepoint in the string before the one you want\n to draw and is used for kerning. codepoint is the character you want to get\n info about. You should clear the \u2018glyph\u2019 structure to 0 with memset before\n passing it to this function for future compatibility.\n Since: 5.2.1\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/fshook.html", "source2": "./usr/share/doc/allegro5-doc/refman/fshook.html", "unified_diff": "@@ -242,16 +242,15 @@\n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    These functions allow access to the filesystem. This can either be\n the real filesystem like your harddrive, or a virtual filesystem like a\n .zip archive (or whatever else you or an addon makes it do).

    \n

    ALLEGRO_FS_ENTRY

    \n-
    typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n-typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;
    \n+
    typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;
    \n

    Source\n Code

    \n

    Opaque filesystem entry object. Represents a file or a directory\n (check with al_get_fs_entry_mode). There\n are no user accessible member variables.

    \n@@ -259,16 +258,15 @@\n
      \n
    • ex_dir.c
    • \n
    • ex_physfs.c
    • \n
    \n

    ALLEGRO_FILE_MODE

    \n-
    typedef enum ALLEGRO_FILE_MODE\n-typedef enum ALLEGRO_FILE_MODE
    \n+
    typedef enum ALLEGRO_FILE_MODE
    \n

    Source\n Code

    \n

    Filesystem modes/types

    \n
      \n
    • ALLEGRO_FILEMODE_READ - Readable
    • \n
    • ALLEGRO_FILEMODE_WRITE - Writable
    • \n@@ -593,16 +591,15 @@\n entry, but uses the appropriate file interface, not whatever was set\n with the latest call to al_set_new_file_interface.

      \n

      Returns the handle on success, NULL on error.

      \n

      See also: al_fopen

      \n ALLEGRO_FOR_EACH_FS_ENTRY_RESULT\n-
      typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n-typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {
      \n+
      typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {
      \n

      Source\n Code

      \n

      Return values for the callbacks of al_for_each_fs_entry and for\n that function itself.

      \n
        \n@@ -681,16 +678,15 @@\n

        By default, Allegro uses platform specific filesystem functions for\n things like directory access. However if for example the files of your\n game are not in the local filesystem but inside some file archive, you\n can provide your own set of functions (or use an addon which does this\n for you, for example our physfs addon allows access to the most common\n archive formats).

        \n

        ALLEGRO_FS_INTERFACE

        \n-
        typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n-typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;
        \n+
        typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;
        \n

        Source\n Code

        \n

        The available functions you can provide for a filesystem. They\n are:

        \n
           ALLEGRO_FS_ENTRY *  fs_create_entry   (const char *path);\n    void                fs_destroy_entry  (ALLEGRO_FS_ENTRY *e);\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -76,24 +76,22 @@\n These functions are declared in the main Allegro header file:\n  #include \n These functions allow access to the filesystem. This can either be the real\n filesystem like your harddrive, or a virtual filesystem like a .zip archive (or\n whatever else you or an addon makes it do).\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFS\bS_\b_E\bEN\bNT\bTR\bRY\bY *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n-typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Opaque filesystem entry object. Represents a file or a directory (check with\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bf_\bs_\b__\be_\bn_\bt_\br_\by_\b__\bm_\bo_\bd_\be). There are no user accessible member variables.\n Examples:\n     * _\be_\bx_\b__\bd_\bi_\br_\b._\bc\n     * _\be_\bx_\b__\bp_\bh_\by_\bs_\bf_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFI\bIL\bLE\bE_\b_M\bMO\bOD\bDE\bE *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_FILE_MODE\n-typedef enum ALLEGRO_FILE_MODE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Filesystem modes/types\n     * ALLEGRO_FILEMODE_READ - Readable\n     * ALLEGRO_FILEMODE_WRITE - Writable\n     * ALLEGRO_FILEMODE_EXECUTE - Executable\n     * ALLEGRO_FILEMODE_HIDDEN - Hidden\n     * ALLEGRO_FILEMODE_ISFILE - Regular file\n@@ -281,15 +279,14 @@\n This is like calling _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn with the name of the filesystem entry, but uses\n the appropriate file interface, not whatever was set with the latest call to\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bf_\bi_\bl_\be_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be.\n Returns the handle on success, NULL on error.\n See also: _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFO\bOR\bR_\b_E\bEA\bAC\bCH\bH_\b_F\bFS\bS_\b_E\bEN\bNT\bTR\bRY\bY_\b_R\bRE\bES\bSU\bUL\bLT\bT *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n-typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return values for the callbacks of _\ba_\bl_\b__\bf_\bo_\br_\b__\be_\ba_\bc_\bh_\b__\bf_\bs_\b__\be_\bn_\bt_\br_\by and for that function\n itself.\n     * ALLEGRO_FOR_EACH_FS_ENTRY_ERROR - An error ocurred.\n     * ALLEGRO_FOR_EACH_FS_ENTRY_OK - Continue normally and recurse into\n       directories.\n     * ALLEGRO_FOR_EACH_FS_ENTRY_SKIP - Continue but do NOT recusively descend.\n@@ -336,15 +333,14 @@\n By default, Allegro uses platform specific filesystem functions for things like\n directory access. However if for example the files of your game are not in the\n local filesystem but inside some file archive, you can provide your own set of\n functions (or use an addon which does this for you, for example our physfs\n addon allows access to the most common archive formats).\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFS\bS_\b_I\bIN\bNT\bTE\bER\bRF\bFA\bAC\bCE\bE *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n-typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n The available functions you can provide for a filesystem. They are:\n    ALLEGRO_FS_ENTRY *  fs_create_entry   (const char *path);\n    void                fs_destroy_entry  (ALLEGRO_FS_ENTRY *e);\n    const char *        fs_entry_name     (ALLEGRO_FS_ENTRY *e);\n    bool                fs_update_entry   (ALLEGRO_FS_ENTRY *e);\n    uint32_t            fs_entry_mode     (ALLEGRO_FS_ENTRY *e);\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html", "source2": "./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html", "unified_diff": "@@ -180,16 +180,15 @@\n 
      • al_get_num_display_modes
      • \n
      \n \n

      These functions are declared in the main Allegro header file:

      \n
       #include <allegro5/allegro.h>
      \n

      ALLEGRO_DISPLAY_MODE

      \n-
      typedef struct ALLEGRO_DISPLAY_MODE\n-typedef struct ALLEGRO_DISPLAY_MODE
      \n+
      typedef struct ALLEGRO_DISPLAY_MODE
      \n

      Source\n Code

      \n

      Used for fullscreen mode queries. Contains information about a\n supported fullscreen modes.

      \n
      typedef struct ALLEGRO_DISPLAY_MODE {\n    int width;          // Screen width\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -46,15 +46,14 @@\n     * _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bD_\bI_\bS_\bP_\bL_\bA_\bY_\b__\bM_\bO_\bD_\bE\n     * _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\bo_\bd_\be\n     * _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\bu_\bm_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\bo_\bd_\be_\bs\n These functions are declared in the main Allegro header file:\n  #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_D\bDI\bIS\bSP\bPL\bLA\bAY\bY_\b_M\bMO\bOD\bDE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_DISPLAY_MODE\n-typedef struct ALLEGRO_DISPLAY_MODE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Used for fullscreen mode queries. Contains information about a supported\n fullscreen modes.\n typedef struct ALLEGRO_DISPLAY_MODE {\n    int width;          // Screen width\n    int height;         // Screen height\n    int format;         // The pixel format of the mode\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/graphics.html", "source2": "./usr/share/doc/allegro5-doc/refman/graphics.html", "unified_diff": "@@ -439,16 +439,15 @@\n 
    \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    Colors

    \n

    ALLEGRO_COLOR

    \n-
    typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n-typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;
    \n+
    typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;
    \n

    Source\n Code

    \n

    An ALLEGRO_COLOR structure describes a color in a device independent\n way. Use al_map_rgb et al.\u00a0and al_unmap_rgb et al.\u00a0to translate\n from and to various color representations.

    \n@@ -676,16 +675,15 @@\n
  • ex_blend_test.c
  • \n
  • ex_logo.c
  • \n \n

    Locking and pixel formats

    \n

    ALLEGRO_LOCKED_REGION

    \n-
    typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n-typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;
    \n+
    typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;
    \n

    Source\n Code

    \n

    Users who wish to manually edit or read from a bitmap are required to\n lock it first. The ALLEGRO_LOCKED_REGION structure represents the locked\n region of the bitmap. This call will work with any bitmap, including\n memory bitmaps.

    \n@@ -722,16 +720,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_lockbitmap.c#L21\">ex_lockbitmap.c\n
  • ex_premulalpha.c
  • \n
  • ex_multisample.c
  • \n \n

    ALLEGRO_PIXEL_FORMAT

    \n-
    typedef enum ALLEGRO_PIXEL_FORMAT\n-typedef enum ALLEGRO_PIXEL_FORMAT
    \n+
    typedef enum ALLEGRO_PIXEL_FORMAT
    \n

    Source\n Code

    \n

    Pixel formats. Each pixel format specifies the exact size and bit\n layout of a pixel in memory. Components are specified from high bits to\n low bits, so for example a fully opaque red pixel in ARGB_8888 format is\n 0xFFFF0000.

    \n@@ -1084,16 +1081,15 @@\n

    Examples:

    \n
      \n
    • ex_compressed.c
    • \n
    \n

    Bitmap creation

    \n

    ALLEGRO_BITMAP

    \n-
    typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n-typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;
    \n+
    typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;
    \n

    Source\n Code

    \n

    Abstract type representing a bitmap (2D image).

    \n

    Examples:

    \n
      \n
    • \n

      Unstable\n API: This is an experimental feature.

      \n \n

      See also: ALLEGRO_BITMAP_WRAP

      \n

      ALLEGRO_BITMAP_WRAP

      \n-
      typedef enum ALLEGRO_BITMAP_WRAP {\n-typedef enum ALLEGRO_BITMAP_WRAP {
      \n+
      typedef enum ALLEGRO_BITMAP_WRAP {
      \n

      Source\n Code

      \n

      Controls the how the pixel color is determined from a texture\n querying the texture coordinates are outside the usual bounds.

      \n
        \n
      • ALLEGRO_BITMAP_WRAP_DEFAULT - The default behavior. This\n@@ -3300,16 +3295,15 @@\n

        See also: al_init_image_addon, al_identify_bitmap, al_register_bitmap_identifier

        \n

        Render State

        \n

        ALLEGRO_RENDER_STATE

        \n
        typedef enum ALLEGRO_RENDER_STATE {\n-typedef enum ALLEGRO_RENDER_STATE {
        \n+class=\"sourceCode c\">typedef enum ALLEGRO_RENDER_STATE {\n

        Source\n Code

        \n

        Possible render states which can be set with al_set_render_state:

        \n
        \n
        ALLEGRO_ALPHA_TEST
        \n@@ -3357,16 +3351,15 @@\n

        See also: al_set_render_state, ALLEGRO_RENDER_FUNCTION,\n ALLEGRO_WRITE_MASK_FLAGS

        \n

        ALLEGRO_RENDER_FUNCTION

        \n
        typedef enum ALLEGRO_RENDER_FUNCTION {\n-typedef enum ALLEGRO_RENDER_FUNCTION {
        \n+class=\"sourceCode c\">typedef enum ALLEGRO_RENDER_FUNCTION {\n

        Source\n Code

        \n

        Possible functions are:

        \n
          \n
        • ALLEGRO_RENDER_NEVER
        • \n
        • ALLEGRO_RENDER_ALWAYS
        • \n@@ -3380,16 +3373,15 @@\n
        • ALLEGRO_RENDER_GREATER_EQUAL
        • \n
        \n

        Since: 5.1.2

        \n

        See also: al_set_render_state

        \n

        ALLEGRO_WRITE_MASK_FLAGS

        \n
        typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n-typedef enum ALLEGRO_WRITE_MASK_FLAGS {
        \n+class=\"sourceCode c\">typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n

        Source\n Code

        \n

        Each enabled bit means the corresponding value is written, a disabled\n bit means it is not.

        \n
          \n
        • ALLEGRO_MASK_RED
        • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -170,15 +170,14 @@\n o _\ba_\bl_\b__\bb_\ba_\bc_\bk_\bu_\bp_\b__\bd_\bi_\br_\bt_\by_\b__\bb_\bi_\bt_\bm_\ba_\bp\n o _\ba_\bl_\b__\bb_\ba_\bc_\bk_\bu_\bp_\b__\bd_\bi_\br_\bt_\by_\b__\bb_\bi_\bt_\bm_\ba_\bp_\bs\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* C\bCo\bol\blo\bor\brs\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCO\bOL\bLO\bOR\bR *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n-typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An ALLEGRO_COLOR structure describes a color in a device independent way. Use\n _\ba_\bl_\b__\bm_\ba_\bp_\b__\br_\bg_\bb et al.\u00a0and _\ba_\bl_\b__\bu_\bn_\bm_\ba_\bp_\b__\br_\bg_\bb et al.\u00a0to translate from and to various\n color representations.\n Examples:\n * _\be_\bx_\b__\bk_\be_\by_\bb_\bo_\ba_\br_\bd_\b__\bf_\bo_\bc_\bu_\bs_\b._\bc\n * _\be_\bx_\b__\bn_\bo_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bc\n@@ -307,15 +306,14 @@\n See also: _\ba_\bl_\b__\bu_\bn_\bm_\ba_\bp_\b__\br_\bg_\bb_\ba, _\ba_\bl_\b__\bu_\bn_\bm_\ba_\bp_\b__\br_\bg_\bb, _\ba_\bl_\b__\bu_\bn_\bm_\ba_\bp_\b__\br_\bg_\bb_\b__\bf\n Examples:\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b__\bt_\be_\bs_\bt_\b._\bc\n * _\be_\bx_\b__\bl_\bo_\bg_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* L\bLo\boc\bck\bki\bin\bng\bg a\ban\bnd\bd p\bpi\bix\bxe\bel\bl f\bfo\bor\brm\bma\bat\bts\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_L\bLO\bOC\bCK\bKE\bED\bD_\b_R\bRE\bEG\bGI\bIO\bON\bN *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n-typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Users who wish to manually edit or read from a bitmap are required to lock it\n first. The ALLEGRO_LOCKED_REGION structure represents the locked region of the\n bitmap. This call will work with any bitmap, including memory bitmaps.\n typedef struct ALLEGRO_LOCKED_REGION {\n void *data;\n int format;\n@@ -340,15 +338,14 @@\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bI_\bX_\bE_\bL_\b__\bF_\bO_\bR_\bM_\bA_\bT\n Examples:\n * _\be_\bx_\b__\bl_\bo_\bc_\bk_\bb_\bi_\bt_\bm_\ba_\bp_\b._\bc\n * _\be_\bx_\b__\bp_\br_\be_\bm_\bu_\bl_\ba_\bl_\bp_\bh_\ba_\b._\bc\n * _\be_\bx_\b__\bm_\bu_\bl_\bt_\bi_\bs_\ba_\bm_\bp_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPI\bIX\bXE\bEL\bL_\b_F\bFO\bOR\bRM\bMA\bAT\bT *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_PIXEL_FORMAT\n-typedef enum ALLEGRO_PIXEL_FORMAT\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Pixel formats. Each pixel format specifies the exact size and bit layout of a\n pixel in memory. Components are specified from high bits to low bits, so for\n example a fully opaque red pixel in ARGB_8888 format is 0xFFFF0000.\n N\bNo\bot\bte\be:\b:\n The pixel format is independent of endianness. That is, in the above\n example you can always get the red component with\n@@ -583,15 +580,14 @@\n Since: 5.1.9\n See also: _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\br_\be_\bg_\bi_\bo_\bn, _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bb_\bl_\bo_\bc_\bk_\be_\bd\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bm_\bp_\br_\be_\bs_\bs_\be_\bd_\b._\bc\n *\b**\b**\b**\b**\b**\b* B\bBi\bit\btm\bma\bap\bp c\bcr\bre\bea\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_B\bBI\bIT\bTM\bMA\bAP\bP *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n-typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Abstract type representing a bitmap (2D image).\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bv_\be_\br_\bt_\b._\bc\n * _\be_\bx_\b__\bn_\bo_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bc\n * _\be_\bx_\b__\bo_\bp_\be_\bn_\bg_\bl_\b__\bp_\bi_\bx_\be_\bl_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_b\bbi\bit\btm\bma\bap\bp *\b**\b**\b**\b**\b*\n@@ -909,15 +905,14 @@\n Returns the value currently set with _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bw_\br_\ba_\bp on the current\n thread.\n Since: 5.2.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: This is an experimental feature.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bB_\bI_\bT_\bM_\bA_\bP_\b__\bW_\bR_\bA_\bP\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_B\bBI\bIT\bTM\bMA\bAP\bP_\b_W\bWR\bRA\bAP\bP *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_BITMAP_WRAP {\n-typedef enum ALLEGRO_BITMAP_WRAP {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Controls the how the pixel color is determined from a texture querying the\n texture coordinates are outside the usual bounds.\n * ALLEGRO_BITMAP_WRAP_DEFAULT - The default behavior. This corresponds to\n ALLEGRO_BITMAP_WRAP_REPEAT when using the primitives addon and\n ALLEGRO_BITMAP_WRAP_CLAMP otherwise.\n * ALLEGRO_BITMAP_WRAP_REPEAT - The texture coordinates get shifted to the\n@@ -1940,15 +1935,14 @@\n bitmap type cannot be determined.\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bi_\bm_\ba_\bg_\be_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bb_\bi_\bt_\bm_\ba_\bp,\n _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\bi_\be_\br\n *\b**\b**\b**\b**\b**\b* R\bRe\ben\bnd\bde\ber\br S\bSt\bta\bat\bte\be *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_R\bRE\bEN\bND\bDE\bER\bR_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_RENDER_STATE {\n-typedef enum ALLEGRO_RENDER_STATE {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Possible render states which can be set with _\ba_\bl_\b__\bs_\be_\bt_\b__\br_\be_\bn_\bd_\be_\br_\b__\bs_\bt_\ba_\bt_\be:\n ALLEGRO_ALPHA_TEST\n If this is set to 1, the values of ALLEGRO_ALPHA_FUNCTION and\n ALLEGRO_ALPHA_TEST_VALUE define a comparison function which is performed\n on the alpha component of each pixel. Only if it evaluates to true the\n pixel is written. Otherwise no subsequent processing (like depth test or\n@@ -1971,30 +1965,28 @@\n ALLEGRO_DEPTH_FUNCTION\n One of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bR_\bE_\bN_\bD_\bE_\bR_\b__\bF_\bU_\bN_\bC_\bT_\bI_\bO_\bN, only used when ALLEGRO_DEPTH_TEST is 1.\n Since: 5.1.2\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\br_\be_\bn_\bd_\be_\br_\b__\bs_\bt_\ba_\bt_\be, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bR_\bE_\bN_\bD_\bE_\bR_\b__\bF_\bU_\bN_\bC_\bT_\bI_\bO_\bN,\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bW_\bR_\bI_\bT_\bE_\b__\bM_\bA_\bS_\bK_\b__\bF_\bL_\bA_\bG_\bS\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_R\bRE\bEN\bND\bDE\bER\bR_\b_F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bN *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_RENDER_FUNCTION {\n-typedef enum ALLEGRO_RENDER_FUNCTION {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Possible functions are:\n * ALLEGRO_RENDER_NEVER\n * ALLEGRO_RENDER_ALWAYS\n * ALLEGRO_RENDER_LESS\n * ALLEGRO_RENDER_EQUAL\n * ALLEGRO_RENDER_LESS_EQUAL\n * ALLEGRO_RENDER_GREATER\n * ALLEGRO_RENDER_NOT_EQUAL\n * ALLEGRO_RENDER_GREATER_EQUAL\n Since: 5.1.2\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\br_\be_\bn_\bd_\be_\br_\b__\bs_\bt_\ba_\bt_\be\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_W\bWR\bRI\bIT\bTE\bE_\b_M\bMA\bAS\bSK\bK_\b_F\bFL\bLA\bAG\bGS\bS *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n-typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Each enabled bit means the corresponding value is written, a disabled bit means\n it is not.\n * ALLEGRO_MASK_RED\n * ALLEGRO_MASK_GREEN\n * ALLEGRO_MASK_BLUE\n * ALLEGRO_MASK_ALPHA\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/haptic.html", "source2": "./usr/share/doc/allegro5-doc/refman/haptic.html", "unified_diff": "@@ -250,16 +250,15 @@\n file:

          \n
           #include <allegro5/allegro.h>
          \n

          Currently force feedback is fully supported on Linux and on Windows\n for DirectInput compatible devices. There is also minimal support for\n Android. It is not yet supported on OSX, iOS, or on Windows for XInput\n compatible devices.

          \n

          ALLEGRO_HAPTIC

          \n-
          typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n-typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;
          \n+
          typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;
          \n

          Source\n Code

          \n

          This is an abstract data type representing a haptic device that\n supports force feedback or vibration.

          \n

          Since: 5.1.8

          \n
          \n@@ -274,16 +273,15 @@\n
            \n
          • ex_haptic.c
          • \n
          • ex_haptic2.cpp
          • \n
          \n

          ALLEGRO_HAPTIC_CONSTANTS

          \n-
          enum ALLEGRO_HAPTIC_CONSTANTS\n-enum ALLEGRO_HAPTIC_CONSTANTS
          \n+
          enum ALLEGRO_HAPTIC_CONSTANTS
          \n

          Source\n Code

          \n

          This enum contains flags that are used to define haptic effects and\n capabilities. If the flag is set in the return value of al_get_haptic_capabilities,\n it means the device supports the given effect. The value of these flags\n@@ -322,16 +320,15 @@\n users.

          \n
          \n

          See also: al_get_haptic_capabilities,\n ALLEGRO_HAPTIC_EFFECT

          \n

          ALLEGRO_HAPTIC_EFFECT

          \n-
          struct ALLEGRO_HAPTIC_EFFECT\n-struct ALLEGRO_HAPTIC_EFFECT
          \n+
          struct ALLEGRO_HAPTIC_EFFECT
          \n

          Source\n Code

          \n

          This struct models a particular haptic or vibration effect. It needs\n to be filled in correctly and uploaded to a haptic device before the\n device can play it back.

          \n

          Fields:

          \n@@ -534,16 +531,15 @@\n
            \n
          • ex_haptic.c
          • \n
          • ex_haptic2.cpp
          • \n
          \n

          ALLEGRO_HAPTIC_EFFECT_ID

          \n-
          typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;\n-typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;
          \n+
          typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;
          \n

          Source\n Code

          \n

          This struct is used as a handle to control playback of a haptic\n effect and should be considered opaque. Its implementation is visible\n merely to allow allocation by the users of the Allegro library.

          \n

          Since: 5.1.8

          \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -82,29 +82,27 @@\n functions are declared in the main Allegro header file:\n #include \n Currently force feedback is fully supported on Linux and on Windows for\n DirectInput compatible devices. There is also minimal support for Android. It\n is not yet supported on OSX, iOS, or on Windows for XInput compatible devices.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_H\bHA\bAP\bPT\bTI\bIC\bC *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n-typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is an abstract data type representing a haptic device that supports force\n feedback or vibration.\n Since: 5.1.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: Perhaps could be simplified due to limited support for\n all the exposed features across all of the platforms. Awaiting\n feedback from users.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b__\bf_\br_\bo_\bm_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk\n Examples:\n * _\be_\bx_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b._\bc\n * _\be_\bx_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b2_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_H\bHA\bAP\bPT\bTI\bIC\bC_\b_C\bCO\bON\bNS\bST\bTA\bAN\bNT\bTS\bS *\b**\b**\b**\b**\b**\b*\n enum ALLEGRO_HAPTIC_CONSTANTS\n-enum ALLEGRO_HAPTIC_CONSTANTS\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This enum contains flags that are used to define haptic effects and\n capabilities. If the flag is set in the return value of\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b__\bc_\ba_\bp_\ba_\bb_\bi_\bl_\bi_\bt_\bi_\be_\bs, it means the device supports the given effect. The\n value of these flags should be set into a _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bH_\bA_\bP_\bT_\bI_\bC_\b__\bE_\bF_\bF_\bE_\bC_\bT struct to\n determine what kind of haptic effect should be played.\n * ALLEGRO_HAPTIC_RUMBLE - simple vibration effects\n@@ -129,15 +127,14 @@\n Since: 5.1.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: Perhaps could be simplified due to limited support for\n all the exposed features across all of the platforms. Awaiting\n feedback from users.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b__\bc_\ba_\bp_\ba_\bb_\bi_\bl_\bi_\bt_\bi_\be_\bs, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bH_\bA_\bP_\bT_\bI_\bC_\b__\bE_\bF_\bF_\bE_\bC_\bT\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_H\bHA\bAP\bPT\bTI\bIC\bC_\b_E\bEF\bFF\bFE\bEC\bCT\bT *\b**\b**\b**\b**\b**\b*\n struct ALLEGRO_HAPTIC_EFFECT\n-struct ALLEGRO_HAPTIC_EFFECT\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This struct models a particular haptic or vibration effect. It needs to be\n filled in correctly and uploaded to a haptic device before the device can play\n it back.\n F\bFi\bie\bel\bld\bds\bs:\b:\n type\n The type of the haptic effect. May be one of the ALLEGRO_HAPTIC_CONSTANTS\n@@ -294,15 +291,14 @@\n all the exposed features across all of the platforms. Awaiting\n feedback from users.\n Examples:\n * _\be_\bx_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b._\bc\n * _\be_\bx_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b2_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_H\bHA\bAP\bPT\bTI\bIC\bC_\b_E\bEF\bFF\bFE\bEC\bCT\bT_\b_I\bID\bD *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;\n-typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This struct is used as a handle to control playback of a haptic effect and\n should be considered opaque. Its implementation is visible merely to allow\n allocation by the users of the Allegro library.\n Since: 5.1.8\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: Perhaps could be simplified due to limited support for\n all the exposed features across all of the platforms. Awaiting\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/image.html", "source2": "./usr/share/doc/allegro5-doc/refman/image.html", "unified_diff": "@@ -187,16 +187,15 @@\n allegro_image.

          \n
           #include <allegro5/allegro_image.h>
          \n

          Some of the format handlers define configuration options for\n specifying things like compression level or gamma handling. Refer to al_get_system_config for\n their documentation.

          \n

          al_init_image_addon

          \n-
          bool al_init_image_addon(void)\n-bool al_init_image_addon(void)
          \n+
          bool al_init_image_addon(void)
          \n

          Source\n Code

          \n

          Initializes the image addon. This registers bitmap format handlers\n for al_load_bitmap, al_load_bitmap_f, al_save_bitmap, ex_nodisplay.c\n

        • ex_opengl_pixel_shader.c
        • \n
        \n al_is_image_addon_initialized\n-
        bool al_is_image_addon_initialized(void)\n-bool al_is_image_addon_initialized(void)
        \n+
        bool al_is_image_addon_initialized(void)
        \n

        Source\n Code

        \n

        Returns true if the image addon is initialized, otherwise returns\n false.

        \n

        Since: 5.2.6

        \n

        al_shutdown_image_addon

        \n-
        void al_shutdown_image_addon(void)\n-void al_shutdown_image_addon(void)
        \n+
        void al_shutdown_image_addon(void)
        \n

        Source\n Code

        \n

        Shut down the image addon. This is done automatically at program\n exit, but can be called any time the user wishes as well.

        \n

        al_get_allegro_image_version

        \n-
        uint32_t al_get_allegro_image_version(void)\n-uint32_t al_get_allegro_image_version(void)
        \n+
        uint32_t al_get_allegro_image_version(void)
        \n

        Source\n Code

        \n

        Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

        \n

        \n Allegro version 5.2.9\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -51,15 +51,14 @@\n allegro_image.\n #include \n Some of the format handlers define configuration options for specifying things\n like compression level or gamma handling. Refer to _\ba_\bl_\b__\bg_\be_\bt_\b__\bs_\by_\bs_\bt_\be_\bm_\b__\bc_\bo_\bn_\bf_\bi_\bg for\n their documentation.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_i\bim\bma\bag\bge\be_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n bool al_init_image_addon(void)\n-bool al_init_image_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Initializes the image addon. This registers bitmap format handlers for\n _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp, _\ba_\bl_\b__\bl_\bo_\ba_\bd_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf, _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bb_\bi_\bt_\bm_\ba_\bp, _\ba_\bl_\b__\bs_\ba_\bv_\be_\b__\bb_\bi_\bt_\bm_\ba_\bp_\b__\bf.\n The following types are built into the Allegro image addon and guaranteed to be\n available: BMP, DDS, PCX, TGA. Every platform also supports JPEG and PNG via\n external dependencies.\n Other formats may be available depending on the operating system and installed\n@@ -71,24 +70,21 @@\n have the pixel format matching the format in the file.\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bv_\be_\br_\bt_\b._\bc\n * _\be_\bx_\b__\bn_\bo_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bc\n * _\be_\bx_\b__\bo_\bp_\be_\bn_\bg_\bl_\b__\bp_\bi_\bx_\be_\bl_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_i\bim\bma\bag\bge\be_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b**\b*\n bool al_is_image_addon_initialized(void)\n-bool al_is_image_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the image addon is initialized, otherwise returns false.\n Since: 5.2.6\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_i\bim\bma\bag\bge\be_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n void al_shutdown_image_addon(void)\n-void al_shutdown_image_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Shut down the image addon. This is done automatically at program exit, but can\n be called any time the user wishes as well.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_i\bim\bma\bag\bge\be_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_image_version(void)\n-uint32_t al_get_allegro_image_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/joystick.html", "source2": "./usr/share/doc/allegro5-doc/refman/joystick.html", "unified_diff": "@@ -223,16 +223,15 @@\n Xinput one. If support for XInput was compiled in, then it can be\n enabled by calling al_set_config_value(al_get_system_config(),\n \u201cjoystick\u201d, \u201cdriver\u201d, \u201cxinput\u201d) before calling al_install_joystick, or\n by setting the same option in the allegro5.cfg configuration file. The\n Xinput and DirectInput drivers are mutually exclusive. The haptics\n subsystem will use the same driver as the joystick system does.

        \n

        ALLEGRO_JOYSTICK

        \n-
        typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n-typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;
        \n+
        typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;
        \n

        Source\n Code

        \n

        This is an abstract data type representing a physical joystick.

        \n

        See also: al_get_joystick

        \n

        Examples:

        \n@@ -241,16 +240,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_haptic.c#L14\">ex_haptic.c
      • \n
      • ex_joystick_hotplugging.c
      • \n
      • ex_joystick_events.c
      • \n
      \n

      ALLEGRO_JOYSTICK_STATE

      \n-
      typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n-typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;
      \n+
      typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;
      \n

      Source\n Code

      \n

      This is a structure that is used to hold a \u201csnapshot\u201d of a joystick\u2019s\n axes and buttons at a particular instant. All fields public and\n read-only.

      \n
      struct {\n@@ -263,16 +261,15 @@\n 
        \n
      • ex_joystick_hotplugging.c
      • \n
      • ex_joystick_events.c
      • \n
      \n

      ALLEGRO_JOYFLAGS

      \n-
      enum ALLEGRO_JOYFLAGS\n-enum ALLEGRO_JOYFLAGS
      \n+
      enum ALLEGRO_JOYFLAGS
      \n

      Source\n Code

      \n
        \n
      • ALLEGRO_JOYFLAG_DIGITAL - the stick provides digital input
      • \n
      • ALLEGRO_JOYFLAG_ANALOGUE - the stick provides analogue input
      • \n
      \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -71,39 +71,36 @@\n al_set_config_value(al_get_system_config(), \u201cjoystick\u201d, \u201cdriver\u201d, \u201cxinput\u201d)\n before calling al_install_joystick, or by setting the same option in the\n allegro5.cfg configuration file. The Xinput and DirectInput drivers are\n mutually exclusive. The haptics subsystem will use the same driver as the\n joystick system does.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_J\bJO\bOY\bYS\bST\bTI\bIC\bCK\bK *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n-typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is an abstract data type representing a physical joystick.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk\n Examples:\n * _\be_\bx_\b__\bh_\ba_\bp_\bt_\bi_\bc_\b._\bc\n * _\be_\bx_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\bh_\bo_\bt_\bp_\bl_\bu_\bg_\bg_\bi_\bn_\bg_\b._\bc\n * _\be_\bx_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_J\bJO\bOY\bYS\bST\bTI\bIC\bCK\bK_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n-typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is a structure that is used to hold a \u201csnapshot\u201d of a joystick\u2019s axes and\n buttons at a particular instant. All fields public and read-only.\n struct {\n float axis[num_axes]; // -1.0 to 1.0\n } stick[num_sticks];\n int button[num_buttons]; // 0 to 32767\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\bs_\bt_\ba_\bt_\be\n Examples:\n * _\be_\bx_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\bh_\bo_\bt_\bp_\bl_\bu_\bg_\bg_\bi_\bn_\bg_\b._\bc\n * _\be_\bx_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_J\bJO\bOY\bYF\bFL\bLA\bAG\bGS\bS *\b**\b**\b**\b**\b**\b*\n enum ALLEGRO_JOYFLAGS\n-enum ALLEGRO_JOYFLAGS\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n * ALLEGRO_JOYFLAG_DIGITAL - the stick provides digital input\n * ALLEGRO_JOYFLAG_ANALOGUE - the stick provides analogue input\n (this enum is a holdover from the old API and may be removed)\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\bs_\bt_\bi_\bc_\bk_\b__\bf_\bl_\ba_\bg_\bs\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bns\bst\bta\bal\bll\bl_\b_j\bjo\boy\bys\bst\bti\bic\bck\bk *\b**\b**\b**\b**\b**\b*\n bool al_install_joystick(void)\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/keyboard.html", "source2": "./usr/share/doc/allegro5-doc/refman/keyboard.html", "unified_diff": "@@ -198,16 +198,15 @@\n
    • al_get_keyboard_event_source
    • \n
    \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_KEYBOARD_STATE

    \n-
    typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n-typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;
    \n+
    typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;
    \n

    Source\n Code

    \n

    This is a structure that is used to hold a \u201csnapshot\u201d of a keyboard\u2019s\n state at a particular instant. It contains the following publically\n readable fields:

    \n
      \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -56,15 +56,14 @@\n * _\ba_\bl_\b__\bc_\ba_\bn_\b__\bs_\be_\bt_\b__\bk_\be_\by_\bb_\bo_\ba_\br_\bd_\b__\bl_\be_\bd_\bs\n * _\ba_\bl_\b__\bs_\be_\bt_\b__\bk_\be_\by_\bb_\bo_\ba_\br_\bd_\b__\bl_\be_\bd_\bs\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bk_\be_\by_\bb_\bo_\ba_\br_\bd_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_K\bKE\bEY\bYB\bBO\bOA\bAR\bRD\bD_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n-typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is a structure that is used to hold a \u201csnapshot\u201d of a keyboard\u2019s state at\n a particular instant. It contains the following publically readable fields:\n * display - points to the display that had keyboard focus at the time the\n state was saved. If no display was focused, this points to NULL.\n You cannot read the state of keys directly. Use the function _\ba_\bl_\b__\bk_\be_\by_\b__\bd_\bo_\bw_\bn.\n Examples:\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/memfile.html", "source2": "./usr/share/doc/allegro5-doc/refman/memfile.html", "unified_diff": "@@ -181,16 +181,15 @@\n \n

      The memfile interface allows you to treat a fixed block of contiguous\n memory as a file that can be used with Allegro\u2019s I/O functions.

      \n

      These functions are declared in the following header file. Link with\n allegro_memfile.

      \n
       #include <allegro5/allegro_memfile.h>
      \n

      al_open_memfile

      \n-
      ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)\n-ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)
      \n+
      ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)
      \n

      Source\n Code

      \n

      Returns a file handle to the block of memory. All read and write\n operations act upon the memory directly, so it must not be freed while\n the file remains open.

      \n

      The mode can be any combination of \u201cr\u201d (readable) and \u201cw\u201d (writable).\n@@ -204,16 +203,15 @@\n

      Examples:

      \n
        \n
      • ex_memfile.c
      • \n
      \n al_get_allegro_memfile_version\n-
      uint32_t al_get_allegro_memfile_version(void)\n-uint32_t al_get_allegro_memfile_version(void)
      \n+
      uint32_t al_get_allegro_memfile_version(void)
      \n

      Source\n Code

      \n

      Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

      \n

      \n Allegro version 5.2.9\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -48,26 +48,24 @@\n The memfile interface allows you to treat a fixed block of contiguous memory as\n a file that can be used with Allegro\u2019s I/O functions.\n These functions are declared in the following header file. Link with\n allegro_memfile.\n #include \n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_o\bop\bpe\ben\bn_\b_m\bme\bem\bmf\bfi\bil\ble\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)\n-ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns a file handle to the block of memory. All read and write operations act\n upon the memory directly, so it must not be freed while the file remains open.\n The mode can be any combination of \u201cr\u201d (readable) and \u201cw\u201d (writable).\n Regardless of the mode, the file always opens at position 0. The file size is\n fixed and cannot be expanded. The file is always read from/written to in binary\n mode, which means that no newline translation is performed.\n It should be closed with _\ba_\bl_\b__\bf_\bc_\bl_\bo_\bs_\be. After the file is closed, you are\n responsible for freeing the memory (if needed).\n Examples:\n * _\be_\bx_\b__\bm_\be_\bm_\bf_\bi_\bl_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_m\bme\bem\bmf\bfi\bil\ble\be_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_memfile_version(void)\n-uint32_t al_get_allegro_memfile_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/memory.html", "source2": "./usr/share/doc/allegro5-doc/refman/memory.html", "unified_diff": "@@ -191,17 +191,15 @@\n id=\"toc-al_set_memory_interface\">al_set_memory_interface\n

    \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    al_malloc

    \n
    #define al_malloc(n) \\\n-   (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n-#define al_malloc(n) \\\n-   (al_malloc_with_context((n), __LINE__, __FILE__, __func__))
    \n+ (al_malloc_with_context((n), __LINE__, __FILE__, __func__))
    \n

    Source\n Code

    \n

    Like malloc() in the C standard library, but the implementation may\n be overridden.

    \n

    This is a macro.

    \n

    See also: al_free, ex_audio_timer.c\n

  • ex_vertex_buffer.c
  • \n \n

    al_free

    \n
    #define al_free(p) \\\n-   (al_free_with_context((p), __LINE__, __FILE__, __func__))\n-#define al_free(p) \\\n-   (al_free_with_context((p), __LINE__, __FILE__, __func__))
    \n+ (al_free_with_context((p), __LINE__, __FILE__, __func__))
    \n

    Source\n Code

    \n

    Like free() in the C standard library, but the implementation may be\n overridden.

    \n

    Additionally, on Windows, a memory block allocated by one DLL must be\n freed from the same DLL. In the few places where an Allegro function\n@@ -240,30 +236,26 @@\n

  • ex_drag_and_drop.c
  • \n
  • ex_record_name.c
  • \n \n

    al_realloc

    \n
    #define al_realloc(p, n) \\\n-   (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))\n-#define al_realloc(p, n) \\\n-   (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))
    \n+ (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))
    \n

    Source\n Code

    \n

    Like realloc() in the C standard library, but the implementation may\n be overridden.

    \n

    This is a macro.

    \n

    See also: al_malloc, al_realloc_with_context

    \n

    al_calloc

    \n
    #define al_calloc(c, n) \\\n-   (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n-#define al_calloc(c, n) \\\n-   (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))
    \n+ (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n

    Source\n Code

    \n

    Like calloc() in the C standard library, but the implementation may\n be overridden.

    \n

    This is a macro.

    \n

    See also: al_malloc,

    \n

    This calls calloc() from the Allegro library (this matters on\n Windows), unless overridden with al_set_memory_interface,

    \n

    Generally you should use the al_calloc macro.

    \n

    ALLEGRO_MEMORY_INTERFACE

    \n-
    typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n-typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;
    \n+
    typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;
    \n

    Source\n Code

    \n

    This structure has the following fields.

    \n
    void *(*mi_malloc)(size_t n, int line, const char *file, const char *func);\n void (*mi_free)(void *ptr, int line, const char *file, const char *func);\n void *(*mi_realloc)(void *ptr, size_t n, int line, const char *file,\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -54,30 +54,26 @@\n     * _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bM_\bE_\bM_\bO_\bR_\bY_\b__\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE\n     * _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bm_\bo_\br_\by_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be\n These functions are declared in the main Allegro header file:\n  #include \n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_m\bma\bal\bll\blo\boc\bc *\b**\b**\b**\b**\b**\b*\n #define al_malloc(n) \\\n    (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n-#define al_malloc(n) \\\n-   (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like malloc() in the C standard library, but the implementation may be\n overridden.\n This is a macro.\n See also: _\ba_\bl_\b__\bf_\br_\be_\be, _\ba_\bl_\b__\br_\be_\ba_\bl_\bl_\bo_\bc, _\ba_\bl_\b__\bc_\ba_\bl_\bl_\bo_\bc, _\ba_\bl_\b__\bm_\ba_\bl_\bl_\bo_\bc_\b__\bw_\bi_\bt_\bh_\b__\bc_\bo_\bn_\bt_\be_\bx_\bt,\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bm_\bo_\br_\by_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be\n Examples:\n     * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bt_\bi_\bm_\be_\br_\b._\bc\n     * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_f\bfr\bre\bee\be *\b**\b**\b**\b**\b**\b*\n #define al_free(p) \\\n    (al_free_with_context((p), __LINE__, __FILE__, __func__))\n-#define al_free(p) \\\n-   (al_free_with_context((p), __LINE__, __FILE__, __func__))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like free() in the C standard library, but the implementation may be\n overridden.\n Additionally, on Windows, a memory block allocated by one DLL must be freed\n from the same DLL. In the few places where an Allegro function returns a\n pointer that must be freed, you must use _\ba_\bl_\b__\bf_\br_\be_\be for portability to Windows.\n This is a macro.\n@@ -85,26 +81,22 @@\n Examples:\n     * _\be_\bx_\b__\bc_\bl_\bi_\bp_\bb_\bo_\ba_\br_\bd_\b._\bc\n     * _\be_\bx_\b__\bd_\br_\ba_\bg_\b__\ba_\bn_\bd_\b__\bd_\br_\bo_\bp_\b._\bc\n     * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bea\bal\bll\blo\boc\bc *\b**\b**\b**\b**\b**\b*\n #define al_realloc(p, n) \\\n    (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))\n-#define al_realloc(p, n) \\\n-   (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like realloc() in the C standard library, but the implementation may be\n overridden.\n This is a macro.\n See also: _\ba_\bl_\b__\bm_\ba_\bl_\bl_\bo_\bc, _\ba_\bl_\b__\br_\be_\ba_\bl_\bl_\bo_\bc_\b__\bw_\bi_\bt_\bh_\b__\bc_\bo_\bn_\bt_\be_\bx_\bt\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bca\bal\bll\blo\boc\bc *\b**\b**\b**\b**\b**\b*\n #define al_calloc(c, n) \\\n    (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n-#define al_calloc(c, n) \\\n-   (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like calloc() in the C standard library, but the implementation may be\n overridden.\n This is a macro.\n See also: _\ba_\bl_\b__\bm_\ba_\bl_\bl_\bo_\bc, _\ba_\bl_\b__\bc_\ba_\bl_\bl_\bo_\bc_\b__\bw_\bi_\bt_\bh_\b__\bc_\bo_\bn_\bt_\be_\bx_\bt\n Examples:\n     * _\be_\bx_\b__\br_\be_\bc_\bo_\br_\bd_\b__\bn_\ba_\bm_\be_\b._\bc\n@@ -134,15 +126,14 @@\n    int line, const char *file, const char *func)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This calls calloc() from the Allegro library (this matters on Windows), unless\n overridden with _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bm_\bo_\br_\by_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be,\n Generally you should use the _\ba_\bl_\b__\bc_\ba_\bl_\bl_\bo_\bc macro.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bME\bEM\bMO\bOR\bRY\bY_\b_I\bIN\bNT\bTE\bER\bRF\bFA\bAC\bCE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n-typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This structure has the following fields.\n void *(*mi_malloc)(size_t n, int line, const char *file, const char *func);\n void (*mi_free)(void *ptr, int line, const char *file, const char *func);\n void *(*mi_realloc)(void *ptr, size_t n, int line, const char *file,\n                     const char *func);\n void *(*mi_calloc)(size_t count, size_t n, int line, const char *file,\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/misc.html", "source2": "./usr/share/doc/allegro5-doc/refman/misc.html", "unified_diff": "@@ -176,16 +176,15 @@\n 
  • ALLEGRO_PI
  • \n
  • al_run_main
  • \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_PI

    \n-
    #define ALLEGRO_PI        3.14159265358979323846\n-#define ALLEGRO_PI        3.14159265358979323846
    \n+
    #define ALLEGRO_PI        3.14159265358979323846
    \n

    Source\n Code

    \n

    C99 compilers have no predefined value like M_PI for the constant \u03c0,\n but you can use this one instead.

    \n

    Examples:

    \n
      \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -45,15 +45,14 @@\n *\b**\b**\b**\b**\b**\b* M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n * _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bI\n * _\ba_\bl_\b__\br_\bu_\bn_\b__\bm_\ba_\bi_\bn\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPI\bI *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_PI 3.14159265358979323846\n-#define ALLEGRO_PI 3.14159265358979323846\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n C99 compilers have no predefined value like M_PI for the constant \u03c0, but you\n can use this one instead.\n Examples:\n * _\be_\bx_\b__\bc_\bo_\bn_\bv_\be_\br_\bt_\b._\bc\n * _\be_\bx_\b__\bo_\bp_\be_\bn_\bg_\bl_\b._\bc\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b__\bb_\be_\bn_\bc_\bh_\b._\bc\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/monitor.html", "source2": "./usr/share/doc/allegro5-doc/refman/monitor.html", "unified_diff": "@@ -188,16 +188,15 @@\n
    • al_get_monitor_refresh_rate
    • \n
    \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_MONITOR_INFO

    \n-
    typedef struct ALLEGRO_MONITOR_INFO\n-typedef struct ALLEGRO_MONITOR_INFO
    \n+
    typedef struct ALLEGRO_MONITOR_INFO
    \n

    Source\n Code

    \n

    Describes a monitor\u2019s size and position relative to other monitors.\n x1, y1 will be 0, 0 on the primary display. Other monitors can have\n negative values if they are to the left or above the primary display.\n x2, y2 are the coordinates one beyond the bottom right pixel, so that\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -50,15 +50,14 @@\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bo_\bn_\bi_\bt_\bo_\br_\b__\bd_\bp_\bi\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\bu_\bm_\b__\bv_\bi_\bd_\be_\bo_\b__\ba_\bd_\ba_\bp_\bt_\be_\br_\bs\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bo_\bn_\bi_\bt_\bo_\br_\b__\br_\be_\bf_\br_\be_\bs_\bh_\b__\br_\ba_\bt_\be\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMO\bON\bNI\bIT\bTO\bOR\bR_\b_I\bIN\bNF\bFO\bO *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MONITOR_INFO\n-typedef struct ALLEGRO_MONITOR_INFO\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Describes a monitor\u2019s size and position relative to other monitors. x1, y1 will\n be 0, 0 on the primary display. Other monitors can have negative values if they\n are to the left or above the primary display. x2, y2 are the coordinates one\n beyond the bottom right pixel, so that x2-x1 gives the width and y2-y1 gives\n the height of the display.\n typedef struct ALLEGRO_MONITOR_INFO\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/mouse.html", "source2": "./usr/share/doc/allegro5-doc/refman/mouse.html", "unified_diff": "@@ -229,16 +229,15 @@\n id=\"toc-al_ungrab_mouse\">al_ungrab_mouse\n \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_MOUSE_STATE

    \n-
    typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n-typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;
    \n+
    typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;
    \n

    Source\n Code

    \n

    Public fields (read only):

    \n
      \n
    • x - mouse x position

    • \n
    • y - mouse y position

    • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -70,15 +70,14 @@\n o _\ba_\bl_\b__\bs_\bh_\bo_\bw_\b__\bm_\bo_\bu_\bs_\be_\b__\bc_\bu_\br_\bs_\bo_\br\n o _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bm_\bo_\bu_\bs_\be\n o _\ba_\bl_\b__\bu_\bn_\bg_\br_\ba_\bb_\b__\bm_\bo_\bu_\bs_\be\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMO\bOU\bUS\bSE\bE_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n-typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Public fields (read only):\n * x - mouse x position\n * y - mouse y position\n * w, z - mouse wheel position (2D \u2018ball\u2019)\n * buttons - mouse buttons bitfield\n The zeroth bit is set if the primary mouse button is held down, the first\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/native_dialog.html", "source2": "./usr/share/doc/allegro5-doc/refman/native_dialog.html", "unified_diff": "@@ -262,42 +262,39 @@\n
    \n \n \n

    These functions are declared in the following header file. Link with\n allegro_dialog.

    \n
     #include <allegro5/allegro_native_dialog.h>
    \n

    ALLEGRO_FILECHOOSER

    \n-
    typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n-typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;
    \n+
    typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;
    \n

    Source\n Code

    \n

    Opaque handle to a native file dialog.

    \n

    Examples:

    \n
      \n
    • ex_native_filechooser.c
    • \n
    \n

    ALLEGRO_TEXTLOG

    \n-
    typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n-typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;
    \n+
    typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;
    \n

    Source\n Code

    \n

    Opaque handle to a text log window.

    \n

    Examples:

    \n
      \n
    • common.c
    • \n
    • ex_native_filechooser.c
    • \n
    \n

    al_init_native_dialog_addon

    \n-
    bool al_init_native_dialog_addon(void)\n-bool al_init_native_dialog_addon(void)
    \n+
    bool al_init_native_dialog_addon(void)
    \n

    Source\n Code

    \n

    Initialise the native dialog addon.

    \n

    Returns true on success, false on error.

    \n

    Since: 5.0.9, 5.1.0

    \n
    \n@@ -318,44 +315,37 @@\n
  • ex_window_maximized.c
  • \n
  • ex_menu.c
  • \n \n al_is_native_dialog_addon_initialized\n-
    bool al_is_native_dialog_addon_initialized(void)\n-bool al_is_native_dialog_addon_initialized(void)
    \n+
    bool al_is_native_dialog_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the native dialog addon is initialized, otherwise\n returns false.

    \n

    Since: 5.2.6

    \n al_shutdown_native_dialog_addon\n-
    void al_shutdown_native_dialog_addon(void)\n-void al_shutdown_native_dialog_addon(void)
    \n+
    void al_shutdown_native_dialog_addon(void)
    \n

    Source\n Code

    \n

    Shut down the native dialog addon.

    \n

    Since: 5.0.9, 5.1.5

    \n

    See also: al_init_native_dialog_addon

    \n

    al_create_native_file_dialog

    \n
    ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n    char const *initial_path,\n    char const *title,\n    char const *patterns,\n-   int mode)\n-ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n-   char const *initial_path,\n-   char const *title,\n-   char const *patterns,\n-   int mode)
    \n+ int mode)
    \n

    Source\n Code

    \n

    Creates a new native file dialog. You should only have one such\n dialog opened at a time.

    \n

    Parameters:

    \n
      \n@@ -417,17 +407,15 @@\n

      Examples:

      \n
        \n
      • ex_native_filechooser.c
      • \n
      \n

      al_show_native_file_dialog

      \n
      bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n-   ALLEGRO_FILECHOOSER *dialog)\n-bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n-   ALLEGRO_FILECHOOSER *dialog)
      \n+ ALLEGRO_FILECHOOSER *dialog)\n

      Source\n Code

      \n

      Show the dialog window. The display may be NULL, otherwise the given\n display is treated as the parent if possible.

      \n

      This function blocks the calling thread until it returns, so you may\n want to spawn a thread with Examples:

      \n
        \n
      • ex_native_filechooser.c
      • \n
      \n al_get_native_file_dialog_count\n-
      int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)\n-int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)
      \n+
      int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)
      \n

      Source\n Code

      \n

      Returns the number of files selected, or 0 if the dialog was\n cancelled.

      \n

      Examples:

      \n
        \n
      • ex_native_filechooser.c
      • \n
      \n al_get_native_file_dialog_path\n
      const char *al_get_native_file_dialog_path(\n-   const ALLEGRO_FILECHOOSER *dialog, size_t i)\n-const char *al_get_native_file_dialog_path(\n-   const ALLEGRO_FILECHOOSER *dialog, size_t i)
      \n+ const ALLEGRO_FILECHOOSER *dialog, size_t i)\n

      Source\n Code

      \n

      Returns one of the selected paths with index i. The\n index should range from 0 to the return value of al_get_native_file_dialog_count\n -1.

      \n

      Examples:

      \n
        \n
      • ex_native_filechooser.c
      • \n
      \n al_destroy_native_file_dialog\n-
      void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n-void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)
      \n+
      void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)
      \n

      Source\n Code

      \n

      Frees up all resources used by the file dialog.

      \n

      Examples:

      \n
        \n
      • ex_native_filechooser.c
      • \n
      \n

      al_show_native_message_box

      \n
      int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n    char const *title, char const *heading, char const *text,\n-   char const *buttons, int flags)\n-int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n-   char const *title, char const *heading, char const *text,\n-   char const *buttons, int flags)
      \n+ char const *buttons, int flags)\n

      Source\n Code

      \n

      Show a native GUI message box. This can be used for example to\n display an error message if creation of an initial display fails. The\n display may be NULL, otherwise the given display is treated as the\n parent if possible.

      \n@@ -566,16 +547,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_nodisplay.c#L54\">ex_nodisplay.c\n
    • common.c
    • \n
    • ex_menu.c
    • \n
    \n

    al_open_native_text_log

    \n-
    ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)\n-ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)
    \n+
    ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)
    \n

    Source\n Code

    \n

    Opens a window to which you can append log messages with al_append_native_text_log.\n This can be useful for debugging if you don\u2019t want to depend on a\n console being available.

    \n@@ -605,16 +585,15 @@\n
      \n
    • common.c
    • \n
    • ex_native_filechooser.c
    • \n
    \n

    al_close_native_text_log

    \n-
    void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n-void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)
    \n+
    void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)
    \n

    Source\n Code

    \n

    Closes a message log window opened with al_open_native_text_log\n earlier.

    \n

    Does nothing if passed NULL.

    \n@@ -625,17 +604,15 @@\n
  • common.c
  • \n
  • ex_native_filechooser.c
  • \n \n

    al_append_native_text_log

    \n
    void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n-   char const *format, ...)\n-void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n-   char const *format, ...)
    \n+ char const *format, ...)\n

    Source\n Code

    \n

    Appends a line of text to the message log window and scrolls to the\n bottom (if the line would not be visible otherwise). This works like\n printf. A line is continued until you add a newline character.

    \n

    If the window is NULL then this function will fall back to calling\n@@ -647,17 +624,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/common.c#L84\">common.c\n

  • ex_native_filechooser.c
  • \n \n al_get_native_text_log_event_source\n
    ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n-   ALLEGRO_TEXTLOG *textlog)\n-ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n-   ALLEGRO_TEXTLOG *textlog)
    \n+ ALLEGRO_TEXTLOG *textlog)\n

    Source\n Code

    \n

    Get an event source for a text log window. The possible events\n are:

    \n
    \n
    ALLEGRO_EVENT_NATIVE_DIALOG_CLOSE
    \n@@ -677,16 +652,15 @@\n
  • ex_saw.c
  • \n
  • ex_resample_test.c
  • \n \n al_get_allegro_native_dialog_version\n-
    uint32_t al_get_allegro_native_dialog_version(void)\n-uint32_t al_get_allegro_native_dialog_version(void)
    \n+
    uint32_t al_get_allegro_native_dialog_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    Menus

    \n

    Menus are implemented on Windows, X and OS X. Menus on X are\n@@ -736,29 +710,27 @@\n exit_program();\n }\n }\n

    Because there is no \u201cDISPLAY_DESTROYED\u201d event, you must call\n al_set_display_menu(display, NULL) before destroying any display with a\n menu attached, to avoid leaking resources.

    \n

    ALLEGRO_MENU

    \n-
    typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n-typedef struct ALLEGRO_MENU ALLEGRO_MENU;
    \n+
    typedef struct ALLEGRO_MENU ALLEGRO_MENU;
    \n

    Source\n Code

    \n

    An opaque data type that represents a menu that contains menu items.\n Each of the menu items may optionally include a sub-menu.

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    ALLEGRO_MENU_INFO

    \n-
    typedef struct ALLEGRO_MENU_INFO {\n-typedef struct ALLEGRO_MENU_INFO {
    \n+
    typedef struct ALLEGRO_MENU_INFO {
    \n

    Source\n Code

    \n

    A structure that defines how to create a complete menu system. For\n standard menu items, the following format is used:

    \n
       { caption, id, flags, icon }
    \n

    For special items, these macros are helpful:

    \n@@ -793,28 +765,26 @@\n href=\"native_dialog.html#al_build_menu\">al_build_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_create_menu

    \n-
    ALLEGRO_MENU *al_create_menu(void)\n-ALLEGRO_MENU *al_create_menu(void)
    \n+
    ALLEGRO_MENU *al_create_menu(void)
    \n

    Source\n Code

    \n

    Creates a menu container that can hold menu items.

    \n

    Returns NULL on failure.

    \n

    Since: 5.1.0

    \n

    See also: al_create_popup_menu,\n al_build_menu

    \n

    al_create_popup_menu

    \n-
    ALLEGRO_MENU *al_create_popup_menu(void)\n-ALLEGRO_MENU *al_create_popup_menu(void)
    \n+
    ALLEGRO_MENU *al_create_popup_menu(void)
    \n

    Source\n Code

    \n

    Creates a menu container for popup menus. Only the root (outermost)\n menu should be created with this function. Sub menus of popups should be\n created with al_create_menu.

    \n@@ -825,16 +795,15 @@\n href=\"native_dialog.html#al_build_menu\">al_build_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_build_menu

    \n-
    ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n-ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)
    \n+
    ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)
    \n

    Source\n Code

    \n

    Builds a menu based on the specifications of a sequence of\n ALLEGRO_MENU_INFO elements.

    \n

    Returns a pointer to the root ALLEGRO_MENU, or\n NULL on failure. To gain access to the other menus and\n@@ -848,17 +817,15 @@\n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_append_menu_item

    \n
    int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n-   int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n-   int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)
    \n+ int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n

    Source\n Code

    \n

    Appends a menu item to the end of the menu. See al_insert_menu_item\n for more information.

    \n

    Since: 5.1.0

    \n@@ -869,17 +836,15 @@\n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_insert_menu_item

    \n
    int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n-   uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n-   uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)
    \n+ uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n

    Source\n Code

    \n

    Inserts a menu item at the spot specified. See the introductory text\n for a detailed explanation of how the pos parameter is\n interpreted.

    \n

    The parent menu can be a popup menu or a regular menu.\n@@ -910,16 +875,15 @@\n

    Returns true on success.

    \n

    Since: 5.1.0

    \n

    See also: al_append_menu_item,\n al_remove_menu_item

    \n

    al_remove_menu_item

    \n-
    bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)\n-bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)
    \n+
    bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)
    \n

    Source\n Code

    \n

    Removes the specified item from the menu and destroys it. If the item\n contains a sub-menu, it too is destroyed. Any references to it are\n invalidated. If you want to preserve that sub-menu, you should first\n make a copy with al_destroy_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_clone_menu

    \n-
    ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)
    \n+
    ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Makes a copy of a menu so that it can be reused on another display.\n The menu being cloned can be anything: a regular menu, a popup menu, or\n a sub-menu.

    \n

    Returns the cloned menu.

    \n@@ -952,16 +915,15 @@\n href=\"native_dialog.html#al_clone_menu_for_popup\">al_clone_menu_for_popup

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_clone_menu_for_popup

    \n-
    ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)
    \n+
    ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Exactly like al_clone_menu, except that\n the copy is for a popup menu.

    \n

    Since: 5.1.0

    \n@@ -969,16 +931,15 @@\n href=\"native_dialog.html#al_clone_menu\">al_clone_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_destroy_menu

    \n-
    void al_destroy_menu(ALLEGRO_MENU *menu)\n-void al_destroy_menu(ALLEGRO_MENU *menu)
    \n+
    void al_destroy_menu(ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Destroys an entire menu, including its sub-menus. Any references to\n it or a sub-menu are no longer valid. It is safe to call this on a menu\n that is currently being displayed.

    \n

    Since: 5.1.0

    \n@@ -986,28 +947,26 @@\n href=\"native_dialog.html#al_remove_menu_item\">al_remove_menu_item

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_get_menu_item_caption

    \n-
    const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)\n-const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)
    \n+
    const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)
    \n

    Source\n Code

    \n

    Returns the caption associated with the menu item. It is valid as\n long as the caption is not modified.

    \n

    Returns NULL if the item was not found.

    \n

    Since: 5.1.0

    \n

    See also: al_set_menu_item_caption

    \n

    al_set_menu_item_caption

    \n-
    void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)\n-void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)
    \n+
    void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)
    \n

    Source\n Code

    \n

    Updates the menu item caption with the new caption. This\n will invalidate any previous calls to al_get_menu_item_caption.

    \n

    Since: 5.1.0

    \n@@ -1015,16 +974,15 @@\n href=\"native_dialog.html#al_get_menu_item_caption\">al_get_menu_item_caption

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_get_menu_item_flags

    \n-
    int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)\n-int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)
    \n+
    int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)
    \n

    Source\n Code

    \n

    Returns the currently set flags. See al_insert_menu_item\n for a description of the available flags.

    \n

    Returns -1 if the item was not found.

    \n@@ -1035,16 +993,15 @@\n href=\"native_dialog.html#al_toggle_menu_item_flags\">al_toggle_menu_item_flags

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_set_menu_item_flags

    \n-
    void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    \n+
    void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    \n

    Source\n Code

    \n

    Updates the menu item\u2019s flags. See al_insert_menu_item\n for a description of the available flags.

    \n

    Since: 5.1.0

    \n@@ -1054,16 +1011,15 @@\n href=\"native_dialog.html#al_toggle_menu_item_flags\">al_toggle_menu_item_flags

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_toggle_menu_item_flags

    \n-
    int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    \n+
    int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    \n

    Source\n Code

    \n

    Toggles the specified menu item\u2019s flags. See al_insert_menu_item\n for a description of the available flags.

    \n

    Returns a bitfield of only the specified flags that are set after the\n@@ -1076,31 +1032,29 @@\n al_get/set_menu_item_flags.

    \n \n

    See also: al_get_menu_item_flags,\n al_set_menu_item_flags

    \n

    al_get_menu_item_icon

    \n-
    ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)\n-ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)
    \n+
    ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)
    \n

    Source\n Code

    \n

    Returns the icon associated with the menu. It is safe to draw to the\n returned bitmap, but you must call al_set_menu_item_icon\n in order for the changes to be applied.

    \n

    Returns NULL if the item was not found or if it has no\n icon.

    \n

    Since: 5.1.0

    \n

    See also: al_set_menu_item_icon

    \n

    al_set_menu_item_icon

    \n-
    void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)\n-void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)
    \n+
    void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)
    \n

    Source\n Code

    \n

    Sets the icon for the specified menu item. The menu assumes ownership\n of the ALLEGRO_BITMAP and may invalidate the pointer, so\n you must clone it if you wish to continue using it.

    \n

    If a video bitmap is passed, it will automatically be converted to a\n@@ -1111,16 +1065,15 @@\n al_clone_bitmap

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_find_menu

    \n-
    ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)\n-ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)
    \n+
    ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)
    \n

    Source\n Code

    \n

    Searches in the haystack menu for any submenu with the\n given id. (Note that this only represents a literal ID, and\n cannot be used as an index.)

    \n

    Returns the menu, if found. Otherwise returns NULL.

    \n@@ -1130,17 +1083,15 @@\n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_find_menu_item

    \n
    bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,\n-   int *index)\n-bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,\n-   int *index)
    \n+ int *index)\n

    Source\n Code

    \n

    Searches in the haystack menu for an item with the given\n id. (Note that this only represents a literal ID, and\n cannot be used as an index.)

    \n

    If menu and index are not\n@@ -1149,16 +1100,15 @@\n was not found, then their values are undefined.)

    \n

    Returns true if the menu item was found.

    \n

    Since: 5.1.0

    \n

    See also: al_find_menu

    \n al_get_default_menu_event_source\n-
    ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)\n-ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)
    \n+
    ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)
    \n

    Source\n Code

    \n

    Returns the default event source used for menu clicks. If a menu was\n not given its own event source via al_enable_menu_event_source,\n then it will use this default source.

    \n@@ -1171,16 +1121,15 @@\n href=\"native_dialog.html#al_disable_menu_event_source\">al_disable_menu_event_source

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_enable_menu_event_source

    \n-
    ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)\n-ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)
    \n+
    ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Enables a unique event source for this menu. It and all of its\n sub-menus will use this event source. (It is safe to call this multiple\n times on the same menu.)

    \n

    Returns the event source.

    \n@@ -1188,40 +1137,37 @@\n

    See also: al_register_event_source,\n al_get_default_menu_event_source,\n al_disable_menu_event_source

    \n

    al_disable_menu_event_source

    \n-
    void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n-void al_disable_menu_event_source(ALLEGRO_MENU *menu)
    \n+
    void al_disable_menu_event_source(ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Disables a unique event source for the menu, causing it to use the\n default event source.

    \n

    Since: 5.1.0

    \n

    See also: al_get_default_menu_event_source,\n al_enable_menu_event_source

    \n

    al_get_display_menu

    \n-
    ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)
    \n+
    ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)
    \n

    Source\n Code

    \n

    Returns the menu associated with the display, or\n NULL if it does not have a menu.

    \n

    Since: 5.1.0

    \n

    See also: al_set_display_menu

    \n

    al_set_display_menu

    \n-
    bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)\n-bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)
    \n+
    bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)
    \n

    Source\n Code

    \n

    Associates the menu with the display and\n shows it. If there was a previous menu associated with the display, it\n will be destroyed. If you don\u2019t want that to happen, you should first\n remove the menu with al_remove_display_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_popup_menu

    \n-
    bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)\n-bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)
    \n+
    bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)
    \n

    Source\n Code

    \n

    Displays a context menu next to the mouse cursor. The menu must have\n been created with al_create_popup_menu.\n It generates events just like a regular display menu does. It is\n@@ -1272,16 +1217,15 @@\n href=\"native_dialog.html#al_create_popup_menu\">al_create_popup_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n

    al_remove_display_menu

    \n-
    ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)
    \n+
    ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)
    \n

    Source\n Code

    \n

    Detaches the menu associated with the display and returns it. The\n menu can then be used on a different display.

    \n

    If you simply want to destroy the active menu, you can call al_set_display_menu\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -88,30 +88,27 @@\n o _\ba_\bl_\b__\bp_\bo_\bp_\bu_\bp_\b__\bm_\be_\bn_\bu\n o _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu\n These functions are declared in the following header file. Link with\n allegro_dialog.\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_F\bFI\bIL\bLE\bEC\bCH\bHO\bOO\bOS\bSE\bER\bR *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n-typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Opaque handle to a native file dialog.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTE\bEX\bXT\bTL\bLO\bOG\bG *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n-typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Opaque handle to a text log window.\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_n\bna\bat\bti\biv\bve\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n bool al_init_native_dialog_addon(void)\n-bool al_init_native_dialog_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Initialise the native dialog addon.\n Returns true on success, false on error.\n Since: 5.0.9, 5.1.0\n N\bNo\bot\bte\be:\b: Prior to Allegro 5.1.0 native dialog functions could be called\n without explicit initialisation, but that is now deprecated. Future\n functionality may require explicit initialisation. An exception is\n@@ -120,37 +117,30 @@\n See also: _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bd_\bi_\ba_\bl_\bo_\bg_\b__\ba_\bd_\bd_\bo_\bn\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bm_\ba_\bx_\bi_\bm_\bi_\bz_\be_\bd_\b._\bc\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_n\bna\bat\bti\biv\bve\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b**\b*\n bool al_is_native_dialog_addon_initialized(void)\n-bool al_is_native_dialog_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the native dialog addon is initialized, otherwise returns\n false.\n Since: 5.2.6\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_n\bna\bat\bti\biv\bve\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n void al_shutdown_native_dialog_addon(void)\n-void al_shutdown_native_dialog_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Shut down the native dialog addon.\n Since: 5.0.9, 5.1.5\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bd_\bi_\ba_\bl_\bo_\bg_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_n\bna\bat\bti\biv\bve\be_\b_f\bfi\bil\ble\be_\b_d\bdi\bia\bal\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n char const *initial_path,\n char const *title,\n char const *patterns,\n int mode)\n-ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n- char const *initial_path,\n- char const *title,\n- char const *patterns,\n- int mode)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a new native file dialog. You should only have one such dialog opened\n at a time.\n Parameters:\n * initial_path: The initial search path and filename. Can be NULL. To start\n with a blank file name the string should end with a directory separator\n (this should be the common case).\n@@ -185,55 +175,46 @@\n are done, call _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\b__\bd_\bi_\ba_\bl_\bo_\bg on it.\n If a dialog window could not be created then this function returns NULL.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bho\bow\bw_\b_n\bna\bat\bti\biv\bve\be_\b_f\bfi\bil\ble\be_\b_d\bdi\bia\bal\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n ALLEGRO_FILECHOOSER *dialog)\n-bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n- ALLEGRO_FILECHOOSER *dialog)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Show the dialog window. The display may be NULL, otherwise the given display is\n treated as the parent if possible.\n This function blocks the calling thread until it returns, so you may want to\n spawn a thread with _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bt_\bh_\br_\be_\ba_\bd and call it from inside that thread.\n Returns true on success, false on failure.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_n\bna\bat\bti\biv\bve\be_\b_f\bfi\bil\ble\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_c\bco\bou\bun\bnt\bt *\b**\b**\b**\b**\b**\b*\n int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)\n-int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the number of files selected, or 0 if the dialog was cancelled.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_n\bna\bat\bti\biv\bve\be_\b_f\bfi\bil\ble\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_p\bpa\bat\bth\bh *\b**\b**\b**\b**\b**\b*\n const char *al_get_native_file_dialog_path(\n const ALLEGRO_FILECHOOSER *dialog, size_t i)\n-const char *al_get_native_file_dialog_path(\n- const ALLEGRO_FILECHOOSER *dialog, size_t i)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns one of the selected paths with index i. The index should range from 0\n to the return value of _\ba_\bl_\b__\bg_\be_\bt_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\b__\bd_\bi_\ba_\bl_\bo_\bg_\b__\bc_\bo_\bu_\bn_\bt -1.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_n\bna\bat\bti\biv\bve\be_\b_f\bfi\bil\ble\be_\b_d\bdi\bia\bal\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n-void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Frees up all resources used by the file dialog.\n Examples:\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bho\bow\bw_\b_n\bna\bat\bti\biv\bve\be_\b_m\bme\bes\bss\bsa\bag\bge\be_\b_b\bbo\box\bx *\b**\b**\b**\b**\b**\b*\n int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n char const *title, char const *heading, char const *text,\n char const *buttons, int flags)\n-int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n- char const *title, char const *heading, char const *text,\n- char const *buttons, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Show a native GUI message box. This can be used for example to display an error\n message if creation of an initial display fails. The display may be NULL,\n otherwise the given display is treated as the parent if possible.\n The message box will have a single \u201cOK\u201d button and use the style informative\n dialog boxes usually have on the native system. If the buttons parameter is not\n NULL, you can instead specify the button text in a string, with buttons\n@@ -278,15 +259,14 @@\n );\n Examples:\n * _\be_\bx_\b__\bn_\bo_\bd_\bi_\bs_\bp_\bl_\ba_\by_\b._\bc\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_o\bop\bpe\ben\bn_\b_n\bna\bat\bti\biv\bve\be_\b_t\bte\bex\bxt\bt_\b_l\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)\n-ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Opens a window to which you can append log messages with\n _\ba_\bl_\b__\ba_\bp_\bp_\be_\bn_\bd_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg. This can be useful for debugging if you don\u2019t want\n to depend on a console being available.\n Use _\ba_\bl_\b__\bc_\bl_\bo_\bs_\be_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg to close the window again.\n The flags available are:\n ALLEGRO_TEXTLOG_NO_CLOSE\n@@ -299,56 +279,50 @@\n are not implemented on the platform.\n See also: _\ba_\bl_\b__\ba_\bp_\bp_\be_\bn_\bd_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg, _\ba_\bl_\b__\bc_\bl_\bo_\bs_\be_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcl\blo\bos\bse\be_\b_n\bna\bat\bti\biv\bve\be_\b_t\bte\bex\bxt\bt_\b_l\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n-void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Closes a message log window opened with _\ba_\bl_\b__\bo_\bp_\be_\bn_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg earlier.\n Does nothing if passed NULL.\n See also: _\ba_\bl_\b__\bo_\bp_\be_\bn_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bt_\be_\bx_\bt_\b__\bl_\bo_\bg\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_a\bap\bpp\bpe\ben\bnd\bd_\b_n\bna\bat\bti\biv\bve\be_\b_t\bte\bex\bxt\bt_\b_l\blo\bog\bg *\b**\b**\b**\b**\b**\b*\n void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n char const *format, ...)\n-void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n- char const *format, ...)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Appends a line of text to the message log window and scrolls to the bottom (if\n the line would not be visible otherwise). This works like printf. A line is\n continued until you add a newline character.\n If the window is NULL then this function will fall back to calling printf. This\n makes it convenient to support logging to a window or a terminal.\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bn_\ba_\bt_\bi_\bv_\be_\b__\bf_\bi_\bl_\be_\bc_\bh_\bo_\bo_\bs_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_n\bna\bat\bti\biv\bve\be_\b_t\bte\bex\bxt\bt_\b_l\blo\bog\bg_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n ALLEGRO_TEXTLOG *textlog)\n-ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n- ALLEGRO_TEXTLOG *textlog)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get an event source for a text log window. The possible events are:\n ALLEGRO_EVENT_NATIVE_DIALOG_CLOSE\n The window was requested to be closed, either by pressing the close\n button or pressing Escape on the keyboard. The user.data1 field will hold\n a pointer to the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bT_\bE_\bX_\bT_\bL_\bO_\bG which generated the event. The\n user.data2 field will be 1 if the event was generated as a result of a\n key press; otherwise it will be zero.\n Examples:\n * _\bc_\bo_\bm_\bm_\bo_\bn_\b._\bc\n * _\be_\bx_\b__\bs_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\br_\be_\bs_\ba_\bm_\bp_\bl_\be_\b__\bt_\be_\bs_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_n\bna\bat\bti\biv\bve\be_\b_d\bdi\bia\bal\blo\bog\bg_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_native_dialog_version(void)\n-uint32_t al_get_allegro_native_dialog_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b**\b* M\bMe\ben\bnu\bus\bs *\b**\b**\b**\b**\b**\b*\n Menus are implemented on Windows, X and OS X. Menus on X are implemented with\n GTK, and have a special requirement: you must set the ALLEGRO_GTK_TOPLEVEL\n display flag prior to creating the display which will have menus attached.\n@@ -392,23 +366,21 @@\n }\n }\n Because there is no \u201cDISPLAY_DESTROYED\u201d event, you must call\n al_set_display_menu(display, NULL) before destroying any display with a menu\n attached, to avoid leaking resources.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bME\bEN\bNU\bU *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n-typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque data type that represents a menu that contains menu items. Each of\n the menu items may optionally include a sub-menu.\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bME\bEN\bNU\bU_\b_I\bIN\bNF\bFO\bO *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MENU_INFO {\n-typedef struct ALLEGRO_MENU_INFO {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A structure that defines how to create a complete menu system. For standard\n menu items, the following format is used:\n { caption, id, flags, icon }\n For special items, these macros are helpful:\n ALLEGRO_START_OF_MENU(caption, id)\n ALLEGRO_MENU_SEPARATOR\n@@ -436,62 +408,55 @@\n If you prefer, you can build the menu without the structure by using\n _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\be_\bn_\bu and _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm.\n See also: _\ba_\bl_\b__\bb_\bu_\bi_\bl_\bd_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_create_menu(void)\n-ALLEGRO_MENU *al_create_menu(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a menu container that can hold menu items.\n Returns NULL on failure.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bp_\bo_\bp_\bu_\bp_\b__\bm_\be_\bn_\bu, _\ba_\bl_\b__\bb_\bu_\bi_\bl_\bd_\b__\bm_\be_\bn_\bu\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_p\bpo\bop\bpu\bup\bp_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_create_popup_menu(void)\n-ALLEGRO_MENU *al_create_popup_menu(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a menu container for popup menus. Only the root (outermost) menu should\n be created with this function. Sub menus of popups should be created with\n _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\be_\bn_\bu.\n Returns NULL on failure.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\be_\bn_\bu, _\ba_\bl_\b__\bb_\bu_\bi_\bl_\bd_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_b\bbu\bui\bil\bld\bd_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n-ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Builds a menu based on the specifications of a sequence of ALLEGRO_MENU_INFO\n elements.\n Returns a pointer to the root ALLEGRO_MENU, or NULL on failure. To gain access\n to the other menus and items, you will need to search for them using\n _\ba_\bl_\b__\bf_\bi_\bn_\bd_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm.\n Since: 5.1.0\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bM_\bE_\bN_\bU_\b__\bI_\bN_\bF_\bO, _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\be_\bn_\bu, _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bp_\bo_\bp_\bu_\bp_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_a\bap\bpp\bpe\ben\bnd\bd_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm *\b**\b**\b**\b**\b*\n int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n- int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Appends a menu item to the end of the menu. See _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm for more\n information.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm, _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bns\bse\ber\brt\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm *\b**\b**\b**\b**\b*\n int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n- uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Inserts a menu item at the spot specified. See the introductory text for a\n detailed explanation of how the pos parameter is interpreted.\n The parent menu can be a popup menu or a regular menu. To underline one\n character in the title, prefix it with an ampersand.\n The flags can be any combination of:\n ALLEGRO_MENU_ITEM_DISABLED\n@@ -507,201 +472,181 @@\n menu must have previously been created with al_create_menu, and not be\n associated with any other menu.\n Returns true on success.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\ba_\bp_\bp_\be_\bn_\bd_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm, _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bem\bmo\bov\bve\be_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm *\b**\b**\b**\b**\b*\n bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)\n-bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Removes the specified item from the menu and destroys it. If the item contains\n a sub-menu, it too is destroyed. Any references to it are invalidated. If you\n want to preserve that sub-menu, you should first make a copy with\n _\ba_\bl_\b__\bc_\bl_\bo_\bn_\be_\b__\bm_\be_\bn_\bu.\n This is safe to call on a menu that is currently being displayed.\n Returns true if an item was removed.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\ba_\bp_\bp_\be_\bn_\bd_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm, _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcl\blo\bon\bne\be_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Makes a copy of a menu so that it can be reused on another display. The menu\n being cloned can be anything: a regular menu, a popup menu, or a sub-menu.\n Returns the cloned menu.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\bl_\bo_\bn_\be_\b__\bm_\be_\bn_\bu_\b__\bf_\bo_\br_\b__\bp_\bo_\bp_\bu_\bp\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcl\blo\bon\bne\be_\b_m\bme\ben\bnu\bu_\b_f\bfo\bor\br_\b_p\bpo\bop\bpu\bup\bp *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Exactly like _\ba_\bl_\b__\bc_\bl_\bo_\bn_\be_\b__\bm_\be_\bn_\bu, except that the copy is for a popup menu.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\bl_\bo_\bn_\be_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n void al_destroy_menu(ALLEGRO_MENU *menu)\n-void al_destroy_menu(ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys an entire menu, including its sub-menus. Any references to it or a\n sub-menu are no longer valid. It is safe to call this on a menu that is\n currently being displayed.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_c\bca\bap\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)\n-const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the caption associated with the menu item. It is valid as long as the\n caption is not modified.\n Returns NULL if the item was not found.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bc_\ba_\bp_\bt_\bi_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_c\bca\bap\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)\n-void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Updates the menu item caption with the new caption. This will invalidate any\n previous calls to _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bc_\ba_\bp_\bt_\bi_\bo_\bn.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bc_\ba_\bp_\bt_\bi_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_f\bfl\bla\bag\bgs\bs *\b**\b**\b**\b**\b*\n int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)\n-int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the currently set flags. See _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm for a description of\n the available flags.\n Returns -1 if the item was not found.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs, _\ba_\bl_\b__\bt_\bo_\bg_\bg_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_f\bfl\bla\bag\bgs\bs *\b**\b**\b**\b**\b*\n void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Updates the menu item\u2019s flags. See _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm for a description of the\n available flags.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs, _\ba_\bl_\b__\bt_\bo_\bg_\bg_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_t\bto\bog\bgg\bgl\ble\be_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_f\bfl\bla\bag\bgs\bs *\b**\b**\b**\b**\b*\n int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Toggles the specified menu item\u2019s flags. See _\ba_\bl_\b__\bi_\bn_\bs_\be_\br_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm for a\n description of the available flags.\n Returns a bitfield of only the specified flags that are set after the toggle. A\n flag that was not toggled will not be returned, even if it is set. Returns -\n 1 if the id is invalid.\n Since: 5.1.0\n _\bU\bU_\bn\bn_\bs\bs_\bt\bt_\ba\ba_\bb\bb_\bl\bl_\be\be_\b _\bA\bA_\bP\bP_\bI\bI:\b: Redundant with al_get/set_menu_item_flags.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs, _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bf_\bl_\ba_\bg_\bs\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_i\bic\bco\bon\bn *\b**\b**\b**\b**\b*\n ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)\n-ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the icon associated with the menu. It is safe to draw to the returned\n bitmap, but you must call _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bi_\bc_\bo_\bn in order for the changes to be\n applied.\n Returns NULL if the item was not found or if it has no icon.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bi_\bc_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm_\b_i\bic\bco\bon\bn *\b**\b**\b**\b**\b*\n void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)\n-void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Sets the icon for the specified menu item. The menu assumes ownership of the\n ALLEGRO_BITMAP and may invalidate the pointer, so you must clone it if you wish\n to continue using it.\n If a video bitmap is passed, it will automatically be converted to a memory\n bitmap, so it is preferable to pass a memory bitmap.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm_\b__\bi_\bc_\bo_\bn, _\ba_\bl_\b__\bc_\bl_\bo_\bn_\be_\b__\bb_\bi_\bt_\bm_\ba_\bp\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_f\bfi\bin\bnd\bd_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)\n-ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Searches in the haystack menu for any submenu with the given id. (Note that\n this only represents a literal ID, and cannot be used as an index.)\n Returns the menu, if found. Otherwise returns NULL.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bf_\bi_\bn_\bd_\b__\bm_\be_\bn_\bu_\b__\bi_\bt_\be_\bm\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_f\bfi\bin\bnd\bd_\b_m\bme\ben\bnu\bu_\b_i\bit\bte\bem\bm *\b**\b**\b**\b**\b*\n bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU\n **menu,\n int *index)\n-bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU\n-**menu,\n- int *index)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Searches in the haystack menu for an item with the given id. (Note that this\n only represents a literal ID, and cannot be used as an index.)\n If menu and index are not NULL, they will be set as the parent menu containing\n the item and the zero-based (positive) index of the item. (If the menu item was\n not found, then their values are undefined.)\n Returns true if the menu item was found.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bf_\bi_\bn_\bd_\b__\bm_\be_\bn_\bu\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_d\bde\bef\bfa\bau\bul\blt\bt_\b_m\bme\ben\bnu\bu_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)\n-ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the default event source used for menu clicks. If a menu was not given\n its own event source via _\ba_\bl_\b__\be_\bn_\ba_\bb_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be, then it will use this\n default source.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be, _\ba_\bl_\b__\be_\bn_\ba_\bb_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be,\n _\ba_\bl_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_e\ben\bna\bab\bbl\ble\be_\b_m\bme\ben\bnu\bu_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)\n-ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Enables a unique event source for this menu. It and all of its sub-menus will\n use this event source. (It is safe to call this multiple times on the same\n menu.)\n Returns the event source.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\br_\be_\bg_\bi_\bs_\bt_\be_\br_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be, _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be,\n _\ba_\bl_\b__\bd_\bi_\bs_\ba_\bb_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdi\bis\bsa\bab\bbl\ble\be_\b_m\bme\ben\bnu\bu_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b*\n void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n-void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Disables a unique event source for the menu, causing it to use the default\n event source.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be, _\ba_\bl_\b__\be_\bn_\ba_\bb_\bl_\be_\b__\bm_\be_\bn_\bu_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_d\bdi\bis\bsp\bpl\bla\bay\by_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the menu associated with the display, or NULL if it does not have a\n menu.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_d\bdi\bis\bsp\bpl\bla\bay\by_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)\n-bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Associates the menu with the display and shows it. If there was a previous menu\n associated with the display, it will be destroyed. If you don\u2019t want that to\n happen, you should first remove the menu with _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu.\n If the menu is already attached to a display, it will not be attached to the\n new display. If menu is NULL, the current menu will still be destroyed.\n N\bNo\bot\bte\be:\b: Attaching a menu may cause the window as available to your\n@@ -711,15 +656,14 @@\n Returns true if successful.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bm_\be_\bn_\bu, _\ba_\bl_\b__\br_\be_\bm_\bo_\bv_\be_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_p\bpo\bop\bpu\bup\bp_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)\n-bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Displays a context menu next to the mouse cursor. The menu must have been\n created with _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bp_\bo_\bp_\bu_\bp_\b__\bm_\be_\bn_\bu. It generates events just like a regular\n display menu does. It is possible that the menu will be canceled without any\n selection being made.\n The display parameter indicates which window the menu is associated with (when\n you process the menu click event), but does not actually affect where the menu\n@@ -731,15 +675,14 @@\n corresponds to the final mouse button that was pressed.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bp_\bo_\bp_\bu_\bp_\b__\bm_\be_\bn_\bu\n Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bem\bmo\bov\bve\be_\b_d\bdi\bis\bsp\bpl\bla\bay\by_\b_m\bme\ben\bnu\bu *\b**\b**\b**\b**\b*\n ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Detaches the menu associated with the display and returns it. The menu can then\n be used on a different display.\n If you simply want to destroy the active menu, you can call _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu\n with a NULL menu.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\be_\bn_\bu\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/physfs.html", "source2": "./usr/share/doc/allegro5-doc/refman/physfs.html", "unified_diff": "@@ -191,16 +191,15 @@\n href=\"physfs.html#al_set_physfs_file_interface\">al_set_physfs_file_interface,\n then al_fopen or another function that\n calls al_fopen.

    \n

    These functions are declared in the following header file. Link with\n allegro_physfs.

    \n
     #include <allegro5/allegro_physfs.h>
    \n

    al_set_physfs_file_interface

    \n-
    void al_set_physfs_file_interface(void)\n-void al_set_physfs_file_interface(void)
    \n+
    void al_set_physfs_file_interface(void)
    \n

    Source\n Code

    \n

    This function sets both the ALLEGRO_FILE_INTERFACE and\n ALLEGRO_FS_INTERFACE for\n the calling thread.

    \n@@ -232,16 +231,15 @@\n

    Examples:

    \n
      \n
    • ex_physfs.c
    • \n
    \n al_get_allegro_physfs_version\n-
    uint32_t al_get_allegro_physfs_version(void)\n-uint32_t al_get_allegro_physfs_version(void)
    \n+
    uint32_t al_get_allegro_physfs_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    \n Allegro version 5.2.9\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -54,15 +54,14 @@\n ALLEGRO_FILE using PhysicsFS, first call _\ba_\bl_\b__\bs_\be_\bt_\b__\bp_\bh_\by_\bs_\bf_\bs_\b__\bf_\bi_\bl_\be_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be, then\n _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn or another function that calls _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn.\n These functions are declared in the following header file. Link with\n allegro_physfs.\n #include \n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_p\bph\bhy\bys\bsf\bfs\bs_\b_f\bfi\bil\ble\be_\b_i\bin\bnt\bte\ber\brf\bfa\bac\bce\be *\b**\b**\b**\b**\b**\b*\n void al_set_physfs_file_interface(void)\n-void al_set_physfs_file_interface(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This function sets b\bbo\bot\bth\bh the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bI_\bL_\bE_\b__\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE and _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bS_\b__\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE for\n the calling thread.\n Subsequent calls to _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn on the calling thread will be handled by\n PHYSFS_open(). Operations on the files returned by _\ba_\bl_\b__\bf_\bo_\bp_\be_\bn will then be\n performed through PhysicsFS. Calls to the Allegro filesystem functions, such as\n _\ba_\bl_\b__\br_\be_\ba_\bd_\b__\bd_\bi_\br_\be_\bc_\bt_\bo_\br_\by or _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bf_\bs_\b__\be_\bn_\bt_\br_\by, on the calling thread will be diverted\n@@ -75,12 +74,11 @@\n N\bNo\bot\bte\be:\b: PhysFS does not support the text-mode reading and writing,\n which means that Windows-style newlines will not be preserved.\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bf_\bi_\bl_\be_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be.\n Examples:\n * _\be_\bx_\b__\bp_\bh_\by_\bs_\bf_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_p\bph\bhy\bys\bsf\bfs\bs_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_physfs_version(void)\n-uint32_t al_get_allegro_physfs_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/primitives.html", "source2": "./usr/share/doc/allegro5-doc/refman/primitives.html", "unified_diff": "@@ -328,24 +328,22 @@\n \n

    These functions are declared in the following header file. Link with\n allegro_primitives.

    \n
     #include <allegro5/allegro_primitives.h>
    \n

    General

    \n al_get_allegro_primitives_version\n-
    uint32_t al_get_allegro_primitives_version(void)\n-uint32_t al_get_allegro_primitives_version(void)
    \n+
    uint32_t al_get_allegro_primitives_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    al_init_primitives_addon

    \n-
    bool al_init_primitives_addon(void)\n-bool al_init_primitives_addon(void)
    \n+
    bool al_init_primitives_addon(void)
    \n

    Source\n Code

    \n

    Initializes the primitives addon.

    \n

    Returns: True on success, false on failure.

    \n

    See also: al_shutdown_primitives_addon

    \n@@ -356,29 +354,27 @@\n
  • ex_blend_bench.c
  • \n
  • ex_enet_client.c
  • \n \n al_is_primitives_addon_initialized\n-
    bool al_is_primitives_addon_initialized(void)\n-bool al_is_primitives_addon_initialized(void)
    \n+
    bool al_is_primitives_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the primitives addon is initialized, otherwise\n returns false.

    \n

    Since: 5.2.6

    \n

    See also: al_init_primitives_addon,\n al_shutdown_primitives_addon

    \n

    al_shutdown_primitives_addon

    \n-
    void al_shutdown_primitives_addon(void)\n-void al_shutdown_primitives_addon(void)
    \n+
    void al_shutdown_primitives_addon(void)
    \n

    Source\n Code

    \n

    Shut down the primitives addon. This is done automatically at program\n exit, but can be called any time the user wishes as well.

    \n

    See also: al_init_primitives_addon

    \n@@ -473,17 +469,15 @@\n completely covered by a shape or completely not covered, then the shape\n edges will be sharp. The offsets used in the second diagram were chosen\n so that this is the case: if you use those offsets, your shapes (if they\n are oriented the same way as they are on the diagram) should look the\n same whether multisampling is turned on or off.

    \n

    al_draw_line

    \n
    void al_draw_line(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color, float thickness)\n-void al_draw_line(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color, float thickness)
    \n+ ALLEGRO_COLOR color, float thickness)\n

    Source\n Code

    \n

    Draws a line segment between two points.

    \n

    Parameters:

    \n
      \n
    • x1, y1, x2, y2 - Start and end points of the line
    • \n@@ -500,17 +494,15 @@\n
    • ex_resize.c
    • \n
    • ex_mouse_warp.c
    • \n
    \n

    al_draw_triangle

    \n
    void al_draw_triangle(float x1, float y1, float x2, float y2,\n-   float x3, float y3, ALLEGRO_COLOR color, float thickness)\n-void al_draw_triangle(float x1, float y1, float x2, float y2,\n-   float x3, float y3, ALLEGRO_COLOR color, float thickness)
    \n+ float x3, float y3, ALLEGRO_COLOR color, float thickness)\n

    Source\n Code

    \n

    Draws an outlined triangle.

    \n

    Parameters:

    \n
      \n
    • x1, y1, x2, y2, x3, y3 - Three points of the triangle
    • \n@@ -525,17 +517,15 @@\n

      Examples:

      \n
        \n
      • ex_prim.c
      • \n
      \n

      al_draw_filled_triangle

      \n
      void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n-   float x3, float y3, ALLEGRO_COLOR color)\n-void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n-   float x3, float y3, ALLEGRO_COLOR color)
      \n+ float x3, float y3, ALLEGRO_COLOR color)\n

      Source\n Code

      \n

      Draws a filled triangle.

      \n

      Parameters:

      \n
        \n
      • x1, y1, x2, y2, x3, y3 - Three points of the triangle
      • \n@@ -546,17 +536,15 @@\n

        Examples:

        \n
          \n
        • ex_prim.c
        • \n
        \n

        al_draw_rectangle

        \n
        void al_draw_rectangle(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color, float thickness)\n-void al_draw_rectangle(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color, float thickness)
        \n+ ALLEGRO_COLOR color, float thickness)\n

        Source\n Code

        \n

        Draws an outlined rectangle.

        \n

        Parameters:

        \n
          \n
        • x1, y1, x2, y2 - Upper left and lower right points of the\n@@ -576,17 +564,15 @@\n
        • ex_font_justify.cpp
        • \n
        • ex_subbitmap.c
        • \n
        \n

        al_draw_filled_rectangle

        \n
        void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color)\n-void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n-   ALLEGRO_COLOR color)
        \n+ ALLEGRO_COLOR color)\n

        Source\n Code

        \n

        Draws a filled rectangle.

        \n

        Parameters:

        \n
          \n
        • x1, y1, x2, y2 - Upper left and lower right points of the\n@@ -603,17 +589,15 @@\n
        • ex_timer.c
        • \n
        • ex_window_maximized.c
        • \n
        \n

        al_draw_rounded_rectangle

        \n
        void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n-   float rx, float ry, ALLEGRO_COLOR color, float thickness)\n-void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n-   float rx, float ry, ALLEGRO_COLOR color, float thickness)
        \n+ float rx, float ry, ALLEGRO_COLOR color, float thickness)\n

        Source\n Code

        \n

        Draws an outlined rounded rectangle.

        \n

        Parameters:

        \n
          \n
        • x1, y1, x2, y2 - Upper left and lower right points of the\n@@ -634,17 +618,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_prim.c#L323\">ex_prim.c
        • \n
        • ex_audio_chain.cpp
        • \n
        \n al_draw_filled_rounded_rectangle\n
        void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n-   float rx, float ry, ALLEGRO_COLOR color)\n-void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n-   float rx, float ry, ALLEGRO_COLOR color)
        \n+ float rx, float ry, ALLEGRO_COLOR color)\n

        Source\n Code

        \n

        Draws an filled rounded rectangle.

        \n

        Parameters:

        \n
          \n
        • x1, y1, x2, y2 - Upper left and lower right points of the\n@@ -664,18 +646,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_video.c#L57\">ex_video.c
        • \n
        • ex_prim.c
        • \n
        \n

        al_calculate_arc

        \n
        void al_calculate_arc(float* dest, int stride, float cx, float cy,\n    float rx, float ry, float start_theta, float delta_theta, float thickness,\n-   int num_points)\n-void al_calculate_arc(float* dest, int stride, float cx, float cy,\n-   float rx, float ry, float start_theta, float delta_theta, float thickness,\n-   int num_points)
        \n+ int num_points)\n

        Source\n Code

        \n

        When thickness <= 0 this function computes positions\n of num_points regularly spaced points on an elliptical arc.\n When thickness > 0 this function computes two sets of\n points, obtained as follows: the first set is obtained by taking the\n@@ -739,17 +718,15 @@\n

        Examples:

        \n
          \n
        • ex_vertex_buffer.c
        • \n
        \n

        al_draw_pieslice

        \n
        void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)
        \n+ float delta_theta, ALLEGRO_COLOR color, float thickness)\n

        Source\n Code

        \n

        Draws a pieslice (outlined circular sector).

        \n

        Parameters:

        \n
          \n
        • cx, cy - Center of the pieslice
        • \n@@ -768,17 +745,15 @@\n

          Examples:

          \n
            \n
          • ex_prim.c
          • \n
          \n

          al_draw_filled_pieslice

          \n
          void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color)\n-void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color)
          \n+ float delta_theta, ALLEGRO_COLOR color)\n

          Source\n Code

          \n

          Draws a filled pieslice (filled circular sector).

          \n

          Parameters:

          \n
            \n
          • cx, cy - Center of the pieslice
          • \n@@ -795,17 +770,15 @@\n

            Examples:

            \n
              \n
            • ex_prim.c
            • \n
            \n

            al_draw_ellipse

            \n
            void al_draw_ellipse(float cx, float cy, float rx, float ry,\n-   ALLEGRO_COLOR color, float thickness)\n-void al_draw_ellipse(float cx, float cy, float rx, float ry,\n-   ALLEGRO_COLOR color, float thickness)
            \n+ ALLEGRO_COLOR color, float thickness)\n

            Source\n Code

            \n

            Draws an outlined ellipse.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the ellipse
            • \n@@ -822,17 +795,15 @@\n
            • ex_draw.c
            • \n
            • ex_prim.c
            • \n
            \n

            al_draw_filled_ellipse

            \n
            void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n-   ALLEGRO_COLOR color)\n-void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n-   ALLEGRO_COLOR color)
            \n+ ALLEGRO_COLOR color)\n

            Source\n Code

            \n

            Draws a filled ellipse.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the ellipse
            • \n@@ -847,17 +818,15 @@\n
            • ex_draw.c
            • \n
            • ex_prim.c
            • \n
            \n

            al_draw_circle

            \n
            void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n-   float thickness)\n-void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n-   float thickness)
            \n+ float thickness)\n

            Source\n Code

            \n

            Draws an outlined circle.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the circle
            • \n@@ -873,16 +842,15 @@\n
                \n
              • ex_touch_input.c
              • \n
              • ex_transform.c
              • \n
              \n

              al_draw_filled_circle

              \n-
              void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)\n-void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)
              \n+
              void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)
              \n

              Source\n Code

              \n

              Draws a filled circle.

              \n

              Parameters:

              \n
                \n
              • cx, cy - Center of the circle
              • \n@@ -899,17 +867,15 @@\n
              • ex_joystick_hotplugging.c
              • \n
              • ex_blend2.cpp
              • \n
              \n

              al_draw_arc

              \n
              void al_draw_arc(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_arc(float cx, float cy, float r, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)
              \n+ float delta_theta, ALLEGRO_COLOR color, float thickness)\n

              Source\n Code

              \n

              Draws an arc.

              \n

              Parameters:

              \n
                \n
              • cx, cy - Center of the arc
              • \n@@ -928,17 +894,15 @@\n

                Examples:

                \n
                  \n
                • ex_prim.c
                • \n
                \n

                al_draw_elliptical_arc

                \n
                void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float start_theta,\n-   float delta_theta, ALLEGRO_COLOR color, float thickness)
                \n+ float delta_theta, ALLEGRO_COLOR color, float thickness)\n

                Source\n Code

                \n

                Draws an elliptical arc.

                \n

                Parameters:

                \n
                  \n
                • cx, cy - Center of the arc
                • \n@@ -958,17 +922,15 @@\n

                  Examples:

                  \n
                    \n
                  • ex_prim.c
                  • \n
                  \n

                  al_calculate_spline

                  \n
                  void al_calculate_spline(float* dest, int stride, const float points[8],\n-   float thickness, int num_segments)\n-void al_calculate_spline(float* dest, int stride, const float points[8],\n-   float thickness, int num_segments)
                  \n+ float thickness, int num_segments)\n

                  Source\n Code

                  \n

                  Calculates a B\u00e9zier spline given 4 control points. If\n thickness <= 0, then num_segments of points\n are required in the destination, otherwise twice as many are needed. The\n destination buffer should consist of regularly spaced (by distance of\n@@ -985,16 +947,15 @@\n

                • num_segments - The number of points to calculate
                • \n
                \n

                See also: al_draw_spline, al_calculate_arc, al_calculate_ribbon

                \n

                al_draw_spline

                \n-
                void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float thickness)\n-void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float thickness)
                \n+
                void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float thickness)
                \n

                Source\n Code

                \n

                Draws a B\u00e9zier spline given 4 control points.

                \n

                Parameters:

                \n
                  \n
                • points - An array of 4 pairs of coordinates of the 4 control\n@@ -1008,17 +969,15 @@\n

                  Examples:

                  \n
                    \n
                  • ex_prim.c
                  • \n
                  \n

                  al_calculate_ribbon

                  \n
                  void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n-   int points_stride, float thickness, int num_segments)\n-void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n-   int points_stride, float thickness, int num_segments)
                  \n+ int points_stride, float thickness, int num_segments)\n

                  Source\n Code

                  \n

                  Calculates a ribbon given an array of points. The ribbon will go\n through all of the passed points. If thickness <= 0,\n then num_segments of points are required in the destination\n buffer, otherwise twice as many are needed. The destination and the\n@@ -1037,17 +996,15 @@\n

                \n

                See also: al_draw_ribbon, al_calculate_arc, al_calculate_spline

                \n

                al_draw_ribbon

                \n
                void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR color,\n-   float thickness, int num_segments)\n-void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR color,\n-   float thickness, int num_segments)
                \n+ float thickness, int num_segments)\n

                Source\n Code

                \n

                Draws a ribbon given an array of points. The ribbon will go through\n all of the passed points. The points buffer should consist of regularly\n spaced doublets of floats, corresponding to x and y coordinates of the\n vertices.

                \n@@ -1086,17 +1043,15 @@\n pass to the al_draw_prim by (0.5, 0.5) if you need precise pixel\n control. E.g. to refer to pixel (5, 10) you\u2019d set the u and v to 5.5 and\n 10.5 respectively.

                \n

                See also: Pixel-precise output

                \n

                al_draw_prim

                \n
                int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n-   ALLEGRO_BITMAP* texture, int start, int end, int type)\n-int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n-   ALLEGRO_BITMAP* texture, int start, int end, int type)
                \n+ ALLEGRO_BITMAP* texture, int start, int end, int type)\n

                Source\n Code

                \n

                Draws a subset of the passed vertex array.

                \n

                Parameters:

                \n
                  \n
                • texture - Texture to use, pass NULL to use only color shaded\n@@ -1133,17 +1088,15 @@\n
                • ex_vertex_buffer.c
                • \n
                • ex_prim_wrap.c
                • \n
                \n

                al_draw_indexed_prim

                \n
                int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n-   ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n-int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n-   ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)
                \n+ ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n

                Source\n Code

                \n

                Draws a subset of the passed vertex array. This function uses an\n index array to specify which vertices to use.

                \n

                Parameters:

                \n
                  \n@@ -1170,17 +1123,15 @@\n
                • ex_projection2.c
                • \n
                • ex_prim.c
                • \n
                \n

                al_draw_vertex_buffer

                \n
                int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n-   ALLEGRO_BITMAP* texture, int staal_get_allegro_acodec_version\n-int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n-   ALLEGRO_BITMAP* texture, int start, int end, int type)
                \n+ ALLEGRO_BITMAP* texture, int start, int end, int type)\n

                Source\n Code

                \n

                Draws a subset of the passed vertex buffer. The vertex buffer must\n not be locked. Additionally, to draw onto memory bitmaps or with memory\n bitmap textures the vertex buffer must support reading (i.e.\u00a0 it must be\n created with the ALLEGRO_PRIM_BUFFER_READWRITE).

                \n@@ -1207,18 +1158,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_vertex_buffer.c#L58\">ex_vertex_buffer.c\n
              • ex_prim.c
              • \n
              \n

              al_draw_indexed_buffer

              \n
              int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n    ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n-   int start, int end, int type)\n-int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n-   ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n-   int start, int end, int type)
              \n+ int start, int end, int type)\n

              Source\n Code

              \n

              Draws a subset of the passed vertex buffer. This function uses an\n index buffer to specify which vertices to use. Both buffers must not be\n locked. Additionally, to draw onto memory bitmaps or with memory bitmap\n textures both buffers must support reading (i.e.\u00a0they must be created\n@@ -1251,21 +1199,15 @@\n

            \n

            al_draw_soft_triangle

            \n
            void al_draw_soft_triangle(\n    ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n    void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n    void (*first)(uintptr_t, int, int, int, int),\n    void (*step)(uintptr_t, int),\n-   void (*draw)(uintptr_t, int, int, int))\n-void al_draw_soft_triangle(\n-   ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n-   void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n-   void (*first)(uintptr_t, int, int, int, int),\n-   void (*step)(uintptr_t, int),\n-   void (*draw)(uintptr_t, int, int, int))
            \n+ void (*draw)(uintptr_t, int, int, int))\n

            Source\n Code

            \n

            Draws a triangle using the software rasterizer and user supplied\n pixel functions. For help in understanding what these functions do, see\n the implementation of the various shading routines in\n addons/primitives/tri_soft.c. The triangle is drawn in two segments,\n@@ -1296,19 +1238,15 @@\n

          \n

          See also: al_draw_triangle

          \n

          al_draw_soft_line

          \n
          void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n    void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n    void (*step)(uintptr_t, int),\n-   void (*draw)(uintptr_t, int, int))\n-void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n-   void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n-   void (*step)(uintptr_t, int),\n-   void (*draw)(uintptr_t, int, int))
          \n+ void (*draw)(uintptr_t, int, int))\n

          Source\n Code

          \n

          Draws a line using the software rasterizer and user supplied pixel\n functions. For help in understanding what these functions do, see the\n implementation of the various shading routines in\n addons/primitives/line_soft.c. The line is drawn top to bottom.

          \n@@ -1328,16 +1266,15 @@\n
        • draw - Called once per pixel. The function is expected to draw the\n pixel at the coordinates passed to it.
        • \n
        \n

        See also: al_draw_line

        \n

        Custom vertex declaration\n routines

        \n

        al_create_vertex_decl

        \n-
        ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT* elements, int stride)\n-ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT* elements, int stride)
        \n+
        ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT* elements, int stride)
        \n

        Source\n Code

        \n

        Creates a vertex declaration, which describes a custom vertex\n format.

        \n

        Parameters:

        \n
          \n@@ -1356,16 +1293,15 @@\n
            \n
          • ex_prim_shader.c
          • \n
          • ex_prim.c
          • \n
          \n

          al_destroy_vertex_decl

          \n-
          void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n-void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)
          \n+
          void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)
          \n

          Source\n Code

          \n

          Destroys a vertex declaration.

          \n

          Parameters:

          \n
            \n
          • decl - Vertex declaration to destroy
          • \n@@ -1379,17 +1315,15 @@\n
              \n
            • ex_prim_shader.c
            • \n
            \n

            Vertex buffer routines

            \n

            al_create_vertex_buffer

            \n
            ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n-   const void* initial_data, int num_vertices, int flags)\n-ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n-   const void* initial_data, int num_vertices, int flags)
            \n+ const void* initial_data, int num_vertices, int flags)\n

            Source\n Code

            \n

            Creates a vertex buffer. Can return NULL if the buffer could not be\n created (e.g.\u00a0the system only supports write-only buffers).

            \n
            \n

            Note:

            \n@@ -1421,16 +1355,15 @@\n
              \n
            • ex_vertex_buffer.c
            • \n
            • ex_prim.c
            • \n
            \n

            al_destroy_vertex_buffer

            \n-
            void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
            \n+
            void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
            \n

            Source\n Code

            \n

            Destroys a vertex buffer. Does nothing if passed NULL.

            \n

            Since: 5.1.3

            \n

            See also: ALLEGRO_VERTEX_BUFFER,\n@@ -1441,17 +1374,15 @@\n

          • ex_vertex_buffer.c
          • \n
          • ex_prim.c
          • \n
          \n

          al_lock_vertex_buffer

          \n
          void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n-   int length, int flags)\n-void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n-   int length, int flags)
          \n+ int length, int flags)\n

          Source\n Code

          \n

          Locks a vertex buffer so you can access its data. Will return NULL if\n the parameters are invalid, if reading is requested from a write only\n buffer, or if the buffer is already locked.

          \n

          Parameters:

          \n@@ -1471,16 +1402,15 @@\n
            \n
          • ex_vertex_buffer.c
          • \n
          • ex_prim.c
          • \n
          \n

          al_unlock_vertex_buffer

          \n-
          void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
          \n+
          void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
          \n

          Source\n Code

          \n

          Unlocks a previously locked vertex buffer.

          \n

          Since: 5.1.3

          \n

          See also: ALLEGRO_VERTEX_BUFFER,\n@@ -1490,29 +1420,26 @@\n

            \n
          • ex_vertex_buffer.c
          • \n
          • ex_prim.c
          • \n
          \n

          al_get_vertex_buffer_size

          \n-
          int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)\n-int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)
          \n+
          int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)
          \n

          Source\n Code

          \n

          Returns the size of the vertex buffer

          \n

          Since: 5.1.8

          \n

          See also: ALLEGRO_VERTEX_BUFFER

          \n

          Index buffer routines

          \n

          al_create_index_buffer

          \n
          ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n-    const void* initial_data, int num_indices, int flags)\n-ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n-    const void* initial_data, int num_indices, int flags)
          \n+ const void* initial_data, int num_indices, int flags)\n

          Source\n Code

          \n

          Creates a index buffer. Can return NULL if the buffer could not be\n created (e.g.\u00a0the system only supports write-only buffers).

          \n
          \n

          Note:

          \n@@ -1540,16 +1467,15 @@\n href=\"primitives.html#al_destroy_index_buffer\">al_destroy_index_buffer

          \n

          Examples:

          \n
            \n
          • ex_prim.c
          • \n
          \n

          al_destroy_index_buffer

          \n-
          void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
          \n+
          void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
          \n

          Source\n Code

          \n

          Destroys a index buffer. Does nothing if passed NULL.

          \n

          Since: 5.1.8

          \n

          See also: ALLEGRO_INDEX_BUFFER, Examples:

          \n
            \n
          • ex_prim.c
          • \n
          \n

          al_lock_index_buffer

          \n
          void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n-    int length, int flags)\n-void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n-    int length, int flags)
          \n+ int length, int flags)\n

          Source\n Code

          \n

          Locks a index buffer so you can access its data. Will return NULL if\n the parameters are invalid, if reading is requested from a write only\n buffer and if the buffer is already locked.

          \n

          Parameters:

          \n@@ -1584,47 +1508,42 @@\n href=\"primitives.html#al_unlock_index_buffer\">al_unlock_index_buffer

          \n

          Examples:

          \n
            \n
          • ex_prim.c
          • \n
          \n

          al_unlock_index_buffer

          \n-
          void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
          \n+
          void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
          \n

          Source\n Code

          \n

          Unlocks a previously locked index buffer.

          \n

          Since: 5.1.8

          \n

          See also: ALLEGRO_INDEX_BUFFER, al_lock_index_buffer

          \n

          Examples:

          \n
            \n
          • ex_prim.c
          • \n
          \n

          al_get_index_buffer_size

          \n-
          int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)\n-int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)
          \n+
          int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)
          \n

          Source\n Code

          \n

          Returns the size of the index buffer

          \n

          Since: 5.1.8

          \n

          See also: ALLEGRO_INDEX_BUFFER

          \n

          Polygon routines

          \n

          al_draw_polyline

          \n
          void al_draw_polyline(const float* vertices, int vertex_stride,\n    int vertex_count, int join_style, int cap_style,\n-   ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polyline(const float* vertices, int vertex_stride,\n-   int vertex_count, int join_style, int cap_style,\n-   ALLEGRO_COLOR color, float thickness, float miter_limit)
          \n+ ALLEGRO_COLOR color, float thickness, float miter_limit)\n

          Source\n Code

          \n

          Draw a series of line segments.

          \n
            \n
          • vertices - Interleaved array of (x, y) vertex coordinates
          • \n
          • vertex_stride - the number of bytes between pairs of vertices (the\n@@ -1665,17 +1584,15 @@\n

            Examples:

            \n
              \n
            • ex_polygon.c
            • \n
            \n

            al_draw_polygon

            \n
            void al_draw_polygon(const float *vertices, int vertex_count,\n-   int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polygon(const float *vertices, int vertex_count,\n-   int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)
            \n+ int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n

            Source\n Code

            \n

            Draw an unfilled polygon. This is the same as passing\n ALLEGRO_LINE_CAP_CLOSED to al_draw_polyline.

            \n
              \n@@ -1697,17 +1614,15 @@\n

              Examples:

              \n
                \n
              • ex_polygon.c
              • \n
              \n

              al_draw_filled_polygon

              \n
              void al_draw_filled_polygon(const float *vertices, int vertex_count,\n-   ALLEGRO_COLOR color)\n-void al_draw_filled_polygon(const float *vertices, int vertex_count,\n-   ALLEGRO_COLOR color)
              \n+ ALLEGRO_COLOR color)\n

              Source\n Code

              \n

              Draw a filled, simple polygon. Simple means it does not have to be\n convex but must not be self-overlapping.

              \n
                \n
              • vertices - Interleaved array of (x, y) vertex coordinates
              • \n@@ -1724,17 +1639,15 @@\n
                  \n
                • ex_polygon.c
                • \n
                \n al_draw_filled_polygon_with_holes\n
                void al_draw_filled_polygon_with_holes(const float *vertices,\n-   const int *vertex_counts, ALLEGRO_COLOR color)\n-void al_draw_filled_polygon_with_holes(const float *vertices,\n-   const int *vertex_counts, ALLEGRO_COLOR color)
                \n+ const int *vertex_counts, ALLEGRO_COLOR color)\n

                Source\n Code

                \n

                Draws a filled simple polygon with zero or more other simple polygons\n subtracted from it - the holes. The holes cannot touch or intersect with\n the outline of the filled polygon.

                \n
                  \n@@ -1781,18 +1694,15 @@\n
                    \n
                  • ex_polygon.c
                  • \n
                  \n

                  al_triangulate_polygon

                  \n
                  bool al_triangulate_polygon(\n    const float* vertices, size_t vertex_stride, const int* vertex_counts,\n-   void (*emit_triangle)(int, int, int, void*), void* userdata)\n-bool al_triangulate_polygon(\n-   const float* vertices, size_t vertex_stride, const int* vertex_counts,\n-   void (*emit_triangle)(int, int, int, void*), void* userdata)
                  \n+ void (*emit_triangle)(int, int, int, void*), void* userdata)\n

                  Source\n Code

                  \n

                  Divides a simple polygon into triangles, with zero or more other\n simple polygons subtracted from it - the holes. The holes cannot touch\n or intersect with the outline of the main polygon. Simple means the\n polygon does not have to be convex but must not be self-overlapping.

                  \n@@ -1812,16 +1722,15 @@\n
                • userdata - arbitrary data to be passed to emit_triangle.
                • \n
                \n

                Since: 5.1.0

                \n

                See also: al_draw_filled_polygon_with_holes

                \n

                Structures and types

                \n

                ALLEGRO_VERTEX

                \n-
                typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n-typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;
                \n+
                typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;
                \n

                Source\n Code

                \n

                Defines the generic vertex type, with a 3D position, color and\n texture coordinates for a single texture. Note that at this time, the\n software driver for this addon cannot render 3D primitives. If you want\n a 2D only primitive, set z to 0. Note that you must initialize all\n@@ -1843,16 +1752,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_shader.cpp#L97\">ex_shader.cpp\n

              • ex_shader_target.c
              • \n
              • ex_prim_shader.c
              • \n
              \n

              ALLEGRO_VERTEX_DECL

              \n-
              typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n-typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;
              \n+
              typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;
              \n

              Source\n Code

              \n

              A vertex declaration. This opaque structure is responsible for\n describing the format and layout of a user defined custom vertex. It is\n created and destroyed by specialized functions.

              \n

              See also: \n

            • ex_prim_shader.c
            • \n
            • ex_prim.c
            • \n
            \n

            ALLEGRO_VERTEX_ELEMENT

            \n-
            typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n-typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;
            \n+
            typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;
            \n

            Source\n Code

            \n

            A small structure describing a certain element of a vertex. E.g. the\n position of the vertex, or its color. These structures are used by the\n al_create_vertex_decl\n@@ -1915,16 +1822,15 @@\n

              \n
            • ex_prim_shader.c
            • \n
            • ex_prim.c
            • \n
            \n

            ALLEGRO_PRIM_TYPE

            \n-
            typedef enum ALLEGRO_PRIM_TYPE\n-typedef enum ALLEGRO_PRIM_TYPE
            \n+
            typedef enum ALLEGRO_PRIM_TYPE
            \n

            Source\n Code

            \n

            Enumerates the types of primitives this addon can draw.

            \n
              \n
            • ALLEGRO_PRIM_POINT_LIST - A list of points, each vertex defines a\n point

            • \n@@ -1938,16 +1844,15 @@\n triplets of vertices define disjointed triangles

              \n
            • ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of triangles, sequential\n vertices define a strip of triangles

            • \n
            • ALLEGRO_PRIM_TRIANGLE_FAN - A fan of triangles, all triangles\n share the first vertex

            • \n
            \n

            ALLEGRO_PRIM_ATTR

            \n-
            typedef enum ALLEGRO_PRIM_ATTR\n-typedef enum ALLEGRO_PRIM_ATTR
            \n+
            typedef enum ALLEGRO_PRIM_ATTR
            \n

            Source\n Code

            \n

            Enumerates the types of vertex attributes that a custom vertex may\n have.

            \n
              \n
            • ALLEGRO_PRIM_POSITION - Position information, can be stored only\n@@ -1996,16 +1901,15 @@\n

              Since: 5.1.6

            • \n
            \n

            See also: ALLEGRO_VERTEX_DECL, ALLEGRO_PRIM_STORAGE, al_attach_shader_source

            \n

            ALLEGRO_PRIM_STORAGE

            \n-
            typedef enum ALLEGRO_PRIM_STORAGE\n-typedef enum ALLEGRO_PRIM_STORAGE
            \n+
            typedef enum ALLEGRO_PRIM_STORAGE
            \n

            Source\n Code

            \n

            Enumerates the types of storage an attribute of a custom vertex may\n be stored in. Many of these can only be used for ALLEGRO_PRIM_USER_ATTR\n attributes and can only be accessed via shaders. Usually no matter what\n the storage is specified the attribute gets converted to single\n@@ -2058,38 +1962,35 @@\n href=\"primitives.html#al_create_vertex_decl\">al_create_vertex_decl\n will return NULL if you use it on those platforms.

            \n

            Since: 5.1.6

          • \n
          \n

          See also: ALLEGRO_PRIM_ATTR

          \n

          ALLEGRO_VERTEX_CACHE_SIZE

          \n-
          #define ALLEGRO_VERTEX_CACHE_SIZE 256\n-#define ALLEGRO_VERTEX_CACHE_SIZE 256
          \n+
          #define ALLEGRO_VERTEX_CACHE_SIZE 256
          \n

          Source\n Code

          \n

          Defines the size of the transformation vertex cache for the software\n renderer. If you pass less than this many vertices to the primitive\n rendering functions you will get a speed boost. This also defines the\n size of the cache vertex buffer, used for the high-level primitives.\n This corresponds to the maximum number of line segments that will be\n used to form them.

          \n

          ALLEGRO_PRIM_QUALITY

          \n-
          #define ALLEGRO_PRIM_QUALITY 10\n-#define ALLEGRO_PRIM_QUALITY 10
          \n+
          #define ALLEGRO_PRIM_QUALITY 10
          \n

          Source\n Code

          \n

          Controls the quality of the approximation of curved primitives\n (e.g.\u00a0circles). Curved primitives are drawn by approximating them with a\n sequence of line segments. By default, this roughly corresponds to error\n of less than half of a pixel.

          \n

          ALLEGRO_LINE_JOIN

          \n-
          typedef enum ALLEGRO_LINE_JOIN\n-typedef enum ALLEGRO_LINE_JOIN
          \n+
          typedef enum ALLEGRO_LINE_JOIN
          \n

          Source\n Code

          \n
            \n
          • ALLEGRO_LINE_JOIN_NONE
          • \n
          • ALLEGRO_LINE_JOIN_BEVEL
          • \n
          • ALLEGRO_LINE_JOIN_ROUND
          • \n@@ -2108,16 +2009,15 @@\n href=\"primitives.html#al_draw_polygon\">al_draw_polygon

            \n

            Examples:

            \n
              \n
            • ex_polygon.c
            • \n
            \n

            ALLEGRO_LINE_CAP

            \n-
            typedef enum ALLEGRO_LINE_CAP\n-typedef enum ALLEGRO_LINE_CAP
            \n+
            typedef enum ALLEGRO_LINE_CAP
            \n

            Source\n Code

            \n
              \n
            • ALLEGRO_LINE_CAP_NONE
            • \n
            • ALLEGRO_LINE_CAP_SQUARE
            • \n
            • ALLEGRO_LINE_CAP_ROUND
            • \n@@ -2139,16 +2039,15 @@\n href=\"primitives.html#al_draw_polygon\">al_draw_polygon

              \n

              Examples:

              \n
                \n
              • ex_polygon.c
              • \n
              \n

              ALLEGRO_VERTEX_BUFFER

              \n-
              typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n-typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;
              \n+
              typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;
              \n

              Source\n Code

              \n

              A GPU vertex buffer that you can use to store vertices on the GPU\n instead of uploading them afresh during every drawing operation.

              \n

              Since: 5.1.3

              \n

              See also: \n

            • ex_vertex_buffer.c
            • \n
            • ex_prim.c
            • \n
            \n

            ALLEGRO_INDEX_BUFFER

            \n-
            typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n-typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;
            \n+
            typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;
            \n

            Source\n Code

            \n

            A GPU index buffer that you can use to store indices of vertices in a\n vertex buffer on the GPU instead of uploading them afresh during every\n drawing operation.

            \n

            Since: 5.1.8

            \n@@ -2178,16 +2076,15 @@\n href=\"primitives.html#al_destroy_index_buffer\">al_destroy_index_buffer

            \n

            Examples:

            \n
              \n
            • ex_prim.c
            • \n
            \n

            ALLEGRO_PRIM_BUFFER_FLAGS

            \n-
            typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n-typedef enum ALLEGRO_PRIM_BUFFER_FLAGS
            \n+
            typedef enum ALLEGRO_PRIM_BUFFER_FLAGS
            \n

            Source\n Code

            \n

            Flags to specify how to create a vertex or an index buffer.

            \n
              \n
            • ALLEGRO_PRIM_BUFFER_STREAM - Hints to the driver that the buffer\n is written to often, but used only a few times per frame

            • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -114,39 +114,35 @@\n o _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bB_\bU_\bF_\bF_\bE_\bR_\b__\bF_\bL_\bA_\bG_\bS\n These functions are declared in the following header file. Link with\n allegro_primitives.\n #include \n *\b**\b**\b**\b**\b**\b* G\bGe\ben\bne\ber\bra\bal\bl *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_p\bpr\bri\bim\bmi\bit\bti\biv\bve\bes\bs_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_primitives_version(void)\n-uint32_t al_get_allegro_primitives_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_p\bpr\bri\bim\bmi\bit\bti\biv\bve\bes\bs_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n bool al_init_primitives_addon(void)\n-bool al_init_primitives_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Initializes the primitives addon.\n R\bRe\bet\btu\bur\brn\bns\bs:\b: True on success, false on failure.\n See also: _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bp_\br_\bi_\bm_\bi_\bt_\bi_\bv_\be_\bs_\b__\ba_\bd_\bd_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bt_\bo_\bu_\bc_\bh_\b__\bi_\bn_\bp_\bu_\bt_\b._\bc\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b__\bb_\be_\bn_\bc_\bh_\b._\bc\n * _\be_\bx_\b__\be_\bn_\be_\bt_\b__\bc_\bl_\bi_\be_\bn_\bt_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_p\bpr\bri\bim\bmi\bit\bti\biv\bve\bes\bs_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b*\n bool al_is_primitives_addon_initialized(void)\n-bool al_is_primitives_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the primitives addon is initialized, otherwise returns false.\n Since: 5.2.6\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bp_\br_\bi_\bm_\bi_\bt_\bi_\bv_\be_\bs_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bs_\bh_\bu_\bt_\bd_\bo_\bw_\bn_\b__\bp_\br_\bi_\bm_\bi_\bt_\bi_\bv_\be_\bs_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_p\bpr\bri\bim\bmi\bit\bti\biv\bve\bes\bs_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b*\n void al_shutdown_primitives_addon(void)\n-void al_shutdown_primitives_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Shut down the primitives addon. This is done automatically at program exit, but\n can be called any time the user wishes as well.\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bp_\br_\bi_\bm_\bi_\bt_\bi_\bv_\be_\bs_\b__\ba_\bd_\bd_\bo_\bn\n *\b**\b**\b**\b**\b**\b* H\bHi\big\bgh\bh l\ble\bev\bve\bel\bl d\bdr\bra\baw\bwi\bin\bng\bg r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n High level drawing routines encompass the most common usage of this addon: to\n draw geometric primitives, both smooth (variations on the circle theme) and\n@@ -226,90 +222,78 @@\n sharp. The offsets used in the second diagram were chosen so that this is the\n case: if you use those offsets, your shapes (if they are oriented the same way\n as they are on the diagram) should look the same whether multisampling is\n turned on or off.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_l\bli\bin\bne\be *\b**\b**\b**\b**\b*\n void al_draw_line(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_line(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a line segment between two points.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2 - Start and end points of the line\n * color - Color of the line\n * thickness - Thickness of the line, pass <= 0 to draw hairline lines\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bs_\bo_\bf_\bt_\b__\bl_\bi_\bn_\be\n Examples:\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\br_\be_\bs_\bi_\bz_\be_\b._\bc\n * _\be_\bx_\b__\bm_\bo_\bu_\bs_\be_\b__\bw_\ba_\br_\bp_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_t\btr\bri\bia\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_triangle(float x1, float y1, float x2, float y2,\n float x3, float y3, ALLEGRO_COLOR color, float thickness)\n-void al_draw_triangle(float x1, float y1, float x2, float y2,\n- float x3, float y3, ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an outlined triangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2, x3, y3 - Three points of the triangle\n * color - Color of the triangle\n * thickness - Thickness of the lines, pass <= 0 to draw hairline lines\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bt_\br_\bi_\ba_\bn_\bg_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bs_\bo_\bf_\bt_\b__\bt_\br_\bi_\ba_\bn_\bg_\bl_\be\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_t\btr\bri\bia\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n float x3, float y3, ALLEGRO_COLOR color)\n-void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n- float x3, float y3, ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled triangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2, x3, y3 - Three points of the triangle\n * color - Color of the triangle\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\br_\bi_\ba_\bn_\bg_\bl_\be\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_r\bre\bec\bct\bta\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_rectangle(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_rectangle(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an outlined rectangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2 - Upper left and lower right points of the rectangle\n * color - Color of the rectangle\n * thickness - Thickness of the lines, pass <= 0 to draw hairline lines\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\br_\bo_\bu_\bn_\bd_\be_\bd_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be\n Examples:\n * _\be_\bx_\b__\bm_\bo_\bu_\bs_\be_\b._\bc\n * _\be_\bx_\b__\bf_\bo_\bn_\bt_\b__\bj_\bu_\bs_\bt_\bi_\bf_\by_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bs_\bu_\bb_\bb_\bi_\bt_\bm_\ba_\bp_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_r\bre\bec\bct\bta\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color)\n-void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled rectangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2 - Upper left and lower right points of the rectangle\n * color - Color of the rectangle\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\br_\bo_\bu_\bn_\bd_\be_\bd_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be\n Examples:\n * _\be_\bx_\b__\bm_\bo_\bu_\bs_\be_\b._\bc\n * _\be_\bx_\b__\bt_\bi_\bm_\be_\br_\b._\bc\n * _\be_\bx_\b__\bw_\bi_\bn_\bd_\bo_\bw_\b__\bm_\ba_\bx_\bi_\bm_\bi_\bz_\be_\bd_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_r\bro\bou\bun\bnd\bde\bed\bd_\b_r\bre\bec\bct\bta\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n float rx, float ry, ALLEGRO_COLOR color, float thickness)\n-void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n- float rx, float ry, ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an outlined rounded rectangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2 - Upper left and lower right points of the rectangle\n * color - Color of the rectangle\n * rx, ry - The radii of the round\n * thickness - Thickness of the lines, pass <= 0 to draw hairline lines\n@@ -317,16 +301,14 @@\n Examples:\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n * _\be_\bx_\b__\ba_\bu_\bd_\bi_\bo_\b__\bc_\bh_\ba_\bi_\bn_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_r\bro\bou\bun\bnd\bde\bed\bd_\b_r\bre\bec\bct\bta\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n float rx, float ry, ALLEGRO_COLOR color)\n-void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n- float rx, float ry, ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an filled rounded rectangle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * x1, y1, x2, y2 - Upper left and lower right points of the rectangle\n * color - Color of the rectangle\n * rx, ry - The radii of the round\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\br_\bo_\bu_\bn_\bd_\be_\bd_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\br_\be_\bc_\bt_\ba_\bn_\bg_\bl_\be\n@@ -334,17 +316,14 @@\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b._\bc\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bca\bal\blc\bcu\bul\bla\bat\bte\be_\b_a\bar\brc\bc *\b**\b**\b**\b**\b*\n void al_calculate_arc(float* dest, int stride, float cx, float cy,\n float rx, float ry, float start_theta, float delta_theta, float thickness,\n int num_points)\n-void al_calculate_arc(float* dest, int stride, float cx, float cy,\n- float rx, float ry, float start_theta, float delta_theta, float thickness,\n- int num_points)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n When thickness <= 0 this function computes positions of num_points regularly\n spaced points on an elliptical arc. When thickness > 0 this function computes\n two sets of points, obtained as follows: the first set is obtained by taking\n the points computed in the thickness <= 0 case and shifting them by thickness /\n 2 outward, in a direction perpendicular to the arc curve. The second set is the\n same, but shifted thickness / 2 inward relative to the arc. The two sets of\n@@ -397,16 +376,14 @@\n * num_points - The number of points to calculate\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\ba_\br_\bc, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\bs_\bp_\bl_\bi_\bn_\be, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\br_\bi_\bb_\bb_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_p\bpi\bie\bes\bsl\bli\bic\bce\be *\b**\b**\b**\b**\b*\n void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a pieslice (outlined circular sector).\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the pieslice\n * r - Radius of the pieslice\n * color - Color of the pieslice\n * start_theta - The initial angle from which the pieslice is drawn in\n@@ -417,16 +394,14 @@\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bp_\bi_\be_\bs_\bl_\bi_\bc_\be\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_p\bpi\bie\bes\bsl\bli\bic\bce\be *\b**\b**\b**\b**\b*\n void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color)\n-void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled pieslice (filled circular sector).\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the pieslice\n * r - Radius of the pieslice\n * color - Color of the pieslice\n * start_theta - The initial angle from which the pieslice is drawn in\n@@ -436,16 +411,14 @@\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bi_\be_\bs_\bl_\bi_\bc_\be\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_e\bel\bll\bli\bip\bps\bse\be *\b**\b**\b**\b**\b*\n void al_draw_ellipse(float cx, float cy, float rx, float ry,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_ellipse(float cx, float cy, float rx, float ry,\n- ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an outlined ellipse.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the ellipse\n * rx, ry - Radii of the ellipse\n * color - Color of the ellipse\n * thickness - Thickness of the ellipse, pass <= 0 to draw a hairline\n@@ -453,61 +426,54 @@\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\be_\bl_\bl_\bi_\bp_\bs_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bc_\bi_\br_\bc_\bl_\be\n Examples:\n * _\be_\bx_\b__\bd_\br_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_e\bel\bll\bli\bip\bps\bse\be *\b**\b**\b**\b**\b*\n void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n ALLEGRO_COLOR color)\n-void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n- ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled ellipse.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the ellipse\n * rx, ry - Radii of the ellipse\n * color - Color of the ellipse\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\be_\bl_\bl_\bi_\bp_\bs_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bc_\bi_\br_\bc_\bl_\be\n Examples:\n * _\be_\bx_\b__\bd_\br_\ba_\bw_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_c\bci\bir\brc\bcl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n float thickness)\n-void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n- float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an outlined circle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the circle\n * r - Radius of the circle\n * color - Color of the circle\n * thickness - Thickness of the circle, pass <= 0 to draw a hairline circle\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bc_\bi_\br_\bc_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\be_\bl_\bl_\bi_\bp_\bs_\be\n Examples:\n * _\be_\bx_\b__\bt_\bo_\bu_\bc_\bh_\b__\bi_\bn_\bp_\bu_\bt_\b._\bc\n * _\be_\bx_\b__\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_c\bci\bir\brc\bcl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)\n-void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled circle.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the circle\n * r - Radius of the circle\n * color - Color of the circle\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bc_\bi_\br_\bc_\bl_\be, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\be_\bl_\bl_\bi_\bp_\bs_\be\n Examples:\n * _\be_\bx_\b__\be_\bn_\be_\bt_\b__\bc_\bl_\bi_\be_\bn_\bt_\b._\bc\n * _\be_\bx_\b__\bj_\bo_\by_\bs_\bt_\bi_\bc_\bk_\b__\bh_\bo_\bt_\bp_\bl_\bu_\bg_\bg_\bi_\bn_\bg_\b._\bc\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b2_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_a\bar\brc\bc *\b**\b**\b**\b**\b*\n void al_draw_arc(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_arc(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an arc.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the arc\n * r - Radius of the arc\n * color - Color of the arc\n * start_theta - The initial angle from which the arc is calculated in\n@@ -518,17 +484,14 @@\n See also: _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\ba_\br_\bc, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\be_\bl_\bl_\bi_\bp_\bt_\bi_\bc_\ba_\bl_\b__\ba_\br_\bc\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_e\bel\bll\bli\bip\bpt\bti\bic\bca\bal\bl_\b_a\bar\brc\bc *\b**\b**\b**\b**\b*\n void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float\n start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float\n-start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws an elliptical arc.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * cx, cy - Center of the arc\n * rx, ry - Radii of the arc\n * color - Color of the arc\n * start_theta - The initial angle from which the arc is calculated in\n@@ -539,16 +502,14 @@\n Since: 5.0.6, 5.1.0\n See also: _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\ba_\br_\bc, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\ba_\br_\bc\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bca\bal\blc\bcu\bul\bla\bat\bte\be_\b_s\bsp\bpl\bli\bin\bne\be *\b**\b**\b**\b**\b*\n void al_calculate_spline(float* dest, int stride, const float points[8],\n float thickness, int num_segments)\n-void al_calculate_spline(float* dest, int stride, const float points[8],\n- float thickness, int num_segments)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Calculates a B\u00e9zier spline given 4 control points. If thickness <= 0, then\n num_segments of points are required in the destination, otherwise twice as many\n are needed. The destination buffer should consist of regularly spaced (by\n distance of stride bytes) doublets of floats, corresponding to x and y\n coordinates of the vertices.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n@@ -558,30 +519,26 @@\n * points - An array of 4 pairs of coordinates of the 4 control points\n * thickness - Thickness of the spline ribbon\n * num_segments - The number of points to calculate\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bs_\bp_\bl_\bi_\bn_\be, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\ba_\br_\bc, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\br_\bi_\bb_\bb_\bo_\bn\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_s\bsp\bpl\bli\bin\bne\be *\b**\b**\b**\b**\b*\n void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float\n thickness)\n-void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float\n-thickness)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a B\u00e9zier spline given 4 control points.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * points - An array of 4 pairs of coordinates of the 4 control points\n * color - Color of the spline\n * thickness - Thickness of the spline, pass <= 0 to draw a hairline spline\n See also: _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\bs_\bp_\bl_\bi_\bn_\be\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bca\bal\blc\bcu\bul\bla\bat\bte\be_\b_r\bri\bib\bbb\bbo\bon\bn *\b**\b**\b**\b**\b*\n void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n int points_stride, float thickness, int num_segments)\n-void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n- int points_stride, float thickness, int num_segments)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Calculates a ribbon given an array of points. The ribbon will go through all of\n the passed points. If thickness <= 0, then num_segments of points are required\n in the destination buffer, otherwise twice as many are needed. The destination\n and the points buffer should consist of regularly spaced doublets of floats,\n corresponding to x and y coordinates of the vertices.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n@@ -594,17 +551,14 @@\n * thickness - Thickness of the spline ribbon\n * num_segments - The number of points to calculate\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\br_\bi_\bb_\bb_\bo_\bn, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\ba_\br_\bc, _\ba_\bl_\b__\bc_\ba_\bl_\bc_\bu_\bl_\ba_\bt_\be_\b__\bs_\bp_\bl_\bi_\bn_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_r\bri\bib\bbb\bbo\bon\bn *\b**\b**\b**\b**\b*\n void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR\n color,\n float thickness, int num_segments)\n-void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR\n-color,\n- float thickness, int num_segments)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a ribbon given an array of points. The ribbon will go through all of the\n passed points. The points buffer should consist of regularly spaced doublets of\n floats, corresponding to x and y coordinates of the vertices.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * points - An array of coordinate pairs (x and y) for each point\n * points_stride - Distance (in bytes) between starts of successive pairs of\n@@ -634,16 +588,14 @@\n offset the texture coordinates you pass to the al_draw_prim by (0.5, 0.5) if\n you need precise pixel control. E.g. to refer to pixel (5, 10) you\u2019d set the u\n and v to 5.5 and 10.5 respectively.\n See also: _\bP_\bi_\bx_\be_\bl_\b-_\bp_\br_\be_\bc_\bi_\bs_\be_\b _\bo_\bu_\bt_\bp_\bu_\bt\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_p\bpr\bri\bim\bm *\b**\b**\b**\b**\b*\n int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n ALLEGRO_BITMAP* texture, int start, int end, int type)\n-int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n- ALLEGRO_BITMAP* texture, int start, int end, int type)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a subset of the passed vertex array.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * texture - Texture to use, pass NULL to use only color shaded primitves\n * vtxs - Pointer to an array of vertices\n * decl - Pointer to a _\bv_\be_\br_\bt_\be_\bx_\b _\bd_\be_\bc_\bl_\ba_\br_\ba_\bt_\bi_\bo_\bn. If set to NULL, the vertices are\n assumed to be of the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX type\n@@ -664,16 +616,14 @@\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bw_\br_\ba_\bp_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_i\bin\bnd\bde\bex\bxe\bed\bd_\b_p\bpr\bri\bim\bm *\b**\b**\b**\b**\b*\n int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n-int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n- ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a subset of the passed vertex array. This function uses an index array to\n specify which vertices to use.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * texture - Texture to use, pass NULL to use only color shaded primitves\n * vtxs - Pointer to an array of vertices\n * decl - Pointer to a vertex declaration. If set to NULL, the vtxs are\n@@ -685,16 +635,14 @@\n R\bRe\bet\btu\bur\brn\bns\bs:\b: Number of primitives drawn\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bT_\bY_\bP_\bE, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bD_\bE_\bC_\bL, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\br_\bi_\bm\n Examples:\n * _\be_\bx_\b__\bp_\br_\bo_\bj_\be_\bc_\bt_\bi_\bo_\bn_\b2_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n- ALLEGRO_BITMAP* texture, int staal_get_allegro_acodec_version\n-int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n ALLEGRO_BITMAP* texture, int start, int end, int type)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a subset of the passed vertex buffer. The vertex buffer must not be\n locked. Additionally, to draw onto memory bitmaps or with memory bitmap\n textures the vertex buffer must support reading (i.e.\u00a0 it must be created with\n the ALLEGRO_PRIM_BUFFER_READWRITE).\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n@@ -710,17 +658,14 @@\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_i\bin\bnd\bde\bex\bxe\bed\bd_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n int start, int end, int type)\n-int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n- ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n- int start, int end, int type)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a subset of the passed vertex buffer. This function uses an index buffer\n to specify which vertices to use. Both buffers must not be locked.\n Additionally, to draw onto memory bitmaps or with memory bitmap textures both\n buffers must support reading (i.e.\u00a0they must be created with the\n ALLEGRO_PRIM_BUFFER_READWRITE).\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n@@ -740,20 +685,14 @@\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_s\bso\bof\bft\bt_\b_t\btr\bri\bia\ban\bng\bgl\ble\be *\b**\b**\b**\b**\b*\n void al_draw_soft_triangle(\n ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n void (*first)(uintptr_t, int, int, int, int),\n void (*step)(uintptr_t, int),\n void (*draw)(uintptr_t, int, int, int))\n-void al_draw_soft_triangle(\n- ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n- void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n- void (*first)(uintptr_t, int, int, int, int),\n- void (*step)(uintptr_t, int),\n- void (*draw)(uintptr_t, int, int, int))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a triangle using the software rasterizer and user supplied pixel\n functions. For help in understanding what these functions do, see the\n implementation of the various shading routines in addons/primitives/tri_soft.c.\n The triangle is drawn in two segments, from top to bottom. The segments are\n deliniated by the vertically middle vertex of the triangle. One of the two\n segments may be absent if two vertices are horizontally collinear.\n@@ -779,18 +718,14 @@\n coordinates are inclusive.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bt_\br_\bi_\ba_\bn_\bg_\bl_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_s\bso\bof\bft\bt_\b_l\bli\bin\bne\be *\b**\b**\b**\b**\b*\n void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n void (*step)(uintptr_t, int),\n void (*draw)(uintptr_t, int, int))\n-void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n- void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n- void (*step)(uintptr_t, int),\n- void (*draw)(uintptr_t, int, int))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a line using the software rasterizer and user supplied pixel functions.\n For help in understanding what these functions do, see the implementation of\n the various shading routines in addons/primitives/line_soft.c. The line is\n drawn top to bottom.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * v1, v2 - The two vertices of the line\n@@ -807,42 +742,37 @@\n * draw - Called once per pixel. The function is expected to draw the pixel\n at the coordinates passed to it.\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bl_\bi_\bn_\be\n *\b**\b**\b**\b**\b**\b* C\bCu\bus\bst\bto\bom\bm v\bve\ber\brt\bte\bex\bx d\bde\bec\bcl\bla\bar\bra\bat\bti\bio\bon\bn r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_v\bve\ber\brt\bte\bex\bx_\b_d\bde\bec\bcl\bl *\b**\b**\b**\b**\b*\n ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT*\n elements, int stride)\n-ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT*\n-elements, int stride)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a vertex declaration, which describes a custom vertex format.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * elements - An array of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bE_\bL_\bE_\bM_\bE_\bN_\bT structures.\n * stride - Size of the custom vertex structure\n R\bRe\bet\btu\bur\brn\bns\bs:\b: Newly created vertex declaration.\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bE_\bL_\bE_\bM_\bE_\bN_\bT, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bD_\bE_\bC_\bL, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_v\bve\ber\brt\bte\bex\bx_\b_d\bde\bec\bcl\bl *\b**\b**\b**\b**\b*\n void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n-void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys a vertex declaration.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * decl - Vertex declaration to destroy\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bE_\bL_\bE_\bM_\bE_\bN_\bT, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bD_\bE_\bC_\bL, _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* V\bVe\ber\brt\bte\bex\bx b\bbu\buf\bff\bfe\ber\br r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n const void* initial_data, int num_vertices, int flags)\n-ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n- const void* initial_data, int num_vertices, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a vertex buffer. Can return NULL if the buffer could not be created\n (e.g.\u00a0the system only supports write-only buffers).\n N\bNo\bot\bte\be:\b:\n This is an advanced feature, often unsupported on lower-end video\n cards. Be extra mindful of this function failing and make\n arrangements for fallback drawing functionality or a nice error\n@@ -859,27 +789,24 @@\n Since: 5.1.3\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys a vertex buffer. Does nothing if passed NULL.\n Since: 5.1.3\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boc\bck\bk_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n int length, int flags)\n-void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n- int length, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Locks a vertex buffer so you can access its data. Will return NULL if the\n parameters are invalid, if reading is requested from a write only buffer, or if\n the buffer is already locked.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * buffer - Vertex buffer to lock\n * offset - Vertex index of the start of the locked range\n@@ -889,35 +816,31 @@\n Since: 5.1.3\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bu_\bn_\bl_\bo_\bc_\bk_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_u\bun\bnl\blo\boc\bck\bk_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Unlocks a previously locked vertex buffer.\n Since: 5.1.3\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bve\ber\brt\bte\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br_\b_s\bsi\biz\bze\be *\b**\b**\b**\b**\b*\n int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)\n-int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the size of the vertex buffer\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR\n *\b**\b**\b**\b**\b**\b* I\bIn\bnd\bde\bex\bx b\bbu\buf\bff\bfe\ber\br r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_i\bin\bnd\bde\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n const void* initial_data, int num_indices, int flags)\n-ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n- const void* initial_data, int num_indices, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Creates a index buffer. Can return NULL if the buffer could not be created\n (e.g.\u00a0the system only supports write-only buffers).\n N\bNo\bot\bte\be:\b:\n This is an advanced feature, often unsupported on lower-end video\n cards. Be extra mindful of this function failing and make\n arrangements for fallback drawing functionality or a nice error\n@@ -933,26 +856,23 @@\n ALLEGRO_PRIM_BUFFER_STATIC.\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bI_\bN_\bD_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bde\bes\bst\btr\bro\boy\by_\b_i\bin\bnd\bde\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Destroys a index buffer. Does nothing if passed NULL.\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bI_\bN_\bD_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_l\blo\boc\bck\bk_\b_i\bin\bnd\bde\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n int length, int flags)\n-void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n- int length, int flags)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Locks a index buffer so you can access its data. Will return NULL if the\n parameters are invalid, if reading is requested from a write only buffer and if\n the buffer is already locked.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * buffer - Index buffer to lock\n * offset - Element index of the start of the locked range\n@@ -961,36 +881,31 @@\n ALLEGRO_LOCK_READWRITE\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bI_\bN_\bD_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bu_\bn_\bl_\bo_\bc_\bk_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_u\bun\bnl\blo\boc\bck\bk_\b_i\bin\bnd\bde\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br *\b**\b**\b**\b**\b*\n void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Unlocks a previously locked index buffer.\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bI_\bN_\bD_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR, _\ba_\bl_\b__\bl_\bo_\bc_\bk_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_i\bin\bnd\bde\bex\bx_\b_b\bbu\buf\bff\bfe\ber\br_\b_s\bsi\biz\bze\be *\b**\b**\b**\b**\b*\n int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)\n-int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the size of the index buffer\n Since: 5.1.8\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bI_\bN_\bD_\bE_\bX_\b__\bB_\bU_\bF_\bF_\bE_\bR\n *\b**\b**\b**\b**\b**\b* P\bPo\bol\bly\byg\bgo\bon\bn r\bro\bou\but\bti\bin\bne\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_p\bpo\bol\bly\byl\bli\bin\bne\be *\b**\b**\b**\b**\b*\n void al_draw_polyline(const float* vertices, int vertex_stride,\n int vertex_count, int join_style, int cap_style,\n ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polyline(const float* vertices, int vertex_stride,\n- int vertex_count, int join_style, int cap_style,\n- ALLEGRO_COLOR color, float thickness, float miter_limit)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draw a series of line segments.\n * vertices - Interleaved array of (x, y) vertex coordinates\n * vertex_stride - the number of bytes between pairs of vertices (the\n stride)\n * vertex_count - Number of vertices in the array\n * join_style - Member of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bL_\bI_\bN_\bE_\b__\bJ_\bO_\bI_\bN specifying how to render the\n@@ -1017,16 +932,14 @@\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bL_\bI_\bN_\bE_\b__\bJ_\bO_\bI_\bN, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bL_\bI_\bN_\bE_\b__\bC_\bA_\bP\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_p\bpo\bol\bly\byg\bgo\bon\bn *\b**\b**\b**\b**\b*\n void al_draw_polygon(const float *vertices, int vertex_count,\n int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polygon(const float *vertices, int vertex_count,\n- int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draw an unfilled polygon. This is the same as passing ALLEGRO_LINE_CAP_CLOSED\n to _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bl_\bi_\bn_\be.\n * vertex - Interleaved array of (x, y) vertex coordinates\n * vertex_count - Number of vertices in the array\n * join_style - Member of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bL_\bI_\bN_\bE_\b__\bJ_\bO_\bI_\bN specifying how to render the\n joins between line segments\n@@ -1036,16 +949,14 @@\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bl_\bi_\bn_\be, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bL_\bI_\bN_\bE_\b__\bJ_\bO_\bI_\bN\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_p\bpo\bol\bly\byg\bgo\bon\bn *\b**\b**\b**\b**\b*\n void al_draw_filled_polygon(const float *vertices, int vertex_count,\n ALLEGRO_COLOR color)\n-void al_draw_filled_polygon(const float *vertices, int vertex_count,\n- ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draw a filled, simple polygon. Simple means it does not have to be convex but\n must not be self-overlapping.\n * vertices - Interleaved array of (x, y) vertex coordinates\n * vertex_count - Number of vertices in the array\n * color - Color of the filled polygon\n When the y-axis is facing downwards (the usual), the coordinates must be\n@@ -1053,16 +964,14 @@\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn, _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b__\bw_\bi_\bt_\bh_\b__\bh_\bo_\bl_\be_\bs\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_d\bdr\bra\baw\bw_\b_f\bfi\bil\bll\ble\bed\bd_\b_p\bpo\bol\bly\byg\bgo\bon\bn_\b_w\bwi\bit\bth\bh_\b_h\bho\bol\ble\bes\bs *\b**\b**\b**\b**\b*\n void al_draw_filled_polygon_with_holes(const float *vertices,\n const int *vertex_counts, ALLEGRO_COLOR color)\n-void al_draw_filled_polygon_with_holes(const float *vertices,\n- const int *vertex_counts, ALLEGRO_COLOR color)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Draws a filled simple polygon with zero or more other simple polygons\n subtracted from it - the holes. The holes cannot touch or intersect with the\n outline of the filled polygon.\n * vertices - Interleaved array of (x, y) vertex coordinates for each of the\n polygons, including holes.\n * vertex_counts - Number of vertices for each polygon. The number of\n@@ -1098,17 +1007,14 @@\n _\ba_\bl_\b__\bt_\br_\bi_\ba_\bn_\bg_\bu_\bl_\ba_\bt_\be_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* a\bal\bl_\b_t\btr\bri\bia\ban\bng\bgu\bul\bla\bat\bte\be_\b_p\bpo\bol\bly\byg\bgo\bon\bn *\b**\b**\b**\b**\b*\n bool al_triangulate_polygon(\n const float* vertices, size_t vertex_stride, const int* vertex_counts,\n void (*emit_triangle)(int, int, int, void*), void* userdata)\n-bool al_triangulate_polygon(\n- const float* vertices, size_t vertex_stride, const int* vertex_counts,\n- void (*emit_triangle)(int, int, int, void*), void* userdata)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Divides a simple polygon into triangles, with zero or more other simple\n polygons subtracted from it - the holes. The holes cannot touch or intersect\n with the outline of the main polygon. Simple means the polygon does not have to\n be convex but must not be self-overlapping.\n P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs:\b:\n * vertices - Interleaved array of (x, y) vertex coordinates for each of the\n@@ -1124,15 +1030,14 @@\n vertices and userdata.\n * userdata - arbitrary data to be passed to emit_triangle.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bf_\bi_\bl_\bl_\be_\bd_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b__\bw_\bi_\bt_\bh_\b__\bh_\bo_\bl_\be_\bs\n *\b**\b**\b**\b**\b**\b* S\bSt\btr\bru\buc\bct\btu\bur\bre\bes\bs a\ban\bnd\bd t\bty\byp\bpe\bes\bs *\b**\b**\b**\b**\b**\b*\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVE\bER\bRT\bTE\bEX\bX *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n-typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Defines the generic vertex type, with a 3D position, color and texture\n coordinates for a single texture. Note that at this time, the software driver\n for this addon cannot render 3D primitives. If you want a 2D only primitive,\n set z to 0. Note that you must initialize all members of this struct when\n you\u2019re using it. One exception to this rule are the u and v variables which can\n be left uninitialized when you are not using textures.\n@@ -1143,26 +1048,24 @@\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bA_\bT_\bT_\bR\n Examples:\n * _\be_\bx_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bt_\ba_\br_\bg_\be_\bt_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVE\bER\bRT\bTE\bEX\bX_\b_D\bDE\bEC\bCL\bL *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n-typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A vertex declaration. This opaque structure is responsible for describing the\n format and layout of a user defined custom vertex. It is created and destroyed\n by specialized functions.\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bE_\bL_\bE_\bM_\bE_\bN_\bT\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVE\bER\bRT\bTE\bEX\bX_\b_E\bEL\bLE\bEM\bME\bEN\bNT\bT *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n-typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A small structure describing a certain element of a vertex. E.g. the position\n of the vertex, or its color. These structures are used by the\n _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl function to create the vertex declaration. For that they\n generally occur in an array. The last element of such an array should have the\n attribute field equal to 0, to signify that it is the end of the array. Here is\n an example code that would create a declaration describing the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX\n@@ -1190,15 +1093,14 @@\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bD_\bE_\bC_\bL, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bA_\bT_\bT_\bR,\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bS_\bT_\bO_\bR_\bA_\bG_\bE\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPR\bRI\bIM\bM_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_PRIM_TYPE\n-typedef enum ALLEGRO_PRIM_TYPE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Enumerates the types of primitives this addon can draw.\n * ALLEGRO_PRIM_POINT_LIST - A list of points, each vertex defines a point\n * ALLEGRO_PRIM_LINE_LIST - A list of lines, sequential pairs of vertices\n define disjointed lines\n * ALLEGRO_PRIM_LINE_STRIP - A strip of lines, sequential vertices define a\n strip of lines\n@@ -1208,15 +1110,14 @@\n vertices define disjointed triangles\n * ALLEGRO_PRIM_TRIANGLE_STRIP - A strip of triangles, sequential vertices\n define a strip of triangles\n * ALLEGRO_PRIM_TRIANGLE_FAN - A fan of triangles, all triangles share the\n first vertex\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPR\bRI\bIM\bM_\b_A\bAT\bTT\bTR\bR *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_PRIM_ATTR\n-typedef enum ALLEGRO_PRIM_ATTR\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Enumerates the types of vertex attributes that a custom vertex may have.\n * ALLEGRO_PRIM_POSITION - Position information, can be stored only in\n ALLEGRO_PRIM_SHORT_2, ALLEGRO_PRIM_FLOAT_2 and ALLEGRO_PRIM_FLOAT_3.\n * ALLEGRO_PRIM_COLOR_ATTR - Color information, stored in an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bC_\bO_\bL_\bO_\bR.\n The storage field of ALLEGRO_VERTEX_ELEMENT is ignored\n * ALLEGRO_PRIM_TEX_COORD - Texture coordinate information, can be stored\n@@ -1254,15 +1155,14 @@\n parameter with the following semantics: TEXCOORD{# + 2} where # is the\n index of the attribute. E.g. the first attribute can be accessed via\n TEXCOORD2, second via TEXCOORD3 and so on.\n Since: 5.1.6\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bE_\bR_\bT_\bE_\bX_\b__\bD_\bE_\bC_\bL, _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bS_\bT_\bO_\bR_\bA_\bG_\bE, _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bs_\bo_\bu_\br_\bc_\be\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPR\bRI\bIM\bM_\b_S\bST\bTO\bOR\bRA\bAG\bGE\bE *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_PRIM_STORAGE\n-typedef enum ALLEGRO_PRIM_STORAGE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Enumerates the types of storage an attribute of a custom vertex may be stored\n in. Many of these can only be used for ALLEGRO_PRIM_USER_ATTR attributes and\n can only be accessed via shaders. Usually no matter what the storage is\n specified the attribute gets converted to single precision floating point when\n the shader is run. Despite that, it may be advantageous to use more dense\n storage formats (e.g.\u00a0ALLEGRO_PRIM_NORMALIZED_UBYTE_4 instead of\n@@ -1306,32 +1206,29 @@\n * ALLEGRO_PRIM_HALF_FLOAT_4 - A quad of half-precision floats. Note that\n this storage format is not supported on all platforms.\n _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bd_\be_\bc_\bl will return NULL if you use it on those platforms.\n Since: 5.1.6\n See also: _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bP_\bR_\bI_\bM_\b__\bA_\bT_\bT_\bR\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVE\bER\bRT\bTE\bEX\bX_\b_C\bCA\bAC\bCH\bHE\bE_\b_S\bSI\bIZ\bZE\bE *\b**\b**\b**\b**\b*\n #define ALLEGRO_VERTEX_CACHE_SIZE 256\n-#define ALLEGRO_VERTEX_CACHE_SIZE 256\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Defines the size of the transformation vertex cache for the software renderer.\n If you pass less than this many vertices to the primitive rendering functions\n you will get a speed boost. This also defines the size of the cache vertex\n buffer, used for the high-level primitives. This corresponds to the maximum\n number of line segments that will be used to form them.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPR\bRI\bIM\bM_\b_Q\bQU\bUA\bAL\bLI\bIT\bTY\bY *\b**\b**\b**\b**\b*\n #define ALLEGRO_PRIM_QUALITY 10\n-#define ALLEGRO_PRIM_QUALITY 10\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Controls the quality of the approximation of curved primitives (e.g.\u00a0circles).\n Curved primitives are drawn by approximating them with a sequence of line\n segments. By default, this roughly corresponds to error of less than half of a\n pixel.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_L\bLI\bIN\bNE\bE_\b_J\bJO\bOI\bIN\bN *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_LINE_JOIN\n-typedef enum ALLEGRO_LINE_JOIN\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n * ALLEGRO_LINE_JOIN_NONE\n * ALLEGRO_LINE_JOIN_BEVEL\n * ALLEGRO_LINE_JOIN_ROUND\n * ALLEGRO_LINE_JOIN_MITER\n [ALLEGRO_LINE_JOIN styles]A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_L\bLI\bIN\bNE\bE_\b_J\bJO\bOI\bIN\bN s\bst\bty\byl\ble\bes\bs\n See the picture for the difference.\n@@ -1339,15 +1236,14 @@\n parameter to the polygon functions.\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_L\bLI\bIN\bNE\bE_\b_C\bCA\bAP\bP *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_LINE_CAP\n-typedef enum ALLEGRO_LINE_CAP\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n * ALLEGRO_LINE_CAP_NONE\n * ALLEGRO_LINE_CAP_SQUARE\n * ALLEGRO_LINE_CAP_ROUND\n * ALLEGRO_LINE_CAP_TRIANGLE\n * ALLEGRO_LINE_CAP_CLOSED\n [ALLEGRO_LINE_CAP styles]A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_L\bLI\bIN\bNE\bE_\b_C\bCA\bAP\bP s\bst\bty\byl\ble\bes\bs\n@@ -1357,37 +1253,34 @@\n looks.)\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bd_\br_\ba_\bw_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn\n Examples:\n * _\be_\bx_\b__\bp_\bo_\bl_\by_\bg_\bo_\bn_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVE\bER\bRT\bTE\bEX\bX_\b_B\bBU\bUF\bFF\bFE\bER\bR *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n-typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A GPU vertex buffer that you can use to store vertices on the GPU instead of\n uploading them afresh during every drawing operation.\n Since: 5.1.3\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bv_\be_\br_\bt_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_I\bIN\bND\bDE\bEX\bX_\b_B\bBU\bUF\bFF\bFE\bER\bR *\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n-typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n A GPU index buffer that you can use to store indices of vertices in a vertex\n buffer on the GPU instead of uploading them afresh during every drawing\n operation.\n Since: 5.1.8\n See also: _\ba_\bl_\b__\bc_\br_\be_\ba_\bt_\be_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br, _\ba_\bl_\b__\bd_\be_\bs_\bt_\br_\bo_\by_\b__\bi_\bn_\bd_\be_\bx_\b__\bb_\bu_\bf_\bf_\be_\br\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_P\bPR\bRI\bIM\bM_\b_B\bBU\bUF\bFF\bFE\bER\bR_\b_F\bFL\bLA\bAG\bGS\bS *\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n-typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Flags to specify how to create a vertex or an index buffer.\n * ALLEGRO_PRIM_BUFFER_STREAM - Hints to the driver that the buffer is\n written to often, but used only a few times per frame\n * ALLEGRO_PRIM_BUFFER_STATIC - Hints to the driver that the buffer is\n written to once and is used often\n * ALLEGRO_PRIM_BUFFER_DYNAMIC - Hints to the driver that the buffer is\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/shader.html", "source2": "./usr/share/doc/allegro5-doc/refman/shader.html", "unified_diff": "@@ -214,16 +214,15 @@\n
            • al_get_default_shader_source
            • \n
            \n \n

            These functions are declared in the main Allegro header file:

            \n
             #include <allegro5/allegro.h>
            \n

            ALLEGRO_SHADER

            \n-
            typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n-typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;
            \n+
            typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;
            \n

            Source\n Code

            \n

            An ALLEGRO_SHADER is a\n program that runs on the GPU. It combines both a vertex and a pixel\n shader. (In OpenGL terms, an ALLEGRO_SHADER is actually a\n@@ -240,16 +239,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_shader.cpp#L39\">ex_shader.cpp\n

          • ex_shader_target.c
          • \n
          • ex_prim_shader.c
          • \n
          \n

          ALLEGRO_SHADER_TYPE

          \n-
          typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n-typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;
          \n+
          typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;
          \n

          Source\n Code

          \n

          Used with al_attach_shader_source\n and al_attach_shader_source_file\n@@ -275,16 +273,15 @@\n one final pixel in the target bitmap is not necessarily composed of only\n a single output but of multiple fragments (for example when\n multi-sampling is being used).

          \n \n
    \n

    Since: 5.1.0

    \n

    ALLEGRO_SHADER_PLATFORM

    \n-
    typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n-typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;
    \n+
    typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;
    \n

    Source\n Code

    \n

    The underlying platform which the ALLEGRO_SHADER is built on top of,\n which dictates the language used to program the shader.

    \n
      \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -63,30 +63,28 @@\n * _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bi_\bn_\bt_\b__\bv_\be_\bc_\bt_\bo_\br\n * _\ba_\bl_\b__\bs_\be_\bt_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bf_\bl_\bo_\ba_\bt_\b__\bv_\be_\bc_\bt_\bo_\br\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bs_\bo_\bu_\br_\bc_\be\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSH\bHA\bAD\bDE\bER\bR *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n-typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bH_\bA_\bD_\bE_\bR is a program that runs on the GPU. It combines both a vertex\n and a pixel shader. (In OpenGL terms, an _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bH_\bA_\bD_\bE_\bR is actually a p\bpr\bro\bog\bgr\bra\bam\bm\n which has one or more s\bsh\bha\bad\bde\ber\brs\bs attached. This can be confusing.)\n The source code for the underlying vertex or pixel shader can be provided\n either as GLSL or HLSL, depending on the value of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bH_\bA_\bD_\bE_\bR_\b__\bP_\bL_\bA_\bT_\bF_\bO_\bR_\bM used\n when creating it.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc_\bp_\bp\n * _\be_\bx_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bt_\ba_\br_\bg_\be_\bt_\b._\bc\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b__\bs_\bh_\ba_\bd_\be_\br_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSH\bHA\bAD\bDE\bER\bR_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n-typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Used with _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bs_\bo_\bu_\br_\bc_\be and _\ba_\bl_\b__\ba_\bt_\bt_\ba_\bc_\bh_\b__\bs_\bh_\ba_\bd_\be_\br_\b__\bs_\bo_\bu_\br_\bc_\be_\b__\bf_\bi_\bl_\be to specify\n how to interpret the attached source.\n ALLEGRO_VERTEX_SHADER\n A vertex shader is executed for each vertex it is used with. The program\n will output exactly one vertex at a time.\n When Allegro\u2019s graphics are being used then in addition to all vertices\n@@ -102,15 +100,14 @@\n A more accurate term for pixel shader would be fragment shader since one\n final pixel in the target bitmap is not necessarily composed of only a\n single output but of multiple fragments (for example when multi-sampling\n is being used).\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSH\bHA\bAD\bDE\bER\bR_\b_P\bPL\bLA\bAT\bTF\bFO\bOR\bRM\bM *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n-typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n The underlying platform which the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bH_\bA_\bD_\bE_\bR is built on top of, which\n dictates the language used to program the shader.\n * ALLEGRO_SHADER_AUTO - Pick a platform automatically given the current\n display flags.\n * ALLEGRO_SHADER_GLSL - OpenGL Shading Language\n * ALLEGRO_SHADER_HLSL - High Level Shader Language (for Direct3D)\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/state.html", "source2": "./usr/share/doc/allegro5-doc/refman/state.html", "unified_diff": "@@ -184,16 +184,15 @@\n
    • al_get_errno
    • \n
    • al_set_errno
    • \n
    \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_STATE

    \n-
    typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n-typedef struct ALLEGRO_STATE ALLEGRO_STATE;
    \n+
    typedef struct ALLEGRO_STATE ALLEGRO_STATE;
    \n

    Source\n Code

    \n

    Opaque type which is passed to al_store_state/al_restore_state.

    \n

    The various state kept internally by Allegro can be displayed like\n@@ -229,16 +228,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_blend_bench.c#L65\">ex_blend_bench.c\n

  • ex_blend2.cpp
  • \n
  • nihgui.cpp
  • \n \n

    ALLEGRO_STATE_FLAGS

    \n-
    typedef enum ALLEGRO_STATE_FLAGS\n-typedef enum ALLEGRO_STATE_FLAGS
    \n+
    typedef enum ALLEGRO_STATE_FLAGS
    \n

    Source\n Code

    \n

    Flags which can be passed to al_store_state/al_restore_state as bit\n combinations. See al_store_state\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -49,15 +49,14 @@\n * _\ba_\bl_\b__\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\be_\br_\br_\bn_\bo\n * _\ba_\bl_\b__\bs_\be_\bt_\b__\be_\br_\br_\bn_\bo\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n-typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Opaque type which is passed to _\ba_\bl_\b__\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be/_\ba_\bl_\b__\br_\be_\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be.\n The various state kept internally by Allegro can be displayed like this:\n global\n active system driver\n current config\n per thread\n@@ -83,15 +82,14 @@\n thread communication.)\n Examples:\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b__\bb_\be_\bn_\bc_\bh_\b._\bc\n * _\be_\bx_\b__\bb_\bl_\be_\bn_\bd_\b2_\b._\bc_\bp_\bp\n * _\bn_\bi_\bh_\bg_\bu_\bi_\b._\bc_\bp_\bp\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bST\bTA\bAT\bTE\bE_\b_F\bFL\bLA\bAG\bGS\bS *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_STATE_FLAGS\n-typedef enum ALLEGRO_STATE_FLAGS\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Flags which can be passed to _\ba_\bl_\b__\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be/_\ba_\bl_\b__\br_\be_\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be as bit\n combinations. See _\ba_\bl_\b__\bs_\bt_\bo_\br_\be_\b__\bs_\bt_\ba_\bt_\be for the list of flags.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_r\bre\bes\bst\bto\bor\bre\be_\b_s\bst\bta\bat\bte\be *\b**\b**\b**\b**\b**\b*\n void al_restore_state(ALLEGRO_STATE const *state)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Restores part of the state of the current thread from the given _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bS_\bT_\bA_\bT_\bE\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/system.html", "source2": "./usr/share/doc/allegro5-doc/refman/system.html", "unified_diff": "@@ -232,16 +232,15 @@\n be the version of Allegro you compiled with, and B = xb.yb.zb.* be the\n version of Allegro found in the system shared library.

    \n

    If you defined ALLEGRO_UNSTABLE before including Allegro\n headers, then version A is compatible with B only if xa.ya.za =\n xb.yb.zb. Otherwise, A is compatible with B only if xa.ya = xb.yb.

    \n

    See also: al_init

    \n

    al_init

    \n-
    #define al_init()    (al_install_system(ALLEGRO_VERSION_INT, atexit))\n-#define al_init()    (al_install_system(ALLEGRO_VERSION_INT, atexit))
    \n+
    #define al_init()    (al_install_system(ALLEGRO_VERSION_INT, atexit))
    \n

    Source\n Code

    \n

    Like al_install_system,\n but automatically passes in the version and uses the atexit function\n visible in the current binary.

    \n
    \n@@ -840,16 +839,15 @@\n

    Since: 5.1.12

    \n

    Examples:

    \n
      \n
    • ex_cpu.c
    • \n
    \n

    ALLEGRO_SYSTEM_ID

    \n-
    enum ALLEGRO_SYSTEM_ID {\n-enum ALLEGRO_SYSTEM_ID {
    \n+
    enum ALLEGRO_SYSTEM_ID {
    \n

    Source\n Code

    \n

    The system Allegro is running on.

    \n
      \n
    • ALLEGRO_SYSTEM_ID_UNKNOWN - Unknown system.
    • \n
    • ALLEGRO_SYSTEM_ID_XGLX - Xglx
    • \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -81,15 +81,14 @@\n Allegro found in the system shared library.\n If you defined ALLEGRO_UNSTABLE before including Allegro headers, then version\n A is compatible with B only if xa.ya.za = xb.yb.zb. Otherwise, A is compatible\n with B only if xa.ya = xb.yb.\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt *\b**\b**\b**\b**\b**\b*\n #define al_init() (al_install_system(ALLEGRO_VERSION_INT, atexit))\n-#define al_init() (al_install_system(ALLEGRO_VERSION_INT, atexit))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bi_\bn_\bs_\bt_\ba_\bl_\bl_\b__\bs_\by_\bs_\bt_\be_\bm, but automatically passes in the version and uses the\n atexit function visible in the current binary.\n Note: It is typically wrong to call al_init anywhere except the final\n game binary. In particular, do not call it inside a shared library\n unless you know what you\u2019re doing. In those cases, it is better to\n call al_install_system either with a NULL atexit_ptr, or with a\n@@ -573,15 +572,14 @@\n returns a certain \u201cdesirable\u201d number.\n This function may be called prior to _\ba_\bl_\b__\bi_\bn_\bs_\bt_\ba_\bl_\bl_\b__\bs_\by_\bs_\bt_\be_\bm or _\ba_\bl_\b__\bi_\bn_\bi_\bt.\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bc_\bp_\bu_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_S\bSY\bYS\bST\bTE\bEM\bM_\b_I\bID\bD *\b**\b**\b**\b**\b**\b*\n enum ALLEGRO_SYSTEM_ID {\n-enum ALLEGRO_SYSTEM_ID {\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n The system Allegro is running on.\n * ALLEGRO_SYSTEM_ID_UNKNOWN - Unknown system.\n * ALLEGRO_SYSTEM_ID_XGLX - Xglx\n * ALLEGRO_SYSTEM_ID_WINDOWS - Windows\n * ALLEGRO_SYSTEM_ID_MACOSX - macOS\n * ALLEGRO_SYSTEM_ID_ANDROID - Android\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/threads.html", "source2": "./usr/share/doc/allegro5-doc/refman/threads.html", "unified_diff": "@@ -223,46 +223,43 @@\n would be difficult at best, hence the behaviour of the following\n functions will differ subtly on different platforms (more so than\n usual). Your best bet is to be aware of this and code to the\n intersection of the semantics and avoid edge cases.

      \n

      These functions are declared in the main Allegro header file:

      \n
       #include <allegro5/allegro.h>
      \n

      ALLEGRO_THREAD

      \n-
      typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n-typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;
      \n+
      typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;
      \n

      Source\n Code

      \n

      An opaque structure representing a thread.

      \n

      Examples:

      \n
        \n
      • ex_threads.c
      • \n
      • ex_threads2.c
      • \n
      • ex_loading_thread.c
      • \n
      \n

      ALLEGRO_MUTEX

      \n-
      typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n-typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;
      \n+
      typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;
      \n

      Source\n Code

      \n

      An opaque structure representing a mutex.

      \n

      Examples:

      \n
        \n
      • ex_threads2.c
      • \n
      • ex_loading_thread.c
      • \n
      \n

      ALLEGRO_COND

      \n-
      typedef struct ALLEGRO_COND ALLEGRO_COND;\n-typedef struct ALLEGRO_COND ALLEGRO_COND;
      \n+
      typedef struct ALLEGRO_COND ALLEGRO_COND;
      \n

      Source\n Code

      \n

      An opaque structure representing a condition variable.

      \n

      Examples:

      \n
        \n
      • \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTH\bHR\bRE\bEA\bAD\bD *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n-typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque structure representing a thread.\n Examples:\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b._\bc\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b2_\b._\bc\n * _\be_\bx_\b__\bl_\bo_\ba_\bd_\bi_\bn_\bg_\b__\bt_\bh_\br_\be_\ba_\bd_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMU\bUT\bTE\bEX\bX *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n-typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque structure representing a mutex.\n Examples:\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b2_\b._\bc\n * _\be_\bx_\b__\bl_\bo_\ba_\bd_\bi_\bn_\bg_\b__\bt_\bh_\br_\be_\ba_\bd_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_C\bCO\bON\bND\bD *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_COND ALLEGRO_COND;\n-typedef struct ALLEGRO_COND ALLEGRO_COND;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An opaque structure representing a condition variable.\n Examples:\n * _\be_\bx_\b__\bt_\bh_\br_\be_\ba_\bd_\bs_\b2_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_t\bth\bhr\bre\bea\bad\bd *\b**\b**\b**\b**\b**\b*\n ALLEGRO_THREAD *al_create_thread(\n void *(*proc)(ALLEGRO_THREAD *thread, void *arg), void *arg)\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/time.html", "source2": "./usr/share/doc/allegro5-doc/refman/time.html", "unified_diff": "@@ -180,16 +180,15 @@\n id=\"toc-al_init_timeout\">al_init_timeout
      • \n
      • al_rest
      • \n
      \n \n

      These functions are declared in the main Allegro header file:

      \n
       #include <allegro5/allegro.h>
      \n

      ALLEGRO_TIMEOUT

      \n-
      typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;\n-typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;
      \n+
      typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;
      \n

      Source\n Code

      \n

      Represent a timeout value. The size of the structure is known so it\n can be statically allocated. The contents are private.

      \n

      See also: al_init_timeout

      \n

      Examples:

      \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -47,15 +47,14 @@\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\bi_\bm_\be\n * _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bt_\bi_\bm_\be_\bo_\bu_\bt\n * _\ba_\bl_\b__\br_\be_\bs_\bt\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTI\bIM\bME\bEO\bOU\bUT\bT *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;\n-typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Represent a timeout value. The size of the structure is known so it can be\n statically allocated. The contents are private.\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bt_\bi_\bm_\be_\bo_\bu_\bt\n Examples:\n * _\be_\bx_\b__\bt_\bi_\bm_\be_\bd_\bw_\ba_\bi_\bt_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_t\bti\bim\bme\be *\b**\b**\b**\b**\b**\b*\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/timer.html", "source2": "./usr/share/doc/allegro5-doc/refman/timer.html", "unified_diff": "@@ -208,58 +208,53 @@\n
    • al_get_timer_event_source
    • \n
    \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_TIMER

    \n-
    typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n-typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;
    \n+
    typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;
    \n

    Source\n Code

    \n

    This is an abstract data type representing a timer object.

    \n

    Examples:

    \n
      \n
    • ex_enet_server.c
    • \n
    • ex_timer_pause.c
    • \n
    • ex_user_events.c
    • \n
    \n

    ALLEGRO_USECS_TO_SECS

    \n-
    #define ALLEGRO_USECS_TO_SECS(x)      ((x) / 1000000.0)\n-#define ALLEGRO_USECS_TO_SECS(x)      ((x) / 1000000.0)
    \n+
    #define ALLEGRO_USECS_TO_SECS(x)      ((x) / 1000000.0)
    \n

    Source\n Code

    \n

    Convert microseconds to seconds.

    \n

    ALLEGRO_MSECS_TO_SECS

    \n-
    #define ALLEGRO_MSECS_TO_SECS(x)      ((x) / 1000.0)\n-#define ALLEGRO_MSECS_TO_SECS(x)      ((x) / 1000.0)
    \n+
    #define ALLEGRO_MSECS_TO_SECS(x)      ((x) / 1000.0)
    \n

    Source\n Code

    \n

    Convert milliseconds to seconds.

    \n

    ALLEGRO_BPS_TO_SECS

    \n-
    #define ALLEGRO_BPS_TO_SECS(x)        (1.0 / (x))\n-#define ALLEGRO_BPS_TO_SECS(x)        (1.0 / (x))
    \n+
    #define ALLEGRO_BPS_TO_SECS(x)        (1.0 / (x))
    \n

    Source\n Code

    \n

    Convert beats per second to seconds.

    \n

    Examples:

    \n
      \n
    • ex_prim.c
    • \n
    \n

    ALLEGRO_BPM_TO_SECS

    \n-
    #define ALLEGRO_BPM_TO_SECS(x)        (60.0 / (x))\n-#define ALLEGRO_BPM_TO_SECS(x)        (60.0 / (x))
    \n+
    #define ALLEGRO_BPM_TO_SECS(x)        (60.0 / (x))
    \n

    Source\n Code

    \n

    Convert beats per minute to seconds.

    \n

    al_create_timer

    \n
    ALLEGRO_TIMER *al_create_timer(double speed_secs)
    \n

    \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTI\bIM\bME\bER\bR *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n-typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is an abstract data type representing a timer object.\n Examples:\n * _\be_\bx_\b__\be_\bn_\be_\bt_\b__\bs_\be_\br_\bv_\be_\br_\b._\bc\n * _\be_\bx_\b__\bt_\bi_\bm_\be_\br_\b__\bp_\ba_\bu_\bs_\be_\b._\bc\n * _\be_\bx_\b__\bu_\bs_\be_\br_\b__\be_\bv_\be_\bn_\bt_\bs_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_U\bUS\bSE\bEC\bCS\bS_\b_T\bTO\bO_\b_S\bSE\bEC\bCS\bS *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n-#define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert microseconds to seconds.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMS\bSE\bEC\bCS\bS_\b_T\bTO\bO_\b_S\bSE\bEC\bCS\bS *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n-#define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert milliseconds to seconds.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_B\bBP\bPS\bS_\b_T\bTO\bO_\b_S\bSE\bEC\bCS\bS *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n-#define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert beats per second to seconds.\n Examples:\n * _\be_\bx_\b__\bp_\br_\bi_\bm_\b._\bc\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_B\bBP\bPM\bM_\b_T\bTO\bO_\b_S\bSE\bEC\bCS\bS *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n-#define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Convert beats per minute to seconds.\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcr\bre\bea\bat\bte\be_\b_t\bti\bim\bme\ber\br *\b**\b**\b**\b**\b**\b*\n ALLEGRO_TIMER *al_create_timer(double speed_secs)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Allocates and initializes a timer. If successful, a pointer to a new timer\n object is returned, otherwise NULL is returned. s\bsp\bpe\bee\bed\bd_\b_s\bse\bec\bcs\bs is in seconds per\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/touch.html", "source2": "./usr/share/doc/allegro5-doc/refman/touch.html", "unified_diff": "@@ -200,34 +200,31 @@\n

  • al_get_touch_input_mouse_emulation_event_source
  • \n \n \n

    These functions are declared in the main Allegro header file:

    \n
     #include <allegro5/allegro.h>
    \n

    ALLEGRO_TOUCH_INPUT

    \n-
    typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n-typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;
    \n+
    typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;
    \n

    Source\n Code

    \n

    An abstract data type representing a physical touch screen or touch\n pad.

    \n

    Since: 5.1.0

    \n ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT\n-
    #define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT        16\n-#define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT        16
    \n+
    #define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT        16
    \n

    Source\n Code

    \n

    The maximum amount of simultaneous touches that can be detected.

    \n

    Since: 5.1.0

    \n

    ALLEGRO_TOUCH_STATE

    \n-
    typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n-typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;
    \n+
    typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;
    \n

    Source\n Code

    \n

    This is a structure that is used to hold a \u201csnapshot\u201d of a touch at a\n particular instant.

    \n

    Public fields (read only):

    \n
      \n@@ -241,30 +238,28 @@\n one).\n
    • display - The ALLEGRO_DISPLAY that was\n touched.
    • \n
    \n

    Since: 5.1.0

    \n

    ALLEGRO_TOUCH_INPUT_STATE

    \n-
    typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;\n-typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;
    \n+
    typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;
    \n

    Source\n Code

    \n

    This is a structure that holds a snapshot of all simultaneous touches\n at a particular instant.

    \n

    Public fields (read only):

    \n
      \n
    • touches - an array of ALLEGRO_TOUCH_STATE
    • \n
    \n

    Since: 5.1.0

    \n

    ALLEGRO_MOUSE_EMULATION_MODE

    \n-
    typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n-typedef enum ALLEGRO_MOUSE_EMULATION_MODE
    \n+
    typedef enum ALLEGRO_MOUSE_EMULATION_MODE
    \n

    Source\n Code

    \n

    Type of mouse emulation to apply.

    \n
    \n
    ALLEGRO_MOUSE_EMULATION_NONE
    \n
    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -56,51 +56,46 @@\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bo_\bu_\bs_\be_\b__\be_\bm_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b__\bm_\bo_\bd_\be\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\bo_\bu_\bc_\bh_\b__\bi_\bn_\bp_\bu_\bt_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n * _\ba_\bl_\b__\bg_\be_\bt_\b__\bt_\bo_\bu_\bc_\bh_\b__\bi_\bn_\bp_\bu_\bt_\b__\bm_\bo_\bu_\bs_\be_\b__\be_\bm_\bu_\bl_\ba_\bt_\bi_\bo_\bn_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be\n These functions are declared in the main Allegro header file:\n #include \n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTO\bOU\bUC\bCH\bH_\b_I\bIN\bNP\bPU\bUT\bT *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n-typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n An abstract data type representing a physical touch screen or touch pad.\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTO\bOU\bUC\bCH\bH_\b_I\bIN\bNP\bPU\bUT\bT_\b_M\bMA\bAX\bX_\b_T\bTO\bOU\bUC\bCH\bH_\b_C\bCO\bOU\bUN\bNT\bT *\b**\b**\b**\b**\b**\b*\n #define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n-#define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n The maximum amount of simultaneous touches that can be detected.\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTO\bOU\bUC\bCH\bH_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n-typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is a structure that is used to hold a \u201csnapshot\u201d of a touch at a\n particular instant.\n Public fields (read only):\n * id - identifier of the touch. If the touch is valid, this is positive.\n * x - touch x position\n * y - touch y position\n * dx - touch relative x position\n * dy - touch relative y position\n * primary - TRUE if this touch is the primary one (usually the first one).\n * display - The _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bD_\bI_\bS_\bP_\bL_\bA_\bY that was touched.\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTO\bOU\bUC\bCH\bH_\b_I\bIN\bNP\bPU\bUT\bT_\b_S\bST\bTA\bAT\bTE\bE *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;\n-typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This is a structure that holds a snapshot of all simultaneous touches at a\n particular instant.\n Public fields (read only):\n * touches - an array of _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bT_\bO_\bU_\bC_\bH_\b__\bS_\bT_\bA_\bT_\bE\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_M\bMO\bOU\bUS\bSE\bE_\b_E\bEM\bMU\bUL\bLA\bAT\bTI\bIO\bON\bN_\b_M\bMO\bOD\bDE\bE *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n-typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Type of mouse emulation to apply.\n ALLEGRO_MOUSE_EMULATION_NONE\n Disables mouse emulation.\n ALLEGRO_MOUSE_EMULATION_TRANSPARENT\n Enables transparent mouse emulation.\n ALLEGRO_MOUSE_EMULATION_INCLUSIVE\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/transformations.html", "source2": "./usr/share/doc/allegro5-doc/refman/transformations.html", "unified_diff": "@@ -301,16 +301,15 @@\n al_use_transform(&T);\n

    it does exactly the same as:

    \n
    al_identity_transform(&T);\n al_scale_transform(&T, 2, 2);\n al_translate_transform(&T, 100, 0);\n al_use_transform(&T);
    \n

    ALLEGRO_TRANSFORM

    \n-
    typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n-typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;
    \n+
    typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;
    \n

    Source\n Code

    \n

    Defines the generic transformation type, a 4x4 matrix. 2D transforms\n use only a small subsection of this matrix, namely the top left 2x2\n matrix, and the right most 2x1 matrix, for a total of 6 values.

    \n

    Fields:

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -130,15 +130,14 @@\n it does exactly the same as:\n al_identity_transform(&T);\n al_scale_transform(&T, 2, 2);\n al_translate_transform(&T, 100, 0);\n al_use_transform(&T);\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_T\bTR\bRA\bAN\bNS\bSF\bFO\bOR\bRM\bM *\b**\b**\b**\b**\b**\b*\n typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n-typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Defines the generic transformation type, a 4x4 matrix. 2D transforms use only a\n small subsection of this matrix, namely the top left 2x2 matrix, and the right\n most 2x1 matrix, for a total of 6 values.\n F\bFi\bie\bel\bld\bds\bs:\b:\n * m - A 4x4 float matrix\n Examples:\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/utf8.html", "source2": "./usr/share/doc/allegro5-doc/refman/utf8.html", "unified_diff": "@@ -436,16 +436,15 @@\n

    For actual text processing, where you want to specify positions with\n code point indices, you should use al_ustr_offset to find the code unit\n offset position. However, most of the time you would probably just work\n with byte offsets.

    \n

    UTF-8 string types

    \n

    ALLEGRO_USTR

    \n-
    typedef struct _al_tagbstring ALLEGRO_USTR;\n-typedef struct _al_tagbstring ALLEGRO_USTR;
    \n+
    typedef struct _al_tagbstring ALLEGRO_USTR;
    \n

    Source\n Code

    \n

    An opaque type representing a string. ALLEGRO_USTRs normally contain\n UTF-8 encoded strings, but they may be used to hold any byte sequences,\n including NULs.

    \n

    Examples:

    \n@@ -454,16 +453,15 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/examples/ex_font_multiline.cpp#L248\">ex_font_multiline.cpp\n
  • nihgui.cpp
  • \n
  • ex_blend.c
  • \n \n

    ALLEGRO_USTR_INFO

    \n-
    typedef struct _al_tagbstring ALLEGRO_USTR_INFO;\n-typedef struct _al_tagbstring ALLEGRO_USTR_INFO;
    \n+
    typedef struct _al_tagbstring ALLEGRO_USTR_INFO;
    \n

    Source\n Code

    \n

    A type that holds additional information for an ALLEGRO_USTR that references an\n external memory buffer.

    \n

    See also: al_ref_cstr, \n

     #include <allegro5/allegro_video.h>
    \n

    Currently we have an Ogg backend (Theora + Vorbis). See http://xiph.org/ for\n installation instructions, licensing information and supported video\n formats.

    \n

    ALLEGRO_VIDEO_EVENT_TYPE

    \n-
    enum ALLEGRO_VIDEO_EVENT_TYPE\n-enum ALLEGRO_VIDEO_EVENT_TYPE
    \n+
    enum ALLEGRO_VIDEO_EVENT_TYPE
    \n

    Source\n Code

    \n

    Events sent by al_get_video_event_source.

    \n ALLEGRO_EVENT_VIDEO_FRAME_SHOW\n@@ -263,16 +262,15 @@\n
    user.data1 (ALLEGRO_VIDEO *)
    \n
    \n The video which generated the event.\n
    \n
    \n

    Since: 5.1.0

    \n

    ALLEGRO_VIDEO_POSITION_TYPE

    \n-
    typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;\n-typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;
    \n+
    typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;
    \n

    Source\n Code

    \n

    Used with al_get_video_position to\n specify which position to retrieve. If these get out of sync, audio and\n video may be out of sync in the display of the video.

    \n@@ -286,86 +284,79 @@\n
  • ALLEGRO_VIDEO_POSITION_AUDIO_DECODE - The amount of audio that\n has been decoded. This may be the same as ALLEGRO_VIDEO_POSITION_ACTUAL\n if audio decode is driving the position, which is common to keep audio\n and video in sync.

  • \n \n

    Since: 5.1.11

    \n

    al_init_video_addon

    \n-
    bool al_init_video_addon(void)\n-bool al_init_video_addon(void)
    \n+
    bool al_init_video_addon(void)
    \n

    Source\n Code

    \n

    Initializes the video addon.

    \n

    Since: 5.1.12

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n al_is_video_addon_initialized\n-
    bool al_is_video_addon_initialized(void)\n-bool al_is_video_addon_initialized(void)
    \n+
    bool al_is_video_addon_initialized(void)
    \n

    Source\n Code

    \n

    Returns true if the video addon is initialized, otherwise returns\n false.

    \n

    Since: 5.2.6

    \n

    al_shutdown_video_addon

    \n-
    void al_shutdown_video_addon(void)\n-void al_shutdown_video_addon(void)
    \n+
    void al_shutdown_video_addon(void)
    \n

    Source\n Code

    \n

    Shut down the video addon. This is done automatically at program\n exit, but can be called any time the user wishes as well.

    \n

    Since: 5.1.12

    \n

    al_get_allegro_video_version

    \n-
    uint32_t al_get_allegro_video_version(void)\n-uint32_t al_get_allegro_video_version(void)
    \n+
    uint32_t al_get_allegro_video_version(void)
    \n

    Source\n Code

    \n

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    \n

    Since: 5.1.12

    \n

    al_open_video

    \n-
    ALLEGRO_VIDEO *al_open_video(char const *filename)\n-ALLEGRO_VIDEO *al_open_video(char const *filename)
    \n+
    ALLEGRO_VIDEO *al_open_video(char const *filename)
    \n

    Source\n Code

    \n

    Reads a video file. This does not start streaming yet but reads the\n meta info so you can query e.g.\u00a0the size or audio rate.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_identify_video

    \n-
    char const *al_identify_video(char const *filename)\n-char const *al_identify_video(char const *filename)
    \n+
    char const *al_identify_video(char const *filename)
    \n

    Source\n Code

    \n

    This works exactly as al_identify_video_f but you\n specify the filename of the file for which to detect the type and not a\n file handle. The extension, if any, of the passed filename is not taken\n into account - only the file contents.

    \n

    Since: 5.2.8

    \n

    See also: al_init_video_addon, al_identify_video_f

    \n

    al_identify_video_f

    \n-
    char const *al_identify_video_f(ALLEGRO_FILE *fp)\n-char const *al_identify_video_f(ALLEGRO_FILE *fp)
    \n+
    char const *al_identify_video_f(ALLEGRO_FILE *fp)
    \n

    Source\n Code

    \n

    Tries to guess the video file type of the open ALLEGRO_FILE by\n reading the first few bytes. By default Allegro cannot recognize any\n file types, but calling al_init_video_addon will add\n@@ -374,120 +365,111 @@\n type, including the leading dot. For example \u201c.ogv\u201d. Returns NULL if the\n video type cannot be determined.

    \n

    Since: 5.2.8

    \n

    See also: al_init_video_addon, al_identify_video

    \n

    al_close_video

    \n-
    void al_close_video(ALLEGRO_VIDEO *video)\n-void al_close_video(ALLEGRO_VIDEO *video)
    \n+
    void al_close_video(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Closes the video and frees all allocated resources. The video pointer\n is invalid after the function returns.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_start_video

    \n-
    void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)\n-void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)
    \n+
    void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)
    \n

    Source\n Code

    \n

    Starts streaming the video from the beginning.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_start_video_with_voice

    \n-
    void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)\n-void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)
    \n+
    void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)
    \n

    Source\n Code

    \n

    Like al_start_video but audio\n is routed to the provided voice.

    \n

    Since: 5.1.0

    \n

    al_get_video_event_source

    \n-
    ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)\n-ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)
    \n+
    ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Get an event source for the video. The possible events are described\n under ALLEGRO_VIDEO_EVENT_TYPE.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_set_video_playing

    \n-
    void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)\n-void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)
    \n+
    void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)
    \n

    Source\n Code

    \n

    Paused or resumes playback.

    \n

    Since: 5.1.12

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_is_video_playing

    \n-
    bool al_is_video_playing(ALLEGRO_VIDEO *video)\n-bool al_is_video_playing(ALLEGRO_VIDEO *video)
    \n+
    bool al_is_video_playing(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns true if the video is currently playing.

    \n

    Since: 5.1.12

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_audio_rate

    \n-
    double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n-double al_get_video_audio_rate(ALLEGRO_VIDEO *video)
    \n+
    double al_get_video_audio_rate(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns the audio rate of the video, in Hz.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_fps

    \n-
    double al_get_video_fps(ALLEGRO_VIDEO *video)\n-double al_get_video_fps(ALLEGRO_VIDEO *video)
    \n+
    double al_get_video_fps(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns the speed of the video in frames per second. Often this will\n not be an integer value.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_scaled_width

    \n-
    float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_width(ALLEGRO_VIDEO *video)
    \n+
    float al_get_video_scaled_width(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns the width with which the video frame should be drawn. Videos\n often do not use square pixels, so this will may return a value larger\n than the width of the frame bitmap.

    \n

    Since: 5.1.12

    \n@@ -495,16 +477,15 @@\n href=\"video.html#al_get_video_frame\">al_get_video_frame

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_scaled_height

    \n-
    float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_height(ALLEGRO_VIDEO *video)
    \n+
    float al_get_video_scaled_height(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns the height with which the video frame should be drawn. Videos\n often do not use square pixels, so this will may return a value larger\n than the height of the frame bitmap.

    \n

    See also: Since: 5.1.12

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_frame

    \n-
    ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n-ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)
    \n+
    ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)
    \n

    Source\n Code

    \n

    Returns the current video frame. The bitmap is owned by the video so\n do not attempt to free it. The bitmap will stay valid until the next\n call to al_get_video_frame.

    \n

    Videos often do not use square pixels so the recommended way to draw\n@@ -540,32 +520,30 @@\n href=\"video.html#al_get_video_scaled_height\">al_get_video_scaled_height

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_get_video_position

    \n-
    double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)\n-double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)
    \n+
    double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)
    \n

    Source\n Code

    \n

    Returns the current position of the video stream in seconds since the\n beginning. The parameter is one of the ALLEGRO_VIDEO_POSITION_TYPE\n constants.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n
      \n
    • ex_video.c
    • \n
    \n

    al_seek_video

    \n-
    bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)\n-bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)
    \n+
    bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)
    \n

    Source\n Code

    \n

    Seek to a different position in the video. Currently only seeking to\n the beginning of the video is supported.

    \n

    Since: 5.1.0

    \n

    Examples:

    \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -70,15 +70,14 @@\n These functions are declared in the following header file. Link with\n allegro_video.\n #include \n Currently we have an Ogg backend (Theora + Vorbis). See _\bh_\bt_\bt_\bp_\b:_\b/_\b/_\bx_\bi_\bp_\bh_\b._\bo_\br_\bg_\b/ for\n installation instructions, licensing information and supported video formats.\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVI\bID\bDE\bEO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b**\b*\n enum ALLEGRO_VIDEO_EVENT_TYPE\n-enum ALLEGRO_VIDEO_EVENT_TYPE\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Events sent by _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\be_\bv_\be_\bn_\bt_\b__\bs_\bo_\bu_\br_\bc_\be.\n *\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_E\bEV\bVE\bEN\bNT\bT_\b_V\bVI\bID\bDE\bEO\bO_\b_F\bFR\bRA\bAM\bME\bE_\b_S\bSH\bHO\bOW\bW *\b**\b**\b**\b**\b*\n This event is sent when it is time to show a new frame. Once you receive this\n event, you can draw the current frame (as returned by _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bf_\br_\ba_\bm_\be).\n _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bf_\br_\ba_\bm_\be will continue returning the same frame until the next\n ALLEGRO_EVENT_VIDEO_FRAME_SHOW is sent.\n@@ -90,15 +89,14 @@\n be possible to seek to an earlier part of the video and set the video to play\n to resume playback.\n user.data1 (ALLEGRO_VIDEO *)\n The video which generated the event.\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* A\bAL\bLL\bLE\bEG\bGR\bRO\bO_\b_V\bVI\bID\bDE\bEO\bO_\b_P\bPO\bOS\bSI\bIT\bTI\bIO\bON\bN_\b_T\bTY\bYP\bPE\bE *\b**\b**\b**\b**\b**\b*\n typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;\n-typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Used with _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bp_\bo_\bs_\bi_\bt_\bi_\bo_\bn to specify which position to retrieve. If these\n get out of sync, audio and video may be out of sync in the display of the\n video.\n * ALLEGRO_VIDEO_POSITION_ACTUAL - The amount of time the video has been\n playing. If the video has audio then this value can be ahead of\n ALLEGRO_VIDEO_POSITION_VIDEO_DECODE when video decoding lags.\n@@ -108,160 +106,142 @@\n * ALLEGRO_VIDEO_POSITION_AUDIO_DECODE - The amount of audio that has been\n decoded. This may be the same as ALLEGRO_VIDEO_POSITION_ACTUAL if audio\n decode is driving the position, which is common to keep audio and video\n in sync.\n Since: 5.1.11\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bin\bni\bit\bt_\b_v\bvi\bid\bde\beo\bo_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n bool al_init_video_addon(void)\n-bool al_init_video_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Initializes the video addon.\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_v\bvi\bid\bde\beo\bo_\b_a\bad\bdd\bdo\bon\bn_\b_i\bin\bni\bit\bti\bia\bal\bli\biz\bze\bed\bd *\b**\b**\b**\b**\b**\b*\n bool al_is_video_addon_initialized(void)\n-bool al_is_video_addon_initialized(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the video addon is initialized, otherwise returns false.\n Since: 5.2.6\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bsh\bhu\but\btd\bdo\bow\bwn\bn_\b_v\bvi\bid\bde\beo\bo_\b_a\bad\bdd\bdo\bon\bn *\b**\b**\b**\b**\b**\b*\n void al_shutdown_video_addon(void)\n-void al_shutdown_video_addon(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Shut down the video addon. This is done automatically at program exit, but can\n be called any time the user wishes as well.\n Since: 5.1.12\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_a\bal\bll\ble\beg\bgr\bro\bo_\b_v\bvi\bid\bde\beo\bo_\b_v\bve\ber\brs\bsi\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n uint32_t al_get_allegro_video_version(void)\n-uint32_t al_get_allegro_video_version(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the (compiled) version of the addon, in the same format as\n _\ba_\bl_\b__\bg_\be_\bt_\b__\ba_\bl_\bl_\be_\bg_\br_\bo_\b__\bv_\be_\br_\bs_\bi_\bo_\bn.\n Since: 5.1.12\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_o\bop\bpe\ben\bn_\b_v\bvi\bid\bde\beo\bo *\b**\b**\b**\b**\b**\b*\n ALLEGRO_VIDEO *al_open_video(char const *filename)\n-ALLEGRO_VIDEO *al_open_video(char const *filename)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Reads a video file. This does not start streaming yet but reads the meta info\n so you can query e.g.\u00a0the size or audio rate.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bid\bde\ben\bnt\bti\bif\bfy\by_\b_v\bvi\bid\bde\beo\bo *\b**\b**\b**\b**\b**\b*\n char const *al_identify_video(char const *filename)\n-char const *al_identify_video(char const *filename)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n This works exactly as _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bv_\bi_\bd_\be_\bo_\b__\bf but you specify the filename of the\n file for which to detect the type and not a file handle. The extension, if any,\n of the passed filename is not taken into account - only the file contents.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bv_\bi_\bd_\be_\bo_\b__\bf\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bid\bde\ben\bnt\bti\bif\bfy\by_\b_v\bvi\bid\bde\beo\bo_\b_f\bf *\b**\b**\b**\b**\b**\b*\n char const *al_identify_video_f(ALLEGRO_FILE *fp)\n-char const *al_identify_video_f(ALLEGRO_FILE *fp)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Tries to guess the video file type of the open ALLEGRO_FILE by reading the\n first few bytes. By default Allegro cannot recognize any file types, but\n calling _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\ba_\bd_\bd_\bo_\bn will add detection of the types it can read.\n Returns a pointer to a static string with a file extension for the type,\n including the leading dot. For example \u201c.ogv\u201d. Returns NULL if the video type\n cannot be determined.\n Since: 5.2.8\n See also: _\ba_\bl_\b__\bi_\bn_\bi_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\ba_\bd_\bd_\bo_\bn, _\ba_\bl_\b__\bi_\bd_\be_\bn_\bt_\bi_\bf_\by_\b__\bv_\bi_\bd_\be_\bo\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_c\bcl\blo\bos\bse\be_\b_v\bvi\bid\bde\beo\bo *\b**\b**\b**\b**\b**\b*\n void al_close_video(ALLEGRO_VIDEO *video)\n-void al_close_video(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Closes the video and frees all allocated resources. The video pointer is\n invalid after the function returns.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bta\bar\brt\bt_\b_v\bvi\bid\bde\beo\bo *\b**\b**\b**\b**\b**\b*\n void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)\n-void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Starts streaming the video from the beginning.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bst\bta\bar\brt\bt_\b_v\bvi\bid\bde\beo\bo_\b_w\bwi\bit\bth\bh_\b_v\bvo\boi\bic\bce\be *\b**\b**\b**\b**\b**\b*\n void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)\n-void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Like _\ba_\bl_\b__\bs_\bt_\ba_\br_\bt_\b__\bv_\bi_\bd_\be_\bo but audio is routed to the provided voice.\n Since: 5.1.0\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_e\bev\bve\ben\bnt\bt_\b_s\bso\bou\bur\brc\bce\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)\n-ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Get an event source for the video. The possible events are described under\n _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bI_\bD_\bE_\bO_\b__\bE_\bV_\bE_\bN_\bT_\b__\bT_\bY_\bP_\bE.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b**\b*\n void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)\n-void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Paused or resumes playback.\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_i\bis\bs_\b_v\bvi\bid\bde\beo\bo_\b_p\bpl\bla\bay\byi\bin\bng\bg *\b**\b**\b**\b**\b**\b*\n bool al_is_video_playing(ALLEGRO_VIDEO *video)\n-bool al_is_video_playing(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns true if the video is currently playing.\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_a\bau\bud\bdi\bio\bo_\b_r\bra\bat\bte\be *\b**\b**\b**\b**\b**\b*\n double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n-double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the audio rate of the video, in Hz.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_f\bfp\bps\bs *\b**\b**\b**\b**\b**\b*\n double al_get_video_fps(ALLEGRO_VIDEO *video)\n-double al_get_video_fps(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the speed of the video in frames per second. Often this will not be an\n integer value.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_s\bsc\bca\bal\ble\bed\bd_\b_w\bwi\bid\bdt\bth\bh *\b**\b**\b**\b**\b**\b*\n float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the width with which the video frame should be drawn. Videos often do\n not use square pixels, so this will may return a value larger than the width of\n the frame bitmap.\n Since: 5.1.12\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bf_\br_\ba_\bm_\be\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_s\bsc\bca\bal\ble\bed\bd_\b_h\bhe\bei\big\bgh\bht\bt *\b**\b**\b**\b**\b**\b*\n float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the height with which the video frame should be drawn. Videos often do\n not use square pixels, so this will may return a value larger than the height\n of the frame bitmap.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bf_\br_\ba_\bm_\be\n Since: 5.1.12\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_f\bfr\bra\bam\bme\be *\b**\b**\b**\b**\b**\b*\n ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n-ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the current video frame. The bitmap is owned by the video so do not\n attempt to free it. The bitmap will stay valid until the next call to\n al_get_video_frame.\n Videos often do not use square pixels so the recommended way to draw a video\n frame would be using code like this:\n float scale = 1.0; /* Adjust this to fit your target bitmap dimensions. */\n@@ -274,25 +254,22 @@\n Since: 5.1.0\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bs_\bc_\ba_\bl_\be_\bd_\b__\bw_\bi_\bd_\bt_\bh, _\ba_\bl_\b__\bg_\be_\bt_\b__\bv_\bi_\bd_\be_\bo_\b__\bs_\bc_\ba_\bl_\be_\bd_\b__\bh_\be_\bi_\bg_\bh_\bt\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_v\bvi\bid\bde\beo\bo_\b_p\bpo\bos\bsi\bit\bti\bio\bon\bn *\b**\b**\b**\b**\b**\b*\n double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE\n which)\n-double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE\n-which)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the current position of the video stream in seconds since the\n beginning. The parameter is one of the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bV_\bI_\bD_\bE_\bO_\b__\bP_\bO_\bS_\bI_\bT_\bI_\bO_\bN_\b__\bT_\bY_\bP_\bE constants.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n *\b**\b**\b**\b**\b**\b* a\bal\bl_\b_s\bse\bee\bek\bk_\b_v\bvi\bid\bde\beo\bo *\b**\b**\b**\b**\b**\b*\n bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)\n-bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Seek to a different position in the video. Currently only seeking to the\n beginning of the video is supported.\n Since: 5.1.0\n Examples:\n * _\be_\bx_\b__\bv_\bi_\bd_\be_\bo_\b._\bc\n Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_DEPTH.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_DEPTH.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_DEPTH.3alleg5", "source2": "ALLEGRO_AUDIO_DEPTH.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_DEPTH \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_AUDIO_DEPTH\n-enum ALLEGRO_AUDIO_DEPTH\n .EE\n .SH DESCRIPTION\n Sample depth and type as well as signedness.\n Mixers only use 32\\-bit signed float (\\-1..+1), or 16\\-bit signed\n integers.\n Signedness is determined by an \\[lq]unsigned\\[rq] bit\\-flag applied to\n the depth value.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_DEVICE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_DEVICE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_DEVICE.3alleg5", "source2": "ALLEGRO_AUDIO_DEVICE.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_AUDIO_DEVICE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n-typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n .EE\n .SH DESCRIPTION\n An opaque datatype that represents an audio device.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_EVENT_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_EVENT_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_EVENT_TYPE.3alleg5", "source2": "ALLEGRO_AUDIO_EVENT_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_EVENT_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_AUDIO_EVENT_TYPE\n-enum ALLEGRO_AUDIO_EVENT_TYPE\n .EE\n .SH DESCRIPTION\n Events sent by al_get_audio_stream_event_source(3alleg5) or\n al_get_audio_recorder_event_source(3alleg5).\n .SS ALLEGRO_EVENT_AUDIO_STREAM_FRAGMENT\n Sent when a stream fragment is ready to be filled in.\n See al_get_audio_stream_fragment(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_PAN_NONE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_PAN_NONE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_PAN_NONE.3alleg5", "source2": "ALLEGRO_AUDIO_PAN_NONE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_PAN_NONE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_AUDIO_PAN_NONE (\\-1000.0f)\n-#define ALLEGRO_AUDIO_PAN_NONE (\\-1000.0f)\n .EE\n .SH DESCRIPTION\n A special value for the pan property of sample instances and audio\n streams.\n Use this value to disable panning on sample instances and audio streams,\n and play them without attentuation implied by panning support.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_RECORDER.3alleg5", "source2": "ALLEGRO_AUDIO_RECORDER.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_RECORDER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n-typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n .EE\n .SH DESCRIPTION\n An opaque datatype that represents a recording device.\n .SH SINCE\n 5.1.1\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5", "source2": "ALLEGRO_AUDIO_RECORDER_EVENT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_RECORDER_EVENT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n-typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n .EE\n .SH DESCRIPTION\n Structure that holds the audio recorder event data.\n Every event type will contain:\n .IP \\[bu] 2\n \\&.source: pointer to the audio recorder\n .PP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_AUDIO_STREAM.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_AUDIO_STREAM.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_AUDIO_STREAM.3alleg5", "source2": "ALLEGRO_AUDIO_STREAM.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_AUDIO_STREAM \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n-typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_AUDIO_STREAM object is used to stream generated audio to the\n sound device, in real\\-time.\n This is done by reading from a buffer, which is split into a number of\n fragments.\n Whenever a fragment has finished playing, the user can refill it with\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_BITMAP.3alleg5", "source2": "ALLEGRO_BITMAP.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_BITMAP \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n-typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n .EE\n .SH DESCRIPTION\n Abstract type representing a bitmap (2D image).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_BITMAP_WRAP.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_BITMAP_WRAP.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_BITMAP_WRAP.3alleg5", "source2": "ALLEGRO_BITMAP_WRAP.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_BITMAP_WRAP \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_BITMAP_WRAP {\n-typedef enum ALLEGRO_BITMAP_WRAP {\n .EE\n .SH DESCRIPTION\n Controls the how the pixel color is determined from a texture querying\n the texture coordinates are outside the usual bounds.\n .IP \\[bu] 2\n ALLEGRO_BITMAP_WRAP_DEFAULT \\- The default behavior.\n This corresponds to ALLEGRO_BITMAP_WRAP_REPEAT when using the primitives\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_BPM_TO_SECS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_BPM_TO_SECS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_BPM_TO_SECS.3alleg5", "source2": "ALLEGRO_BPM_TO_SECS.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_BPM_TO_SECS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n-#define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n .EE\n .SH DESCRIPTION\n Convert beats per minute to seconds.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_BPS_TO_SECS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_BPS_TO_SECS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_BPS_TO_SECS.3alleg5", "source2": "ALLEGRO_BPS_TO_SECS.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_BPS_TO_SECS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n-#define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n .EE\n .SH DESCRIPTION\n Convert beats per second to seconds.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_CHANNEL_CONF.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_CHANNEL_CONF.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_CHANNEL_CONF.3alleg5", "source2": "ALLEGRO_CHANNEL_CONF.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_CHANNEL_CONF \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_CHANNEL_CONF\n-enum ALLEGRO_CHANNEL_CONF\n .EE\n .SH DESCRIPTION\n Speaker configuration (mono, stereo, 2.1, etc).\n .IP \\[bu] 2\n ALLEGRO_CHANNEL_CONF_1\n .IP \\[bu] 2\n ALLEGRO_CHANNEL_CONF_2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_COLOR.3alleg5", "source2": "ALLEGRO_COLOR.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n ALLEGRO_COLOR \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n-typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_COLOR structure describes a color in a device independent\n way.\n Use al_map_rgb(3alleg5) et al.\\ and al_unmap_rgb(3alleg5) et al.\\ to\n translate from and to various color representations.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_COND.3alleg5", "source2": "ALLEGRO_COND.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_COND \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_COND ALLEGRO_COND;\n-typedef struct ALLEGRO_COND ALLEGRO_COND;\n .EE\n .SH DESCRIPTION\n An opaque structure representing a condition variable.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_CONFIG.3alleg5", "source2": "ALLEGRO_CONFIG.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_CONFIG \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n-typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n .EE\n .SH DESCRIPTION\n An abstract configuration structure.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_CONFIG_ENTRY.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_CONFIG_ENTRY.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_CONFIG_ENTRY.3alleg5", "source2": "ALLEGRO_CONFIG_ENTRY.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n ALLEGRO_CONFIG_ENTRY \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n-typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n .EE\n .SH DESCRIPTION\n An opaque structure used for iterating across entries in a configuration\n section.\n .SH SEE ALSO\n al_get_first_config_entry(3alleg5), al_get_next_config_entry(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_CONFIG_SECTION.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_CONFIG_SECTION.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_CONFIG_SECTION.3alleg5", "source2": "ALLEGRO_CONFIG_SECTION.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_CONFIG_SECTION \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n-typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n .EE\n .SH DESCRIPTION\n An opaque structure used for iterating across sections in a\n configuration structure.\n .SH SEE ALSO\n al_get_first_config_section(3alleg5),\n al_get_next_config_section(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_DISPLAY.3alleg5", "source2": "ALLEGRO_DISPLAY.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_DISPLAY \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n-typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n .EE\n .SH DESCRIPTION\n An opaque type representing an open display or window.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_DISPLAY_MODE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_DISPLAY_MODE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_DISPLAY_MODE.3alleg5", "source2": "ALLEGRO_DISPLAY_MODE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_DISPLAY_MODE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_DISPLAY_MODE\n-typedef struct ALLEGRO_DISPLAY_MODE\n .EE\n .SH DESCRIPTION\n Used for fullscreen mode queries.\n Contains information about a supported fullscreen modes.\n .IP\n .EX\n typedef struct ALLEGRO_DISPLAY_MODE {\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_EVENT.3alleg5", "source2": "ALLEGRO_EVENT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_EVENT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n-typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_EVENT is a union of all builtin event structures, i.e.\\ it is\n an object large enough to hold the data of any event type.\n All events have the following fields in common:\n .TP\n type (ALLEGRO_EVENT_TYPE)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_EVENT_QUEUE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_EVENT_QUEUE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_EVENT_QUEUE.3alleg5", "source2": "ALLEGRO_EVENT_QUEUE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_EVENT_QUEUE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n-typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n .EE\n .SH DESCRIPTION\n An event queue holds events that have been generated by event sources\n that are registered with the queue.\n Events are stored in the order they are generated.\n Access is in a strictly FIFO (first\\-in\\-first\\-out) order.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_EVENT_SOURCE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_EVENT_SOURCE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_EVENT_SOURCE.3alleg5", "source2": "ALLEGRO_EVENT_SOURCE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_EVENT_SOURCE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n-typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n .EE\n .SH DESCRIPTION\n An event source is any object which can generate events.\n For example, an ALLEGRO_DISPLAY can generate events, and you can get the\n ALLEGRO_EVENT_SOURCE pointer from an ALLEGRO_DISPLAY with\n al_get_display_event_source(3alleg5).\n .PP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_EVENT_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_EVENT_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_EVENT_TYPE.3alleg5", "source2": "ALLEGRO_EVENT_TYPE.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n ALLEGRO_EVENT_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef unsigned int ALLEGRO_EVENT_TYPE;\n-typedef unsigned int ALLEGRO_EVENT_TYPE;\n .EE\n .SH DESCRIPTION\n An integer used to distinguish between different types of events.\n .SH SEE ALSO\n ALLEGRO_EVENT(3alleg5), ALLEGRO_GET_EVENT_TYPE(3alleg5),\n ALLEGRO_EVENT_TYPE_IS_USER(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_EVENT_TYPE_IS_USER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_EVENT_TYPE_IS_USER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_EVENT_TYPE_IS_USER.3alleg5", "source2": "ALLEGRO_EVENT_TYPE_IS_USER.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n ALLEGRO_EVENT_TYPE_IS_USER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n-#define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n .EE\n .SH DESCRIPTION\n A macro which evaluates to true if the event type is not a builtin event\n type, i.e.\\ one of those described in ALLEGRO_EVENT_TYPE(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FILE.3alleg5", "source2": "ALLEGRO_FILE.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n ALLEGRO_FILE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n-typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n .EE\n .SH DESCRIPTION\n An opaque object representing an open file.\n This could be a real file on disk or a virtual file.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FILECHOOSER.3alleg5", "source2": "ALLEGRO_FILECHOOSER.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_FILECHOOSER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n-typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n .EE\n .SH DESCRIPTION\n Opaque handle to a native file dialog.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FILE_INTERFACE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FILE_INTERFACE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FILE_INTERFACE.3alleg5", "source2": "ALLEGRO_FILE_INTERFACE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_FILE_INTERFACE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FILE_INTERFACE\n-typedef struct ALLEGRO_FILE_INTERFACE\n .EE\n .SH DESCRIPTION\n A structure containing function pointers to handle a type of\n \\[lq]file\\[rq], real or virtual.\n See the full discussion in al_set_new_file_interface(3alleg5).\n .PP\n The fields are:\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FILE_MODE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FILE_MODE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FILE_MODE.3alleg5", "source2": "ALLEGRO_FILE_MODE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_FILE_MODE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_FILE_MODE\n-typedef enum ALLEGRO_FILE_MODE\n .EE\n .SH DESCRIPTION\n Filesystem modes/types\n .IP \\[bu] 2\n ALLEGRO_FILEMODE_READ \\- Readable\n .IP \\[bu] 2\n ALLEGRO_FILEMODE_WRITE \\- Writable\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FONT.3alleg5", "source2": "ALLEGRO_FONT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_FONT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n-typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n .EE\n .SH DESCRIPTION\n A handle identifying any kind of font.\n Usually you will create it with al_load_font(3alleg5) which supports\n loading all kinds of TrueType fonts supported by the FreeType library.\n If you instead pass the filename of a bitmap file, it will be loaded\n with al_load_bitmap(3alleg5) and a font in Allegro\\[cq]s bitmap font\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5", "source2": "ALLEGRO_FOR_EACH_FS_ENTRY_RESULT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_FOR_EACH_FS_ENTRY_RESULT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n-typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n .EE\n .SH DESCRIPTION\n Return values for the callbacks of al_for_each_fs_entry(3alleg5) and for\n that function itself.\n .IP \\[bu] 2\n ALLEGRO_FOR_EACH_FS_ENTRY_ERROR \\- An error ocurred.\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FS_ENTRY.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FS_ENTRY.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FS_ENTRY.3alleg5", "source2": "ALLEGRO_FS_ENTRY.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n ALLEGRO_FS_ENTRY \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n-typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n .EE\n .SH DESCRIPTION\n Opaque filesystem entry object.\n Represents a file or a directory (check with\n al_get_fs_entry_mode(3alleg5)).\n There are no user accessible member variables.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_FS_INTERFACE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_FS_INTERFACE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_FS_INTERFACE.3alleg5", "source2": "ALLEGRO_FS_INTERFACE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_FS_INTERFACE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n-typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n .EE\n .SH DESCRIPTION\n The available functions you can provide for a filesystem.\n They are:\n .IP\n .EX\n ALLEGRO_FS_ENTRY * fs_create_entry (const char *path);\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_GET_EVENT_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_GET_EVENT_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_GET_EVENT_TYPE.3alleg5", "source2": "ALLEGRO_GET_EVENT_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_GET_EVENT_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_GET_EVENT_TYPE(a, b, c, d) AL_ID(a, b, c, d)\n-#define ALLEGRO_GET_EVENT_TYPE(a, b, c, d) AL_ID(a, b, c, d)\n .EE\n .SH DESCRIPTION\n Make an event type identifier, which is a 32\\-bit integer.\n Usually, but not necessarily, this will be made from four 8\\-bit\n character codes, for example:\n .IP\n .EX\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_GLYPH.3alleg5", "source2": "ALLEGRO_GLYPH.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_GLYPH \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n-typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n .EE\n .SH DESCRIPTION\n A structure containing the properties of a character in a font.\n .IP\n .EX\n typedef struct ALLEGRO_GLYPH {\n ALLEGRO_BITMAP *bitmap; // the bitmap the character is on\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_HAPTIC.3alleg5", "source2": "ALLEGRO_HAPTIC.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_HAPTIC \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n-typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n .EE\n .SH DESCRIPTION\n This is an abstract data type representing a haptic device that supports\n force feedback or vibration.\n .SH SINCE\n 5.1.8\n .RS\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_HAPTIC_CONSTANTS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_HAPTIC_CONSTANTS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_HAPTIC_CONSTANTS.3alleg5", "source2": "ALLEGRO_HAPTIC_CONSTANTS.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_HAPTIC_CONSTANTS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_HAPTIC_CONSTANTS\n-enum ALLEGRO_HAPTIC_CONSTANTS\n .EE\n .SH DESCRIPTION\n This enum contains flags that are used to define haptic effects and\n capabilities.\n If the flag is set in the return value of\n al_get_haptic_capabilities(3alleg5), it means the device supports the\n given effect.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_HAPTIC_EFFECT.3alleg5", "source2": "ALLEGRO_HAPTIC_EFFECT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_HAPTIC_EFFECT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n struct ALLEGRO_HAPTIC_EFFECT\n-struct ALLEGRO_HAPTIC_EFFECT\n .EE\n .SH DESCRIPTION\n This struct models a particular haptic or vibration effect.\n It needs to be filled in correctly and uploaded to a haptic device\n before the device can play it back.\n .PP\n \\f[I]Fields:\\f[R]\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT_ID.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_HAPTIC_EFFECT_ID.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_HAPTIC_EFFECT_ID.3alleg5", "source2": "ALLEGRO_HAPTIC_EFFECT_ID.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_HAPTIC_EFFECT_ID \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;\n-typedef struct ALLEGRO_HAPTIC_EFFECT_ID ALLEGRO_HAPTIC_EFFECT_ID;\n .EE\n .SH DESCRIPTION\n This struct is used as a handle to control playback of a haptic effect\n and should be considered opaque.\n Its implementation is visible merely to allow allocation by the users of\n the Allegro library.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_INDEX_BUFFER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_INDEX_BUFFER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_INDEX_BUFFER.3alleg5", "source2": "ALLEGRO_INDEX_BUFFER.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_INDEX_BUFFER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n-typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n .EE\n .SH DESCRIPTION\n A GPU index buffer that you can use to store indices of vertices in a\n vertex buffer on the GPU instead of uploading them afresh during every\n drawing operation.\n .SH SINCE\n 5.1.8\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_JOYFLAGS.3alleg5", "source2": "ALLEGRO_JOYFLAGS.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_JOYFLAGS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_JOYFLAGS\n-enum ALLEGRO_JOYFLAGS\n .EE\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_JOYFLAG_DIGITAL \\- the stick provides digital input\n .IP \\[bu] 2\n ALLEGRO_JOYFLAG_ANALOGUE \\- the stick provides analogue input\n .PP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_JOYSTICK.3alleg5", "source2": "ALLEGRO_JOYSTICK.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n ALLEGRO_JOYSTICK \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n-typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n .EE\n .SH DESCRIPTION\n This is an abstract data type representing a physical joystick.\n .SH SEE ALSO\n al_get_joystick(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_JOYSTICK_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_JOYSTICK_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_JOYSTICK_STATE.3alleg5", "source2": "ALLEGRO_JOYSTICK_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_JOYSTICK_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n-typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n .EE\n .SH DESCRIPTION\n This is a structure that is used to hold a \\[lq]snapshot\\[rq] of a\n joystick\\[cq]s axes and buttons at a particular instant.\n All fields public and read\\-only.\n .IP\n .EX\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_KEYBOARD_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_KEYBOARD_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_KEYBOARD_STATE.3alleg5", "source2": "ALLEGRO_KEYBOARD_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_KEYBOARD_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n-typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n .EE\n .SH DESCRIPTION\n This is a structure that is used to hold a \\[lq]snapshot\\[rq] of a\n keyboard\\[cq]s state at a particular instant.\n It contains the following publically readable fields:\n .IP \\[bu] 2\n display \\- points to the display that had keyboard focus at the time the\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_LINE_CAP.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_LINE_CAP.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_LINE_CAP.3alleg5", "source2": "ALLEGRO_LINE_CAP.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_LINE_CAP \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_LINE_CAP\n-typedef enum ALLEGRO_LINE_CAP\n .EE\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_LINE_CAP_NONE\n .IP \\[bu] 2\n ALLEGRO_LINE_CAP_SQUARE\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_LINE_JOIN.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_LINE_JOIN.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_LINE_JOIN.3alleg5", "source2": "ALLEGRO_LINE_JOIN.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_LINE_JOIN \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_LINE_JOIN\n-typedef enum ALLEGRO_LINE_JOIN\n .EE\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_LINE_JOIN_NONE\n .IP \\[bu] 2\n ALLEGRO_LINE_JOIN_BEVEL\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_LOCKED_REGION.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_LOCKED_REGION.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_LOCKED_REGION.3alleg5", "source2": "ALLEGRO_LOCKED_REGION.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_LOCKED_REGION \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n-typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n .EE\n .SH DESCRIPTION\n Users who wish to manually edit or read from a bitmap are required to\n lock it first.\n The ALLEGRO_LOCKED_REGION structure represents the locked region of the\n bitmap.\n This call will work with any bitmap, including memory bitmaps.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MEMORY_INTERFACE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MEMORY_INTERFACE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MEMORY_INTERFACE.3alleg5", "source2": "ALLEGRO_MEMORY_INTERFACE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MEMORY_INTERFACE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n-typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n .EE\n .SH DESCRIPTION\n This structure has the following fields.\n .IP\n .EX\n void *(*mi_malloc)(size_t n, int line, const char *file, const char *func);\n void (*mi_free)(void *ptr, int line, const char *file, const char *func);\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MENU.3alleg5", "source2": "ALLEGRO_MENU.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n ALLEGRO_MENU \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n-typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n .EE\n .SH DESCRIPTION\n An opaque data type that represents a menu that contains menu items.\n Each of the menu items may optionally include a sub\\-menu.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MENU_INFO.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MENU_INFO.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MENU_INFO.3alleg5", "source2": "ALLEGRO_MENU_INFO.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MENU_INFO \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MENU_INFO {\n-typedef struct ALLEGRO_MENU_INFO {\n .EE\n .SH DESCRIPTION\n A structure that defines how to create a complete menu system.\n For standard menu items, the following format is used:\n .IP\n .EX\n { caption, id, flags, icon }\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MIXER.3alleg5", "source2": "ALLEGRO_MIXER.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MIXER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n-typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n .EE\n .SH DESCRIPTION\n A mixer mixes together attached streams into a single buffer.\n In the process, it converts channel configurations, sample frequencies\n and audio depths of the attached sample instances and audio streams\n accordingly.\n You can control the quality of this conversion using\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MIXER_QUALITY.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MIXER_QUALITY.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MIXER_QUALITY.3alleg5", "source2": "ALLEGRO_MIXER_QUALITY.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MIXER_QUALITY \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_MIXER_QUALITY\n-enum ALLEGRO_MIXER_QUALITY\n .EE\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_MIXER_QUALITY_POINT \\- point sampling\n .IP \\[bu] 2\n ALLEGRO_MIXER_QUALITY_LINEAR \\- linear interpolation\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MONITOR_INFO.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MONITOR_INFO.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MONITOR_INFO.3alleg5", "source2": "ALLEGRO_MONITOR_INFO.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MONITOR_INFO \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MONITOR_INFO\n-typedef struct ALLEGRO_MONITOR_INFO\n .EE\n .SH DESCRIPTION\n Describes a monitor\\[cq]s size and position relative to other monitors.\n x1, y1 will be 0, 0 on the primary display.\n Other monitors can have negative values if they are to the left or above\n the primary display.\n x2, y2 are the coordinates one beyond the bottom right pixel, so that\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MOUSE_EMULATION_MODE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MOUSE_EMULATION_MODE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MOUSE_EMULATION_MODE.3alleg5", "source2": "ALLEGRO_MOUSE_EMULATION_MODE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MOUSE_EMULATION_MODE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n-typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n .EE\n .SH DESCRIPTION\n Type of mouse emulation to apply.\n .TP\n ALLEGRO_MOUSE_EMULATION_NONE\n Disables mouse emulation.\n .TP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MOUSE_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MOUSE_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MOUSE_STATE.3alleg5", "source2": "ALLEGRO_MOUSE_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_MOUSE_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n-typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n .EE\n .SH DESCRIPTION\n Public fields (read only):\n .IP \\[bu] 2\n x \\- mouse x position\n .IP \\[bu] 2\n y \\- mouse y position\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MSECS_TO_SECS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MSECS_TO_SECS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MSECS_TO_SECS.3alleg5", "source2": "ALLEGRO_MSECS_TO_SECS.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_MSECS_TO_SECS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n-#define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n .EE\n .SH DESCRIPTION\n Convert milliseconds to seconds.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_MUTEX.3alleg5", "source2": "ALLEGRO_MUTEX.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_MUTEX \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n-typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n .EE\n .SH DESCRIPTION\n An opaque structure representing a mutex.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5", "source2": "ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n-#define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n .EE\n .SH DESCRIPTION\n This is the maximum size of the title that can be set with\n al_set_new_window_title(3alleg5).\n .SH SEE ALSO\n al_set_new_window_title(3alleg5)\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PI.3alleg5", "source2": "ALLEGRO_PI.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n ALLEGRO_PI \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_PI 3.14159265358979323846\n-#define ALLEGRO_PI 3.14159265358979323846\n .EE\n .SH DESCRIPTION\n C99 compilers have no predefined value like M_PI for the constant \u03c0, but\n you can use this one instead.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PIXEL_FORMAT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PIXEL_FORMAT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PIXEL_FORMAT.3alleg5", "source2": "ALLEGRO_PIXEL_FORMAT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PIXEL_FORMAT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_PIXEL_FORMAT\n-typedef enum ALLEGRO_PIXEL_FORMAT\n .EE\n .SH DESCRIPTION\n Pixel formats.\n Each pixel format specifies the exact size and bit layout of a pixel in\n memory.\n Components are specified from high bits to low bits, so for example a\n fully opaque red pixel in ARGB_8888 format is 0xFFFF0000.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PLAYMODE.3alleg5", "source2": "ALLEGRO_PLAYMODE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PLAYMODE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_PLAYMODE\n-enum ALLEGRO_PLAYMODE\n .EE\n .SH DESCRIPTION\n Sample and stream playback mode.\n .IP \\[bu] 2\n ALLEGRO_PLAYMODE_ONCE \\- the sample/stream is played from start to\n finish an then it stops.\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PRIM_ATTR.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PRIM_ATTR.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PRIM_ATTR.3alleg5", "source2": "ALLEGRO_PRIM_ATTR.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PRIM_ATTR \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_PRIM_ATTR\n-typedef enum ALLEGRO_PRIM_ATTR\n .EE\n .SH DESCRIPTION\n Enumerates the types of vertex attributes that a custom vertex may have.\n .IP \\[bu] 2\n ALLEGRO_PRIM_POSITION \\- Position information, can be stored only in\n ALLEGRO_PRIM_SHORT_2, ALLEGRO_PRIM_FLOAT_2 and ALLEGRO_PRIM_FLOAT_3.\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5", "source2": "ALLEGRO_PRIM_BUFFER_FLAGS.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PRIM_BUFFER_FLAGS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n-typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n .EE\n .SH DESCRIPTION\n Flags to specify how to create a vertex or an index buffer.\n .IP \\[bu] 2\n ALLEGRO_PRIM_BUFFER_STREAM \\- Hints to the driver that the buffer is\n written to often, but used only a few times per frame\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PRIM_QUALITY.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PRIM_QUALITY.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PRIM_QUALITY.3alleg5", "source2": "ALLEGRO_PRIM_QUALITY.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PRIM_QUALITY \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_PRIM_QUALITY 10\n-#define ALLEGRO_PRIM_QUALITY 10\n .EE\n .SH DESCRIPTION\n Controls the quality of the approximation of curved primitives\n (e.g.\\ circles).\n Curved primitives are drawn by approximating them with a sequence of\n line segments.\n By default, this roughly corresponds to error of less than half of a\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PRIM_STORAGE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PRIM_STORAGE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PRIM_STORAGE.3alleg5", "source2": "ALLEGRO_PRIM_STORAGE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PRIM_STORAGE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_PRIM_STORAGE\n-typedef enum ALLEGRO_PRIM_STORAGE\n .EE\n .SH DESCRIPTION\n Enumerates the types of storage an attribute of a custom vertex may be\n stored in.\n Many of these can only be used for ALLEGRO_PRIM_USER_ATTR attributes and\n can only be accessed via shaders.\n Usually no matter what the storage is specified the attribute gets\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_PRIM_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_PRIM_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_PRIM_TYPE.3alleg5", "source2": "ALLEGRO_PRIM_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_PRIM_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_PRIM_TYPE\n-typedef enum ALLEGRO_PRIM_TYPE\n .EE\n .SH DESCRIPTION\n Enumerates the types of primitives this addon can draw.\n .IP \\[bu] 2\n ALLEGRO_PRIM_POINT_LIST \\- A list of points, each vertex defines a point\n .IP \\[bu] 2\n ALLEGRO_PRIM_LINE_LIST \\- A list of lines, sequential pairs of vertices\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_RENDER_FUNCTION.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_RENDER_FUNCTION.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_RENDER_FUNCTION.3alleg5", "source2": "ALLEGRO_RENDER_FUNCTION.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_RENDER_FUNCTION \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_RENDER_FUNCTION {\n-typedef enum ALLEGRO_RENDER_FUNCTION {\n .EE\n .SH DESCRIPTION\n Possible functions are:\n .IP \\[bu] 2\n ALLEGRO_RENDER_NEVER\n .IP \\[bu] 2\n ALLEGRO_RENDER_ALWAYS\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_RENDER_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_RENDER_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_RENDER_STATE.3alleg5", "source2": "ALLEGRO_RENDER_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_RENDER_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_RENDER_STATE {\n-typedef enum ALLEGRO_RENDER_STATE {\n .EE\n .SH DESCRIPTION\n Possible render states which can be set with\n al_set_render_state(3alleg5):\n .TP\n ALLEGRO_ALPHA_TEST\n If this is set to 1, the values of ALLEGRO_ALPHA_FUNCTION and\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SAMPLE.3alleg5", "source2": "ALLEGRO_SAMPLE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SAMPLE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n-typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_SAMPLE object stores the data necessary for playing\n pre\\-defined digital audio.\n It holds a user\\-specified PCM data buffer and information about its\n format (data length, depth, frequency, channel configuration).\n You can have the same ALLEGRO_SAMPLE playing multiple times\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SAMPLE_ID.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SAMPLE_ID.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SAMPLE_ID.3alleg5", "source2": "ALLEGRO_SAMPLE_ID.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SAMPLE_ID \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n-typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_SAMPLE_ID represents a sample being played via\n al_play_sample(3alleg5).\n It can be used to later stop the sample with al_stop_sample(3alleg5).\n The underlying ALLEGRO_SAMPLE_INSTANCE can be extracted using\n al_lock_sample_id(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SAMPLE_INSTANCE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SAMPLE_INSTANCE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SAMPLE_INSTANCE.3alleg5", "source2": "ALLEGRO_SAMPLE_INSTANCE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SAMPLE_INSTANCE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n-typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_SAMPLE_INSTANCE object represents a playable instance of a\n predefined sound effect.\n It holds information about how the effect should be played: These\n playback parameters consist of the looping mode, loop start/end points,\n playing position, speed, gain, pan and the playmode.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SEEK.3alleg5", "source2": "ALLEGRO_SEEK.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SEEK \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_SEEK\n-typedef enum ALLEGRO_SEEK\n .EE\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_SEEK_SET \\- seek relative to beginning of file\n .IP \\[bu] 2\n ALLEGRO_SEEK_CUR \\- seek relative to current file position\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SHADER.3alleg5", "source2": "ALLEGRO_SHADER.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SHADER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n-typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n .EE\n .SH DESCRIPTION\n An ALLEGRO_SHADER(3alleg5) is a program that runs on the GPU.\n It combines both a vertex and a pixel shader.\n (In OpenGL terms, an ALLEGRO_SHADER(3alleg5) is actually a\n \\f[I]program\\f[R] which has one or more \\f[I]shaders\\f[R] attached.\n This can be confusing.)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SHADER_PLATFORM.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SHADER_PLATFORM.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SHADER_PLATFORM.3alleg5", "source2": "ALLEGRO_SHADER_PLATFORM.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SHADER_PLATFORM \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n-typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n .EE\n .SH DESCRIPTION\n The underlying platform which the ALLEGRO_SHADER(3alleg5) is built on\n top of, which dictates the language used to program the shader.\n .IP \\[bu] 2\n ALLEGRO_SHADER_AUTO \\- Pick a platform automatically given the current\n display flags.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SHADER_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SHADER_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SHADER_TYPE.3alleg5", "source2": "ALLEGRO_SHADER_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SHADER_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n-typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n .EE\n .SH DESCRIPTION\n Used with al_attach_shader_source(3alleg5) and\n al_attach_shader_source_file(3alleg5) to specify how to interpret the\n attached source.\n .TP\n ALLEGRO_VERTEX_SHADER\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_STATE.3alleg5", "source2": "ALLEGRO_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n \n \n typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n-typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n .EE\n .SH DESCRIPTION\n Opaque type which is passed to\n al_store_state(3alleg5)/al_restore_state(3alleg5).\n .PP\n The various state kept internally by Allegro can be displayed like this:\n .IP\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_STATE_FLAGS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_STATE_FLAGS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_STATE_FLAGS.3alleg5", "source2": "ALLEGRO_STATE_FLAGS.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n ALLEGRO_STATE_FLAGS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n \n \n typedef enum ALLEGRO_STATE_FLAGS\n-typedef enum ALLEGRO_STATE_FLAGS\n .EE\n .SH DESCRIPTION\n Flags which can be passed to\n al_store_state(3alleg5)/al_restore_state(3alleg5) as bit combinations.\n See al_store_state(3alleg5) for the list of flags.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_SYSTEM_ID.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_SYSTEM_ID.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_SYSTEM_ID.3alleg5", "source2": "ALLEGRO_SYSTEM_ID.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_SYSTEM_ID \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_SYSTEM_ID {\n-enum ALLEGRO_SYSTEM_ID {\n .EE\n .SH DESCRIPTION\n The system Allegro is running on.\n .IP \\[bu] 2\n ALLEGRO_SYSTEM_ID_UNKNOWN \\- Unknown system.\n .IP \\[bu] 2\n ALLEGRO_SYSTEM_ID_XGLX \\- Xglx\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TEXTLOG.3alleg5", "source2": "ALLEGRO_TEXTLOG.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_TEXTLOG \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n-typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n .EE\n .SH DESCRIPTION\n Opaque handle to a text log window.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_THREAD.3alleg5", "source2": "ALLEGRO_THREAD.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_THREAD \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n-typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n .EE\n .SH DESCRIPTION\n An opaque structure representing a thread.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TIMEOUT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TIMEOUT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TIMEOUT.3alleg5", "source2": "ALLEGRO_TIMEOUT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_TIMEOUT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;\n-typedef struct ALLEGRO_TIMEOUT ALLEGRO_TIMEOUT;\n .EE\n .SH DESCRIPTION\n Represent a timeout value.\n The size of the structure is known so it can be statically allocated.\n The contents are private.\n .SH SEE ALSO\n al_init_timeout(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TIMER.3alleg5", "source2": "ALLEGRO_TIMER.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_TIMER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n-typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n .EE\n .SH DESCRIPTION\n This is an abstract data type representing a timer object.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TOUCH_INPUT.3alleg5", "source2": "ALLEGRO_TOUCH_INPUT.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n ALLEGRO_TOUCH_INPUT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n-typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n .EE\n .SH DESCRIPTION\n An abstract data type representing a physical touch screen or touch pad.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5", "source2": "ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n-#define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n .EE\n .SH DESCRIPTION\n The maximum amount of simultaneous touches that can be detected.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TOUCH_INPUT_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TOUCH_INPUT_STATE.3alleg5", "source2": "ALLEGRO_TOUCH_INPUT_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_TOUCH_INPUT_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;\n-typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;\n .EE\n .SH DESCRIPTION\n This is a structure that holds a snapshot of all simultaneous touches at\n a particular instant.\n .PP\n Public fields (read only):\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TOUCH_STATE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TOUCH_STATE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TOUCH_STATE.3alleg5", "source2": "ALLEGRO_TOUCH_STATE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_TOUCH_STATE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n-typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n .EE\n .SH DESCRIPTION\n This is a structure that is used to hold a \\[lq]snapshot\\[rq] of a touch\n at a particular instant.\n .PP\n Public fields (read only):\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_TRANSFORM.3alleg5", "source2": "ALLEGRO_TRANSFORM.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_TRANSFORM \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n-typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n .EE\n .SH DESCRIPTION\n Defines the generic transformation type, a 4x4 matrix.\n 2D transforms use only a small subsection of this matrix, namely the top\n left 2x2 matrix, and the right most 2x1 matrix, for a total of 6 values.\n .PP\n \\f[I]Fields:\\f[R]\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_USECS_TO_SECS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_USECS_TO_SECS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_USECS_TO_SECS.3alleg5", "source2": "ALLEGRO_USECS_TO_SECS.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n ALLEGRO_USECS_TO_SECS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n-#define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n .EE\n .SH DESCRIPTION\n Convert microseconds to seconds.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_USER_EVENT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_USER_EVENT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_USER_EVENT.3alleg5", "source2": "ALLEGRO_USER_EVENT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_USER_EVENT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n-typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n .EE\n .SH DESCRIPTION\n An event structure that can be emitted by user event sources.\n These are the public fields:\n .IP \\[bu] 2\n ALLEGRO_EVENT_SOURCE *source;\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_USTR.3alleg5", "source2": "ALLEGRO_USTR.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n ALLEGRO_USTR \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct _al_tagbstring ALLEGRO_USTR;\n-typedef struct _al_tagbstring ALLEGRO_USTR;\n .EE\n .SH DESCRIPTION\n An opaque type representing a string.\n ALLEGRO_USTRs normally contain UTF\\-8 encoded strings, but they may be\n used to hold any byte sequences, including NULs.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_USTR_INFO.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_USTR_INFO.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_USTR_INFO.3alleg5", "source2": "ALLEGRO_USTR_INFO.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n ALLEGRO_USTR_INFO \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct _al_tagbstring ALLEGRO_USTR_INFO;\n-typedef struct _al_tagbstring ALLEGRO_USTR_INFO;\n .EE\n .SH DESCRIPTION\n A type that holds additional information for an ALLEGRO_USTR(3alleg5)\n that references an external memory buffer.\n .SH SEE ALSO\n al_ref_cstr(3alleg5), al_ref_buffer(3alleg5) and al_ref_ustr(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VERTEX.3alleg5", "source2": "ALLEGRO_VERTEX.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VERTEX \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n-typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n .EE\n .SH DESCRIPTION\n Defines the generic vertex type, with a 3D position, color and texture\n coordinates for a single texture.\n Note that at this time, the software driver for this addon cannot render\n 3D primitives.\n If you want a 2D only primitive, set z to 0.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VERTEX_BUFFER.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VERTEX_BUFFER.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VERTEX_BUFFER.3alleg5", "source2": "ALLEGRO_VERTEX_BUFFER.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VERTEX_BUFFER \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n-typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n .EE\n .SH DESCRIPTION\n A GPU vertex buffer that you can use to store vertices on the GPU\n instead of uploading them afresh during every drawing operation.\n .SH SINCE\n 5.1.3\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VERTEX_CACHE_SIZE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VERTEX_CACHE_SIZE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VERTEX_CACHE_SIZE.3alleg5", "source2": "ALLEGRO_VERTEX_CACHE_SIZE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VERTEX_CACHE_SIZE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define ALLEGRO_VERTEX_CACHE_SIZE 256\n-#define ALLEGRO_VERTEX_CACHE_SIZE 256\n .EE\n .SH DESCRIPTION\n Defines the size of the transformation vertex cache for the software\n renderer.\n If you pass less than this many vertices to the primitive rendering\n functions you will get a speed boost.\n This also defines the size of the cache vertex buffer, used for the\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VERTEX_DECL.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VERTEX_DECL.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VERTEX_DECL.3alleg5", "source2": "ALLEGRO_VERTEX_DECL.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VERTEX_DECL \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n-typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n .EE\n .SH DESCRIPTION\n A vertex declaration.\n This opaque structure is responsible for describing the format and\n layout of a user defined custom vertex.\n It is created and destroyed by specialized functions.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VERTEX_ELEMENT.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VERTEX_ELEMENT.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VERTEX_ELEMENT.3alleg5", "source2": "ALLEGRO_VERTEX_ELEMENT.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VERTEX_ELEMENT \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n-typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n .EE\n .SH DESCRIPTION\n A small structure describing a certain element of a vertex.\n E.g.\n the position of the vertex, or its color.\n These structures are used by the al_create_vertex_decl(3alleg5) function\n to create the vertex declaration.\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VIDEO_EVENT_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VIDEO_EVENT_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VIDEO_EVENT_TYPE.3alleg5", "source2": "ALLEGRO_VIDEO_EVENT_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VIDEO_EVENT_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n enum ALLEGRO_VIDEO_EVENT_TYPE\n-enum ALLEGRO_VIDEO_EVENT_TYPE\n .EE\n .SH DESCRIPTION\n Events sent by al_get_video_event_source(3alleg5).\n .SS ALLEGRO_EVENT_VIDEO_FRAME_SHOW\n This event is sent when it is time to show a new frame.\n Once you receive this event, you can draw the current frame (as returned\n by al_get_video_frame(3alleg5)).\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VIDEO_POSITION_TYPE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VIDEO_POSITION_TYPE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VIDEO_POSITION_TYPE.3alleg5", "source2": "ALLEGRO_VIDEO_POSITION_TYPE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VIDEO_POSITION_TYPE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;\n-typedef enum ALLEGRO_VIDEO_POSITION_TYPE ALLEGRO_VIDEO_POSITION_TYPE;\n .EE\n .SH DESCRIPTION\n Used with al_get_video_position(3alleg5) to specify which position to\n retrieve.\n If these get out of sync, audio and video may be out of sync in the\n display of the video.\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_VOICE.3alleg5", "source2": "ALLEGRO_VOICE.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_VOICE \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n-typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n .EE\n .SH DESCRIPTION\n A voice represents an audio device on the system, which may be a real\n device, or an abstract device provided by the operating system.\n To play back audio, you would attach a mixer, sample instance or audio\n stream to a voice.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/ALLEGRO_WRITE_MASK_FLAGS.3alleg5.gz", "source2": "./usr/share/man/man3/ALLEGRO_WRITE_MASK_FLAGS.3alleg5.gz", "unified_diff": null, "details": [{"source1": "ALLEGRO_WRITE_MASK_FLAGS.3alleg5", "source2": "ALLEGRO_WRITE_MASK_FLAGS.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n ALLEGRO_WRITE_MASK_FLAGS \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n-typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n .EE\n .SH DESCRIPTION\n Each enabled bit means the corresponding value is written, a disabled\n bit means it is not.\n .IP \\[bu] 2\n ALLEGRO_MASK_RED\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_append_menu_item.3alleg5.gz", "source2": "./usr/share/man/man3/al_append_menu_item.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_append_menu_item.3alleg5", "source2": "al_append_menu_item.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,\n- int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n .EE\n .SH DESCRIPTION\n Appends a menu item to the end of the menu.\n See al_insert_menu_item(3alleg5) for more information.\n .SH SINCE\n 5.1.0\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_append_native_text_log.3alleg5.gz", "source2": "./usr/share/man/man3/al_append_native_text_log.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_append_native_text_log.3alleg5", "source2": "al_append_native_text_log.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n char const *format, ...)\n-void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\n- char const *format, ...)\n .EE\n .SH DESCRIPTION\n Appends a line of text to the message log window and scrolls to the\n bottom (if the line would not be visible otherwise).\n This works like printf.\n A line is continued until you add a newline character.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_attach_audio_stream_to_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_audio_stream_to_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_audio_stream_to_mixer.3alleg5", "source2": "al_attach_audio_stream_to_mixer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_attach_audio_stream_to_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)\n-bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Attach an audio stream to a mixer.\n The stream must not already be attached to anything.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_attach_audio_stream_to_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_audio_stream_to_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_audio_stream_to_voice.3alleg5", "source2": "al_attach_audio_stream_to_voice.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n ALLEGRO_VOICE *voice)\n-bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Attaches an audio stream to a voice.\n The same rules as al_attach_sample_instance_to_voice(3alleg5) apply.\n This may fail if the driver can\\[cq]t create a voice with the buffer\n count and buffer size the stream uses.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_attach_mixer_to_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_mixer_to_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_mixer_to_mixer.3alleg5", "source2": "al_attach_mixer_to_mixer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_attach_mixer_to_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n-bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Attaches the mixer passed as the first argument onto the mixer passed as\n the second argument.\n The first mixer (that is going to be attached) must not already be\n attached to anything.\n Both mixers must use the same frequency, audio depth and channel\n"}]}, {"source1": "./usr/share/man/man3/al_attach_mixer_to_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_mixer_to_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_mixer_to_voice.3alleg5", "source2": "al_attach_mixer_to_voice.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_attach_mixer_to_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n-bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Attaches a mixer to a voice.\n It must have the same frequency and channel configuration, but the depth\n may be different.\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_attach_sample_instance_to_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_sample_instance_to_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_sample_instance_to_mixer.3alleg5", "source2": "al_attach_sample_instance_to_mixer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_MIXER *mixer)\n-bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Attach a sample instance to a mixer.\n The instance must not already be attached to anything.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_attach_sample_instance_to_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_attach_sample_instance_to_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_attach_sample_instance_to_voice.3alleg5", "source2": "al_attach_sample_instance_to_voice.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_VOICE *voice)\n-bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Attaches a sample instance to a voice, and allows it to play.\n The instance\\[cq]s gain and loop mode will be ignored, and it must have\n the same frequency, channel configuration and depth (including\n signed\\-ness) as the voice.\n This function may fail if the selected driver doesn\\[cq]t support\n"}]}, {"source1": "./usr/share/man/man3/al_build_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_build_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_build_menu.3alleg5", "source2": "al_build_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_build_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n-ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n .EE\n .SH DESCRIPTION\n Builds a menu based on the specifications of a sequence of\n \\f[CR]ALLEGRO_MENU_INFO\\f[R] elements.\n .PP\n Returns a pointer to the root \\f[CR]ALLEGRO_MENU\\f[R], or\n \\f[CR]NULL\\f[R] on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_calculate_arc.3alleg5.gz", "source2": "./usr/share/man/man3/al_calculate_arc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_calculate_arc.3alleg5", "source2": "al_calculate_arc.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_calculate_arc(float* dest, int stride, float cx, float cy,\n float rx, float ry, float start_theta, float delta_theta, float thickness,\n int num_points)\n-void al_calculate_arc(float* dest, int stride, float cx, float cy,\n- float rx, float ry, float start_theta, float delta_theta, float thickness,\n- int num_points)\n .EE\n .SH DESCRIPTION\n When \\f[CR]thickness <= 0\\f[R] this function computes positions of\n \\f[CR]num_points\\f[R] regularly spaced points on an elliptical arc.\n When \\f[CR]thickness > 0\\f[R] this function computes two sets of points,\n obtained as follows: the first set is obtained by taking the points\n computed in the \\f[CR]thickness <= 0\\f[R] case and shifting them by\n"}]}, {"source1": "./usr/share/man/man3/al_calculate_ribbon.3alleg5.gz", "source2": "./usr/share/man/man3/al_calculate_ribbon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_calculate_ribbon.3alleg5", "source2": "al_calculate_ribbon.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n int points_stride, float thickness, int num_segments)\n-void al_calculate_ribbon(float* dest, int dest_stride, const float *points,\n- int points_stride, float thickness, int num_segments)\n .EE\n .SH DESCRIPTION\n Calculates a ribbon given an array of points.\n The ribbon will go through all of the passed points.\n If \\f[CR]thickness <= 0\\f[R], then \\f[CR]num_segments\\f[R] of points are\n required in the destination buffer, otherwise twice as many are needed.\n The destination and the points buffer should consist of regularly spaced\n"}]}, {"source1": "./usr/share/man/man3/al_calculate_spline.3alleg5.gz", "source2": "./usr/share/man/man3/al_calculate_spline.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_calculate_spline.3alleg5", "source2": "al_calculate_spline.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_calculate_spline(float* dest, int stride, const float points[8],\n float thickness, int num_segments)\n-void al_calculate_spline(float* dest, int stride, const float points[8],\n- float thickness, int num_segments)\n .EE\n .SH DESCRIPTION\n Calculates a B\u00e9zier spline given 4 control points.\n If \\f[CR]thickness <= 0\\f[R], then \\f[CR]num_segments\\f[R] of points are\n required in the destination, otherwise twice as many are needed.\n The destination buffer should consist of regularly spaced (by distance\n of stride bytes) doublets of floats, corresponding to x and y\n"}]}, {"source1": "./usr/share/man/man3/al_calloc.3alleg5.gz", "source2": "./usr/share/man/man3/al_calloc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_calloc.3alleg5", "source2": "al_calloc.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define al_calloc(c, n) \\[rs]\n (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n-#define al_calloc(c, n) \\[rs]\n- (al_calloc_with_context((c), (n), __LINE__, __FILE__, __func__))\n .EE\n .SH DESCRIPTION\n Like calloc() in the C standard library, but the implementation may be\n overridden.\n .PP\n This is a macro.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_clone_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_clone_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_clone_menu.3alleg5", "source2": "al_clone_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_clone_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Makes a copy of a menu so that it can be reused on another display.\n The menu being cloned can be anything: a regular menu, a popup menu, or\n a sub\\-menu.\n .PP\n Returns the cloned menu.\n"}]}, {"source1": "./usr/share/man/man3/al_clone_menu_for_popup.3alleg5.gz", "source2": "./usr/share/man/man3/al_clone_menu_for_popup.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_clone_menu_for_popup.3alleg5", "source2": "al_clone_menu_for_popup.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_clone_menu_for_popup \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)\n-ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Exactly like al_clone_menu(3alleg5), except that the copy is for a popup\n menu.\n .SH SINCE\n 5.1.0\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_close_native_text_log.3alleg5.gz", "source2": "./usr/share/man/man3/al_close_native_text_log.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_close_native_text_log.3alleg5", "source2": "al_close_native_text_log.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_close_native_text_log \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n-void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n .EE\n .SH DESCRIPTION\n Closes a message log window opened with al_open_native_text_log(3alleg5)\n earlier.\n .PP\n Does nothing if passed NULL.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_close_video.3alleg5.gz", "source2": "./usr/share/man/man3/al_close_video.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_close_video.3alleg5", "source2": "al_close_video.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_close_video \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_close_video(ALLEGRO_VIDEO *video)\n-void al_close_video(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Closes the video and frees all allocated resources.\n The video pointer is invalid after the function returns.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_color_cmyk.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_cmyk.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_cmyk.3alleg5", "source2": "al_color_cmyk.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_color_cmyk \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)\n-ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from CMYK values (cyan,\n magenta, yellow, black).\n .SH SEE ALSO\n al_color_cmyk_to_rgb(3alleg5), al_color_rgb_to_cmyk(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_cmyk_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_cmyk_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_cmyk_to_rgb.3alleg5", "source2": "al_color_cmyk_to_rgb.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n float key, float *red, float *green, float *blue)\n-void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,\n- float key, float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert CMYK values to RGB values.\n .SH SEE ALSO\n al_color_cmyk(3alleg5), al_color_rgb_to_cmyk(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_distance_ciede2000.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_distance_ciede2000.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_distance_ciede2000.3alleg5", "source2": "al_color_distance_ciede2000.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n ALLEGRO_COLOR color2) {\n-double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\n- ALLEGRO_COLOR color2) {\n .EE\n .SH DESCRIPTION\n This function computes the CIEDE2000 color difference between two RGB\n colors.\n This is a visually uniform color difference, unlike for example the RGB\n distance.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_color_hsl.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_hsl.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_hsl.3alleg5", "source2": "al_color_hsl.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_hsl \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_hsl(float h, float s, float l)\n-ALLEGRO_COLOR al_color_hsl(float h, float s, float l)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from HSL (hue, saturation,\n lightness) values.\n .PP\n Parameters:\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_color_hsl_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_hsl_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_hsl_to_rgb.3alleg5", "source2": "al_color_hsl_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n float *red, float *green, float *blue)\n-void al_color_hsl_to_rgb(float hue, float saturation, float lightness,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert values in HSL color model to RGB color model.\n .PP\n Parameters:\n .IP \\[bu] 2\n hue \\- Color hue angle in the range 0..360\n"}]}, {"source1": "./usr/share/man/man3/al_color_hsv.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_hsv.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_hsv.3alleg5", "source2": "al_color_hsv.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_hsv \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_hsv(float h, float s, float v)\n-ALLEGRO_COLOR al_color_hsv(float h, float s, float v)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from HSV (hue, saturation,\n value) values.\n .PP\n Parameters:\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_color_hsv_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_hsv_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_hsv_to_rgb.3alleg5", "source2": "al_color_hsv_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_hsv_to_rgb(float hue, float saturation, float value,\n float *red, float *green, float *blue)\n-void al_color_hsv_to_rgb(float hue, float saturation, float value,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert values in HSV color model to RGB color model.\n .PP\n Parameters:\n .IP \\[bu] 2\n hue \\- Color hue angle in the range 0..360\n"}]}, {"source1": "./usr/share/man/man3/al_color_html.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_html.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_html.3alleg5", "source2": "al_color_html.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_html \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_html(char const *string)\n-ALLEGRO_COLOR al_color_html(char const *string)\n .EE\n .SH DESCRIPTION\n Interprets an HTML\\-style hex number (e.g.\\ #00faff) as a color.\n The accepted format is the same as al_color_html_to_rgb(3alleg5).\n .PP\n Returns the interpreted color, or \\f[CR]al_map_rgba(0, 0, 0, 0)\\f[R] if\n the string could not be parsed.\n"}]}, {"source1": "./usr/share/man/man3/al_color_html_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_html_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_html_to_rgb.3alleg5", "source2": "al_color_html_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_color_html_to_rgb(char const *string,\n float *red, float *green, float *blue)\n-bool al_color_html_to_rgb(char const *string,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Interprets an HTML\\-style hex number (e.g.\\ #00faff) as a color.\n The only accepted formats are \\[lq]#RRGGBB\\[rq] and \\[lq]RRGGBB\\[rq]\n where R, G, B are hexadecimal digits [0\\-9A\\-Fa\\-f].\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_color_lab.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_lab.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_lab.3alleg5", "source2": "al_color_lab.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_lab \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_lab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_lab(float l, float a, float b)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from CIE L*a*b* values.\n The L* component corresponds to luminance from 0..1.\n The a* and b* components are in the range \\-1..+1.\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_color_lab_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_lab_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_lab_to_rgb.3alleg5", "source2": "al_color_lab_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_lab_to_rgb(float l, float a, float b,\n float *red, float *green, float *blue)\n-void al_color_lab_to_rgb(float l, float a, float b,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert CIE L*a*b* color values to RGB color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_lab(3alleg5), al_color_rgb_to_lab(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_lch.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_lch.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_lch.3alleg5", "source2": "al_color_lch.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_lch \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_lch(float l, float c, float h)\n-ALLEGRO_COLOR al_color_lch(float l, float c, float h)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from CIE LCH values.\n LCH colors are very similar to HSL, with the same meaning of L and H and\n C corresponding to S. However LCH is more visually uniform.\n Furthermore, this function expects the angle for H in radians and not in\n degree.\n"}]}, {"source1": "./usr/share/man/man3/al_color_lch_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_lch_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_lch_to_rgb.3alleg5", "source2": "al_color_lch_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_lch_to_rgb(float l, float c, float h,\n float *red, float *green, float *blue)\n-void al_color_lch_to_rgb(float l, float c, float h,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert CIE LCH color values to RGB color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_lch(3alleg5), al_color_rgb_to_lch(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_linear.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_linear.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_linear.3alleg5", "source2": "al_color_linear.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_linear \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_linear(float r, float g, float b)\n-ALLEGRO_COLOR al_color_linear(float r, float g, float b)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from linear sRGB values.\n Allegro RGB values are assumed to be sRGB.\n The sRGB standard is in wide use by various display devices.\n It accounts for a standard gamma correction applied to RGB colors before\n they get displayed.\n"}]}, {"source1": "./usr/share/man/man3/al_color_linear_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_linear_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_linear_to_rgb.3alleg5", "source2": "al_color_linear_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_linear_to_rgb(float r, float g, float b,\n float *red, float *green, float *blue)\n-void al_color_linear_to_rgb(float r, float g, float b,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert linear sRGB color values to gamma corrected (i.e.\\ normal) RGB\n values.\n .SH SINCE\n 5.2.8\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_color_name.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_name.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_name.3alleg5", "source2": "al_color_name.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_color_name \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_name(char const *name)\n-ALLEGRO_COLOR al_color_name(char const *name)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) with the given name.\n If the color is not found then black is returned.\n .PP\n See al_color_name_to_rgb(3alleg5) for the list of names.\n"}]}, {"source1": "./usr/share/man/man3/al_color_name_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_name_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_name_to_rgb.3alleg5", "source2": "al_color_name_to_rgb.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_name_to_rgb \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)\n-bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)\n .EE\n .SH DESCRIPTION\n Parameters:\n .IP \\[bu] 2\n name \\- The (lowercase) name of the color.\n .IP \\[bu] 2\n r, g, b \\- If one of the recognized color names below is passed, the\n"}]}, {"source1": "./usr/share/man/man3/al_color_oklab.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_oklab.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_oklab.3alleg5", "source2": "al_color_oklab.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_oklab \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_oklab(float l, float a, float b)\n-ALLEGRO_COLOR al_color_oklab(float l, float a, float b)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from Oklab values.\n The L component corresponds to luminance from 0..1.\n The a and b components are in the range \\-1..+1.\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_color_oklab_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_oklab_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_oklab_to_rgb.3alleg5", "source2": "al_color_oklab_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_oklab_to_rgb(float ol, float oa, float ob,\n float *red, float *green, float *blue)\n-void al_color_oklab_to_rgb(float ol, float oa, float ob,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert Oklab color values to RGB.\n .SH SINCE\n 5.2.8\n .SH SEE ALSO\n al_color_oklab(3alleg5), al_color_rgb_to_oklab(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_cmyk.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_cmyk.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_cmyk.3alleg5", "source2": "al_color_rgb_to_cmyk.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_cmyk(float red, float green, float blue,\n float *cyan, float *magenta, float *yellow, float *key)\n-void al_color_rgb_to_cmyk(float red, float green, float blue,\n- float *cyan, float *magenta, float *yellow, float *key)\n .EE\n .SH DESCRIPTION\n Each RGB color can be represented in CMYK with a K component of 0 with\n the following formula:\n .IP\n .EX\n C = 1 \\- R\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_hsl.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_hsl.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_hsl.3alleg5", "source2": "al_color_rgb_to_hsl.3alleg5", "unified_diff": "@@ -6,15 +6,13 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_hsl(float red, float green, float blue,\n float *hue, float *saturation, float *lightness)\n-void al_color_rgb_to_hsl(float red, float green, float blue,\n- float *hue, float *saturation, float *lightness)\n .EE\n .SH DESCRIPTION\n Given an RGB triplet with components in the range 0..1, return the hue\n in degrees from 0..360 and saturation and lightness in the range 0..1.\n .SH SEE ALSO\n al_color_hsl_to_rgb(3alleg5), al_color_hsl(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_hsv.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_hsv.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_hsv.3alleg5", "source2": "al_color_rgb_to_hsv.3alleg5", "unified_diff": "@@ -6,15 +6,13 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_hsv(float red, float green, float blue,\n float *hue, float *saturation, float *value)\n-void al_color_rgb_to_hsv(float red, float green, float blue,\n- float *hue, float *saturation, float *value)\n .EE\n .SH DESCRIPTION\n Given an RGB triplet with components in the range 0..1, return the hue\n in degrees from 0..360 and saturation and value in the range 0..1.\n .SH SEE ALSO\n al_color_hsv_to_rgb(3alleg5), al_color_hsv(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_html.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_html.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_html.3alleg5", "source2": "al_color_rgb_to_html.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_html(float red, float green, float blue,\n char *string)\n-void al_color_rgb_to_html(float red, float green, float blue,\n- char *string)\n .EE\n .SH DESCRIPTION\n Create an HTML\\-style string representation of an\n ALLEGRO_COLOR(3alleg5), e.g.\\ #00faff.\n .PP\n Parameters:\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_lab.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_lab.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_lab.3alleg5", "source2": "al_color_rgb_to_lab.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_lab(float red, float green, float blue,\n float *l, float *a, float *b)\n-void al_color_rgb_to_lab(float red, float green, float blue,\n- float *l, float *a, float *b)\n .EE\n .SH DESCRIPTION\n Convert RGB values to L*a*b* color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_lab(3alleg5), al_color_lab_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_lch.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_lch.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_lch.3alleg5", "source2": "al_color_rgb_to_lch.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_lch(float red, float green, float blue,\n float *l, float *c, float *h)\n-void al_color_rgb_to_lch(float red, float green, float blue,\n- float *l, float *c, float *h)\n .EE\n .SH DESCRIPTION\n Convert RGB values to CIE LCH color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_lch(3alleg5), al_color_lch_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_linear.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_linear.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_linear.3alleg5", "source2": "al_color_rgb_to_linear.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_linear(float red, float green, float blue,\n float *r, float *g, float *b)\n-void al_color_rgb_to_linear(float red, float green, float blue,\n- float *r, float *g, float *b)\n .EE\n .SH DESCRIPTION\n Convert gamma corrected sRGB values (i.e.\\ normal RGB) to linear sRGB\n space.\n .SH SINCE\n 5.2.8\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_name.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_name.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_name.3alleg5", "source2": "al_color_rgb_to_name.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_color_rgb_to_name \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n char const *al_color_rgb_to_name(float r, float g, float b)\n-char const *al_color_rgb_to_name(float r, float g, float b)\n .EE\n .SH DESCRIPTION\n Given an RGB triplet with components in the range 0..1, find a color\n name describing it approximately.\n .SH SEE ALSO\n al_color_name_to_rgb(3alleg5), al_color_name(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_oklab.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_oklab.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_oklab.3alleg5", "source2": "al_color_rgb_to_oklab.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_oklab(float red, float green, float blue,\n float *ol, float *oa, float *ob)\n-void al_color_rgb_to_oklab(float red, float green, float blue,\n- float *ol, float *oa, float *ob)\n .EE\n .SH DESCRIPTION\n Convert RGB values to the Oklab color space.\n .SH SINCE\n 5.2.8\n .SH SEE ALSO\n al_color_oklab(3alleg5), al_color_oklab_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_xyy.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_xyy.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_xyy.3alleg5", "source2": "al_color_rgb_to_xyy.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_xyy(float red, float green, float blue,\n float *x, float *y, float *y2)\n-void al_color_rgb_to_xyy(float red, float green, float blue,\n- float *x, float *y, float *y2)\n .EE\n .SH DESCRIPTION\n Convert RGB values to xyY color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_xyy(3alleg5), al_color_xyy_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_xyz.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_xyz.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_xyz.3alleg5", "source2": "al_color_rgb_to_xyz.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_xyz(float red, float green, float blue,\n float *x, float *y, float *z)\n-void al_color_rgb_to_xyz(float red, float green, float blue,\n- float *x, float *y, float *z)\n .EE\n .SH DESCRIPTION\n Convert RGB values to XYZ color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_xyz(3alleg5), al_color_xyz_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_rgb_to_yuv.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_rgb_to_yuv.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_rgb_to_yuv.3alleg5", "source2": "al_color_rgb_to_yuv.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_rgb_to_yuv(float red, float green, float blue,\n float *y, float *u, float *v)\n-void al_color_rgb_to_yuv(float red, float green, float blue,\n- float *y, float *u, float *v)\n .EE\n .SH DESCRIPTION\n Convert RGB values to YUV color space.\n .SH SEE ALSO\n al_color_yuv(3alleg5), al_color_yuv_to_rgb(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_xyy.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_xyy.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_xyy.3alleg5", "source2": "al_color_xyy.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_xyy \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)\n-ALLEGRO_COLOR al_color_xyy(float x, float y, float y2)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from xyY values.\n The Y component in the xyY color space is the same as the Y in XYZ.\n .PP\n However the x and y values are computed from XYZ like this:\n .IP\n"}]}, {"source1": "./usr/share/man/man3/al_color_xyy_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_xyy_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_xyy_to_rgb.3alleg5", "source2": "al_color_xyy_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_xyy_to_rgb(float x, float y, float y2,\n float *red, float *green, float *blue)\n-void al_color_xyy_to_rgb(float x, float y, float y2,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert xyY color values to RGB color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_xyy(3alleg5), al_color_rgb_to_xyy(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_xyz.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_xyz.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_xyz.3alleg5", "source2": "al_color_xyz.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_color_xyz \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_xyz(float x, float y, float z)\n-ALLEGRO_COLOR al_color_xyz(float x, float y, float z)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from XYZ values.\n The CIE 1931 XYZ color space consists of three components in the range\n 0..1.\n The Y component corresponds to luminance and the X and Z components\n define the color.\n"}]}, {"source1": "./usr/share/man/man3/al_color_xyz_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_xyz_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_xyz_to_rgb.3alleg5", "source2": "al_color_xyz_to_rgb.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_xyz_to_rgb(float x, float y, float z,\n float *red, float *green, float *blue)\n-void al_color_xyz_to_rgb(float x, float y, float z,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert XYZ color values to RGB color space.\n .SH SINCE\n 5.2.3\n .SH SEE ALSO\n al_color_xyz(3alleg5), al_color_rgb_to_xyz(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_yuv.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_yuv.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_yuv.3alleg5", "source2": "al_color_yuv.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_color_yuv \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_COLOR al_color_yuv(float y, float u, float v)\n-ALLEGRO_COLOR al_color_yuv(float y, float u, float v)\n .EE\n .SH DESCRIPTION\n Return an ALLEGRO_COLOR(3alleg5) structure from YUV values.\n .SH SEE ALSO\n al_color_yuv_to_rgb(3alleg5), al_color_rgb_to_yuv(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_color_yuv_to_rgb.3alleg5.gz", "source2": "./usr/share/man/man3/al_color_yuv_to_rgb.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_color_yuv_to_rgb.3alleg5", "source2": "al_color_yuv_to_rgb.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_color_yuv_to_rgb(float y, float u, float v,\n float *red, float *green, float *blue)\n-void al_color_yuv_to_rgb(float y, float u, float v,\n- float *red, float *green, float *blue)\n .EE\n .SH DESCRIPTION\n Convert YUV color values to RGB color space.\n .SH SEE ALSO\n al_color_yuv(3alleg5), al_color_rgb_to_yuv(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_create_audio_recorder.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_audio_recorder.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_audio_recorder.3alleg5", "source2": "al_create_audio_recorder.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n unsigned int samples, unsigned int frequency,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_RECORDER *al_create_audio_recorder(size_t fragment_count,\n- unsigned int samples, unsigned int frequency,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n .EE\n .SH DESCRIPTION\n Creates an audio recorder using the system\\[cq]s default recording\n device.\n (So if the returned device does not work, try updating the system\\[cq]s\n default recording device.)\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_create_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_audio_stream.3alleg5", "source2": "al_create_audio_stream.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,\n- unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n- ALLEGRO_CHANNEL_CONF chan_conf)\n .EE\n .SH DESCRIPTION\n Creates an ALLEGRO_AUDIO_STREAM(3alleg5).\n The stream will be set to play by default.\n It will feed audio data from a buffer, which is split into a number of\n fragments.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_create_builtin_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_builtin_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_builtin_font.3alleg5", "source2": "al_create_builtin_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_create_builtin_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_create_builtin_font(void)\n-ALLEGRO_FONT *al_create_builtin_font(void)\n .EE\n .SH DESCRIPTION\n Creates a monochrome bitmap font (8x8 pixels per character).\n .PP\n This font is primarily intended to be used for displaying information in\n environments or during early runtime states where no external font data\n is available or loaded (e.g.\\ for debugging).\n"}]}, {"source1": "./usr/share/man/man3/al_create_index_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_index_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_index_buffer.3alleg5", "source2": "al_create_index_buffer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n const void* initial_data, int num_indices, int flags)\n-ALLEGRO_INDEX_BUFFER* al_create_index_buffer(int index_size,\n- const void* initial_data, int num_indices, int flags)\n .EE\n .SH DESCRIPTION\n Creates a index buffer.\n Can return NULL if the buffer could not be created (e.g.\\ the system\n only supports write\\-only buffers).\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_create_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_menu.3alleg5", "source2": "al_create_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_create_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_create_menu(void)\n-ALLEGRO_MENU *al_create_menu(void)\n .EE\n .SH DESCRIPTION\n Creates a menu container that can hold menu items.\n .PP\n Returns \\f[CR]NULL\\f[R] on failure.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_create_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_mixer.3alleg5", "source2": "al_create_mixer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_MIXER *al_create_mixer(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n .EE\n .SH DESCRIPTION\n Creates a mixer to attach sample instances, audio streams, or other\n mixers to.\n It will mix into a buffer at the requested frequency (in Hz) and channel\n count.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_create_native_file_dialog.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_native_file_dialog.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_native_file_dialog.3alleg5", "source2": "al_create_native_file_dialog.3alleg5", "unified_diff": "@@ -9,19 +9,14 @@\n #include \n \n ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n char const *initial_path,\n char const *title,\n char const *patterns,\n int mode)\n-ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n- char const *initial_path,\n- char const *title,\n- char const *patterns,\n- int mode)\n .EE\n .SH DESCRIPTION\n Creates a new native file dialog.\n You should only have one such dialog opened at a time.\n .PP\n Parameters:\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_create_popup_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_popup_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_popup_menu.3alleg5", "source2": "al_create_popup_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_create_popup_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_create_popup_menu(void)\n-ALLEGRO_MENU *al_create_popup_menu(void)\n .EE\n .SH DESCRIPTION\n Creates a menu container for popup menus.\n Only the root (outermost) menu should be created with this function.\n Sub menus of popups should be created with al_create_menu(3alleg5).\n .PP\n Returns \\f[CR]NULL\\f[R] on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_create_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_sample.3alleg5", "source2": "al_create_sample.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n-ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,\n- unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,\n- ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)\n .EE\n .SH DESCRIPTION\n Create a sample data structure from the supplied buffer.\n If \\f[CR]free_buf\\f[R] is true then the buffer will be freed with\n al_free(3alleg5) when the sample data structure is destroyed.\n For portability (especially Windows), the buffer should have been\n allocated with al_malloc(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_create_sample_instance.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_sample_instance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_sample_instance.3alleg5", "source2": "al_create_sample_instance.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_create_sample_instance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)\n-ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)\n .EE\n .SH DESCRIPTION\n Creates a sample instance, using the supplied sample data.\n The instance must be attached to a mixer (or voice) in order to actually\n produce output.\n .PP\n The argument may be NULL.\n"}]}, {"source1": "./usr/share/man/man3/al_create_vertex_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_vertex_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_vertex_buffer.3alleg5", "source2": "al_create_vertex_buffer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n const void* initial_data, int num_vertices, int flags)\n-ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,\n- const void* initial_data, int num_vertices, int flags)\n .EE\n .SH DESCRIPTION\n Creates a vertex buffer.\n Can return NULL if the buffer could not be created (e.g.\\ the system\n only supports write\\-only buffers).\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_create_vertex_decl.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_vertex_decl.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_vertex_decl.3alleg5", "source2": "al_create_vertex_decl.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_create_vertex_decl \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT* elements, int stride)\n-ALLEGRO_VERTEX_DECL* al_create_vertex_decl(const ALLEGRO_VERTEX_ELEMENT* elements, int stride)\n .EE\n .SH DESCRIPTION\n Creates a vertex declaration, which describes a custom vertex format.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n elements \\- An array of ALLEGRO_VERTEX_ELEMENT(3alleg5) structures.\n"}]}, {"source1": "./usr/share/man/man3/al_create_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_create_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_create_voice.3alleg5", "source2": "al_create_voice.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-ALLEGRO_VOICE *al_create_voice(unsigned int freq,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n .EE\n .SH DESCRIPTION\n Creates a voice structure and allocates a voice from the digital sound\n driver.\n The passed frequency (in Hz), sample format and channel configuration\n are used as a hint to what kind of data will be sent to the voice.\n However, the underlying sound driver is free to use non\\-matching\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_audio_recorder.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_audio_recorder.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_audio_recorder.3alleg5", "source2": "al_destroy_audio_recorder.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_audio_recorder \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n .EE\n .SH DESCRIPTION\n Destroys the audio recorder and frees all resources associated with it.\n It is safe to destroy a recorder that is recording.\n .PP\n You may receive events after the recorder has been destroyed.\n They must be ignored, as the fragment buffer will no longer be valid.\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_audio_stream.3alleg5", "source2": "al_destroy_audio_stream.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_audio_stream \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Destroy an audio stream which was created with\n al_create_audio_stream(3alleg5) or al_load_audio_stream(3alleg5).\n .RS\n .PP\n \\f[I]Note:\\f[R] If the stream is still attached to a mixer or voice,\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_font.3alleg5", "source2": "al_destroy_font.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_destroy_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_font(ALLEGRO_FONT *f)\n-void al_destroy_font(ALLEGRO_FONT *f)\n .EE\n .SH DESCRIPTION\n Frees the memory being used by a font structure.\n Does nothing if passed NULL.\n .SH SEE ALSO\n al_load_font(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_index_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_index_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_index_buffer.3alleg5", "source2": "al_destroy_index_buffer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_index_buffer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Destroys a index buffer.\n Does nothing if passed NULL.\n .SH SINCE\n 5.1.8\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_menu.3alleg5", "source2": "al_destroy_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_menu(ALLEGRO_MENU *menu)\n-void al_destroy_menu(ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Destroys an entire menu, including its sub\\-menus.\n Any references to it or a sub\\-menu are no longer valid.\n It is safe to call this on a menu that is currently being displayed.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_mixer.3alleg5", "source2": "al_destroy_mixer.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_destroy_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n-void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Destroys the mixer.\n .SH SEE ALSO\n al_create_mixer(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_native_file_dialog.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_native_file_dialog.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_native_file_dialog.3alleg5", "source2": "al_destroy_native_file_dialog.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_destroy_native_file_dialog \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n-void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n .EE\n .SH DESCRIPTION\n Frees up all resources used by the file dialog.\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_sample.3alleg5", "source2": "al_destroy_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n-void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Free the sample data structure.\n If it was created with the \\f[CR]free_buf\\f[R] parameter set to true,\n then the buffer will be freed with al_free(3alleg5).\n .PP\n This function will stop any sample instances which may be playing the\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_sample_instance.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_sample_instance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_sample_instance.3alleg5", "source2": "al_destroy_sample_instance.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_sample_instance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Detaches the sample instance from anything it may be attached to and\n frees it (the sample data, i.e.\\ its ALLEGRO_SAMPLE, is \\f[I]not\\f[R]\n freed!).\n .SH SEE ALSO\n al_create_sample_instance(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_vertex_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_vertex_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_vertex_buffer.3alleg5", "source2": "al_destroy_vertex_buffer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_vertex_buffer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Destroys a vertex buffer.\n Does nothing if passed NULL.\n .SH SINCE\n 5.1.3\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_vertex_decl.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_vertex_decl.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_vertex_decl.3alleg5", "source2": "al_destroy_vertex_decl.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_destroy_vertex_decl \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n-void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n .EE\n .SH DESCRIPTION\n Destroys a vertex declaration.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n decl \\- Vertex declaration to destroy\n"}]}, {"source1": "./usr/share/man/man3/al_destroy_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_destroy_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_destroy_voice.3alleg5", "source2": "al_destroy_voice.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_destroy_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_destroy_voice(ALLEGRO_VOICE *voice)\n-void al_destroy_voice(ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Destroys the voice and deallocates it from the digital driver.\n Does nothing if the voice is NULL.\n .SH SEE ALSO\n al_create_voice(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_detach_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_detach_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_detach_audio_stream.3alleg5", "source2": "al_detach_audio_stream.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_detach_audio_stream \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Detach the stream from whatever it\\[cq]s attached to, if anything.\n .SH SEE ALSO\n al_attach_audio_stream_to_mixer(3alleg5),\n al_attach_audio_stream_to_voice(3alleg5),\n al_get_audio_stream_attached(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_detach_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_detach_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_detach_mixer.3alleg5", "source2": "al_detach_mixer.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_detach_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n-bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Detach the mixer from whatever it is attached to, if anything.\n .SH SEE ALSO\n al_attach_mixer_to_mixer(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_detach_sample_instance.3alleg5.gz", "source2": "./usr/share/man/man3/al_detach_sample_instance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_detach_sample_instance.3alleg5", "source2": "al_detach_sample_instance.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_detach_sample_instance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Detach the sample instance from whatever it\\[cq]s attached to, if\n anything.\n .PP\n Returns true on success.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_detach_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_detach_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_detach_voice.3alleg5", "source2": "al_detach_voice.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_detach_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_detach_voice(ALLEGRO_VOICE *voice)\n-void al_detach_voice(ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Detaches the mixer, sample instance or audio stream from the voice.\n .SH SEE ALSO\n al_attach_mixer_to_voice(3alleg5),\n al_attach_sample_instance_to_voice(3alleg5),\n al_attach_audio_stream_to_voice(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_disable_menu_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_disable_menu_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_disable_menu_event_source.3alleg5", "source2": "al_disable_menu_event_source.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_disable_menu_event_source \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n-void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Disables a unique event source for the menu, causing it to use the\n default event source.\n .SH SINCE\n 5.1.0\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_do_multiline_text.3alleg5.gz", "source2": "./usr/share/man/man3/al_do_multiline_text.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_do_multiline_text.3alleg5", "source2": "al_do_multiline_text.3alleg5", "unified_diff": "@@ -8,18 +8,14 @@\n .EX\n #include \n \n void al_do_multiline_text(const ALLEGRO_FONT *font,\n float max_width, const char *text,\n bool (*cb)(int line_num, const char *line, int size, void *extra),\n void *extra)\n-void al_do_multiline_text(const ALLEGRO_FONT *font,\n- float max_width, const char *text,\n- bool (*cb)(int line_num, const char *line, int size, void *extra),\n- void *extra)\n .EE\n .SH DESCRIPTION\n This function processes the \\f[CR]text\\f[R] and splits it into lines as\n al_draw_multiline_text(3alleg5) would, and then calls the callback\n \\f[CR]cb\\f[R] once for every line.\n This is useful for custom drawing of multiline text, or for calculating\n the size of multiline text ahead of time.\n"}]}, {"source1": "./usr/share/man/man3/al_do_multiline_ustr.3alleg5.gz", "source2": "./usr/share/man/man3/al_do_multiline_ustr.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_do_multiline_ustr.3alleg5", "source2": "al_do_multiline_ustr.3alleg5", "unified_diff": "@@ -8,18 +8,14 @@\n .EX\n #include \n \n void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n const ALLEGRO_USTR *ustr,\n bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n void *extra)\n-void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,\n- const ALLEGRO_USTR *ustr,\n- bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),\n- void *extra)\n .EE\n .SH DESCRIPTION\n Like al_do_multiline_text(3alleg5), but using ALLEGRO_USTR instead of a\n NUL\\-terminated char array for text.\n .SH SINCE\n 5.1.9\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_drain_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_drain_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_drain_audio_stream.3alleg5", "source2": "al_drain_audio_stream.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_drain_audio_stream \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n You should call this to finalise an audio stream that you will no longer\n be feeding, to wait for all pending buffers to finish playing.\n The stream\\[cq]s playing state will change to false.\n .SH SEE ALSO\n al_destroy_audio_stream(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_draw_arc.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_arc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_arc.3alleg5", "source2": "al_draw_arc.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_arc(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_arc(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an arc.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the arc\n"}]}, {"source1": "./usr/share/man/man3/al_draw_circle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_circle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_circle.3alleg5", "source2": "al_draw_circle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n float thickness)\n-void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n- float thickness)\n .EE\n .SH DESCRIPTION\n Draws an outlined circle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the circle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_ellipse.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_ellipse.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_ellipse.3alleg5", "source2": "al_draw_ellipse.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_ellipse(float cx, float cy, float rx, float ry,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_ellipse(float cx, float cy, float rx, float ry,\n- ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an outlined ellipse.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the ellipse\n"}]}, {"source1": "./usr/share/man/man3/al_draw_elliptical_arc.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_elliptical_arc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_elliptical_arc.3alleg5", "source2": "al_draw_elliptical_arc.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an elliptical arc.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the arc\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_circle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_circle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_circle.3alleg5", "source2": "al_draw_filled_circle.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_draw_filled_circle \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)\n-void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled circle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the circle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_ellipse.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_ellipse.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_ellipse.3alleg5", "source2": "al_draw_filled_ellipse.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n ALLEGRO_COLOR color)\n-void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n- ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled ellipse.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the ellipse\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_pieslice.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_pieslice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_pieslice.3alleg5", "source2": "al_draw_filled_pieslice.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color)\n-void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled pieslice (filled circular sector).\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the pieslice\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_polygon.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_polygon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_polygon.3alleg5", "source2": "al_draw_filled_polygon.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_polygon(const float *vertices, int vertex_count,\n ALLEGRO_COLOR color)\n-void al_draw_filled_polygon(const float *vertices, int vertex_count,\n- ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draw a filled, simple polygon.\n Simple means it does not have to be convex but must not be\n self\\-overlapping.\n .IP \\[bu] 2\n vertices \\- Interleaved array of (x, y) vertex coordinates\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_polygon_with_holes.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_polygon_with_holes.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_polygon_with_holes.3alleg5", "source2": "al_draw_filled_polygon_with_holes.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_polygon_with_holes(const float *vertices,\n const int *vertex_counts, ALLEGRO_COLOR color)\n-void al_draw_filled_polygon_with_holes(const float *vertices,\n- const int *vertex_counts, ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled simple polygon with zero or more other simple polygons\n subtracted from it \\- the holes.\n The holes cannot touch or intersect with the outline of the filled\n polygon.\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_rectangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_rectangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_rectangle.3alleg5", "source2": "al_draw_filled_rectangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color)\n-void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2 \\- Upper left and lower right points of the rectangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_rounded_rectangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_rounded_rectangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_rounded_rectangle.3alleg5", "source2": "al_draw_filled_rounded_rectangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n float rx, float ry, ALLEGRO_COLOR color)\n-void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,\n- float rx, float ry, ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws an filled rounded rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2 \\- Upper left and lower right points of the rectangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_filled_triangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_filled_triangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_filled_triangle.3alleg5", "source2": "al_draw_filled_triangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n float x3, float y3, ALLEGRO_COLOR color)\n-void al_draw_filled_triangle(float x1, float y1, float x2, float y2,\n- float x3, float y3, ALLEGRO_COLOR color)\n .EE\n .SH DESCRIPTION\n Draws a filled triangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2, x3, y3 \\- Three points of the triangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_glyph.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_glyph.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_glyph.3alleg5", "source2": "al_draw_glyph.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float y,\n int codepoint)\n-void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float y,\n- int codepoint)\n .EE\n .SH DESCRIPTION\n Draws the glyph that corresponds with \\f[CR]codepoint\\f[R] in the given\n \\f[CR]color\\f[R] using the given \\f[CR]font\\f[R].\n If \\f[CR]font\\f[R] does not have such a glyph, nothing will be drawn.\n .PP\n To draw a string as left to right horizontal text you will need to use\n"}]}, {"source1": "./usr/share/man/man3/al_draw_indexed_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_indexed_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_indexed_buffer.3alleg5", "source2": "al_draw_indexed_buffer.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n int start, int end, int type)\n-int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n- ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,\n- int start, int end, int type)\n .EE\n .SH DESCRIPTION\n Draws a subset of the passed vertex buffer.\n This function uses an index buffer to specify which vertices to use.\n Both buffers must not be locked.\n Additionally, to draw onto memory bitmaps or with memory bitmap textures\n both buffers must support reading (i.e.\\ they must be created with the\n"}]}, {"source1": "./usr/share/man/man3/al_draw_indexed_prim.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_indexed_prim.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_indexed_prim.3alleg5", "source2": "al_draw_indexed_prim.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n-int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n- ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)\n .EE\n .SH DESCRIPTION\n Draws a subset of the passed vertex array.\n This function uses an index array to specify which vertices to use.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n"}]}, {"source1": "./usr/share/man/man3/al_draw_justified_text.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_justified_text.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_justified_text.3alleg5", "source2": "al_draw_justified_text.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_justified_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x1, float x2,\n float y, float diff, int flags, const char *text)\n-void al_draw_justified_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x1, float x2,\n- float y, float diff, int flags, const char *text)\n .EE\n .SH DESCRIPTION\n Like al_draw_text(3alleg5), but justifies the string to the region\n x1\\-x2.\n .PP\n The \\f[CR]diff\\f[R] parameter is the maximum amount of horizontal space\n to allow between words.\n"}]}, {"source1": "./usr/share/man/man3/al_draw_justified_textf.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_justified_textf.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_justified_textf.3alleg5", "source2": "al_draw_justified_textf.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_justified_textf(const ALLEGRO_FONT *f,\n ALLEGRO_COLOR color, float x1, float x2, float y,\n float diff, int flags, const char *format, ...)\n-void al_draw_justified_textf(const ALLEGRO_FONT *f,\n- ALLEGRO_COLOR color, float x1, float x2, float y,\n- float diff, int flags, const char *format, ...)\n .EE\n .SH DESCRIPTION\n Formatted text output, using a printf() style format string.\n All parameters have the same meaning as with\n al_draw_justified_text(3alleg5) otherwise.\n .SH SEE ALSO\n al_draw_justified_text(3alleg5), al_draw_justified_ustr(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_draw_justified_ustr.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_justified_ustr.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_justified_ustr.3alleg5", "source2": "al_draw_justified_ustr.3alleg5", "unified_diff": "@@ -7,16 +7,13 @@\n .IP\n .EX\n #include \n \n void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x1, float x2,\n float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_justified_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x1, float x2,\n- float y, float diff, int flags, const ALLEGRO_USTR *ustr)\n .EE\n .SH DESCRIPTION\n Like al_draw_justified_text(3alleg5), except the text is passed as an\n ALLEGRO_USTR instead of a NUL\\-terminated char array.\n .SH SEE ALSO\n al_draw_justified_text(3alleg5), al_draw_justified_textf(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_draw_line.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_line.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_line.3alleg5", "source2": "al_draw_line.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_line(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_line(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws a line segment between two points.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2 \\- Start and end points of the line\n"}]}, {"source1": "./usr/share/man/man3/al_draw_multiline_text.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_multiline_text.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_multiline_text.3alleg5", "source2": "al_draw_multiline_text.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_multiline_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const char *text)\n-void al_draw_multiline_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const char *text)\n .EE\n .SH DESCRIPTION\n Like al_draw_text(3alleg5), but this function supports drawing multiple\n lines of text.\n It will break \\f[CR]text\\f[R] in lines based on its contents and the\n \\f[CR]max_width\\f[R] parameter.\n The lines are then layed out vertically depending on the\n"}]}, {"source1": "./usr/share/man/man3/al_draw_multiline_textf.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_multiline_textf.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_multiline_textf.3alleg5", "source2": "al_draw_multiline_textf.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const char *format, ...)\n-void al_draw_multiline_textf(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const char *format, ...)\n .EE\n .SH DESCRIPTION\n Formatted text output, using a printf() style format string.\n All parameters have the same meaning as with\n al_draw_multiline_text(3alleg5) otherwise.\n .SH SINCE\n 5.1.9\n"}]}, {"source1": "./usr/share/man/man3/al_draw_multiline_ustr.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_multiline_ustr.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_multiline_ustr.3alleg5", "source2": "al_draw_multiline_ustr.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n int flags, const ALLEGRO_USTR *ustr)\n-void al_draw_multiline_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,\n- int flags, const ALLEGRO_USTR *ustr)\n .EE\n .SH DESCRIPTION\n Like al_draw_multiline_text(3alleg5), except the text is passed as an\n ALLEGRO_USTR instead of a NUL\\-terminated char array.\n .SH SINCE\n 5.1.9\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_draw_pieslice.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_pieslice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_pieslice.3alleg5", "source2": "al_draw_pieslice.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n float delta_theta, ALLEGRO_COLOR color, float thickness)\n-void al_draw_pieslice(float cx, float cy, float r, float start_theta,\n- float delta_theta, ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws a pieslice (outlined circular sector).\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n cx, cy \\- Center of the pieslice\n"}]}, {"source1": "./usr/share/man/man3/al_draw_polygon.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_polygon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_polygon.3alleg5", "source2": "al_draw_polygon.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_polygon(const float *vertices, int vertex_count,\n int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polygon(const float *vertices, int vertex_count,\n- int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)\n .EE\n .SH DESCRIPTION\n Draw an unfilled polygon.\n This is the same as passing \\f[CR]ALLEGRO_LINE_CAP_CLOSED\\f[R] to\n al_draw_polyline(3alleg5).\n .IP \\[bu] 2\n vertex \\- Interleaved array of (x, y) vertex coordinates\n"}]}, {"source1": "./usr/share/man/man3/al_draw_polyline.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_polyline.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_polyline.3alleg5", "source2": "al_draw_polyline.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_polyline(const float* vertices, int vertex_stride,\n int vertex_count, int join_style, int cap_style,\n ALLEGRO_COLOR color, float thickness, float miter_limit)\n-void al_draw_polyline(const float* vertices, int vertex_stride,\n- int vertex_count, int join_style, int cap_style,\n- ALLEGRO_COLOR color, float thickness, float miter_limit)\n .EE\n .SH DESCRIPTION\n Draw a series of line segments.\n .IP \\[bu] 2\n vertices \\- Interleaved array of (x, y) vertex coordinates\n .IP \\[bu] 2\n vertex_stride \\- the number of bytes between pairs of vertices (the\n"}]}, {"source1": "./usr/share/man/man3/al_draw_prim.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_prim.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_prim.3alleg5", "source2": "al_draw_prim.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n ALLEGRO_BITMAP* texture, int start, int end, int type)\n-int al_draw_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,\n- ALLEGRO_BITMAP* texture, int start, int end, int type)\n .EE\n .SH DESCRIPTION\n Draws a subset of the passed vertex array.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n texture \\- Texture to use, pass NULL to use only color shaded primitves\n"}]}, {"source1": "./usr/share/man/man3/al_draw_rectangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_rectangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_rectangle.3alleg5", "source2": "al_draw_rectangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_rectangle(float x1, float y1, float x2, float y2,\n ALLEGRO_COLOR color, float thickness)\n-void al_draw_rectangle(float x1, float y1, float x2, float y2,\n- ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an outlined rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2 \\- Upper left and lower right points of the rectangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_ribbon.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_ribbon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_ribbon.3alleg5", "source2": "al_draw_ribbon.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR color,\n float thickness, int num_segments)\n-void al_draw_ribbon(const float *points, int points_stride, ALLEGRO_COLOR color,\n- float thickness, int num_segments)\n .EE\n .SH DESCRIPTION\n Draws a ribbon given an array of points.\n The ribbon will go through all of the passed points.\n The points buffer should consist of regularly spaced doublets of floats,\n corresponding to x and y coordinates of the vertices.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_draw_rounded_rectangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_rounded_rectangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_rounded_rectangle.3alleg5", "source2": "al_draw_rounded_rectangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n float rx, float ry, ALLEGRO_COLOR color, float thickness)\n-void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,\n- float rx, float ry, ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an outlined rounded rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2 \\- Upper left and lower right points of the rectangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_soft_line.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_soft_line.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_soft_line.3alleg5", "source2": "al_draw_soft_line.3alleg5", "unified_diff": "@@ -8,18 +8,14 @@\n .EX\n #include \n \n void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n void (*step)(uintptr_t, int),\n void (*draw)(uintptr_t, int, int))\n-void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,\n- void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n- void (*step)(uintptr_t, int),\n- void (*draw)(uintptr_t, int, int))\n .EE\n .SH DESCRIPTION\n Draws a line using the software rasterizer and user supplied pixel\n functions.\n For help in understanding what these functions do, see the\n implementation of the various shading routines in\n addons/primitives/line_soft.c.\n"}]}, {"source1": "./usr/share/man/man3/al_draw_soft_triangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_soft_triangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_soft_triangle.3alleg5", "source2": "al_draw_soft_triangle.3alleg5", "unified_diff": "@@ -10,20 +10,14 @@\n \n void al_draw_soft_triangle(\n ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n void (*first)(uintptr_t, int, int, int, int),\n void (*step)(uintptr_t, int),\n void (*draw)(uintptr_t, int, int, int))\n-void al_draw_soft_triangle(\n- ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,\n- void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),\n- void (*first)(uintptr_t, int, int, int, int),\n- void (*step)(uintptr_t, int),\n- void (*draw)(uintptr_t, int, int, int))\n .EE\n .SH DESCRIPTION\n Draws a triangle using the software rasterizer and user supplied pixel\n functions.\n For help in understanding what these functions do, see the\n implementation of the various shading routines in\n addons/primitives/tri_soft.c.\n"}]}, {"source1": "./usr/share/man/man3/al_draw_spline.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_spline.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_spline.3alleg5", "source2": "al_draw_spline.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_draw_spline \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float thickness)\n-void al_draw_spline(const float points[8], ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws a B\u00e9zier spline given 4 control points.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n points \\- An array of 4 pairs of coordinates of the 4 control points\n"}]}, {"source1": "./usr/share/man/man3/al_draw_text.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_text.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_text.3alleg5", "source2": "al_draw_text.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_text(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, int flags,\n char const *text) \n-void al_draw_text(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, int flags,\n- char const *text) \n .EE\n .SH DESCRIPTION\n Writes the NUL\\-terminated string \\f[CR]text\\f[R] onto the target bitmap\n at position \\f[CR]x\\f[R], \\f[CR]y\\f[R], using the specified\n \\f[CR]font\\f[R].\n .PP\n The \\f[CR]flags\\f[R] parameter can be 0 or one of the following flags:\n"}]}, {"source1": "./usr/share/man/man3/al_draw_textf.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_textf.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_textf.3alleg5", "source2": "al_draw_textf.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n float x, float y, int flags,\n const char *format, ...)\n-void al_draw_textf(const ALLEGRO_FONT *font, ALLEGRO_COLOR color,\n- float x, float y, int flags,\n- const char *format, ...)\n .EE\n .SH DESCRIPTION\n Formatted text output, using a printf() style format string.\n All parameters have the same meaning as with al_draw_text(3alleg5)\n otherwise.\n .SH SEE ALSO\n al_draw_text(3alleg5), al_draw_ustr(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_draw_triangle.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_triangle.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_triangle.3alleg5", "source2": "al_draw_triangle.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_draw_triangle(float x1, float y1, float x2, float y2,\n float x3, float y3, ALLEGRO_COLOR color, float thickness)\n-void al_draw_triangle(float x1, float y1, float x2, float y2,\n- float x3, float y3, ALLEGRO_COLOR color, float thickness)\n .EE\n .SH DESCRIPTION\n Draws an outlined triangle.\n .PP\n \\f[I]Parameters:\\f[R]\n .IP \\[bu] 2\n x1, y1, x2, y2, x3, y3 \\- Three points of the triangle\n"}]}, {"source1": "./usr/share/man/man3/al_draw_ustr.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_ustr.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_ustr.3alleg5", "source2": "al_draw_ustr.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_draw_ustr(const ALLEGRO_FONT *font,\n ALLEGRO_COLOR color, float x, float y, int flags,\n const ALLEGRO_USTR *ustr) \n-void al_draw_ustr(const ALLEGRO_FONT *font,\n- ALLEGRO_COLOR color, float x, float y, int flags,\n- const ALLEGRO_USTR *ustr) \n .EE\n .SH DESCRIPTION\n Like al_draw_text(3alleg5), except the text is passed as an ALLEGRO_USTR\n instead of a NUL\\-terminated char array.\n .SH SEE ALSO\n al_draw_text(3alleg5), al_draw_justified_ustr(3alleg5),\n al_draw_multiline_ustr(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_draw_vertex_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_draw_vertex_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_draw_vertex_buffer.3alleg5", "source2": "al_draw_vertex_buffer.3alleg5", "unified_diff": "@@ -5,16 +5,14 @@\n al_draw_vertex_buffer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n- ALLEGRO_BITMAP* texture, int staal_get_allegro_acodec_version\n-int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n ALLEGRO_BITMAP* texture, int start, int end, int type)\n .EE\n .SH DESCRIPTION\n Draws a subset of the passed vertex buffer.\n The vertex buffer must not be locked.\n Additionally, to draw onto memory bitmaps or with memory bitmap textures\n the vertex buffer must support reading (i.e.\\ it must be created with\n"}]}, {"source1": "./usr/share/man/man3/al_enable_menu_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_enable_menu_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_enable_menu_event_source.3alleg5", "source2": "al_enable_menu_event_source.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_enable_menu_event_source \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)\n-ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Enables a unique event source for this menu.\n It and all of its sub\\-menus will use this event source.\n (It is safe to call this multiple times on the same menu.)\n .PP\n Returns the event source.\n"}]}, {"source1": "./usr/share/man/man3/al_fill_silence.3alleg5.gz", "source2": "./usr/share/man/man3/al_fill_silence.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_fill_silence.3alleg5", "source2": "al_fill_silence.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_fill_silence(void *buf, unsigned int samples,\n ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n-void al_fill_silence(void *buf, unsigned int samples,\n- ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf)\n .EE\n .SH DESCRIPTION\n Fill a buffer with silence, for the given format and channel\n configuration.\n The buffer must have enough space for the given number of samples, and\n be properly aligned.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_find_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_find_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_find_menu.3alleg5", "source2": "al_find_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_find_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)\n-ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)\n .EE\n .SH DESCRIPTION\n Searches in the \\f[CR]haystack\\f[R] menu for any submenu with the given\n \\f[CR]id\\f[R].\n (Note that this only represents a literal ID, and cannot be used as an\n index.)\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_find_menu_item.3alleg5.gz", "source2": "./usr/share/man/man3/al_find_menu_item.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_find_menu_item.3alleg5", "source2": "al_find_menu_item.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,\n int *index)\n-bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,\n- int *index)\n .EE\n .SH DESCRIPTION\n Searches in the \\f[CR]haystack\\f[R] menu for an item with the given\n \\f[CR]id\\f[R].\n (Note that this only represents a literal ID, and cannot be used as an\n index.)\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_fixed.3alleg5.gz", "source2": "./usr/share/man/man3/al_fixed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_fixed.3alleg5", "source2": "al_fixed.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_fixed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n typedef int32_t al_fixed;\n-typedef int32_t al_fixed;\n .EE\n .SH DESCRIPTION\n A fixed point number.\n .PP\n Allegro provides some routines for working with fixed point numbers, and\n defines the type \\f[CR]al_fixed\\f[R] to be a signed 32\\-bit integer.\n The high word is used for the integer part and the low word for the\n"}]}, {"source1": "./usr/share/man/man3/al_free.3alleg5.gz", "source2": "./usr/share/man/man3/al_free.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_free.3alleg5", "source2": "al_free.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define al_free(p) \\[rs]\n (al_free_with_context((p), __LINE__, __FILE__, __func__))\n-#define al_free(p) \\[rs]\n- (al_free_with_context((p), __LINE__, __FILE__, __func__))\n .EE\n .SH DESCRIPTION\n Like free() in the C standard library, but the implementation may be\n overridden.\n .PP\n Additionally, on Windows, a memory block allocated by one DLL must be\n freed from the same DLL.\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_acodec_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_acodec_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_acodec_version.3alleg5", "source2": "al_get_allegro_acodec_version.3alleg5", "unified_diff": "@@ -3,11 +3,13 @@\n .TH \"al_get_allegro_acodec_version\" \"3alleg5\" \"\" \"Allegro reference manual\" \"\"\n .SH NAME\n al_get_allegro_acodec_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n+\n+uint32_t al_get_allegro_acodec_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_audio_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_audio_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_audio_version.3alleg5", "source2": "al_get_allegro_audio_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_audio_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_audio_version(void)\n-uint32_t al_get_allegro_audio_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_color_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_color_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_color_version.3alleg5", "source2": "al_get_allegro_color_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_color_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_color_version(void)\n-uint32_t al_get_allegro_color_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_font_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_font_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_font_version.3alleg5", "source2": "al_get_allegro_font_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_font_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_font_version(void)\n-uint32_t al_get_allegro_font_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_image_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_image_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_image_version.3alleg5", "source2": "al_get_allegro_image_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_image_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_image_version(void)\n-uint32_t al_get_allegro_image_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_memfile_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_memfile_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_memfile_version.3alleg5", "source2": "al_get_allegro_memfile_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_memfile_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_memfile_version(void)\n-uint32_t al_get_allegro_memfile_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_native_dialog_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_native_dialog_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_native_dialog_version.3alleg5", "source2": "al_get_allegro_native_dialog_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_native_dialog_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_native_dialog_version(void)\n-uint32_t al_get_allegro_native_dialog_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_physfs_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_physfs_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_physfs_version.3alleg5", "source2": "al_get_allegro_physfs_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_physfs_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_physfs_version(void)\n-uint32_t al_get_allegro_physfs_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_primitives_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_primitives_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_primitives_version.3alleg5", "source2": "al_get_allegro_primitives_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_primitives_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_primitives_version(void)\n-uint32_t al_get_allegro_primitives_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_ttf_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_ttf_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_ttf_version.3alleg5", "source2": "al_get_allegro_ttf_version.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_allegro_ttf_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_ttf_version(void)\n-uint32_t al_get_allegro_ttf_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_allegro_video_version.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_allegro_video_version.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_allegro_video_version.3alleg5", "source2": "al_get_allegro_video_version.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_allegro_video_version \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint32_t al_get_allegro_video_version(void)\n-uint32_t al_get_allegro_video_version(void)\n .EE\n .SH DESCRIPTION\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_depth_size.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_depth_size.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_depth_size.3alleg5", "source2": "al_get_audio_depth_size.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_depth_size \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n-size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n .EE\n .SH DESCRIPTION\n Return the size of a sample, in bytes, for the given format.\n The format is one of the values listed under\n ALLEGRO_AUDIO_DEPTH(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_device_name.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_device_name.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_device_name.3alleg5", "source2": "al_get_audio_device_name.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_device_name \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n-const char* al_get_audio_device_name(const ALLEGRO_AUDIO_DEVICE * device)\n .EE\n .SH DESCRIPTION\n Get the user friendly display name of the device.\n .SH SINCE\n 5.2.8\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_output_device.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_output_device.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_output_device.3alleg5", "source2": "al_get_audio_output_device.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_output_device \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n-const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n .EE\n .SH DESCRIPTION\n Get the output audio device of the specified index.\n .SH SINCE\n 5.2.8\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_recorder_event.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_recorder_event.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_recorder_event.3alleg5", "source2": "al_get_audio_recorder_event.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_recorder_event \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n-ALLEGRO_AUDIO_RECORDER_EVENT *al_get_audio_recorder_event(ALLEGRO_EVENT *event)\n .EE\n .SH DESCRIPTION\n Returns the event as an ALLEGRO_AUDIO_RECORDER_EVENT(3alleg5).\n .SH SINCE\n 5.1.1\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_recorder_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_recorder_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_recorder_event_source.3alleg5", "source2": "al_get_audio_recorder_event_source.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_recorder_event_source \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER *r)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_recorder_event_source(ALLEGRO_AUDIO_RECORDER *r)\n .EE\n .SH DESCRIPTION\n Returns the event source for the recorder that generates the various\n recording events.\n .SH SINCE\n 5.1.1\n .RS\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_attached.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_attached.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_attached.3alleg5", "source2": "al_get_audio_stream_attached.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_stream_attached \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return whether the stream is attached to something.\n .SH SEE ALSO\n al_attach_audio_stream_to_mixer(3alleg5),\n al_attach_audio_stream_to_voice(3alleg5),\n al_detach_audio_stream(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_channels.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_channels.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_channels.3alleg5", "source2": "al_get_audio_stream_channels.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\n- const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the stream channel configuration.\n .SH SEE ALSO\n ALLEGRO_CHANNEL_CONF(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_depth.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_depth.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_depth.3alleg5", "source2": "al_get_audio_stream_depth.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\n- const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the stream audio depth.\n .SH SEE ALSO\n ALLEGRO_AUDIO_DEPTH(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_event_source.3alleg5", "source2": "al_get_audio_stream_event_source.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\n- ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Retrieve the associated event source.\n .PP\n See al_get_audio_stream_fragment(3alleg5) for a description of the\n ALLEGRO_EVENT_AUDIO_STREAM_FRAGMENT(3alleg5) event that audio streams\n emit.\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_fragment.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_fragment.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_fragment.3alleg5", "source2": "al_get_audio_stream_fragment.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_stream_fragment \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)\n-void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n When using Allegro\\[cq]s audio streaming, you will use this function to\n continuously provide new sample data to a stream.\n .PP\n If the stream is ready for new data, the function will return the\n address of an internal buffer to be filled with audio data.\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_fragments.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_fragments.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_fragments.3alleg5", "source2": "al_get_audio_stream_fragments.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_stream_fragments \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Returns the number of fragments this stream uses.\n This is the same value as passed to al_create_audio_stream(3alleg5) when\n a new stream is created.\n .SH SEE ALSO\n al_get_available_audio_stream_fragments(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_frequency.3alleg5", "source2": "al_get_audio_stream_frequency.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_get_audio_stream_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the stream frequency (in Hz).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_gain.3alleg5", "source2": "al_get_audio_stream_gain.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_stream_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the playback gain of the stream.\n .SH SEE ALSO\n al_set_audio_stream_gain(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_length.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_length.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_length.3alleg5", "source2": "al_get_audio_stream_length.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_get_audio_stream_length \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the stream length in samples.\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_length_secs.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_length_secs.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_length_secs.3alleg5", "source2": "al_get_audio_stream_length_secs.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_stream_length_secs \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the length of the stream in seconds, if known.\n Otherwise returns zero.\n .PP\n Currently this can only be called on streams created with\n al_load_audio_stream(3alleg5), al_play_audio_stream(3alleg5),\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_pan.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_pan.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_pan.3alleg5", "source2": "al_get_audio_stream_pan.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_stream_pan \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Get the pan value of the stream.\n .SH SEE ALSO\n al_set_audio_stream_pan(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_played_samples.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_played_samples.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_played_samples.3alleg5", "source2": "al_get_audio_stream_played_samples.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_audio_stream_played_samples \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)\n-uint64_t al_get_audio_stream_played_samples(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Get the number of samples consumed by the parent since the audio stream\n was started.\n .SH SINCE\n 5.1.8\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_playing.3alleg5", "source2": "al_get_audio_stream_playing.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_stream_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)\n-bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return true if the stream is playing.\n .SH SEE ALSO\n al_set_audio_stream_playing(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_playmode.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_playmode.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_playmode.3alleg5", "source2": "al_get_audio_stream_playmode.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n const ALLEGRO_AUDIO_STREAM *stream)\n-ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\n- const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the playback mode of the stream.\n .SH SEE ALSO\n ALLEGRO_PLAYMODE(3alleg5), al_set_audio_stream_playmode(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_position_secs.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_position_secs.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_position_secs.3alleg5", "source2": "al_get_audio_stream_position_secs.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_audio_stream_position_secs \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)\n-double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the position of the stream in seconds.\n Currently this can only be called on streams created with\n al_load_audio_stream(3alleg5), al_play_audio_stream(3alleg5),\n al_load_audio_stream_f(3alleg5) or al_play_audio_stream_f(3alleg5).\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_get_audio_stream_speed.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_audio_stream_speed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_audio_stream_speed.3alleg5", "source2": "al_get_audio_stream_speed.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_audio_stream_speed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)\n-float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Return the relative playback speed of the stream.\n .SH SEE ALSO\n al_set_audio_stream_speed(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_available_audio_stream_fragments.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_available_audio_stream_fragments.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_available_audio_stream_fragments.3alleg5", "source2": "al_get_available_audio_stream_fragments.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_available_audio_stream_fragments(\n const ALLEGRO_AUDIO_STREAM *stream)\n-unsigned int al_get_available_audio_stream_fragments(\n- const ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Returns the number of available fragments in the stream, that is,\n fragments which are not currently filled with data for playback.\n .SH SEE ALSO\n al_get_audio_stream_fragment(3alleg5),\n al_get_audio_stream_fragments(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_channel_count.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_channel_count.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_channel_count.3alleg5", "source2": "al_get_channel_count.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_get_channel_count \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n-size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n .EE\n .SH DESCRIPTION\n Return the number of channels for the given channel configuration, which\n is one of the values listed under ALLEGRO_CHANNEL_CONF(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_default_menu_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_default_menu_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_default_menu_event_source.3alleg5", "source2": "al_get_default_menu_event_source.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_default_menu_event_source \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)\n-ALLEGRO_EVENT_SOURCE *al_get_default_menu_event_source(void)\n .EE\n .SH DESCRIPTION\n Returns the default event source used for menu clicks.\n If a menu was not given its own event source via\n al_enable_menu_event_source(3alleg5), then it will use this default\n source.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_get_default_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_default_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_default_mixer.3alleg5", "source2": "al_get_default_mixer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_default_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MIXER *al_get_default_mixer(void)\n-ALLEGRO_MIXER *al_get_default_mixer(void)\n .EE\n .SH DESCRIPTION\n Return the default mixer, or NULL if one has not been set.\n Although different configurations of mixers and voices can be used, in\n most cases a single mixer attached to a voice is what you want.\n The default mixer is used by al_play_sample(3alleg5).\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_get_default_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_default_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_default_voice.3alleg5", "source2": "al_get_default_voice.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_default_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_VOICE *al_get_default_voice(void)\n-ALLEGRO_VOICE *al_get_default_voice(void)\n .EE\n .SH DESCRIPTION\n Returns the default voice or NULL if there is none.\n .SH SINCE\n 5.1.13\n .SH SEE ALSO\n al_get_default_mixer(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_display_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_display_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_display_menu.3alleg5", "source2": "al_get_display_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_display_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n .EE\n .SH DESCRIPTION\n Returns the menu associated with the \\f[CR]display\\f[R], or\n \\f[CR]NULL\\f[R] if it does not have a menu.\n .SH SINCE\n 5.1.0\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_get_fallback_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_fallback_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_fallback_font.3alleg5", "source2": "al_get_fallback_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_fallback_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n-ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n .EE\n .SH DESCRIPTION\n Retrieves the fallback font for this font or NULL.\n .SH SINCE\n 5.1.12\n .SH SEE ALSO\n al_set_fallback_font(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_font_ascent.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_font_ascent.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_font_ascent.3alleg5", "source2": "al_get_font_ascent.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_font_ascent \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_font_ascent(const ALLEGRO_FONT *f)\n-int al_get_font_ascent(const ALLEGRO_FONT *f)\n .EE\n .SH DESCRIPTION\n Returns the ascent of the specified font.\n .SH SEE ALSO\n al_get_font_descent(3alleg5), al_get_font_line_height(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_font_descent.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_font_descent.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_font_descent.3alleg5", "source2": "al_get_font_descent.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_font_descent \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_font_descent(const ALLEGRO_FONT *f)\n-int al_get_font_descent(const ALLEGRO_FONT *f)\n .EE\n .SH DESCRIPTION\n Returns the descent of the specified font.\n .SH SEE ALSO\n al_get_font_ascent(3alleg5), al_get_font_line_height(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_font_line_height.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_font_line_height.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_font_line_height.3alleg5", "source2": "al_get_font_line_height.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_font_line_height \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_font_line_height(const ALLEGRO_FONT *f)\n-int al_get_font_line_height(const ALLEGRO_FONT *f)\n .EE\n .SH DESCRIPTION\n Returns the usual height of a line of text in the specified font.\n For bitmap fonts this is simply the height of all glyph bitmaps.\n For truetype fonts it is whatever the font file specifies.\n In particular, some special glyphs may be higher than the height\n returned here.\n"}]}, {"source1": "./usr/share/man/man3/al_get_font_ranges.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_font_ranges.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_font_ranges.3alleg5", "source2": "al_get_font_ranges.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_font_ranges \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)\n-int al_get_font_ranges(ALLEGRO_FONT *f, int ranges_count, int *ranges)\n .EE\n .SH DESCRIPTION\n Gets information about all glyphs contained in a font, as a list of\n ranges.\n Ranges have the same format as with al_grab_font_from_bitmap(3alleg5).\n .PP\n \\f[CR]ranges_count\\f[R] is the maximum number of ranges that will be\n"}]}, {"source1": "./usr/share/man/man3/al_get_glyph.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_glyph.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_glyph.3alleg5", "source2": "al_get_glyph.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_glyph \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint, ALLEGRO_GLYPH *glyph)\n-bool al_get_glyph(const ALLEGRO_FONT *f, int prev_codepoint, int codepoint, ALLEGRO_GLYPH *glyph)\n .EE\n .SH DESCRIPTION\n Gets all the information about a glyph, including the bitmap, needed to\n draw it yourself.\n prev_codepoint is the codepoint in the string before the one you want to\n draw and is used for kerning.\n codepoint is the character you want to get info about.\n"}]}, {"source1": "./usr/share/man/man3/al_get_glyph_advance.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_glyph_advance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_glyph_advance.3alleg5", "source2": "al_get_glyph_advance.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_glyph_advance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)\n-int al_get_glyph_advance(const ALLEGRO_FONT *f, int codepoint1, int codepoint2)\n .EE\n .SH DESCRIPTION\n This function returns by how much the x position should be advanced for\n left to right text drawing when the glyph that corresponds to codepoint1\n has been drawn, and the glyph that corresponds to codepoint2 will be the\n next to be drawn.\n This takes into consideration the horizontal advance width of the glyph\n"}]}, {"source1": "./usr/share/man/man3/al_get_glyph_dimensions.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_glyph_dimensions.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_glyph_dimensions.3alleg5", "source2": "al_get_glyph_dimensions.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n-bool al_get_glyph_dimensions(const ALLEGRO_FONT *f,\n- int codepoint, int *bbx, int *bby, int *bbw, int *bbh)\n .EE\n .SH DESCRIPTION\n Sometimes, the al_get_glyph_width(3alleg5) or\n al_get_glyph_advance(3alleg5) functions are not enough for exact glyph\n placement, so this function returns some additional information,\n particularly if you want to draw the font vertically.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_get_glyph_width.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_glyph_width.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_glyph_width.3alleg5", "source2": "al_get_glyph_width.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_glyph_width \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n-int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n .EE\n .SH DESCRIPTION\n This function returns the width in pixels of the glyph that corresponds\n with \\f[CR]codepoint\\f[R] in the font \\f[CR]font\\f[R].\n Returns zero if the font does not have such a glyph.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_get_index_buffer_size.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_index_buffer_size.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_index_buffer_size.3alleg5", "source2": "al_get_index_buffer_size.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_index_buffer_size \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)\n-int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Returns the size of the index buffer\n .SH SINCE\n 5.1.8\n .SH SEE ALSO\n ALLEGRO_INDEX_BUFFER(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_menu_item_caption.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_menu_item_caption.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_menu_item_caption.3alleg5", "source2": "al_get_menu_item_caption.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_menu_item_caption \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)\n-const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)\n .EE\n .SH DESCRIPTION\n Returns the caption associated with the menu item.\n It is valid as long as the caption is not modified.\n .PP\n Returns \\f[CR]NULL\\f[R] if the item was not found.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_get_menu_item_flags.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_menu_item_flags.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_menu_item_flags.3alleg5", "source2": "al_get_menu_item_flags.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_menu_item_flags \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)\n-int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)\n .EE\n .SH DESCRIPTION\n Returns the currently set flags.\n See al_insert_menu_item(3alleg5) for a description of the available\n flags.\n .PP\n Returns \\-1 if the item was not found.\n"}]}, {"source1": "./usr/share/man/man3/al_get_menu_item_icon.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_menu_item_icon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_menu_item_icon.3alleg5", "source2": "al_get_menu_item_icon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_menu_item_icon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)\n-ALLEGRO_BITMAP *al_get_menu_item_icon(ALLEGRO_MENU *menu, int pos)\n .EE\n .SH DESCRIPTION\n Returns the icon associated with the menu.\n It is safe to draw to the returned bitmap, but you must call\n al_set_menu_item_icon(3alleg5) in order for the changes to be applied.\n .PP\n Returns \\f[CR]NULL\\f[R] if the item was not found or if it has no icon.\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_attached.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_attached.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_attached.3alleg5", "source2": "al_get_mixer_attached.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_mixer_attached \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return true if the mixer is attached to something.\n .SH SEE ALSO\n al_mixer_has_attachments(3alleg5),\n al_attach_sample_instance_to_mixer(3alleg5),\n al_attach_audio_stream_to_mixer(3alleg5),\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_channels.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_channels.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_channels.3alleg5", "source2": "al_get_mixer_channels.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_mixer_channels \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return the mixer channel configuration.\n .SH SEE ALSO\n ALLEGRO_CHANNEL_CONF(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_depth.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_depth.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_depth.3alleg5", "source2": "al_get_mixer_depth.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_mixer_depth \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return the mixer audio depth.\n .SH SEE ALSO\n ALLEGRO_AUDIO_DEPTH(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_frequency.3alleg5", "source2": "al_get_mixer_frequency.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_mixer_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n-unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return the mixer frequency (in Hz).\n .SH SEE ALSO\n al_set_mixer_frequency(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_gain.3alleg5", "source2": "al_get_mixer_gain.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_mixer_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n-float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return the mixer gain (amplification factor).\n The default is 1.0.\n .SH SINCE\n 5.0.6, 5.1.0\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_playing.3alleg5", "source2": "al_get_mixer_playing.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_mixer_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n-bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return true if the mixer is playing.\n .SH SEE ALSO\n al_set_mixer_playing(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_mixer_quality.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_mixer_quality.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_mixer_quality.3alleg5", "source2": "al_get_mixer_quality.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_mixer_quality \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n-ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Return the mixer quality.\n .SH SEE ALSO\n ALLEGRO_MIXER_QUALITY(3alleg5), al_set_mixer_quality(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_native_file_dialog_count.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_native_file_dialog_count.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_native_file_dialog_count.3alleg5", "source2": "al_get_native_file_dialog_count.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_get_native_file_dialog_count \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)\n-int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)\n .EE\n .SH DESCRIPTION\n Returns the number of files selected, or 0 if the dialog was cancelled.\n"}]}, {"source1": "./usr/share/man/man3/al_get_native_file_dialog_path.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_native_file_dialog_path.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_native_file_dialog_path.3alleg5", "source2": "al_get_native_file_dialog_path.3alleg5", "unified_diff": "@@ -6,14 +6,12 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n const char *al_get_native_file_dialog_path(\n const ALLEGRO_FILECHOOSER *dialog, size_t i)\n-const char *al_get_native_file_dialog_path(\n- const ALLEGRO_FILECHOOSER *dialog, size_t i)\n .EE\n .SH DESCRIPTION\n Returns one of the selected paths with index \\f[CR]i\\f[R].\n The index should range from \\f[CR]0\\f[R] to the return value of\n al_get_native_file_dialog_count(3alleg5) \\f[CR]\\-1\\f[R].\n"}]}, {"source1": "./usr/share/man/man3/al_get_native_text_log_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_native_text_log_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_native_text_log_event_source.3alleg5", "source2": "al_get_native_text_log_event_source.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n ALLEGRO_TEXTLOG *textlog)\n-ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\n- ALLEGRO_TEXTLOG *textlog)\n .EE\n .SH DESCRIPTION\n Get an event source for a text log window.\n The possible events are:\n .TP\n ALLEGRO_EVENT_NATIVE_DIALOG_CLOSE\n The window was requested to be closed, either by pressing the close\n"}]}, {"source1": "./usr/share/man/man3/al_get_num_audio_output_devices.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_num_audio_output_devices.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_num_audio_output_devices.3alleg5", "source2": "al_get_num_audio_output_devices.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_num_audio_output_devices \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_num_audio_output_devices()\n-int al_get_num_audio_output_devices()\n .EE\n .SH DESCRIPTION\n Get the number of available audio output devices on the system.\n .SH SINCE\n 5.2.8\n .PP\n return \\-1 for unsupported drivers.\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample.3alleg5", "source2": "al_get_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the sample data that the sample instance plays.\n .PP\n Note this returns a pointer to an internal structure, \\f[I]not\\f[R] the\n ALLEGRO_SAMPLE(3alleg5) that you may have passed to\n al_set_sample(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_channels.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_channels.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_channels.3alleg5", "source2": "al_get_sample_channels.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_sample_channels \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Return the channel configuration of the sample.\n .SH SEE ALSO\n ALLEGRO_CHANNEL_CONF(3alleg5), al_get_sample_depth(3alleg5),\n al_get_sample_frequency(3alleg5), al_get_sample_length(3alleg5),\n al_get_sample_data(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_data.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_data.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_data.3alleg5", "source2": "al_get_sample_data.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_sample_data \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n-void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Return a pointer to the raw sample data.\n .SH SEE ALSO\n al_get_sample_channels(3alleg5), al_get_sample_depth(3alleg5),\n al_get_sample_frequency(3alleg5), al_get_sample_length(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_depth.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_depth.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_depth.3alleg5", "source2": "al_get_sample_depth.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_sample_depth \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Return the audio depth of the sample.\n .SH SEE ALSO\n ALLEGRO_AUDIO_DEPTH(3alleg5), al_get_sample_channels(3alleg5),\n al_get_sample_frequency(3alleg5), al_get_sample_length(3alleg5),\n al_get_sample_data(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_frequency.3alleg5", "source2": "al_get_sample_frequency.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_sample_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Return the frequency (in Hz) of the sample.\n .SH SEE ALSO\n al_get_sample_channels(3alleg5), al_get_sample_depth(3alleg5),\n al_get_sample_length(3alleg5), al_get_sample_data(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_attached.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_attached.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_attached.3alleg5", "source2": "al_get_sample_instance_attached.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_sample_instance_attached \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return whether the sample instance is attached to something.\n .SH SEE ALSO\n al_attach_sample_instance_to_mixer(3alleg5),\n al_attach_sample_instance_to_voice(3alleg5),\n al_detach_sample_instance(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_channels.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_channels.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_channels.3alleg5", "source2": "al_get_sample_instance_channels.3alleg5", "unified_diff": "@@ -6,15 +6,13 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\n- const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the channel configuration of the sample instance\\[cq]s sample\n data.\n .SH SEE ALSO\n ALLEGRO_CHANNEL_CONF(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_depth.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_depth.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_depth.3alleg5", "source2": "al_get_sample_instance_depth.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_depth \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the audio depth of the sample instance\\[cq]s sample data.\n .SH SEE ALSO\n ALLEGRO_AUDIO_DEPTH(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_frequency.3alleg5", "source2": "al_get_sample_instance_frequency.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_get_sample_instance_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the frequency (in Hz) of the sample instance\\[cq]s sample data.\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_gain.3alleg5", "source2": "al_get_sample_instance_gain.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the playback gain of the sample instance.\n .SH SEE ALSO\n al_set_sample_instance_gain(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_length.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_length.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_length.3alleg5", "source2": "al_get_sample_instance_length.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_sample_instance_length \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the length of the sample instance in sample values.\n This property may differ from the length of the instance\\[cq]s sample\n data.\n .SH SEE ALSO\n al_set_sample_instance_length(3alleg5),\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_pan.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_pan.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_pan.3alleg5", "source2": "al_get_sample_instance_pan.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_pan \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Get the pan value of the sample instance.\n .SH SEE ALSO\n al_set_sample_instance_pan(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_playing.3alleg5", "source2": "al_get_sample_instance_playing.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_sample_instance_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return true if the sample instance is in the playing state.\n This may be true even if the instance is not attached to anything.\n .SH SEE ALSO\n al_set_sample_instance_playing(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_playmode.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_playmode.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_playmode.3alleg5", "source2": "al_get_sample_instance_playmode.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_playmode \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the playback mode of the sample instance.\n .SH SEE ALSO\n ALLEGRO_PLAYMODE(3alleg5), al_set_sample_instance_playmode(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_position.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_position.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_position.3alleg5", "source2": "al_get_sample_instance_position.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_position \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Get the playback position of a sample instance.\n .SH SEE ALSO\n al_set_sample_instance_position(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_speed.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_speed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_speed.3alleg5", "source2": "al_get_sample_instance_speed.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_sample_instance_speed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the relative playback speed of the sample instance.\n .SH SEE ALSO\n al_set_sample_instance_speed(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_instance_time.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_instance_time.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_instance_time.3alleg5", "source2": "al_get_sample_instance_time.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_sample_instance_time \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)\n-float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Return the length of the sample instance in seconds, assuming a playback\n speed of 1.0.\n .SH SEE ALSO\n al_get_sample_instance_length(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_sample_length.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_sample_length.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_sample_length.3alleg5", "source2": "al_get_sample_length.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_sample_length \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)\n-unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Return the length of the sample in sample values.\n .SH SEE ALSO\n al_get_sample_channels(3alleg5), al_get_sample_depth(3alleg5),\n al_get_sample_frequency(3alleg5), al_get_sample_data(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_text_dimensions.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_text_dimensions.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_text_dimensions.3alleg5", "source2": "al_get_text_dimensions.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n void al_get_text_dimensions(const ALLEGRO_FONT *f,\n char const *text,\n int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_text_dimensions(const ALLEGRO_FONT *f,\n- char const *text,\n- int *bbx, int *bby, int *bbw, int *bbh)\n .EE\n .SH DESCRIPTION\n Sometimes, the al_get_text_width(3alleg5) and\n al_get_font_line_height(3alleg5) functions are not enough for exact text\n placement, so this function returns some additional information.\n .PP\n Returned variables (all in pixels):\n"}]}, {"source1": "./usr/share/man/man3/al_get_text_width.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_text_width.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_text_width.3alleg5", "source2": "al_get_text_width.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_text_width \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_text_width(const ALLEGRO_FONT *f, const char *str)\n-int al_get_text_width(const ALLEGRO_FONT *f, const char *str)\n .EE\n .SH DESCRIPTION\n Calculates the length of a string in a particular font, in pixels.\n .SH SEE ALSO\n al_get_ustr_width(3alleg5), al_get_font_line_height(3alleg5),\n al_get_text_dimensions(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_ustr_dimensions.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_ustr_dimensions.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_ustr_dimensions.3alleg5", "source2": "al_get_ustr_dimensions.3alleg5", "unified_diff": "@@ -7,16 +7,13 @@\n .IP\n .EX\n #include \n \n void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n ALLEGRO_USTR const *ustr,\n int *bbx, int *bby, int *bbw, int *bbh)\n-void al_get_ustr_dimensions(const ALLEGRO_FONT *f,\n- ALLEGRO_USTR const *ustr,\n- int *bbx, int *bby, int *bbw, int *bbh)\n .EE\n .SH DESCRIPTION\n Like al_get_text_dimensions(3alleg5), except the text is passed as an\n ALLEGRO_USTR instead of a NUL\\-terminated char array.\n .SH SEE ALSO\n al_get_text_dimensions(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_ustr_width.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_ustr_width.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_ustr_width.3alleg5", "source2": "al_get_ustr_width.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_ustr_width \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)\n-int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)\n .EE\n .SH DESCRIPTION\n Like al_get_text_width(3alleg5) but expects an ALLEGRO_USTR.\n .SH SEE ALSO\n al_get_text_width(3alleg5), al_get_ustr_dimensions(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_vertex_buffer_size.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_vertex_buffer_size.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_vertex_buffer_size.3alleg5", "source2": "al_get_vertex_buffer_size.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_vertex_buffer_size \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)\n-int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Returns the size of the vertex buffer\n .SH SINCE\n 5.1.8\n .SH SEE ALSO\n ALLEGRO_VERTEX_BUFFER(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_audio_rate.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_audio_rate.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_audio_rate.3alleg5", "source2": "al_get_video_audio_rate.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_video_audio_rate \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n-double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns the audio rate of the video, in Hz.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_event_source.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_event_source.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_event_source.3alleg5", "source2": "al_get_video_event_source.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_video_event_source \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)\n-ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Get an event source for the video.\n The possible events are described under\n ALLEGRO_VIDEO_EVENT_TYPE(3alleg5).\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_fps.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_fps.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_fps.3alleg5", "source2": "al_get_video_fps.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_get_video_fps \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_get_video_fps(ALLEGRO_VIDEO *video)\n-double al_get_video_fps(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns the speed of the video in frames per second.\n Often this will not be an integer value.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_frame.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_frame.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_frame.3alleg5", "source2": "al_get_video_frame.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_video_frame \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n-ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns the current video frame.\n The bitmap is owned by the video so do not attempt to free it.\n The bitmap will stay valid until the next call to al_get_video_frame.\n .PP\n Videos often do not use square pixels so the recommended way to draw a\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_position.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_position.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_position.3alleg5", "source2": "al_get_video_position.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_video_position \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)\n-double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)\n .EE\n .SH DESCRIPTION\n Returns the current position of the video stream in seconds since the\n beginning.\n The parameter is one of the ALLEGRO_VIDEO_POSITION_TYPE(3alleg5)\n constants.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_scaled_height.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_scaled_height.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_scaled_height.3alleg5", "source2": "al_get_video_scaled_height.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_video_scaled_height \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns the height with which the video frame should be drawn.\n Videos often do not use square pixels, so this will may return a value\n larger than the height of the frame bitmap.\n .SH SEE ALSO\n al_get_video_frame(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_video_scaled_width.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_video_scaled_width.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_video_scaled_width.3alleg5", "source2": "al_get_video_scaled_width.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_video_scaled_width \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n-float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns the width with which the video frame should be drawn.\n Videos often do not use square pixels, so this will may return a value\n larger than the width of the frame bitmap.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_get_voice_channels.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_voice_channels.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_voice_channels.3alleg5", "source2": "al_get_voice_channels.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_voice_channels \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n-ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Return the channel configuration of the voice.\n .SH SEE ALSO\n ALLEGRO_CHANNEL_CONF(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_voice_depth.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_voice_depth.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_voice_depth.3alleg5", "source2": "al_get_voice_depth.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_voice_depth \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n-ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Return the audio depth of the voice.\n .SH SEE ALSO\n ALLEGRO_AUDIO_DEPTH(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_get_voice_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_voice_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_voice_frequency.3alleg5", "source2": "al_get_voice_frequency.3alleg5", "unified_diff": "@@ -5,11 +5,10 @@\n al_get_voice_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Return the frequency of the voice (in Hz), e.g.\\ 44100.\n"}]}, {"source1": "./usr/share/man/man3/al_get_voice_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_voice_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_voice_playing.3alleg5", "source2": "al_get_voice_playing.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_get_voice_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n-bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Return true if the voice is currently playing.\n .SH SEE ALSO\n al_set_voice_playing(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_get_voice_position.3alleg5.gz", "source2": "./usr/share/man/man3/al_get_voice_position.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_get_voice_position.3alleg5", "source2": "al_get_voice_position.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_get_voice_position \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n-unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n When the voice has a non\\-streaming object attached to it, e.g.\\ a\n sample, returns the voice\\[cq]s current sample position.\n Otherwise, returns zero.\n .SH SEE ALSO\n al_set_voice_position(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_grab_font_from_bitmap.3alleg5.gz", "source2": "./usr/share/man/man3/al_grab_font_from_bitmap.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_grab_font_from_bitmap.3alleg5", "source2": "al_grab_font_from_bitmap.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n int ranges_n, const int ranges[])\n-ALLEGRO_FONT *al_grab_font_from_bitmap(ALLEGRO_BITMAP *bmp,\n- int ranges_n, const int ranges[])\n .EE\n .SH DESCRIPTION\n Creates a new font from an Allegro bitmap.\n You can delete the bitmap after the function returns as the font will\n contain a copy for itself.\n .PP\n Parameters:\n"}]}, {"source1": "./usr/share/man/man3/al_identify_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_identify_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_identify_sample.3alleg5", "source2": "al_identify_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_identify_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n char const *al_identify_sample(char const *filename)\n-char const *al_identify_sample(char const *filename)\n .EE\n .SH DESCRIPTION\n This works exactly as al_identify_sample_f(3alleg5) but you specify the\n filename of the file for which to detect the type and not a file handle.\n The extension, if any, of the passed filename is not taken into account\n \\- only the file contents.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_identify_sample_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_identify_sample_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_identify_sample_f.3alleg5", "source2": "al_identify_sample_f.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_identify_sample_f \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n-char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n .EE\n .SH DESCRIPTION\n Tries to guess the audio file type of the open ALLEGRO_FILE by reading\n the first few bytes.\n By default Allegro cannot recognize any file types, but calling\n al_init_acodec_addon(3alleg5) will add detection of the types it can\n read.\n"}]}, {"source1": "./usr/share/man/man3/al_identify_video.3alleg5.gz", "source2": "./usr/share/man/man3/al_identify_video.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_identify_video.3alleg5", "source2": "al_identify_video.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_identify_video \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n char const *al_identify_video(char const *filename)\n-char const *al_identify_video(char const *filename)\n .EE\n .SH DESCRIPTION\n This works exactly as al_identify_video_f(3alleg5) but you specify the\n filename of the file for which to detect the type and not a file handle.\n The extension, if any, of the passed filename is not taken into account\n \\- only the file contents.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_identify_video_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_identify_video_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_identify_video_f.3alleg5", "source2": "al_identify_video_f.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_identify_video_f \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n char const *al_identify_video_f(ALLEGRO_FILE *fp)\n-char const *al_identify_video_f(ALLEGRO_FILE *fp)\n .EE\n .SH DESCRIPTION\n Tries to guess the video file type of the open ALLEGRO_FILE by reading\n the first few bytes.\n By default Allegro cannot recognize any file types, but calling\n al_init_video_addon(3alleg5) will add detection of the types it can\n read.\n"}]}, {"source1": "./usr/share/man/man3/al_init.3alleg5.gz", "source2": "./usr/share/man/man3/al_init.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init.3alleg5", "source2": "al_init.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define al_init() (al_install_system(ALLEGRO_VERSION_INT, atexit))\n-#define al_init() (al_install_system(ALLEGRO_VERSION_INT, atexit))\n .EE\n .SH DESCRIPTION\n Like al_install_system(3alleg5), but automatically passes in the version\n and uses the atexit function visible in the current binary.\n .RS\n .PP\n Note: It is typically wrong to call al_init anywhere except the final\n"}]}, {"source1": "./usr/share/man/man3/al_init_acodec_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_acodec_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_acodec_addon.3alleg5", "source2": "al_init_acodec_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_acodec_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_acodec_addon(void)\n-bool al_init_acodec_addon(void)\n .EE\n .SH DESCRIPTION\n This function registers all the known audio file type handlers for\n al_load_sample(3alleg5), al_save_sample(3alleg5),\n al_load_audio_stream(3alleg5), etc.\n .PP\n Depending on what libraries are available, the full set of recognised\n"}]}, {"source1": "./usr/share/man/man3/al_init_font_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_font_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_font_addon.3alleg5", "source2": "al_init_font_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_font_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_font_addon(void)\n-bool al_init_font_addon(void)\n .EE\n .SH DESCRIPTION\n Initialise the font addon.\n .PP\n Note that if you intend to load bitmap fonts, you will need to\n initialise allegro_image separately (unless you are using another\n library to load images).\n"}]}, {"source1": "./usr/share/man/man3/al_init_image_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_image_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_image_addon.3alleg5", "source2": "al_init_image_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_image_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_image_addon(void)\n-bool al_init_image_addon(void)\n .EE\n .SH DESCRIPTION\n Initializes the image addon.\n This registers bitmap format handlers for al_load_bitmap(3alleg5),\n al_load_bitmap_f(3alleg5), al_save_bitmap(3alleg5),\n al_save_bitmap_f(3alleg5).\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_init_native_dialog_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_native_dialog_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_native_dialog_addon.3alleg5", "source2": "al_init_native_dialog_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_native_dialog_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_native_dialog_addon(void)\n-bool al_init_native_dialog_addon(void)\n .EE\n .SH DESCRIPTION\n Initialise the native dialog addon.\n .PP\n Returns true on success, false on error.\n .SH SINCE\n 5.0.9, 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_init_primitives_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_primitives_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_primitives_addon.3alleg5", "source2": "al_init_primitives_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_primitives_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_primitives_addon(void)\n-bool al_init_primitives_addon(void)\n .EE\n .SH DESCRIPTION\n Initializes the primitives addon.\n .PP\n \\f[I]Returns:\\f[R] True on success, false on failure.\n .SH SEE ALSO\n al_shutdown_primitives_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_init_ttf_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_ttf_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_ttf_addon.3alleg5", "source2": "al_init_ttf_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_init_ttf_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_ttf_addon(void)\n-bool al_init_ttf_addon(void)\n .EE\n .SH DESCRIPTION\n Call this after al_init_font_addon(3alleg5) to make\n al_load_font(3alleg5) recognize \\[lq].ttf\\[rq] and other formats\n supported by al_load_ttf_font(3alleg5).\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_init_video_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_init_video_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_init_video_addon.3alleg5", "source2": "al_init_video_addon.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_init_video_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_init_video_addon(void)\n-bool al_init_video_addon(void)\n .EE\n .SH DESCRIPTION\n Initializes the video addon.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_insert_menu_item.3alleg5.gz", "source2": "./usr/share/man/man3/al_insert_menu_item.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_insert_menu_item.3alleg5", "source2": "al_insert_menu_item.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n-int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,\n- uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)\n .EE\n .SH DESCRIPTION\n Inserts a menu item at the spot specified.\n See the introductory text for a detailed explanation of how the\n \\f[CR]pos\\f[R] parameter is interpreted.\n .PP\n The \\f[CR]parent\\f[R] menu can be a popup menu or a regular menu.\n"}]}, {"source1": "./usr/share/man/man3/al_install_audio.3alleg5.gz", "source2": "./usr/share/man/man3/al_install_audio.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_install_audio.3alleg5", "source2": "al_install_audio.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_install_audio \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_install_audio(void)\n-bool al_install_audio(void)\n .EE\n .SH DESCRIPTION\n Install the audio subsystem.\n .PP\n Returns true on success, false on failure.\n .RS\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_is_acodec_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_acodec_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_acodec_addon_initialized.3alleg5", "source2": "al_is_acodec_addon_initialized.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_is_acodec_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_acodec_addon_initialized(void)\n-bool al_is_acodec_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the acodec addon is initialized, otherwise returns\n false.\n .SH SINCE\n 5.2.6\n"}]}, {"source1": "./usr/share/man/man3/al_is_audio_installed.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_audio_installed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_audio_installed.3alleg5", "source2": "al_is_audio_installed.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_is_audio_installed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_audio_installed(void)\n-bool al_is_audio_installed(void)\n .EE\n .SH DESCRIPTION\n Returns true if al_install_audio(3alleg5) was called previously and\n returned successfully.\n"}]}, {"source1": "./usr/share/man/man3/al_is_audio_recorder_recording.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_audio_recorder_recording.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_audio_recorder_recording.3alleg5", "source2": "al_is_audio_recorder_recording.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_is_audio_recorder_recording \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n .EE\n .SH DESCRIPTION\n Returns true if the audio recorder is currently capturing data and\n generating events.\n .SH SINCE\n 5.1.1\n .RS\n"}]}, {"source1": "./usr/share/man/man3/al_is_font_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_font_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_font_addon_initialized.3alleg5", "source2": "al_is_font_addon_initialized.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_is_font_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_font_addon_initialized(void)\n-bool al_is_font_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the font addon is initialized, otherwise returns false.\n .SH SINCE\n 5.2.6\n .SH SEE ALSO\n al_init_font_addon(3alleg5), al_shutdown_font_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_is_image_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_image_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_image_addon_initialized.3alleg5", "source2": "al_is_image_addon_initialized.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_is_image_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_image_addon_initialized(void)\n-bool al_is_image_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the image addon is initialized, otherwise returns false.\n .SH SINCE\n 5.2.6\n"}]}, {"source1": "./usr/share/man/man3/al_is_native_dialog_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_native_dialog_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_native_dialog_addon_initialized.3alleg5", "source2": "al_is_native_dialog_addon_initialized.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_is_native_dialog_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_native_dialog_addon_initialized(void)\n-bool al_is_native_dialog_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the native dialog addon is initialized, otherwise\n returns false.\n .SH SINCE\n 5.2.6\n"}]}, {"source1": "./usr/share/man/man3/al_is_primitives_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_primitives_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_primitives_addon_initialized.3alleg5", "source2": "al_is_primitives_addon_initialized.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_is_primitives_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_primitives_addon_initialized(void)\n-bool al_is_primitives_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the primitives addon is initialized, otherwise returns\n false.\n .SH SINCE\n 5.2.6\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_is_ttf_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_ttf_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_ttf_addon_initialized.3alleg5", "source2": "al_is_ttf_addon_initialized.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_is_ttf_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_ttf_addon_initialized(void)\n-bool al_is_ttf_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the TTF addon is initialized, otherwise returns false.\n .SH SINCE\n 5.2.6\n .SH SEE ALSO\n al_init_ttf_addon(3alleg5), al_shutdown_ttf_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_is_video_addon_initialized.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_video_addon_initialized.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_video_addon_initialized.3alleg5", "source2": "al_is_video_addon_initialized.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_is_video_addon_initialized \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_video_addon_initialized(void)\n-bool al_is_video_addon_initialized(void)\n .EE\n .SH DESCRIPTION\n Returns true if the video addon is initialized, otherwise returns false.\n .SH SINCE\n 5.2.6\n"}]}, {"source1": "./usr/share/man/man3/al_is_video_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_is_video_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_is_video_playing.3alleg5", "source2": "al_is_video_playing.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_is_video_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_is_video_playing(ALLEGRO_VIDEO *video)\n-bool al_is_video_playing(ALLEGRO_VIDEO *video)\n .EE\n .SH DESCRIPTION\n Returns true if the video is currently playing.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_load_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_audio_stream.3alleg5", "source2": "al_load_audio_stream.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,\n- size_t buffer_count, unsigned int samples)\n .EE\n .SH DESCRIPTION\n Loads an audio file from disk as it is needed.\n .PP\n Unlike regular streams, the one returned by this function need not be\n fed by the user; the library will automatically read more of the file as\n it is needed.\n"}]}, {"source1": "./usr/share/man/man3/al_load_audio_stream_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_audio_stream_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_audio_stream_f.3alleg5", "source2": "al_load_audio_stream_f.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char *ident,\n size_t buffer_count, unsigned int samples)\n-ALLEGRO_AUDIO_STREAM *al_load_audio_stream_f(ALLEGRO_FILE* fp, const char *ident,\n- size_t buffer_count, unsigned int samples)\n .EE\n .SH DESCRIPTION\n Loads an audio file from ALLEGRO_FILE(3alleg5) stream as it is needed.\n .PP\n Unlike regular streams, the one returned by this function need not be\n fed by the user; the library will automatically read more of the file as\n it is needed.\n"}]}, {"source1": "./usr/share/man/man3/al_load_bitmap_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_bitmap_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_bitmap_font.3alleg5", "source2": "al_load_bitmap_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_bitmap_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n-ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n .EE\n .SH DESCRIPTION\n Load a bitmap font from a file.\n This is done by first calling al_load_bitmap_flags(3alleg5) and then\n al_grab_font_from_bitmap(3alleg5).\n .PP\n If you wanted to load an old A4 font, for example, it would be better to\n"}]}, {"source1": "./usr/share/man/man3/al_load_bitmap_font_flags.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_bitmap_font_flags.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_bitmap_font_flags.3alleg5", "source2": "al_load_bitmap_font_flags.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_bitmap_font_flags \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)\n-ALLEGRO_FONT *al_load_bitmap_font_flags(const char *fname, int flags)\n .EE\n .SH DESCRIPTION\n Like al_load_bitmap_font(3alleg5) but additionally takes a flags\n parameter which is a bitfield containing a combination of the following:\n .TP\n ALLEGRO_NO_PREMULTIPLIED_ALPHA\n The same meaning as for al_load_bitmap_flags(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_load_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_font.3alleg5", "source2": "al_load_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)\n .EE\n .SH DESCRIPTION\n Loads a font from disk.\n This will use al_load_bitmap_font_flags(3alleg5) if you pass the name of\n a known bitmap format, or else al_load_ttf_font(3alleg5).\n .PP\n The flags parameter is passed through to either of those functions.\n"}]}, {"source1": "./usr/share/man/man3/al_load_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_sample.3alleg5", "source2": "al_load_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n-ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n .EE\n .SH DESCRIPTION\n Loads a few different audio file formats based on their extension.\n .PP\n Note that this stores the entire file in memory at once, which may be\n time consuming.\n To read the file as it is needed, use al_load_audio_stream(3alleg5) or\n"}]}, {"source1": "./usr/share/man/man3/al_load_sample_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_sample_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_sample_f.3alleg5", "source2": "al_load_sample_f.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_sample_f \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)\n-ALLEGRO_SAMPLE *al_load_sample_f(ALLEGRO_FILE* fp, const char *ident)\n .EE\n .SH DESCRIPTION\n Loads an audio file from an ALLEGRO_FILE(3alleg5) stream into an\n ALLEGRO_SAMPLE(3alleg5).\n The file type is determined by the passed `ident' parameter, which is a\n file name extension including the leading dot.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_load_ttf_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_ttf_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_ttf_font.3alleg5", "source2": "al_load_ttf_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_load_ttf_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font(char const *filename, int size, int flags)\n .EE\n .SH DESCRIPTION\n Loads a TrueType font from a file using the FreeType library.\n Quoting from the FreeType FAQ this means support for many different font\n formats:\n .PP\n \\f[I]TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF, and\n"}]}, {"source1": "./usr/share/man/man3/al_load_ttf_font_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_ttf_font_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_ttf_font_f.3alleg5", "source2": "al_load_ttf_font_f.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n char const *filename, int size, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,\n- char const *filename, int size, int flags)\n .EE\n .SH DESCRIPTION\n Like al_load_ttf_font(3alleg5), but the font is read from the file\n handle.\n The filename is only used to find possible additional files next to a\n font file.\n .RS\n"}]}, {"source1": "./usr/share/man/man3/al_load_ttf_font_stretch.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_ttf_font_stretch.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_ttf_font_stretch.3alleg5", "source2": "al_load_ttf_font_stretch.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\n- int flags)\n .EE\n .SH DESCRIPTION\n Like al_load_ttf_font(3alleg5), except it takes separate width and\n height parameters instead of a single size parameter.\n .PP\n If the height is a positive value, and the width zero or positive, then\n font will be stretched according to those parameters.\n"}]}, {"source1": "./usr/share/man/man3/al_load_ttf_font_stretch_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_load_ttf_font_stretch_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_load_ttf_font_stretch_f.3alleg5", "source2": "al_load_ttf_font_stretch_f.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n char const *filename, int w, int h, int flags)\n-ALLEGRO_FONT *al_load_ttf_font_stretch_f(ALLEGRO_FILE *file,\n- char const *filename, int w, int h, int flags)\n .EE\n .SH DESCRIPTION\n Like al_load_ttf_font_stretch(3alleg5), but the font is read from the\n file handle.\n The filename is only used to find possible additional files next to a\n font file.\n .RS\n"}]}, {"source1": "./usr/share/man/man3/al_lock_index_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_lock_index_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_lock_index_buffer.3alleg5", "source2": "al_lock_index_buffer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n int length, int flags)\n-void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\n- int length, int flags)\n .EE\n .SH DESCRIPTION\n Locks a index buffer so you can access its data.\n Will return NULL if the parameters are invalid, if reading is requested\n from a write only buffer and if the buffer is already locked.\n .PP\n \\f[I]Parameters:\\f[R]\n"}]}, {"source1": "./usr/share/man/man3/al_lock_sample_id.3alleg5.gz", "source2": "./usr/share/man/man3/al_lock_sample_id.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_lock_sample_id.3alleg5", "source2": "al_lock_sample_id.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_lock_sample_id \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-ALLEGRO_SAMPLE_INSTANCE* al_lock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n .EE\n .SH DESCRIPTION\n Locks a ALLEGRO_SAMPLE_ID(3alleg5), returning the underlying\n ALLEGRO_SAMPLE_INSTANCE(3alleg5).\n This allows you to adjust the various properties of the instance (such\n as volume, pan, etc) while the sound is playing.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_lock_vertex_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_lock_vertex_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_lock_vertex_buffer.3alleg5", "source2": "al_lock_vertex_buffer.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n int length, int flags)\n-void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\n- int length, int flags)\n .EE\n .SH DESCRIPTION\n Locks a vertex buffer so you can access its data.\n Will return NULL if the parameters are invalid, if reading is requested\n from a write only buffer, or if the buffer is already locked.\n .PP\n \\f[I]Parameters:\\f[R]\n"}]}, {"source1": "./usr/share/man/man3/al_malloc.3alleg5.gz", "source2": "./usr/share/man/man3/al_malloc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_malloc.3alleg5", "source2": "al_malloc.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define al_malloc(n) \\[rs]\n (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n-#define al_malloc(n) \\[rs]\n- (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n .EE\n .SH DESCRIPTION\n Like malloc() in the C standard library, but the implementation may be\n overridden.\n .PP\n This is a macro.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_mixer_has_attachments.3alleg5.gz", "source2": "./usr/share/man/man3/al_mixer_has_attachments.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_mixer_has_attachments.3alleg5", "source2": "al_mixer_has_attachments.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_mixer_has_attachments \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n-bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n .EE\n .SH DESCRIPTION\n Returns true if the mixer has something attached to it.\n .SH SEE ALSO\n al_get_mixer_attached(3alleg5),\n al_attach_sample_instance_to_mixer(3alleg5),\n al_attach_audio_stream_to_mixer(3alleg5),\n"}]}, {"source1": "./usr/share/man/man3/al_open_memfile.3alleg5.gz", "source2": "./usr/share/man/man3/al_open_memfile.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_open_memfile.3alleg5", "source2": "al_open_memfile.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_open_memfile \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)\n-ALLEGRO_FILE *al_open_memfile(void *mem, int64_t size, const char *mode)\n .EE\n .SH DESCRIPTION\n Returns a file handle to the block of memory.\n All read and write operations act upon the memory directly, so it must\n not be freed while the file remains open.\n .PP\n The mode can be any combination of \\[lq]r\\[rq] (readable) and\n"}]}, {"source1": "./usr/share/man/man3/al_open_native_text_log.3alleg5.gz", "source2": "./usr/share/man/man3/al_open_native_text_log.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_open_native_text_log.3alleg5", "source2": "al_open_native_text_log.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_open_native_text_log \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)\n-ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)\n .EE\n .SH DESCRIPTION\n Opens a window to which you can append log messages with\n al_append_native_text_log(3alleg5).\n This can be useful for debugging if you don\\[cq]t want to depend on a\n console being available.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_open_video.3alleg5.gz", "source2": "./usr/share/man/man3/al_open_video.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_open_video.3alleg5", "source2": "al_open_video.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_open_video \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_VIDEO *al_open_video(char const *filename)\n-ALLEGRO_VIDEO *al_open_video(char const *filename)\n .EE\n .SH DESCRIPTION\n Reads a video file.\n This does not start streaming yet but reads the meta info so you can\n query e.g.\\ the size or audio rate.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_play_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_play_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_play_audio_stream.3alleg5", "source2": "al_play_audio_stream.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_play_audio_stream \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream(const char *filename)\n .EE\n .SH DESCRIPTION\n Loads and plays an audio file, streaming from disk as it is needed.\n This API can only play one audio stream at a time.\n This requires a default mixer to be set, which is typically done via\n al_reserve_samples(3alleg5), but can also be done via\n al_set_default_mixer(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_play_audio_stream_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_play_audio_stream_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_play_audio_stream_f.3alleg5", "source2": "al_play_audio_stream_f.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_play_audio_stream_f \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char *ident)\n-ALLEGRO_AUDIO_STREAM *al_play_audio_stream_f(ALLEGRO_FILE *fp, const char *ident)\n .EE\n .SH DESCRIPTION\n Loads and plays an audio file from ALLEGRO_FILE(3alleg5) stream,\n streaming it is needed.\n This API can only play one audio stream at a time.\n This requires a default mixer to be set, which is typically done via\n al_reserve_samples(3alleg5), but can also be done via\n"}]}, {"source1": "./usr/share/man/man3/al_play_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_play_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_play_sample.3alleg5", "source2": "al_play_sample.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n-bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,\n- ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)\n .EE\n .SH DESCRIPTION\n Plays a sample on one of the sample instances created by\n al_reserve_samples(3alleg5).\n Returns true on success, false on failure.\n Playback may fail because all the reserved sample instances are\n currently used.\n"}]}, {"source1": "./usr/share/man/man3/al_play_sample_instance.3alleg5.gz", "source2": "./usr/share/man/man3/al_play_sample_instance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_play_sample_instance.3alleg5", "source2": "al_play_sample_instance.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_play_sample_instance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Play the sample instance.\n Returns true on success, false on failure.\n .SH SEE ALSO\n al_stop_sample_instance(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_popup_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_popup_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_popup_menu.3alleg5", "source2": "al_popup_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_popup_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)\n-bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)\n .EE\n .SH DESCRIPTION\n Displays a context menu next to the mouse cursor.\n The menu must have been created with al_create_popup_menu(3alleg5).\n It generates events just like a regular display menu does.\n It is possible that the menu will be canceled without any selection\n being made.\n"}]}, {"source1": "./usr/share/man/man3/al_realloc.3alleg5.gz", "source2": "./usr/share/man/man3/al_realloc.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_realloc.3alleg5", "source2": "al_realloc.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n #define al_realloc(p, n) \\[rs]\n (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))\n-#define al_realloc(p, n) \\[rs]\n- (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))\n .EE\n .SH DESCRIPTION\n Like realloc() in the C standard library, but the implementation may be\n overridden.\n .PP\n This is a macro.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_register_audio_stream_loader.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_audio_stream_loader.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_audio_stream_loader.3alleg5", "source2": "al_register_audio_stream_loader.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n bool al_register_audio_stream_loader(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(const char *filename,\n- size_t buffer_count, unsigned int samples))\n .EE\n .SH DESCRIPTION\n Register a handler for al_load_audio_stream(3alleg5) and\n al_play_audio_stream(3alleg5).\n The given function will be used to open streams from files with the\n given extension.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_register_audio_stream_loader_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_audio_stream_loader_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_audio_stream_loader_f.3alleg5", "source2": "al_register_audio_stream_loader_f.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n bool al_register_audio_stream_loader_f(const char *ext,\n ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n size_t buffer_count, unsigned int samples))\n-bool al_register_audio_stream_loader_f(const char *ext,\n- ALLEGRO_AUDIO_STREAM *(*stream_loader)(ALLEGRO_FILE* fp,\n- size_t buffer_count, unsigned int samples))\n .EE\n .SH DESCRIPTION\n Register a handler for al_load_audio_stream_f(3alleg5) and\n al_play_audio_stream_f(3alleg5).\n The given function will be used to open streams from files with the\n given extension.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_register_font_loader.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_font_loader.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_font_loader.3alleg5", "source2": "al_register_font_loader.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_font_loader(char const *extension,\n ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))\n-bool al_register_font_loader(char const *extension,\n- ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))\n .EE\n .SH DESCRIPTION\n Informs Allegro of a new font file type, telling it how to load files of\n this format.\n .PP\n The \\f[CR]extension\\f[R] should include the leading dot (`.') character.\n It will be matched case\\-insensitively.\n"}]}, {"source1": "./usr/share/man/man3/al_register_sample_identifier.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_sample_identifier.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_sample_identifier.3alleg5", "source2": "al_register_sample_identifier.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_sample_identifier(const char *ext,\n bool (*identifier)(ALLEGRO_FILE* fp))\n-bool al_register_sample_identifier(const char *ext,\n- bool (*identifier)(ALLEGRO_FILE* fp))\n .EE\n .SH DESCRIPTION\n Register an identify handler for al_identify_sample(3alleg5).\n The given function will be used to detect files for the given extension.\n It will be called with a single argument of type ALLEGRO_FILE(3alleg5)\n which is a file handle opened for reading and located at the first byte\n of the file.\n"}]}, {"source1": "./usr/share/man/man3/al_register_sample_loader.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_sample_loader.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_sample_loader.3alleg5", "source2": "al_register_sample_loader.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_sample_loader(const char *ext,\n ALLEGRO_SAMPLE *(*loader)(const char *filename))\n-bool al_register_sample_loader(const char *ext,\n- ALLEGRO_SAMPLE *(*loader)(const char *filename))\n .EE\n .SH DESCRIPTION\n Register a handler for al_load_sample(3alleg5).\n The given function will be used to handle the loading of sample files\n with the given extension.\n .PP\n The extension should include the leading dot (`.') character.\n"}]}, {"source1": "./usr/share/man/man3/al_register_sample_loader_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_sample_loader_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_sample_loader_f.3alleg5", "source2": "al_register_sample_loader_f.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_sample_loader_f(const char *ext,\n ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n-bool al_register_sample_loader_f(const char *ext,\n- ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n .EE\n .SH DESCRIPTION\n Register a handler for al_load_sample_f(3alleg5).\n The given function will be used to handle the loading of sample files\n with the given extension.\n .PP\n The extension should include the leading dot (`.') character.\n"}]}, {"source1": "./usr/share/man/man3/al_register_sample_saver.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_sample_saver.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_sample_saver.3alleg5", "source2": "al_register_sample_saver.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_sample_saver(const char *ext,\n bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver(const char *ext,\n- bool (*saver)(const char *filename, ALLEGRO_SAMPLE *spl))\n .EE\n .SH DESCRIPTION\n Register a handler for al_save_sample(3alleg5).\n The given function will be used to handle the saving of sample files\n with the given extension.\n .PP\n The extension should include the leading dot (`.') character.\n"}]}, {"source1": "./usr/share/man/man3/al_register_sample_saver_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_register_sample_saver_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_register_sample_saver_f.3alleg5", "source2": "al_register_sample_saver_f.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_register_sample_saver_f(const char *ext,\n bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n-bool al_register_sample_saver_f(const char *ext,\n- bool (*saver)(ALLEGRO_FILE* fp, ALLEGRO_SAMPLE *spl))\n .EE\n .SH DESCRIPTION\n Register a handler for al_save_sample_f(3alleg5).\n The given function will be used to handle the saving of sample files\n with the given extension.\n .PP\n The extension should include the leading dot (`.') character.\n"}]}, {"source1": "./usr/share/man/man3/al_remove_display_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_remove_display_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_remove_display_menu.3alleg5", "source2": "al_remove_display_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_remove_display_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n-ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n .EE\n .SH DESCRIPTION\n Detaches the menu associated with the display and returns it.\n The menu can then be used on a different display.\n .PP\n If you simply want to destroy the active menu, you can call\n al_set_display_menu(3alleg5) with a \\f[CR]NULL\\f[R] menu.\n"}]}, {"source1": "./usr/share/man/man3/al_remove_menu_item.3alleg5.gz", "source2": "./usr/share/man/man3/al_remove_menu_item.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_remove_menu_item.3alleg5", "source2": "al_remove_menu_item.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_remove_menu_item \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)\n-bool al_remove_menu_item(ALLEGRO_MENU *menu, int pos)\n .EE\n .SH DESCRIPTION\n Removes the specified item from the menu and destroys it.\n If the item contains a sub\\-menu, it too is destroyed.\n Any references to it are invalidated.\n If you want to preserve that sub\\-menu, you should first make a copy\n with al_clone_menu(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_reserve_samples.3alleg5.gz", "source2": "./usr/share/man/man3/al_reserve_samples.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_reserve_samples.3alleg5", "source2": "al_reserve_samples.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_reserve_samples \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_reserve_samples(int reserve_samples)\n-bool al_reserve_samples(int reserve_samples)\n .EE\n .SH DESCRIPTION\n Reserves a number of sample instances, attaching them to the default\n mixer.\n If no default mixer is set when this function is called, then it will\n create one and attach it to the default voice.\n If no default voice has been set, it, too, will be created.\n"}]}, {"source1": "./usr/share/man/man3/al_restore_default_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_restore_default_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_restore_default_mixer.3alleg5", "source2": "al_restore_default_mixer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_restore_default_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_restore_default_mixer(void)\n-bool al_restore_default_mixer(void)\n .EE\n .SH DESCRIPTION\n Restores Allegro\\[cq]s default mixer and attaches it to the default\n voice.\n If the default mixer hasn\\[cq]t been created before, it will be created.\n If the default voice hasn\\[cq]t been set via\n al_set_default_voice(3alleg5) or created before, it will also be\n"}]}, {"source1": "./usr/share/man/man3/al_rewind_audio_stream.3alleg5.gz", "source2": "./usr/share/man/man3/al_rewind_audio_stream.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_rewind_audio_stream.3alleg5", "source2": "al_rewind_audio_stream.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_rewind_audio_stream \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n-bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n .EE\n .SH DESCRIPTION\n Set the streaming file playing position to the beginning.\n Returns true on success.\n Currently this can only be called on streams created with\n al_load_audio_stream(3alleg5), al_play_audio_stream(3alleg5),\n al_load_audio_stream_f(3alleg5) or al_play_audio_stream_f(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_save_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_save_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_save_sample.3alleg5", "source2": "al_save_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_save_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Writes a sample into a file.\n Currently, wav is the only supported format, and the extension must be\n \\[lq].wav\\[rq].\n .PP\n Returns true on success, false on error.\n"}]}, {"source1": "./usr/share/man/man3/al_save_sample_f.3alleg5.gz", "source2": "./usr/share/man/man3/al_save_sample_f.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_save_sample_f.3alleg5", "source2": "al_save_sample_f.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_save_sample_f \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)\n-bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)\n .EE\n .SH DESCRIPTION\n Writes a sample into a ALLEGRO_FILE(3alleg5) filestream.\n Currently, wav is the only supported format, and the extension must be\n \\[lq].wav\\[rq].\n .PP\n Returns true on success, false on error.\n"}]}, {"source1": "./usr/share/man/man3/al_seek_audio_stream_secs.3alleg5.gz", "source2": "./usr/share/man/man3/al_seek_audio_stream_secs.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_seek_audio_stream_secs.3alleg5", "source2": "al_seek_audio_stream_secs.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_seek_audio_stream_secs \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)\n-bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)\n .EE\n .SH DESCRIPTION\n Set the streaming file playing position to time.\n Returns true on success.\n Currently this can only be called on streams created with\n al_load_audio_stream(3alleg5), al_play_audio_stream(3alleg5),\n al_load_audio_stream_f(3alleg5) or al_play_audio_stream_f(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_seek_video.3alleg5.gz", "source2": "./usr/share/man/man3/al_seek_video.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_seek_video.3alleg5", "source2": "al_seek_video.3alleg5", "unified_diff": "@@ -5,14 +5,13 @@\n al_seek_video \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)\n-bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)\n .EE\n .SH DESCRIPTION\n Seek to a different position in the video.\n Currently only seeking to the beginning of the video is supported.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_fragment.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_fragment.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_fragment.3alleg5", "source2": "al_set_audio_stream_fragment.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_audio_stream_fragment \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)\n-bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)\n .EE\n .SH DESCRIPTION\n This function needs to be called for every successful call of\n al_get_audio_stream_fragment(3alleg5) to indicate that the buffer\n (pointed to by \\f[CR]val\\f[R]) is filled with new data.\n .SH SEE ALSO\n al_get_audio_stream_fragment(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_gain.3alleg5", "source2": "al_set_audio_stream_gain.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_audio_stream_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)\n .EE\n .SH DESCRIPTION\n Set the playback gain of the stream.\n .PP\n Returns true on success, false on failure.\n Will fail if the audio stream is attached directly to a voice.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_loop_secs.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_loop_secs.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_loop_secs.3alleg5", "source2": "al_set_audio_stream_loop_secs.3alleg5", "unified_diff": "@@ -6,15 +6,13 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n double start, double end)\n-bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\n- double start, double end)\n .EE\n .SH DESCRIPTION\n Sets the loop points for the stream in seconds.\n Currently this can only be called on streams created with\n al_load_audio_stream(3alleg5), al_play_audio_stream(3alleg5),\n al_load_audio_stream_f(3alleg5) or al_play_audio_stream_f(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_pan.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_pan.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_pan.3alleg5", "source2": "al_set_audio_stream_pan.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_audio_stream_pan \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)\n .EE\n .SH DESCRIPTION\n Set the pan value on an audio stream.\n A value of \\-1.0 means to play the stream only through the left speaker;\n +1.0 means only through the right speaker; 0.0 means the sample is\n centre balanced.\n A special value ALLEGRO_AUDIO_PAN_NONE(3alleg5) disables panning and\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_playing.3alleg5", "source2": "al_set_audio_stream_playing.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_audio_stream_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)\n-bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)\n .EE\n .SH DESCRIPTION\n Change whether the stream is playing.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n al_get_audio_stream_playing(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_playmode.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_playmode.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_playmode.3alleg5", "source2": "al_set_audio_stream_playmode.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n ALLEGRO_PLAYMODE val)\n-bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\n- ALLEGRO_PLAYMODE val)\n .EE\n .SH DESCRIPTION\n Set the playback mode of the stream.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n ALLEGRO_PLAYMODE(3alleg5), al_get_audio_stream_playmode(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_set_audio_stream_speed.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_audio_stream_speed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_audio_stream_speed.3alleg5", "source2": "al_set_audio_stream_speed.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_audio_stream_speed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)\n-bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)\n .EE\n .SH DESCRIPTION\n Set the relative playback speed of the stream.\n 1.0 means normal speed.\n .PP\n Return true on success, false on failure.\n Will fail if the audio stream is attached directly to a voice.\n"}]}, {"source1": "./usr/share/man/man3/al_set_default_mixer.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_default_mixer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_default_mixer.3alleg5", "source2": "al_set_default_mixer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_default_mixer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n-bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Sets the default mixer.\n All samples started with al_play_sample(3alleg5) will be stopped and all\n sample instances returned by al_lock_sample_id(3alleg5) will be\n invalidated.\n If you are using your own mixer, this should be called before\n"}]}, {"source1": "./usr/share/man/man3/al_set_default_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_default_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_default_voice.3alleg5", "source2": "al_set_default_voice.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_default_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_default_voice(ALLEGRO_VOICE *voice)\n-void al_set_default_voice(ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n You can call this before calling al_restore_default_mixer to provide the\n voice which should be used.\n Any previous voice will be destroyed.\n You can also pass NULL to destroy the current default voice.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_set_display_menu.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_display_menu.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_display_menu.3alleg5", "source2": "al_set_display_menu.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_display_menu \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)\n-bool al_set_display_menu(ALLEGRO_DISPLAY *display, ALLEGRO_MENU *menu)\n .EE\n .SH DESCRIPTION\n Associates the \\f[CR]menu\\f[R] with the \\f[CR]display\\f[R] and shows it.\n If there was a previous menu associated with the display, it will be\n destroyed.\n If you don\\[cq]t want that to happen, you should first remove the menu\n with al_remove_display_menu(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_set_fallback_font.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_fallback_font.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_fallback_font.3alleg5", "source2": "al_set_fallback_font.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_fallback_font \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)\n-void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback)\n .EE\n .SH DESCRIPTION\n Sets a font which is used instead if a character is not present.\n Can be chained, but make sure there is no loop as that would crash the\n application!\n Pass NULL to remove a fallback font again.\n .SH SINCE\n"}]}, {"source1": "./usr/share/man/man3/al_set_menu_item_caption.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_menu_item_caption.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_menu_item_caption.3alleg5", "source2": "al_set_menu_item_caption.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_menu_item_caption \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)\n-void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption)\n .EE\n .SH DESCRIPTION\n Updates the menu item caption with the new \\f[CR]caption\\f[R].\n This will invalidate any previous calls to\n al_get_menu_item_caption(3alleg5).\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_set_menu_item_flags.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_menu_item_flags.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_menu_item_flags.3alleg5", "source2": "al_set_menu_item_flags.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_menu_item_flags \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n .EE\n .SH DESCRIPTION\n Updates the menu item\\[cq]s flags.\n See al_insert_menu_item(3alleg5) for a description of the available\n flags.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_set_menu_item_icon.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_menu_item_icon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_menu_item_icon.3alleg5", "source2": "al_set_menu_item_icon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_menu_item_icon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)\n-void al_set_menu_item_icon(ALLEGRO_MENU *menu, int pos, ALLEGRO_BITMAP *icon)\n .EE\n .SH DESCRIPTION\n Sets the icon for the specified menu item.\n The menu assumes ownership of the \\f[CR]ALLEGRO_BITMAP\\f[R] and may\n invalidate the pointer, so you must clone it if you wish to continue\n using it.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_set_mixer_frequency.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_mixer_frequency.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_mixer_frequency.3alleg5", "source2": "al_set_mixer_frequency.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_mixer_frequency \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n-bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n .EE\n .SH DESCRIPTION\n Set the mixer frequency (in Hz).\n This will only work if the mixer is not attached to anything.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_set_mixer_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_mixer_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_mixer_gain.3alleg5", "source2": "al_set_mixer_gain.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_mixer_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n-bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n .EE\n .SH DESCRIPTION\n Set the mixer gain (amplification factor).\n .PP\n Returns true on success, false on failure.\n .SH SINCE\n 5.0.6, 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_set_mixer_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_mixer_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_mixer_playing.3alleg5", "source2": "al_set_mixer_playing.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_mixer_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n-bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n .EE\n .SH DESCRIPTION\n Change whether the mixer is playing.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n al_get_mixer_playing(3alleg5).\n"}]}, {"source1": "./usr/share/man/man3/al_set_mixer_postprocess_callback.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_mixer_postprocess_callback.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_mixer_postprocess_callback.3alleg5", "source2": "al_set_mixer_postprocess_callback.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n void (*pp_callback)(void *buf, unsigned int samples, void *data),\n void *pp_callback_userdata)\n-bool al_set_mixer_postprocess_callback(ALLEGRO_MIXER *mixer,\n- void (*pp_callback)(void *buf, unsigned int samples, void *data),\n- void *pp_callback_userdata)\n .EE\n .SH DESCRIPTION\n Sets a post\\-processing filter function that\\[cq]s called after the\n attached streams have been mixed.\n The buffer\\[cq]s format will be whatever the mixer was created with.\n The sample count and user\\-data pointer is also passed.\n .RS\n"}]}, {"source1": "./usr/share/man/man3/al_set_mixer_quality.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_mixer_quality.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_mixer_quality.3alleg5", "source2": "al_set_mixer_quality.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_mixer_quality \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)\n-bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)\n .EE\n .SH DESCRIPTION\n Set the mixer quality.\n This can only succeed if the mixer does not have anything attached to\n it.\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_set_physfs_file_interface.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_physfs_file_interface.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_physfs_file_interface.3alleg5", "source2": "al_set_physfs_file_interface.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_physfs_file_interface \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_physfs_file_interface(void)\n-void al_set_physfs_file_interface(void)\n .EE\n .SH DESCRIPTION\n This function sets \\f[I]both\\f[R] the ALLEGRO_FILE_INTERFACE(3alleg5)\n and ALLEGRO_FS_INTERFACE(3alleg5) for the calling thread.\n .PP\n Subsequent calls to al_fopen(3alleg5) on the calling thread will be\n handled by PHYSFS_open().\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample.3alleg5", "source2": "al_set_sample.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)\n-bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)\n .EE\n .SH DESCRIPTION\n Change the sample data that a sample instance plays.\n This can be quite an involved process.\n .PP\n First, the sample is stopped if it is not already.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_channel_matrix.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_channel_matrix.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_channel_matrix.3alleg5", "source2": "al_set_sample_instance_channel_matrix.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample_instance_channel_matrix \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const float *matrix)\n-bool al_set_sample_instance_channel_matrix(ALLEGRO_SAMPLE_INSTANCE *spl, const float *matrix)\n .EE\n .SH DESCRIPTION\n Set the matrix used to mix the channels coming from this instance into\n the mixer it is attached to.\n Normally Allegro derives the values of this matrix from the gain and pan\n settings, as well as the channel configurations of this instance and the\n mixer it is attached to, but this allows you override that default\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_gain.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_gain.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_gain.3alleg5", "source2": "al_set_sample_instance_gain.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample_instance_gain \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n .EE\n .SH DESCRIPTION\n Set the playback gain of the sample instance.\n .PP\n Returns true on success, false on failure.\n Will fail if the sample instance is attached directly to a voice.\n .SH SEE ALSO\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_length.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_length.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_length.3alleg5", "source2": "al_set_sample_instance_length.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n unsigned int val)\n-bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\n- unsigned int val)\n .EE\n .SH DESCRIPTION\n Set the length of the sample instance in sample values.\n This can be used to play only parts of the underlying sample.\n Be careful not to exceed the actual length of the sample data, though.\n .PP\n Return true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_pan.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_pan.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_pan.3alleg5", "source2": "al_set_sample_instance_pan.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample_instance_pan \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n .EE\n .SH DESCRIPTION\n Set the pan value on a sample instance.\n A value of \\-1.0 means to play the sample only through the left speaker;\n +1.0 means only through the right speaker; 0.0 means the sample is\n centre balanced.\n A special value ALLEGRO_AUDIO_PAN_NONE(3alleg5) disables panning and\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_playing.3alleg5", "source2": "al_set_sample_instance_playing.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample_instance_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)\n-bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)\n .EE\n .SH DESCRIPTION\n Change whether the sample instance is playing.\n .PP\n The instance does not need to be attached to anything (since: 5.1.8).\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_playmode.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_playmode.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_playmode.3alleg5", "source2": "al_set_sample_instance_playmode.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n ALLEGRO_PLAYMODE val)\n-bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\n- ALLEGRO_PLAYMODE val)\n .EE\n .SH DESCRIPTION\n Set the playback mode of the sample instance.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n ALLEGRO_PLAYMODE(3alleg5), al_get_sample_instance_playmode(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_position.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_position.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_position.3alleg5", "source2": "al_set_sample_instance_position.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n unsigned int val)\n-bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\n- unsigned int val)\n .EE\n .SH DESCRIPTION\n Set the playback position of a sample instance.\n .PP\n Returns true on success, false on failure.\n .SH SEE ALSO\n al_get_sample_instance_position(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_set_sample_instance_speed.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_sample_instance_speed.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_sample_instance_speed.3alleg5", "source2": "al_set_sample_instance_speed.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_sample_instance_speed \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n-bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)\n .EE\n .SH DESCRIPTION\n Set the relative playback speed of the sample instance.\n 1.0 means normal speed.\n .PP\n Return true on success, false on failure.\n Will fail if the sample instance is attached directly to a voice.\n"}]}, {"source1": "./usr/share/man/man3/al_set_video_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_video_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_video_playing.3alleg5", "source2": "al_set_video_playing.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_set_video_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)\n-void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)\n .EE\n .SH DESCRIPTION\n Paused or resumes playback.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_set_voice_playing.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_voice_playing.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_voice_playing.3alleg5", "source2": "al_set_voice_playing.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_voice_playing \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n-bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n .EE\n .SH DESCRIPTION\n Change whether a voice is playing or not.\n This can only work if the voice has a non\\-streaming object attached to\n it, e.g.\\ a sample instance.\n On success the voice\\[cq]s current sample position is reset.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_set_voice_position.3alleg5.gz", "source2": "./usr/share/man/man3/al_set_voice_position.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_set_voice_position.3alleg5", "source2": "al_set_voice_position.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_set_voice_position \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n-bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n .EE\n .SH DESCRIPTION\n Set the voice position.\n This can only work if the voice has a non\\-streaming object attached to\n it, e.g.\\ a sample instance.\n .PP\n Returns true on success, false on failure.\n"}]}, {"source1": "./usr/share/man/man3/al_show_native_file_dialog.3alleg5.gz", "source2": "./usr/share/man/man3/al_show_native_file_dialog.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_show_native_file_dialog.3alleg5", "source2": "al_show_native_file_dialog.3alleg5", "unified_diff": "@@ -6,16 +6,14 @@\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n ALLEGRO_FILECHOOSER *dialog)\n-bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\n- ALLEGRO_FILECHOOSER *dialog)\n .EE\n .SH DESCRIPTION\n Show the dialog window.\n The display may be NULL, otherwise the given display is treated as the\n parent if possible.\n .PP\n This function blocks the calling thread until it returns, so you may\n"}]}, {"source1": "./usr/share/man/man3/al_show_native_message_box.3alleg5.gz", "source2": "./usr/share/man/man3/al_show_native_message_box.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_show_native_message_box.3alleg5", "source2": "al_show_native_message_box.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n char const *title, char const *heading, char const *text,\n char const *buttons, int flags)\n-int al_show_native_message_box(ALLEGRO_DISPLAY *display,\n- char const *title, char const *heading, char const *text,\n- char const *buttons, int flags)\n .EE\n .SH DESCRIPTION\n Show a native GUI message box.\n This can be used for example to display an error message if creation of\n an initial display fails.\n The display may be NULL, otherwise the given display is treated as the\n parent if possible.\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_font_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_font_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_font_addon.3alleg5", "source2": "al_shutdown_font_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_shutdown_font_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_font_addon(void)\n-void al_shutdown_font_addon(void)\n .EE\n .SH DESCRIPTION\n Shut down the font addon.\n This is done automatically at program exit, but can be called any time\n the user wishes as well.\n .SH SEE ALSO\n al_init_font_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_image_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_image_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_image_addon.3alleg5", "source2": "al_shutdown_image_addon.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_shutdown_image_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_image_addon(void)\n-void al_shutdown_image_addon(void)\n .EE\n .SH DESCRIPTION\n Shut down the image addon.\n This is done automatically at program exit, but can be called any time\n the user wishes as well.\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_native_dialog_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_native_dialog_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_native_dialog_addon.3alleg5", "source2": "al_shutdown_native_dialog_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_shutdown_native_dialog_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_native_dialog_addon(void)\n-void al_shutdown_native_dialog_addon(void)\n .EE\n .SH DESCRIPTION\n Shut down the native dialog addon.\n .SH SINCE\n 5.0.9, 5.1.5\n .SH SEE ALSO\n al_init_native_dialog_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_primitives_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_primitives_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_primitives_addon.3alleg5", "source2": "al_shutdown_primitives_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_shutdown_primitives_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_primitives_addon(void)\n-void al_shutdown_primitives_addon(void)\n .EE\n .SH DESCRIPTION\n Shut down the primitives addon.\n This is done automatically at program exit, but can be called any time\n the user wishes as well.\n .SH SEE ALSO\n al_init_primitives_addon(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_ttf_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_ttf_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_ttf_addon.3alleg5", "source2": "al_shutdown_ttf_addon.3alleg5", "unified_diff": "@@ -5,12 +5,11 @@\n al_shutdown_ttf_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_ttf_addon(void)\n-void al_shutdown_ttf_addon(void)\n .EE\n .SH DESCRIPTION\n Unloads the ttf addon again.\n You normally don\\[cq]t need to call this.\n"}]}, {"source1": "./usr/share/man/man3/al_shutdown_video_addon.3alleg5.gz", "source2": "./usr/share/man/man3/al_shutdown_video_addon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_shutdown_video_addon.3alleg5", "source2": "al_shutdown_video_addon.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_shutdown_video_addon \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_shutdown_video_addon(void)\n-void al_shutdown_video_addon(void)\n .EE\n .SH DESCRIPTION\n Shut down the video addon.\n This is done automatically at program exit, but can be called any time\n the user wishes as well.\n .SH SINCE\n 5.1.12\n"}]}, {"source1": "./usr/share/man/man3/al_start_audio_recorder.3alleg5.gz", "source2": "./usr/share/man/man3/al_start_audio_recorder.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_start_audio_recorder.3alleg5", "source2": "al_start_audio_recorder.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_start_audio_recorder \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n .EE\n .SH DESCRIPTION\n Begin recording into the fragment buffer.\n Once a complete fragment has been captured (as specified in\n al_create_audio_recorder(3alleg5)), an\n ALLEGRO_EVENT_AUDIO_RECORDER_FRAGMENT(3alleg5) event will be triggered.\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_start_video.3alleg5.gz", "source2": "./usr/share/man/man3/al_start_video.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_start_video.3alleg5", "source2": "al_start_video.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_start_video \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)\n-void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)\n .EE\n .SH DESCRIPTION\n Starts streaming the video from the beginning.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_start_video_with_voice.3alleg5.gz", "source2": "./usr/share/man/man3/al_start_video_with_voice.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_start_video_with_voice.3alleg5", "source2": "al_start_video_with_voice.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_start_video_with_voice \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)\n-void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)\n .EE\n .SH DESCRIPTION\n Like al_start_video(3alleg5) but audio is routed to the provided voice.\n .SH SINCE\n 5.1.0\n"}]}, {"source1": "./usr/share/man/man3/al_stop_audio_recorder.3alleg5.gz", "source2": "./usr/share/man/man3/al_stop_audio_recorder.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_stop_audio_recorder.3alleg5", "source2": "al_stop_audio_recorder.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_stop_audio_recorder \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n-void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n .EE\n .SH DESCRIPTION\n Stop capturing audio data.\n Note that the audio recorder is still active and consuming resources, so\n if you are finished recording you should destroy it with\n al_destroy_audio_recorder(3alleg5).\n .PP\n"}]}, {"source1": "./usr/share/man/man3/al_stop_sample.3alleg5.gz", "source2": "./usr/share/man/man3/al_stop_sample.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_stop_sample.3alleg5", "source2": "al_stop_sample.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_stop_sample \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n .EE\n .SH DESCRIPTION\n Stop the sample started by al_play_sample(3alleg5).\n .SH SEE ALSO\n al_stop_samples(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_stop_sample_instance.3alleg5.gz", "source2": "./usr/share/man/man3/al_stop_sample_instance.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_stop_sample_instance.3alleg5", "source2": "al_stop_sample_instance.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_stop_sample_instance \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n-bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n .EE\n .SH DESCRIPTION\n Stop an sample instance playing.\n .SH SEE ALSO\n al_play_sample_instance(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_stop_samples.3alleg5.gz", "source2": "./usr/share/man/man3/al_stop_samples.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_stop_samples.3alleg5", "source2": "al_stop_samples.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_stop_samples \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_stop_samples(void)\n-void al_stop_samples(void)\n .EE\n .SH DESCRIPTION\n Stop all samples started by al_play_sample(3alleg5).\n .SH SEE ALSO\n al_stop_sample(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_toggle_menu_item_flags.3alleg5.gz", "source2": "./usr/share/man/man3/al_toggle_menu_item_flags.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_toggle_menu_item_flags.3alleg5", "source2": "al_toggle_menu_item_flags.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_toggle_menu_item_flags \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n-int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)\n .EE\n .SH DESCRIPTION\n Toggles the specified menu item\\[cq]s flags.\n See al_insert_menu_item(3alleg5) for a description of the available\n flags.\n .PP\n Returns a bitfield of only the specified flags that are set after the\n"}]}, {"source1": "./usr/share/man/man3/al_triangulate_polygon.3alleg5.gz", "source2": "./usr/share/man/man3/al_triangulate_polygon.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_triangulate_polygon.3alleg5", "source2": "al_triangulate_polygon.3alleg5", "unified_diff": "@@ -7,17 +7,14 @@\n .IP\n .EX\n #include \n \n bool al_triangulate_polygon(\n const float* vertices, size_t vertex_stride, const int* vertex_counts,\n void (*emit_triangle)(int, int, int, void*), void* userdata)\n-bool al_triangulate_polygon(\n- const float* vertices, size_t vertex_stride, const int* vertex_counts,\n- void (*emit_triangle)(int, int, int, void*), void* userdata)\n .EE\n .SH DESCRIPTION\n Divides a simple polygon into triangles, with zero or more other simple\n polygons subtracted from it \\- the holes.\n The holes cannot touch or intersect with the outline of the main\n polygon.\n Simple means the polygon does not have to be convex but must not be\n"}]}, {"source1": "./usr/share/man/man3/al_uninstall_audio.3alleg5.gz", "source2": "./usr/share/man/man3/al_uninstall_audio.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_uninstall_audio.3alleg5", "source2": "al_uninstall_audio.3alleg5", "unified_diff": "@@ -5,13 +5,12 @@\n al_uninstall_audio \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_uninstall_audio(void)\n-void al_uninstall_audio(void)\n .EE\n .SH DESCRIPTION\n Uninstalls the audio subsystem.\n .SH SEE ALSO\n al_install_audio(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_unlock_index_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_unlock_index_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_unlock_index_buffer.3alleg5", "source2": "al_unlock_index_buffer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_unlock_index_buffer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n-void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Unlocks a previously locked index buffer.\n .SH SINCE\n 5.1.8\n .SH SEE ALSO\n ALLEGRO_INDEX_BUFFER(3alleg5), al_lock_index_buffer(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_unlock_sample_id.3alleg5.gz", "source2": "./usr/share/man/man3/al_unlock_sample_id.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_unlock_sample_id.3alleg5", "source2": "al_unlock_sample_id.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_unlock_sample_id \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n-void al_unlock_sample_id(ALLEGRO_SAMPLE_ID *spl_id)\n .EE\n .SH DESCRIPTION\n Unlocks a ALLEGRO_SAMPLE_ID(3alleg5), allowing future calls to\n al_play_sample(3alleg5) to reuse it if possible.\n Note that after the id is unlocked, the ALLEGRO_SAMPLE_INSTANCE(3alleg5)\n that was previously returned by al_lock_sample_id(3alleg5) will possibly\n be playing a different sound, so you should only use it after locking\n"}]}, {"source1": "./usr/share/man/man3/al_unlock_vertex_buffer.3alleg5.gz", "source2": "./usr/share/man/man3/al_unlock_vertex_buffer.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_unlock_vertex_buffer.3alleg5", "source2": "al_unlock_vertex_buffer.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_unlock_vertex_buffer \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n-void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n .EE\n .SH DESCRIPTION\n Unlocks a previously locked vertex buffer.\n .SH SINCE\n 5.1.3\n .SH SEE ALSO\n ALLEGRO_VERTEX_BUFFER(3alleg5), al_lock_vertex_buffer(3alleg5)\n"}]}, {"source1": "./usr/share/man/man3/al_voice_has_attachments.3alleg5.gz", "source2": "./usr/share/man/man3/al_voice_has_attachments.3alleg5.gz", "unified_diff": null, "details": [{"source1": "al_voice_has_attachments.3alleg5", "source2": "al_voice_has_attachments.3alleg5", "unified_diff": "@@ -5,15 +5,14 @@\n al_voice_has_attachments \\- Allegro 5 API\n .SH SYNOPSIS\n .IP\n .EX\n #include \n \n bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n-bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n .EE\n .SH DESCRIPTION\n Returns true if the voice has something attached to it.\n .SH SEE ALSO\n al_attach_mixer_to_voice(3alleg5),\n al_attach_sample_instance_to_voice(3alleg5),\n al_attach_audio_stream_to_voice(3alleg5)\n"}]}]}]}]}]}