{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.URFDIbhx/b1/allegro5_5.2.9.1+dfsg-2_amd64.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.URFDIbhx/b2/allegro5_5.2.9.1+dfsg-2_amd64.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,9 +1,9 @@\n \n- 2f83430d53dfc6036ebfa28389d0f98e 1514208 doc optional allegro5-doc_5.2.9.1+dfsg-2_all.deb\n+ d071d4c826223583cdd681d393f15353 1523256 doc optional allegro5-doc_5.2.9.1+dfsg-2_all.deb\n 4309d6a24f41e36cfbe4771027142071 18624 libdevel optional liballegro-acodec5-dev_5.2.9.1+dfsg-2_amd64.deb\n 6ba99eaff0c7e7f23b0e47ea46af9963 61156 debug optional liballegro-acodec5.2t64-dbgsym_5.2.9.1+dfsg-2_amd64.deb\n bb21222696b70c40c2fdc762d336a03e 36740 libs optional liballegro-acodec5.2t64_5.2.9.1+dfsg-2_amd64.deb\n 9fd942b3b27c5ec98e2c93df412ee038 21420 libdevel optional liballegro-audio5-dev_5.2.9.1+dfsg-2_amd64.deb\n 8f92cf8be938793ca998150bbd4ffaf9 110056 debug optional liballegro-audio5.2t64-dbgsym_5.2.9.1+dfsg-2_amd64.deb\n 05d605831611821af40e9a7461223e07 60920 libs optional liballegro-audio5.2t64_5.2.9.1+dfsg-2_amd64.deb\n 89885e291c8f585b1042b47c12aa1a50 19664 libdevel optional liballegro-dialog5-dev_5.2.9.1+dfsg-2_amd64.deb\n@@ -17,10 +17,10 @@\n ef1aa55ddade8bc5b3cf706fc1fcd58d 22980 libs optional liballegro-physfs5.2t64_5.2.9.1+dfsg-2_amd64.deb\n 7e583fc2f46a2583bb75c772fe454d9d 18712 libdevel optional liballegro-ttf5-dev_5.2.9.1+dfsg-2_amd64.deb\n d3f160f644e2b251782212a8531f411a 31924 debug optional liballegro-ttf5.2t64-dbgsym_5.2.9.1+dfsg-2_amd64.deb\n 730f5846b15243245a68687c25893475 28036 libs optional liballegro-ttf5.2t64_5.2.9.1+dfsg-2_amd64.deb\n a60ca934555c8b06880ac3c1bef88367 19016 libdevel optional liballegro-video5-dev_5.2.9.1+dfsg-2_amd64.deb\n 00808f906013f92fb41989064953a11b 38712 debug optional liballegro-video5.2t64-dbgsym_5.2.9.1+dfsg-2_amd64.deb\n 5f7a07eeda692fb3699aa450da198fd2 31964 libs optional liballegro-video5.2t64_5.2.9.1+dfsg-2_amd64.deb\n- b014e283cf747fb91fd350a4d82b35c0 116228 libdevel optional liballegro5-dev_5.2.9.1+dfsg-2_amd64.deb\n+ 32092a7cd0a36f50eb022a4d9f850c9b 116224 libdevel optional liballegro5-dev_5.2.9.1+dfsg-2_amd64.deb\n d3ea61fc34f61a95299eee7a2083bd1e 1285860 debug optional liballegro5.2t64-dbgsym_5.2.9.1+dfsg-2_amd64.deb\n f084a58a528a05bde43461cd4a0ce26b 429464 libs optional liballegro5.2t64_5.2.9.1+dfsg-2_amd64.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 31584 2024-05-03 10:28:35.000000 control.tar.xz\n--rw-r--r-- 0 0 0 1482432 2024-05-03 10:28:35.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 31592 2024-05-03 10:28:35.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 1491472 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: 5613\n+Installed-Size: 5763\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": "xz --list", "source2": "xz --list", "unified_diff": "@@ -1,13 +1,13 @@\n Streams: 1\n Blocks: 1\n- Compressed size: 30.8 KiB (31584 B)\n+ Compressed size: 30.9 KiB (31592 B)\n Uncompressed size: 120.0 KiB (122880 B)\n Ratio: 0.257\n Check: CRC64\n Stream Padding: 0 B\n Streams:\n Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding\n- 1 1 0 0 31584 122880 0.257 CRC64 0\n+ 1 1 0 0 31592 122880 0.257 CRC64 0\n Blocks:\n Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check\n- 1 1 12 0 31548 122880 0.257 CRC64\n+ 1 1 12 0 31556 122880 0.257 CRC64\n"}]}, {"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) 11758 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html\n--rw-r--r-- 0 root (0) root (0) 232225 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/audio.html\n+-rw-r--r-- 0 root (0) root (0) 12180 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html\n+-rw-r--r-- 0 root (0) root (0) 279758 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) 67035 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/color.html\n--rw-r--r-- 0 root (0) root (0) 37764 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/config.html\n+-rw-r--r-- 0 root (0) root (0) 86360 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/color.html\n+-rw-r--r-- 0 root (0) root (0) 38380 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/config.html\n -rw-r--r-- 0 root (0) root (0) 17688 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/direct3d.html\n--rw-r--r-- 0 root (0) root (0) 85601 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/display.html\n--rw-r--r-- 0 root (0) root (0) 81409 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/events.html\n--rw-r--r-- 0 root (0) root (0) 62284 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/file.html\n--rw-r--r-- 0 root (0) root (0) 56628 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fixed.html\n--rw-r--r-- 0 root (0) root (0) 95325 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/font.html\n--rw-r--r-- 0 root (0) root (0) 42256 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fshook.html\n--rw-r--r-- 0 root (0) root (0) 13375 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) 85973 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/display.html\n+-rw-r--r-- 0 root (0) root (0) 83509 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/events.html\n+-rw-r--r-- 0 root (0) root (0) 62792 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/file.html\n+-rw-r--r-- 0 root (0) root (0) 56804 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) 43112 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/fshook.html\n+-rw-r--r-- 0 root (0) root (0) 13626 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) 223401 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html\n--rw-r--r-- 0 root (0) root (0) 69756 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/haptic.html\n--rw-r--r-- 0 root (0) root (0) 12399 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/image.html\n+-rw-r--r-- 0 root (0) root (0) 224931 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html\n+-rw-r--r-- 0 root (0) root (0) 70431 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/haptic.html\n+-rw-r--r-- 0 root (0) root (0) 13246 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) 35265 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/joystick.html\n--rw-r--r-- 0 root (0) root (0) 24100 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/keyboard.html\n+-rw-r--r-- 0 root (0) root (0) 35801 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/joystick.html\n+-rw-r--r-- 0 root (0) root (0) 24312 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/keyboard.html\n -rw-r--r-- 0 root (0) root (0) 8989 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/main.html\n--rw-r--r-- 0 root (0) root (0) 10497 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html\n--rw-r--r-- 0 root (0) root (0) 24118 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memory.html\n--rw-r--r-- 0 root (0) root (0) 10370 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/misc.html\n--rw-r--r-- 0 root (0) root (0) 17758 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/monitor.html\n--rw-r--r-- 0 root (0) root (0) 41586 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html\n--rw-r--r-- 0 root (0) root (0) 78236 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) 11132 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html\n+-rw-r--r-- 0 root (0) root (0) 27334 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/memory.html\n+-rw-r--r-- 0 root (0) root (0) 10545 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/misc.html\n+-rw-r--r-- 0 root (0) root (0) 18009 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/monitor.html\n+-rw-r--r-- 0 root (0) root (0) 41881 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html\n+-rw-r--r-- 0 root (0) root (0) 92394 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) 27209 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) 38006 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/path.html\n--rw-r--r-- 0 root (0) root (0) 11830 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html\n+-rw-r--r-- 0 root (0) root (0) 38095 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/path.html\n+-rw-r--r-- 0 root (0) root (0) 12263 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html\n -rw-r--r-- 0 root (0) root (0) 26593 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/platform.html\n--rw-r--r-- 0 root (0) root (0) 145994 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/primitives.html\n+-rw-r--r-- 0 root (0) root (0) 174618 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) 45896 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/shader.html\n--rw-r--r-- 0 root (0) root (0) 15758 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/state.html\n--rw-r--r-- 0 root (0) root (0) 70981 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/system.html\n--rw-r--r-- 0 root (0) root (0) 35428 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/threads.html\n+-rw-r--r-- 0 root (0) root (0) 46508 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/shader.html\n+-rw-r--r-- 0 root (0) root (0) 16111 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/state.html\n+-rw-r--r-- 0 root (0) root (0) 71522 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/system.html\n+-rw-r--r-- 0 root (0) root (0) 36010 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/threads.html\n -rw-r--r-- 0 root (0) root (0) 12632 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/time.html\n--rw-r--r-- 0 root (0) root (0) 26591 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/timer.html\n--rw-r--r-- 0 root (0) root (0) 22243 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/touch.html\n--rw-r--r-- 0 root (0) root (0) 82505 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html\n--rw-r--r-- 0 root (0) root (0) 103227 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/utf8.html\n--rw-r--r-- 0 root (0) root (0) 31871 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/video.html\n+-rw-r--r-- 0 root (0) root (0) 28555 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/timer.html\n+-rw-r--r-- 0 root (0) root (0) 23221 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/touch.html\n+-rw-r--r-- 0 root (0) root (0) 82707 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html\n+-rw-r--r-- 0 root (0) root (0) 103620 2024-05-03 10:28:35.000000 ./usr/share/doc/allegro5-doc/refman/utf8.html\n+-rw-r--r-- 0 root (0) root (0) 36941 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) 533 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) 381 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) 683 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) 680 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) 443 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) 600 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) 1075 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) 373 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 584 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) 378 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) 373 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) 416 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) 442 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 363 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 435 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) 432 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) 378 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 583 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) 5139 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 494 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) 527 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) 425 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) 438 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) 402 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 377 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 903 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) 445 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) 530 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 548 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) 448 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) 638 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) 808 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) 908 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 552 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 943 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) 3260 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) 580 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) 495 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) 465 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 410 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 541 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) 577 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) 557 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) 530 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) 920 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) 502 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) 416 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 830 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) 627 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 429 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) 586 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) 570 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) 583 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) 373 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) 366 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 434 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) 424 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 2278 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) 593 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1258 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) 693 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) 488 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) 1026 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) 610 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) 468 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) 983 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) 533 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 462 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) 727 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) 426 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 578 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 638 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) 831 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) 807 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 401 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) 519 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) 379 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 536 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) 386 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) 686 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) 685 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) 448 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) 604 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) 1079 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) 379 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_BITMAP.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 587 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) 386 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) 378 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) 419 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) 447 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COLOR.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_COND.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 367 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_CONFIG.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 439 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) 437 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) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_DISPLAY.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 586 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) 5144 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_EVENT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 499 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) 532 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) 427 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) 442 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) 405 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 381 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FILECHOOSER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 905 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) 447 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) 534 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_FONT.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 553 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) 452 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) 641 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) 813 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) 913 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_GLYPH.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 556 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_HAPTIC.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 945 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) 3263 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) 585 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) 500 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) 468 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYFLAGS.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 415 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_JOYSTICK.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 545 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) 583 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) 559 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) 532 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) 925 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) 507 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) 420 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MENU.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 834 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) 631 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MIXER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 431 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) 589 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) 573 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) 589 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) 377 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) 370 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_MUTEX.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 437 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) 427 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PI.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 2281 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) 595 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_PLAYMODE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1261 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) 695 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) 492 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) 1029 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) 612 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) 470 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) 986 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) 538 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SAMPLE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 466 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) 732 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) 429 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SEEK.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 581 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_SHADER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 641 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) 835 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) 812 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_STATE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 404 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) 521 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) 386 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TEXTLOG.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 372 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_THREAD.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 440 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMEOUT.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 376 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 404 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) 403 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) 473 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) 587 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) 486 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 372 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) 796 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) 438 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 443 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) 703 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 484 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) 535 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) 505 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) 1009 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) 651 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) 683 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) 515 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 513 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) 381 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TIMER.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 408 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) 410 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) 478 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) 593 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) 491 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_TRANSFORM.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 377 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) 802 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) 442 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_USTR.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 448 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) 709 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VERTEX.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 491 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) 540 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) 510 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) 1014 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) 654 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) 689 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) 520 2024-05-03 10:28:35.000000 ./usr/share/man/man3/ALLEGRO_VOICE.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 516 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) 608 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) 438 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) 680 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) 546 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) 432 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) 423 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) 501 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) 503 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) 749 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) 438 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) 520 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) 625 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) 495 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) 577 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) 501 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) 582 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) 397 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) 755 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) 473 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) 695 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) 566 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) 506 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) 481 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) 675 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) 477 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) 700 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) 571 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) 511 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) 486 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) 681 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) 1876 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) 546 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) 732 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) 470 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) 541 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) 945 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) 559 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) 563 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) 656 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) 692 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) 1361 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) 781 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) 739 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) 462 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1369 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) 787 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) 745 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) 466 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_calloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 481 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) 419 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) 413 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) 402 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) 1014 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) 686 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) 771 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) 436 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) 442 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) 546 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) 488 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) 430 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) 491 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) 434 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) 399 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) 469 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) 440 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) 423 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) 440 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) 432 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) 839 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) 495 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) 532 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) 491 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) 524 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) 562 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) 620 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) 699 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) 438 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) 658 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) 436 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) 885 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) 456 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) 431 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) 1335 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) 612 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) 431 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) 550 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) 481 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) 478 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) 638 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) 433 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) 434 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) 455 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) 451 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) 436 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) 432 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) 434 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) 421 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) 523 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) 435 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) 658 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) 436 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) 413 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) 424 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) 444 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) 428 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) 444 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) 436 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) 846 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) 499 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) 536 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) 495 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) 530 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) 566 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) 626 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) 704 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) 443 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) 662 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) 441 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) 891 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) 460 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) 436 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) 1341 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) 617 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) 436 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) 557 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) 485 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) 482 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) 642 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) 438 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) 439 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) 459 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) 455 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) 441 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) 437 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) 439 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) 425 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) 527 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) 439 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) 663 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) 441 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) 418 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) 428 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) 595 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) 597 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) 471 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) 675 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) 431 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) 1147 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) 1380 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) 1155 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) 1386 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) 1726 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) 716 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) 720 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) 399 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) 409 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) 694 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) 473 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) 552 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) 439 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) 904 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) 447 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) 703 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) 910 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) 451 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) 708 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) 530 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) 470 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) 594 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) 1226 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) 1260 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) 529 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) 471 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) 500 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) 910 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) 522 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) 505 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) 918 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) 528 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) 754 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) 835 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) 517 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) 625 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) 628 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) 902 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) 540 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) 828 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) 908 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) 545 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) 834 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) 788 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_cstr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 518 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) 555 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) 494 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) 559 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) 498 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) 580 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) 441 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) 437 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) 547 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) 505 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) 415 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) 419 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) 451 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) 440 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) 488 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) 383 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) 445 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) 492 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) 387 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) 432 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) 446 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) 395 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) 401 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) 417 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) 527 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) 465 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) 532 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) 472 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) 584 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) 467 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) 484 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) 457 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) 441 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) 456 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) 429 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) 447 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) 414 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) 475 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) 432 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) 451 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) 1038 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) 496 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) 485 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) 614 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) 446 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) 461 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) 433 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) 452 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) 420 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) 480 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) 437 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) 456 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) 1045 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) 502 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) 489 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) 620 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) 852 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) 583 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) 519 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) 523 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) 640 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) 470 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) 476 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) 597 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) 629 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) 1068 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) 494 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) 521 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) 478 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) 759 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) 845 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) 748 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) 693 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) 506 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) 495 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) 522 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) 1353 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) 528 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) 516 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) 644 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) 525 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) 529 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) 646 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) 474 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) 482 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) 603 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) 633 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) 1075 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) 500 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) 527 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) 484 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) 764 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) 853 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) 754 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) 699 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) 512 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) 501 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) 526 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) 1359 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) 534 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) 522 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) 649 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) 740 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) 691 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) 920 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) 885 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) 541 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) 702 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) 696 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) 925 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) 890 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) 545 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) 708 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) 805 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) 572 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) 575 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) 593 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) 673 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) 934 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) 1171 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) 540 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) 821 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) 488 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) 942 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) 1182 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) 545 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) 826 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) 493 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) 639 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) 505 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) 505 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) 511 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) 518 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) 660 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) 533 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) 492 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) 740 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) 539 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) 498 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) 745 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) 462 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) 402 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) 1090 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) 522 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) 529 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) 548 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fclearerr.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 432 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fclose.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 601 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_feof.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 493 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ferrmsg.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ferror.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 435 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fflush.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 589 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) 415 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fgetc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 668 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fgets.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 439 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) 500 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) 523 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) 635 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) 506 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) 527 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) 641 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) 626 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixacos.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 759 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixadd.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 727 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixasin.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 527 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixatan.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 711 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixatan2.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 504 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixceil.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 555 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixcos.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 819 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixdiv.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 1012 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixed.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 1015 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixed.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 511 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixfloor.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 446 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixhypot.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 796 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixmul.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 534 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsin.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 417 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsqrt.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 765 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fixsub.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 588 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) 486 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fputc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 633 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fputs.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 592 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 521 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread16be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 521 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread16le.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 520 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread32be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 521 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fread32le.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 579 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_free.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 584 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_free.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 472 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) 472 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) 670 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fseek.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 382 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fsize.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 469 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ftell.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 642 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_ftofix.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 676 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fungetc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 524 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 455 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite16be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 457 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite16le.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 455 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite32be.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 456 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_fwrite32le.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_allegro_acodec_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_get_allegro_audio_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_get_allegro_color_version.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 392 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) 393 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) 395 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) 401 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) 394 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) 397 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) 392 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) 397 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) 397 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) 395 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) 397 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) 398 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) 405 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) 398 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) 402 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) 395 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) 668 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) 404 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) 408 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) 386 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) 430 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) 413 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) 410 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) 452 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) 476 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) 437 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) 421 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) 407 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) 461 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) 831 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) 471 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) 397 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) 409 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) 396 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) 501 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) 404 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) 439 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) 409 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) 427 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) 481 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) 417 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) 482 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) 436 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) 420 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) 414 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) 457 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) 480 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) 443 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) 426 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) 411 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) 466 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) 836 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) 476 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) 402 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) 415 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) 399 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) 507 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) 417 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) 443 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) 413 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) 431 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) 487 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) 422 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) 488 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) 705 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) 455 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) 488 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) 489 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) 396 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) 412 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) 376 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) 493 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) 375 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) 442 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) 442 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) 431 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) 437 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) 435 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) 438 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) 648 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) 394 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) 545 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) 790 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) 534 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) 435 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) 549 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) 428 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) 475 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) 461 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) 479 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) 520 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) 500 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) 503 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) 494 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) 533 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) 500 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) 538 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) 627 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) 411 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) 419 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) 448 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) 582 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) 396 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) 411 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) 452 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) 464 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) 562 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) 406 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) 474 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) 394 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) 412 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) 412 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) 448 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) 404 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) 407 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) 439 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) 550 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) 601 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) 403 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) 404 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) 663 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) 626 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) 411 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) 412 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) 669 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) 632 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) 532 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) 440 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) 453 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) 435 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) 669 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) 438 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) 431 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) 637 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) 1348 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) 1197 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) 508 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) 643 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) 1353 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) 1204 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) 514 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) 836 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) 567 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) 591 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) 541 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) 649 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) 545 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) 538 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) 550 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) 702 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) 414 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) 422 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) 609 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) 517 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) 467 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) 474 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) 425 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) 417 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) 445 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) 437 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) 425 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) 460 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) 459 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) 444 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) 469 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) 584 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) 483 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) 482 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) 528 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) 457 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) 412 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) 402 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) 403 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) 437 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) 401 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) 405 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) 488 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) 487 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) 533 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) 462 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) 417 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) 408 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) 409 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) 441 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) 406 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) 409 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) 415 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) 586 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) 486 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) 536 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) 527 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) 442 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) 402 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) 402 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) 607 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) 476 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) 406 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) 419 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) 471 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) 595 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) 423 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) 475 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) 600 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) 499 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) 387 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) 408 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) 499 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) 461 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) 473 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) 414 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) 419 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) 439 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) 425 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) 583 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) 444 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) 483 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) 530 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) 419 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) 422 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) 522 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) 493 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) 564 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) 894 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) 654 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) 817 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) 436 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) 511 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) 435 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) 452 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) 435 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) 462 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) 463 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) 830 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) 572 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) 447 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) 433 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) 439 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) 436 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) 447 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) 445 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) 432 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) 421 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) 414 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) 470 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) 410 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) 455 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) 433 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) 424 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) 426 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) 443 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) 438 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) 577 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) 452 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) 438 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) 446 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) 442 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) 453 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) 449 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) 436 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) 426 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) 424 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) 476 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) 419 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) 459 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) 439 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) 429 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) 431 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) 447 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) 441 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) 505 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) 458 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) 528 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) 436 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) 1556 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) 841 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) 401 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) 391 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) 652 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) 450 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) 658 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) 455 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) 553 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) 451 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) 420 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) 416 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) 437 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) 389 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) 460 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) 572 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) 445 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) 467 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) 416 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) 416 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) 393 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) 436 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) 423 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) 673 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) 465 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) 491 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) 488 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) 413 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) 403 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) 401 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) 407 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) 466 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) 473 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) 422 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) 420 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) 398 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) 441 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) 427 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) 678 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) 470 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) 494 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) 493 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) 418 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) 409 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) 389 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) 412 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) 470 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) 395 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) 637 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) 444 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) 420 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) 397 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) 1309 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) 1314 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) 559 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) 448 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) 435 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) 547 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) 498 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) 880 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) 479 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) 530 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) 673 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) 534 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) 668 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) 512 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) 538 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) 674 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) 515 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) 608 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) 509 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) 474 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) 627 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 796 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) 640 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) 738 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) 600 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) 421 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) 632 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_init.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 799 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) 643 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) 742 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) 603 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) 425 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) 499 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) 438 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) 443 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) 897 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) 370 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) 912 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) 373 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) 917 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) 538 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) 478 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) 481 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) 778 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) 420 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) 439 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) 410 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) 850 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) 432 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) 589 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) 407 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) 403 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) 485 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) 396 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) 392 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) 469 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) 400 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) 394 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) 474 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) 406 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) 417 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) 479 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) 701 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) 489 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) 570 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) 430 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) 419 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) 432 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) 421 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) 426 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) 514 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) 602 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) 567 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) 632 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) 500 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) 395 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) 396 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) 517 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) 380 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) 517 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) 379 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) 511 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) 375 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) 404 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) 429 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) 407 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) 434 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) 423 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) 373 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) 528 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) 391 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) 424 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) 392 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) 398 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) 427 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) 396 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) 402 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) 658 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_itofix.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 602 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) 530 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) 424 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) 377 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) 776 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) 900 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) 782 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) 907 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) 664 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) 730 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) 1878 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) 718 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) 550 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) 508 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) 554 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) 513 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) 463 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) 475 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) 600 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) 645 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) 738 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) 933 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) 559 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) 664 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) 595 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) 605 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) 650 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) 742 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) 940 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) 563 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) 669 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) 602 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) 1300 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) 681 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) 766 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) 514 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) 643 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) 649 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) 621 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) 710 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) 642 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) 715 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) 648 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) 502 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) 564 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) 643 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) 483 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_malloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 488 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_malloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 475 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) 465 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) 458 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) 466 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) 458 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) 498 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) 471 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) 473 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) 478 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) 481 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) 467 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) 548 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) 687 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) 711 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) 446 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) 692 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) 716 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) 450 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) 959 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) 412 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) 607 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) 617 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) 608 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) 536 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) 1400 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) 735 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) 856 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) 740 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) 860 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) 726 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) 824 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) 426 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) 804 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) 829 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) 431 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) 809 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) 749 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) 732 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) 430 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) 535 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) 495 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) 588 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) 462 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_realloc.3alleg5.gz\n+-rw-r--r-- 0 root (0) root (0) 467 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_realloc.3alleg5.gz\n -rw-r--r-- 0 root (0) root (0) 482 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) 572 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) 903 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) 522 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) 654 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) 735 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) 506 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) 666 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) 672 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) 673 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) 678 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) 810 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) 629 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) 625 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) 629 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) 625 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) 503 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) 614 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) 819 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) 626 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) 620 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) 632 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) 626 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) 618 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) 827 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) 632 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) 625 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) 638 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) 631 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) 573 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) 731 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) 846 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) 402 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) 464 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) 437 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) 510 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) 516 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) 517 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) 484 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) 607 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) 612 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) 479 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) 503 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) 651 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) 514 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) 737 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) 740 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) 476 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) 487 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) 393 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) 523 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) 546 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_rest.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 577 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) 581 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) 408 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) 518 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) 476 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) 480 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) 469 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) 505 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) 922 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) 519 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) 607 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) 573 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) 650 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) 445 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) 462 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) 593 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) 635 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) 597 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) 639 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) 463 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) 461 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) 512 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) 437 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) 518 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) 440 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) 486 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) 412 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) 487 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) 473 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) 477 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) 619 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) 438 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) 455 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) 493 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) 493 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) 479 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) 483 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) 624 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) 443 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) 459 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) 499 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) 467 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) 593 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) 455 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) 1561 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) 450 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) 455 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) 662 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) 641 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) 548 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) 528 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) 549 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) 494 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) 554 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) 500 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) 623 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) 440 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) 657 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) 757 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) 763 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) 711 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) 357 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) 497 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) 586 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) 521 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) 528 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) 427 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) 894 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) 721 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) 562 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) 546 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) 477 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) 471 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) 587 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) 470 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) 453 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) 430 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) 585 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) 480 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) 482 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) 474 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) 591 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) 475 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) 458 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) 435 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) 592 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) 510 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) 475 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) 526 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) 522 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) 415 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) 873 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) 511 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) 411 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) 469 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) 526 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) 528 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) 493 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) 442 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) 574 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) 466 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) 793 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) 798 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) 498 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) 720 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) 876 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) 478 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) 542 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) 675 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) 488 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) 465 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) 458 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) 499 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) 727 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) 882 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) 483 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) 547 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) 679 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) 492 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) 470 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) 463 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) 505 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) 562 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) 528 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) 471 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) 472 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) 455 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) 479 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) 807 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) 416 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) 725 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) 409 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) 1587 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) 430 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) 486 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) 572 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) 393 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) 522 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) 490 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) 396 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) 526 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) 495 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) 578 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) 424 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) 409 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) 461 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) 560 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) 1257 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) 429 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) 413 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) 403 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) 435 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) 385 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) 426 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) 565 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) 1264 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) 433 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) 417 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) 407 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) 439 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) 391 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) 430 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) 471 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) 554 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) 560 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) 464 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) 527 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) 401 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) 418 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) 618 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) 406 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) 422 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) 622 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) 578 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) 397 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) 401 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) 378 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) 400 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) 407 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) 381 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) 469 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) 652 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) 611 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) 616 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) 466 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) 541 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) 899 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) 492 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) 459 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) 458 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) 569 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) 931 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) 938 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) 435 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) 370 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) 375 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) 606 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) 478 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) 454 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) 432 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) 421 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) 445 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) 488 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) 428 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) 433 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) 463 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) 581 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) 426 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) 586 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) 430 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) 483 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) 477 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) 478 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) 474 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) 508 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) 512 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) 581 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) 516 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) 557 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) 470 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) 542 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) 474 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) 477 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) 475 2024-05-03 10:28:35.000000 ./usr/share/man/man3/al_vfprintf.3alleg5.gz\n--rw-r--r-- 0 root (0) root (0) 459 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) 463 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) 779 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) 498 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) 522 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) 663 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) 670 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) 544 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) 723 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,15 +181,16 @@\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@@ -220,15 +221,16 @@\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 \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@@ -70,14 +71,15 @@\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 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"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/audio.html", "source2": "./usr/share/doc/allegro5-doc/refman/audio.html", "unified_diff": "@@ -554,15 +554,16 @@\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@@ -570,15 +571,16 @@\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@@ -614,23 +617,25 @@\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@@ -658,15 +663,17 @@\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+ 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

    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@@ -699,15 +706,16 @@\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@@ -717,28 +725,30 @@\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@@ -760,15 +770,16 @@\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@@ -818,15 +830,16 @@\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@@ -874,15 +888,18 @@\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_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

    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@@ -912,15 +929,16 @@\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@@ -966,15 +985,16 @@\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@@ -983,15 +1003,16 @@\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@@ -1001,15 +1022,16 @@\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@@ -1025,61 +1047,66 @@\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@@ -1206,15 +1234,16 @@\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@@ -1227,15 +1256,16 @@\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@@ -1264,15 +1295,16 @@\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@@ -1283,15 +1315,17 @@\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+ const ALLEGRO_SAMPLE_INSTANCE *spl)\n+ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(\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@@ -1299,42 +1333,45 @@\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@@ -1346,15 +1383,17 @@\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+ unsigned int val)\n+bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,\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@@ -1364,30 +1403,33 @@\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+ unsigned int val)\n+bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,\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@@ -1395,23 +1437,25 @@\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@@ -1421,28 +1465,30 @@\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@@ -1489,15 +1537,16 @@\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@@ -1508,26 +1557,29 @@\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+ ALLEGRO_PLAYMODE val)\n+bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,\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@@ -1573,27 +1627,29 @@\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@@ -1628,15 +1685,16 @@\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@@ -1658,15 +1716,16 @@\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@@ -1696,15 +1755,16 @@\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@@ -1750,15 +1810,18 @@\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_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

    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@@ -1814,15 +1877,17 @@\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+ 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

    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@@ -1848,15 +1913,17 @@\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+ 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

    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@@ -1878,15 +1945,16 @@\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@@ -1904,15 +1972,17 @@\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_AUDIO_STREAM *stream)\n+ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(\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+ const ALLEGRO_AUDIO_STREAM *stream)\n+ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(\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+ const ALLEGRO_AUDIO_STREAM *stream)\n+ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(\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 *streamrgb_to_yuv
    \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@@ -2075,15 +2159,16 @@\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@@ -2092,15 +2177,16 @@\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@@ -2111,25 +2197,29 @@\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+ const ALLEGRO_AUDIO_STREAM *stream)\n+ALLEGRO_PLAYMODE al_get_audio_stream_playmode(\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+ ALLEGRO_PLAYMODE val)\n+bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,\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@@ -2224,15 +2318,16 @@\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@@ -2245,39 +2340,43 @@\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+ const ALLEGRO_AUDIO_STREAM *stream)\n+unsigned int al_get_available_audio_stream_fragments(\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+ double start, double end)\n+bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,\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+ ALLEGRO_SAMPLE *(*loader)(const char *filename))\n+bool al_register_sample_loader(const char *ext,\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@@ -2383,15 +2488,17 @@\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+ ALLEGRO_SAMPLE *(*loader)(ALLEGRO_FILE* fp))\n+bool al_register_sample_loader_f(const char *ext,\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@@ -2401,15 +2508,17 @@\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 (*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

    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@@ -2421,15 +2530,17 @@\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 (*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

    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@@ -2442,15 +2553,17 @@\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+ 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

    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@@ -2464,15 +2577,18 @@\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+ 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

    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@@ -2485,15 +2601,17 @@\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 (*identifier)(ALLEGRO_FILE* fp))\n+bool al_register_sample_identifier(const char *ext,\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+class=\"sourceCode c\">char const *al_identify_sample(char const *filename)\n+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@@ -2526,15 +2645,16 @@\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+class=\"sourceCode c\">char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n+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@@ -2556,15 +2676,16 @@\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+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n+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@@ -2575,15 +2696,16 @@\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+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_RECORDER_EVENT ALLEGRO_AUDIO_RECORDER_EVENT;\n+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@@ -2607,15 +2729,18 @@\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_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

    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@@ -2652,15 +2777,16 @@\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+class=\"sourceCode c\">bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+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+class=\"sourceCode c\">void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+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@@ -2697,28 +2824,30 @@\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+class=\"sourceCode c\">bool al_is_audio_recorder_recording(ALLEGRO_AUDIO_RECORDER *r)\n+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+class=\"sourceCode c\">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

    Source\n Code

    \n

    Returns the event as an ALLEGRO_AUDIO_RECORDER_EVENT.

    \n

    Since: 5.1.1

    \n
    \n@@ -2731,15 +2860,16 @@\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+class=\"sourceCode c\">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

    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@@ -2751,15 +2881,16 @@\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+class=\"sourceCode c\">void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+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@@ -2774,69 +2905,74 @@\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+class=\"sourceCode c\">typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n+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+class=\"sourceCode c\">int al_get_num_audio_output_devices()\n+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+class=\"sourceCode c\">const ALLEGRO_AUDIO_DEVICE* al_get_audio_output_device(int index)\n+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+class=\"sourceCode c\">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

    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+class=\"sourceCode c\">typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n+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@@ -2851,15 +2987,17 @@\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_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

    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@@ -2882,15 +3020,16 @@\n

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

    al_destroy_voice

    \n
    void al_destroy_voice(ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">void al_destroy_voice(ALLEGRO_VOICE *voice)\n+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@@ -2901,15 +3040,16 @@\n
  • ex_acodec_multi.c
  • \n
  • ex_kcm_direct.c
  • \n \n

    al_detach_voice

    \n
    void al_detach_voice(ALLEGRO_VOICE *voice)
    \n+class=\"sourceCode c\">void al_detach_voice(ALLEGRO_VOICE *voice)\n+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@@ -2917,15 +3057,17 @@\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+ ALLEGRO_VOICE *voice)\n+bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,\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@@ -2943,15 +3085,16 @@\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+class=\"sourceCode c\">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

    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@@ -2966,15 +3109,17 @@\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+ ALLEGRO_VOICE *voice)\n+bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,\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@@ -2990,54 +3135,58 @@\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+class=\"sourceCode c\">unsigned int al_get_voic_stream_loader\n

    Source\n-Code

    \n+href=\"https://github.com/liballeg/allegro5/blob/master/%20size_t%20buffer_count,%20unsigned%20int%20samples\">Source\n+Code)#Laddons/audio/audio_io.c)

    \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+class=\"sourceCode c\">ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)\n+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+class=\"sourceCode c\">ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)\n+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+class=\"sourceCode c\">bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n+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+class=\"sourceCode c\">bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)\n+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@@ -3046,52 +3195,56 @@\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+class=\"sourceCode c\">unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)\n+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+class=\"sourceCode c\">bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)\n+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+class=\"sourceCode c\">bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n+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+class=\"sourceCode c\">typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n+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@@ -3108,28 +3261,31 @@\n

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

    ALLEGRO_MIXER_QUALITY

    \n
    enum ALLEGRO_MIXER_QUALITY
    \n+class=\"sourceCode c\">enum ALLEGRO_MIXER_QUALITY\n+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_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

    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@@ -3151,15 +3307,16 @@\n

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

    al_destroy_mixer

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

    Source\n Code

    \n

    Destroys the mixer.

    \n

    See also: al_create_mixer

    \n

    Examples:

    \n@@ -3169,15 +3326,16 @@\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+class=\"sourceCode c\">ALLEGRO_MIXER *al_get_default_mixer(void)\n+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@@ -3193,15 +3351,16 @@\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+class=\"sourceCode c\">bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n+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@@ -3212,15 +3371,16 @@\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+class=\"sourceCode c\">bool al_restore_default_mixer(void)\n+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@@ -3232,37 +3392,40 @@\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+class=\"sourceCode c\">ALLEGRO_VOICE *al_get_default_voice(void)\n+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+class=\"sourceCode c\">void al_set_default_voice(ALLEGRO_VOICE *voice)\n+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+class=\"sourceCode c\">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

    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@@ -3277,15 +3440,17 @@\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+ ALLEGRO_MIXER *mixer)\n+bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,\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+class=\"sourceCode c\">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

    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+class=\"sourceCode c\">unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)\n+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+class=\"sourceCode c\">ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)\n+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+class=\"sourceCode c\">ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">bool al_set_mixer_quality(ALLEGRO_MIXEal_get_allegro_acodec_version\n+bool al_set_mixer_quality(ALLEGRO_MIXEe_frequency(const ALLEGRO_VOICE *voice)\n

    Source\n+href=\"https://github.com/liballeg/allegro5/blob/master/%20uint32_t%20al_get_allegro_acodec_version(void)#Laddons/acodec/acodec.c\">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+class=\"sourceCode c\">bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)\n+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+class=\"sourceCode c\">bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n+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+class=\"sourceCode c\">bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n+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@@ -3482,15 +3660,16 @@\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+class=\"sourceCode c\">bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n+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@@ -3499,15 +3678,18 @@\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+ 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

    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@@ -3523,15 +3705,16 @@\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+class=\"sourceCode c\">enum ALLEGRO_AUDIO_DEPTH\n+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@@ -3554,15 +3737,16 @@\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+class=\"sourceCode c\">#define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n+#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@@ -3576,15 +3760,16 @@\n

    Examples:

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

    ALLEGRO_CHANNEL_CONF

    \n
    enum ALLEGRO_CHANNEL_CONF
    \n+class=\"sourceCode c\">enum ALLEGRO_CHANNEL_CONF\n+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@@ -3601,15 +3786,16 @@\n
    • ex_stream_file.c
    • \n
    • ex_acodec_multi.c
    • \n
    \n

    ALLEGRO_PLAYMODE

    \n
    enum ALLEGRO_PLAYMODE
    \n+class=\"sourceCode c\">enum ALLEGRO_PLAYMODE\n+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@@ -3631,15 +3817,16 @@\n
    • ex_kcm_direct.c
    • \n
    • ex_mixer_chain.c
    • \n
    \n

    ALLEGRO_AUDIO_EVENT_TYPE

    \n
    enum ALLEGRO_AUDIO_EVENT_TYPE
    \n+class=\"sourceCode c\">enum ALLEGRO_AUDIO_EVENT_TYPE\n+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@@ -3662,52 +3849,57 @@\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+class=\"sourceCode c\">uint32_t al_get_allegro_audio_version(void)\n+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+class=\"sourceCode c\">size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)\n+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+class=\"sourceCode c\">size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)\n+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+ 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

    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,49 +228,54 @@\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@@ -287,14 +292,16 @@\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@@ -310,30 +317,33 @@\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@@ -343,26 +353,28 @@\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@@ -374,14 +386,16 @@\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@@ -395,28 +409,32 @@\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@@ -432,14 +450,15 @@\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@@ -448,14 +467,15 @@\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@@ -463,70 +483,78 @@\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@@ -600,14 +628,15 @@\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@@ -618,155 +647,178 @@\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@@ -774,88 +826,99 @@\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@@ -869,14 +932,16 @@\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@@ -898,14 +963,15 @@\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@@ -931,14 +997,17 @@\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@@ -974,14 +1043,16 @@\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@@ -996,14 +1067,17 @@\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@@ -1016,182 +1090,209 @@\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 *streamrgb_to_yuv\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@@ -1207,66 +1308,75 @@\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@@ -1274,89 +1384,104 @@\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 _\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@@ -1367,23 +1492,25 @@\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@@ -1398,23 +1525,25 @@\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@@ -1424,14 +1553,17 @@\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@@ -1455,119 +1587,133 @@\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@@ -1580,31 +1726,35 @@\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@@ -1612,93 +1762,104 @@\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 Use a mixer inbetween.\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-_\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n+unsigned int al_get_voic_stream_loader\n+_\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be)#Laddons/audio/audio_io.c)\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@@ -1706,21 +1867,24 @@\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@@ -1730,212 +1894,239 @@\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_MIXEal_get_allegro_acodec_version\n+bool al_set_mixer_quality(ALLEGRO_MIXEe_frequency(const ALLEGRO_VOICE *voice)\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@@ -1947,28 +2138,30 @@\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@@ -1976,14 +2169,15 @@\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@@ -1996,14 +2190,15 @@\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@@ -2013,33 +2208,38 @@\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,15 +263,16 @@\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+ 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

    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@@ -318,15 +322,17 @@\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+ 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

    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@@ -342,15 +348,16 @@\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@@ -368,15 +375,17 @@\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+ 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

      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@@ -390,15 +399,16 @@\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@@ -409,15 +419,17 @@\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+ float *red, float *green, float *blue)\n+bool al_color_html_to_rgb(char const *string,\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@@ -426,15 +438,17 @@\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+ char *string)\n+void al_color_rgb_to_html(float red, float green, float blue,\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@@ -450,15 +464,16 @@\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@@ -518,15 +534,17 @@\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+ 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

      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@@ -539,15 +557,17 @@\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+ 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

      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+ 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

    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+ 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

    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@@ -623,34 +649,39 @@\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+ 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

    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+ 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

    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@@ -658,39 +689,44 @@\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+ 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

    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+ 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

    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@@ -716,44 +752,49 @@\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+ 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

    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+ 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

    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@@ -770,30 +811,34 @@\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+ 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

    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+ ALLEGRO_COLOR color2) {\n+double al_color_distance_ciede2000(ALLEGRO_COLOR color1,\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@@ -816,28 +861,30 @@\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

    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+ 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

    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+ 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

    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@@ -912,25 +965,29 @@\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+ 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

    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+ 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

    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@@ -938,15 +995,16 @@\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@@ -970,15 +1028,17 @@\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+ 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

    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], \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@@ -284,15 +286,16 @@\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,30 +101,33 @@\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,15 +334,16 @@\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,14 +123,15 @@\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@@ -739,14 +740,15 @@\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,15 +315,16 @@\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@@ -1005,15 +1006,16 @@\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@@ -1054,15 +1056,16 @@\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@@ -1075,15 +1078,16 @@\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@@ -1098,24 +1102,26 @@\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@@ -1142,15 +1148,16 @@\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,14 +118,15 @@\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@@ -488,14 +489,15 @@\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@@ -523,42 +525,46 @@\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@@ -581,14 +587,15 @@\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,15 +236,16 @@\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@@ -252,15 +253,16 @@\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@@ -291,15 +293,16 @@\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,23 +85,25 @@\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@@ -124,14 +126,15 @@\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,15 +202,16 @@\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,14 +66,15 @@\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,15 +283,16 @@\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@@ -304,15 +305,16 @@\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@@ -343,15 +345,16 @@\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@@ -371,35 +374,38 @@\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@@ -418,15 +424,16 @@\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@@ -436,30 +443,33 @@\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+ 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

    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@@ -485,43 +495,46 @@\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+ 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

    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@@ -592,15 +609,18 @@\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+ 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

    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+ 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

    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@@ -641,29 +664,35 @@\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+ 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

    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+ 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

    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+ 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

    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+ 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

    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@@ -720,33 +755,38 @@\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+ 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

    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@@ -762,15 +802,16 @@\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@@ -780,15 +821,16 @@\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@@ -802,15 +844,17 @@\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+ int codepoint)\n+void al_draw_glyph(const ALLEGRO_FONT *f, ALLEGRO_COLOR color, float x, float y,\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@@ -834,28 +878,31 @@\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-Code

    \n+href=\"https://github.com/liballeg/allegro5/blob/master/addo\">Source\n+Code#Laddons/audio/kcm_stream.c)

    \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+ 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

    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@@ -909,15 +956,16 @@\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@@ -988,15 +1036,18 @@\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+ 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

    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@@ -1048,15 +1099,18 @@\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+ 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

    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@@ -1064,15 +1118,18 @@\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+ 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

    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@@ -1086,15 +1143,19 @@\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 *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

    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@@ -1133,28 +1194,34 @@\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 *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

    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+ 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

    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@@ -1211,15 +1278,16 @@\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@@ -1238,15 +1306,16 @@\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@@ -1256,15 +1325,16 @@\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@@ -1290,15 +1360,16 @@\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@@ -1369,29 +1443,33 @@\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+ 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

    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+ int flags)\n+ALLEGRO_FONT *al_load_ttf_font_stretch(char const *filename, int w, int h,\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@@ -1404,15 +1482,17 @@\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+ 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

    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@@ -1421,22 +1501,24 @@\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,26 +97,28 @@\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@@ -139,14 +141,15 @@\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@@ -156,61 +159,68 @@\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@@ -228,46 +238,53 @@\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@@ -282,26 +299,32 @@\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@@ -309,42 +332,54 @@\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@@ -354,25 +389,30 @@\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@@ -380,24 +420,26 @@\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@@ -409,14 +451,17 @@\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@@ -427,23 +472,26 @@\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-_\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n+int al_get_glyph_width(const ALLEGRO_FONT *f, int codepoint)\n+_\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be#Laddons/audio/kcm_stream.c)\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@@ -483,14 +531,15 @@\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@@ -548,14 +597,17 @@\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@@ -584,35 +636,45 @@\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@@ -634,23 +696,29 @@\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@@ -694,35 +762,38 @@\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@@ -740,34 +811,38 @@\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@@ -785,23 +860,27 @@\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@@ -809,30 +888,35 @@\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,15 +242,16 @@\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@@ -258,15 +259,16 @@\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@@ -591,15 +593,16 @@\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@@ -678,15 +681,16 @@\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@@ -739,11 +743,14 @@\n href=\"https://github.com/liballeg/allegro5/blob/master/src/tls.c#L882\">Source\n Code

        \n

        Return a pointer to the ALLEGRO_FS_INTERFACE table\n in effect for the calling thread.

        \n

        See also: al_store_state, al_restore_state.

        \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": "@@ -76,22 +76,24 @@\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@@ -279,14 +281,15 @@\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@@ -333,14 +336,15 @@\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@@ -374,7 +378,8 @@\n See also: _\ba_\bl_\b__\bs_\be_\bt_\b__\bf_\bs_\b__\bi_\bn_\bt_\be_\br_\bf_\ba_\bc_\be.\n *\b**\b**\b**\b**\b* a\bal\bl_\b_g\bge\bet\bt_\b_f\bfs\bs_\b_i\bin\bnt\bte\ber\brf\bfa\bac\bce\be *\b**\b**\b**\b**\b*\n const ALLEGRO_FS_INTERFACE *al_get_fs_interface(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Return a pointer to the _\bA_\bL_\bL_\bE_\bG_\bR_\bO_\b__\bF_\bS_\b__\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE table in effect for the calling\n thread.\n See also: _\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+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html", "source2": "./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html", "unified_diff": "@@ -180,15 +180,16 @@\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@@ -251,11 +252,14 @@\n 

      Examples:

      \n
        \n
      • ex_monitorinfo.c
      • \n
      • ex_display_options.c
      • \n
      \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": "@@ -46,14 +46,15 @@\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@@ -86,7 +87,8 @@\n _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\br_\be_\bf_\br_\be_\bs_\bh_\b__\br_\ba_\bt_\be, and _\ba_\bl_\b__\bs_\be_\bt_\b__\bn_\be_\bw_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bf_\bl_\ba_\bg_\bs to find the\n number of modes that match. Settings the new display parameters to zero will\n give a list of all modes for the default driver.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bm_\bo_\bd_\be\n Examples:\n * _\be_\bx_\b__\bm_\bo_\bn_\bi_\bt_\bo_\br_\bi_\bn_\bf_\bo_\b._\bc\n * _\be_\bx_\b__\bd_\bi_\bs_\bp_\bl_\ba_\by_\b__\bo_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bc\n+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/graphics.html", "source2": "./usr/share/doc/allegro5-doc/refman/graphics.html", "unified_diff": "@@ -439,15 +439,16 @@\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@@ -675,15 +676,16 @@\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@@ -720,15 +722,16 @@\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@@ -1081,15 +1084,16 @@\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@@ -3295,15 +3300,16 @@\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+class=\"sourceCode c\">typedef enum ALLEGRO_RENDER_STATE {\n+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@@ -3351,15 +3357,16 @@\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+class=\"sourceCode c\">typedef enum ALLEGRO_RENDER_FUNCTION {\n+typedef enum ALLEGRO_RENDER_FUNCTION {\n

        Source\n Code

        \n

        Possible functions are:

        \n
          \n
        • ALLEGRO_RENDER_NEVER
        • \n
        • ALLEGRO_RENDER_ALWAYS
        • \n@@ -3373,15 +3380,16 @@\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+class=\"sourceCode c\">typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n+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,14 +170,15 @@\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@@ -306,14 +307,15 @@\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@@ -338,14 +340,15 @@\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@@ -580,14 +583,15 @@\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@@ -905,14 +909,15 @@\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@@ -1935,14 +1940,15 @@\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@@ -1965,28 +1971,30 @@\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,15 +250,16 @@\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@@ -273,15 +274,16 @@\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@@ -320,15 +322,16 @@\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@@ -531,15 +534,16 @@\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,27 +82,29 @@\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@@ -127,14 +129,15 @@\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@@ -291,14 +294,15 @@\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,15 +187,16 @@\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,14 +51,15 @@\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@@ -70,21 +71,24 @@\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,15 +223,16 @@\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@@ -240,15 +241,16 @@\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@@ -261,15 +263,16 @@\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,36 +71,39 @@\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,15 +198,16 @@\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,14 +56,15 @@\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,15 +181,16 @@\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@@ -203,15 +204,16 @@\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,24 +48,26 @@\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,15 +191,17 @@\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+ (al_malloc_with_context((n), __LINE__, __FILE__, __func__))\n+#define al_malloc(n) \\\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+ (al_free_with_context((p), __LINE__, __FILE__, __func__))\n+#define al_free(p) \\\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@@ -236,26 +240,30 @@\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+ (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

    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+ (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

    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,26 +54,30 @@\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@@ -81,22 +85,26 @@\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@@ -126,14 +134,15 @@\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,15 +176,16 @@\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,14 +45,15 @@\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,15 +188,16 @@\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@@ -330,11 +331,14 @@\n

    \n

    Unstable\n API: This is an experimental feature and currently only works\n on Windows.

    \n
    \n

    See also: al_get_monitor_info

    \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": "@@ -50,14 +50,15 @@\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@@ -129,7 +130,8 @@\n int al_get_monitor_refresh_rate(int adapter)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Returns the current refresh rate of a monitor attached to the display adapter.\n Since: 5.2.6\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 on Windows.\n See also: _\ba_\bl_\b__\bg_\be_\bt_\b__\bm_\bo_\bn_\bi_\bt_\bo_\br_\b__\bi_\bn_\bf_\bo\n+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/mouse.html", "source2": "./usr/share/doc/allegro5-doc/refman/mouse.html", "unified_diff": "@@ -229,15 +229,16 @@\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@@ -675,11 +676,14 @@\n Code

      \n

      Stop confining the mouse cursor to any display belonging to the\n program.

      \n
      \n

      Note: not yet implemented on Mac OS X.

      \n
      \n

      See also: al_grab_mouse

      \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": "@@ -70,14 +70,15 @@\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@@ -348,7 +349,8 @@\n See also: _\ba_\bl_\b__\bu_\bn_\bg_\br_\ba_\bb_\b__\bm_\bo_\bu_\bs_\be\n *\b**\b**\b**\b**\b* a\bal\bl_\b_u\bun\bng\bgr\bra\bab\bb_\b_m\bmo\bou\bus\bse\be *\b**\b**\b**\b**\b*\n bool al_ungrab_mouse(void)\n _\bS_\bo_\bu_\br_\bc_\be_\b _\bC_\bo_\bd_\be\n Stop confining the mouse cursor to any display belonging to the program.\n N\bNo\bot\bte\be:\b: not yet implemented on Mac OS X.\n See also: _\ba_\bl_\b__\bg_\br_\ba_\bb_\b__\bm_\bo_\bu_\bs_\be\n+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/native_dialog.html", "source2": "./usr/share/doc/allegro5-doc/refman/native_dialog.html", "unified_diff": "@@ -262,39 +262,42 @@\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@@ -315,37 +318,44 @@\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+ char const *patterns,e_frequency(const ALLEGRO_VOICE *voice)\n+ int mode)\n+ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n+ char const *initial_path,\n+ char const *title,\n+ char const *patterns,nt,\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@@ -407,15 +417,17 @@\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+ ALLEGRO_FILECHOOSER *dialog)\n+bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,\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 ALLEGRO_FILECHOOSER *dialog, size_t i)\n+const char *al_get_native_file_dialog_path(\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+ 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

      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@@ -547,15 +566,16 @@\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@@ -585,15 +605,16 @@\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@@ -604,15 +625,17 @@\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+ char const *format, ...)\n+void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,\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@@ -624,15 +647,17 @@\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_TEXTLOG *textlog)\n+ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(\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@@ -652,15 +677,16 @@\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@@ -710,27 +736,29 @@\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@@ -765,26 +793,28 @@\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@@ -795,15 +825,16 @@\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@@ -817,15 +848,17 @@\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 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

    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@@ -836,15 +869,17 @@\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+ 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

    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@@ -875,15 +910,16 @@\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@@ -915,15 +952,16 @@\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@@ -931,15 +969,16 @@\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@@ -947,26 +986,28 @@\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@@ -974,15 +1015,16 @@\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@@ -993,15 +1035,16 @@\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@@ -1011,15 +1054,16 @@\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@@ -1032,29 +1076,31 @@\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@@ -1065,15 +1111,16 @@\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@@ -1083,15 +1130,17 @@\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+ int *index)\n+bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,\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@@ -1100,15 +1149,16 @@\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@@ -1121,15 +1171,16 @@\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@@ -1137,37 +1188,39 @@\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 *displayrt, int end, int type)
    \n

    Source\n+href=\"https://github.com/liballeg/allegro5/blob/master/addons/primitives/primitives.c#L513\">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@@ -1217,15 +1271,16 @@\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@@ -1234,14 +1289,11 @@\n

    See also: al_set_display_menu

    \n

    Examples:

    \n
      \n
    • ex_menu.c
    • \n
    \n-

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

    \n+\n \n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -88,27 +88,30 @@\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@@ -117,29 +120,36 @@\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+ char const *patterns,e_frequency(const ALLEGRO_VOICE *voice)\n+ int mode)\n+ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n+ char const *initial_path,\n+ char const *title,\n+ char const *patterns,nt,\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@@ -175,46 +185,55 @@\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@@ -259,14 +278,15 @@\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@@ -279,50 +299,56 @@\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@@ -366,21 +392,23 @@\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@@ -408,55 +436,62 @@\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@@ -472,181 +507,201 @@\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 *displayrt, int end, int\n+type)\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@@ -656,14 +711,15 @@\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@@ -675,17 +731,17 @@\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 Examples:\n * _\be_\bx_\b__\bm_\be_\bn_\bu_\b._\bc\n-Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/path.html", "source2": "./usr/share/doc/allegro5-doc/refman/path.html", "unified_diff": "@@ -648,11 +648,14 @@\n

    Examples:

    \n
      \n
    • ex_path.c
    • \n
    • ex_path_test.c
    • \n
    \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": "@@ -317,7 +317,8 @@\n Note that this does n\bno\bot\bt collapse \u201cx/../y\u201d sections into \u201cy\u201d. This is by design.\n If \u201c/foo\u201d on your system is a symlink to \u201c/bar/baz\u201d, then \u201c/foo/../quux\u201d is\n actually \u201c/bar/quux\u201d, not \u201c/quux\u201d as a naive removal of \u201c..\u201d components would\n give you.\n Examples:\n * _\be_\bx_\b__\bp_\ba_\bt_\bh_\b._\bc\n * _\be_\bx_\b__\bp_\ba_\bt_\bh_\b__\bt_\be_\bs_\bt_\b._\bc\n+Allegro version 5.2.9 - Last updated: 2024-05-03 10:28:35 UTC\n"}]}, {"source1": "./usr/share/doc/allegro5-doc/refman/physfs.html", "source2": "./usr/share/doc/allegro5-doc/refman/physfs.html", "unified_diff": "@@ -191,15 +191,16 @@\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@@ -231,15 +232,16 @@\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,14 +54,15 @@\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@@ -74,11 +75,12 @@\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,22 +328,24 @@\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@@ -354,27 +356,29 @@\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@@ -469,15 +473,17 @@\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+ 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

    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@@ -494,15 +500,17 @@\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+ 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

    Source\n Code

    \n

    Draws an outlined triangle.

    \n

    Parameters:

    \n
      \n
    • x1, y1, x2, y2, x3, y3 - Three points of the triangle
    • \n@@ -517,15 +525,17 @@\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+ 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

      Source\n Code

      \n

      Draws a filled triangle.

      \n

      Parameters:

      \n
        \n
      • x1, y1, x2, y2, x3, y3 - Three points of the triangle
      • \n@@ -536,15 +546,17 @@\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+ 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

        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@@ -564,15 +576,17 @@\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+ ALLEGRO_COLOR color)\n+void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,\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@@ -589,15 +603,17 @@\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+ 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

        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@@ -618,15 +634,17 @@\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+ 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

        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@@ -646,15 +664,18 @@\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+ int num_points)\n+void al_calculate_arc(float* dest, int stride, float cx, float cy,\n+ float rx, float ry, float start_thf\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@@ -718,15 +739,17 @@\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+ 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

        Source\n Code

        \n

        Draws a pieslice (outlined circular sector).

        \n

        Parameters:

        \n
          \n
        • cx, cy - Center of the pieslice
        • \n@@ -745,15 +768,17 @@\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+ 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

          Source\n Code

          \n

          Draws a filled pieslice (filled circular sector).

          \n

          Parameters:

          \n
            \n
          • cx, cy - Center of the pieslice
          • \n@@ -770,15 +795,17 @@\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+ 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

            Source\n Code

            \n

            Draws an outlined ellipse.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the ellipse
            • \n@@ -795,15 +822,17 @@\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+ ALLEGRO_COLOR color)\n+void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,\n+ ALLEGRO_COLOR color)\n

            Source\n Code

            \n

            Draws a filled ellipse.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the ellipse
            • \n@@ -818,15 +847,17 @@\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+ float thickness)\n+void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,\n+ float thickness)\n

            Source\n Code

            \n

            Draws an outlined circle.

            \n

            Parameters:

            \n
              \n
            • cx, cy - Center of the circle
            • \n@@ -842,15 +873,16 @@\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@@ -867,15 +899,17 @@\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+ 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

              Source\n Code

              \n

              Draws an arc.

              \n

              Parameters:

              \n
                \n
              • cx, cy - Center of the arc
              • \n@@ -894,15 +928,17 @@\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+ 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

                Source\n Code

                \n

                Draws an elliptical arc.

                \n

                Parameters:

                \n
                  \n
                • cx, cy - Center of the arc
                • \n@@ -922,15 +958,17 @@\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+ 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

                  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@@ -947,15 +985,16 @@\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@@ -969,15 +1008,17 @@\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+ 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

                  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@@ -996,15 +1037,17 @@\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+ 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

                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@@ -1043,15 +1086,17 @@\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+ 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

                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@@ -1088,15 +1133,17 @@\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+ 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

                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@@ -1123,15 +1170,17 @@\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 start, int end, int type)
                \n+ ALLEGRO_BITMAP* texture, int sta\n+int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\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@@ -1158,15 +1207,18 @@\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 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

              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@@ -1199,15 +1251,21 @@\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 (*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

            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@@ -1238,15 +1296,19 @@\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 (*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

          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@@ -1266,15 +1328,16 @@\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@@ -1293,15 +1356,16 @@\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@@ -1315,15 +1379,17 @@\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+ 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

            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@@ -1355,15 +1421,16 @@\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@@ -1374,15 +1441,17 @@\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+ int length, int flags)\n+void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,\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@@ -1402,15 +1471,16 @@\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@@ -1420,26 +1490,29 @@\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+ 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

          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@@ -1467,15 +1540,16 @@\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+ int length, int flags)\n+void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,\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@@ -1508,42 +1584,47 @@\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+ 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

          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@@ -1584,15 +1665,17 @@\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+ 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

            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@@ -1613,18 +1696,19 @@\n href=\"primitives.html#allegro_line_join\">ALLEGRO_LINE_JOIN

              \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+
                 ALLEGRO_COLOR color)\n+void al_draw_filled_polygon(const float *vertices, int vertex_count,\n+   ALLEGRO_COLOR color)
              \n

              Source\n+href=\"https://github.com/liballeg/allegro5/blob/master/addons/primitives/polygon.c#L54\">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
              • vertex_count - Number of vertices in the array
              • \n
              • color - Color of the filled polygon
              • \n@@ -1639,15 +1723,17 @@\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+ 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

                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@@ -1694,15 +1780,18 @@\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+ 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

                  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@@ -1722,15 +1811,16 @@\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@@ -1752,15 +1842,16 @@\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@@ -1822,15 +1914,16 @@\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@@ -1844,15 +1937,16 @@\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@@ -1901,15 +1995,16 @@\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@@ -1962,35 +2057,38 @@\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@@ -2009,15 +2107,16 @@\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@@ -2039,15 +2138,16 @@\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@@ -2076,15 +2177,16 @@\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,35 +114,39 @@\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@@ -222,78 +226,90 @@\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@@ -301,14 +317,16 @@\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@@ -316,14 +334,17 @@\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_thf\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@@ -376,14 +397,16 @@\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@@ -394,14 +417,16 @@\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@@ -411,14 +436,16 @@\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@@ -426,54 +453,61 @@\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@@ -484,14 +518,17 @@\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@@ -502,14 +539,16 @@\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@@ -519,26 +558,30 @@\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@@ -551,14 +594,17 @@\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@@ -588,14 +634,16 @@\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@@ -616,14 +664,16 @@\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@@ -635,14 +685,16 @@\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 sta\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@@ -658,14 +710,17 @@\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@@ -685,14 +740,20 @@\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@@ -718,14 +779,18 @@\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@@ -742,37 +807,42 @@\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@@ -789,24 +859,27 @@\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@@ -816,31 +889,35 @@\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@@ -856,23 +933,26 @@\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@@ -881,31 +961,36 @@\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@@ -932,14 +1017,16 @@\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@@ -947,14 +1034,15 @@\n * thickness - Thickness of the line, pass <= 0 to draw hairline lines\n * miter_limit - Parameter for miter join style\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+ 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@@ -964,14 +1052,16 @@\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@@ -1007,14 +1097,17 @@\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@@ -1030,14 +1123,15 @@\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@@ -1048,24 +1142,26 @@\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@@ -1093,14 +1189,15 @@\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@@ -1110,14 +1207,15 @@\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@@ -1155,14 +1253,15 @@\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@@ -1206,29 +1305,32 @@\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@@ -1236,14 +1338,15 @@\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@@ -1253,34 +1356,37 @@\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,15 +214,16 @@\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@@ -239,15 +240,16 @@\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@@ -273,15 +275,16 @@\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,28 +63,30 @@\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@@ -100,14 +102,15 @@\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,15 +184,16 @@\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@@ -228,15 +229,16 @@\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,14 +49,15 @@\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@@ -82,14 +83,15 @@\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,15 +232,16 @@\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@@ -839,15 +840,16 @@\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,14 +81,15 @@\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@@ -572,14 +573,15 @@\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,43 +223,46 @@\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/timer.html", "source2": "./usr/share/doc/allegro5-doc/refman/timer.html", "unified_diff": "@@ -208,53 +208,58 @@\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,31 +200,34 @@\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@@ -238,28 +241,30 @@\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,46 +56,51 @@\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,15 +301,16 @@\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,14 +130,15 @@\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,15 +436,16 @@\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@@ -453,15 +454,16 @@\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@@ -262,15 +263,16 @@\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@@ -284,65 +286,71 @@\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@@ -365,111 +373,120 @@\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@@ -477,15 +494,16 @@\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@@ -520,30 +539,32 @@\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,14 +70,15 @@\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@@ -89,14 +90,15 @@\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@@ -106,46 +108,52 @@\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@@ -157,91 +165,102 @@\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@@ -254,22 +273,25 @@\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_AUDIO_DEPTH\n+enum ALLEGRO_AUDIO_DEPTH\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Sample depth and type as well as signedness.\n Mixers only use 32-bit signed float (-1..+1), or 16-bit signed integers.\n Signedness is determined by an \\[lq]unsigned\\[rq] bit-flag applied to\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n+typedef struct ALLEGRO_AUDIO_DEVICE ALLEGRO_AUDIO_DEVICE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_AUDIO_EVENT_TYPE\n+enum ALLEGRO_AUDIO_EVENT_TYPE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n+#define ALLEGRO_AUDIO_PAN_NONE (-1000.0f)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n+typedef struct ALLEGRO_AUDIO_RECORDER ALLEGRO_AUDIO_RECORDER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An opaque datatype that represents a recording device.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Structure that holds the audio recorder event data.\n Every event type will contain:\n .IP \\[bu] 2\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n+typedef struct ALLEGRO_AUDIO_STREAM ALLEGRO_AUDIO_STREAM;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n+typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_BITMAP_WRAP {\n+typedef enum ALLEGRO_BITMAP_WRAP {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n+#define ALLEGRO_BPM_TO_SECS(x) (60.0 / (x))\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n+#define ALLEGRO_BPS_TO_SECS(x) (1.0 / (x))\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_CHANNEL_CONF\n+enum ALLEGRO_CHANNEL_CONF\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Speaker configuration (mono, stereo, 2.1, etc).\n .IP \\[bu] 2\n ALLEGRO_CHANNEL_CONF_1\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n+typedef struct ALLEGRO_COLOR ALLEGRO_COLOR;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_COND ALLEGRO_COND;\n+typedef struct ALLEGRO_COND ALLEGRO_COND;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n+typedef struct ALLEGRO_CONFIG ALLEGRO_CONFIG;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n+typedef struct ALLEGRO_CONFIG_ENTRY ALLEGRO_CONFIG_ENTRY;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An opaque structure used for iterating across entries in a configuration\n section.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n+typedef struct ALLEGRO_CONFIG_SECTION ALLEGRO_CONFIG_SECTION;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An opaque structure used for iterating across sections in a\n configuration structure.\n .SH SEE ALSO\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n+typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_DISPLAY_MODE\n+typedef struct ALLEGRO_DISPLAY_MODE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Used for fullscreen mode queries.\n Contains information about a supported fullscreen modes.\n .IP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n+typedef union ALLEGRO_EVENT ALLEGRO_EVENT;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n+typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n+typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef unsigned int ALLEGRO_EVENT_TYPE;\n+typedef unsigned int ALLEGRO_EVENT_TYPE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An integer used to distinguish between different types of events.\n .SH SEE ALSO\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n+#define ALLEGRO_EVENT_TYPE_IS_USER(t) ((t) >= 512)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n+typedef struct ALLEGRO_FILE ALLEGRO_FILE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n+typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FILE_INTERFACE\n+typedef struct ALLEGRO_FILE_INTERFACE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_FILE_MODE\n+typedef enum ALLEGRO_FILE_MODE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Filesystem modes/types\n .IP \\[bu] 2\n ALLEGRO_FILEMODE_READ - Readable\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n+typedef struct ALLEGRO_FONT ALLEGRO_FONT;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n+typedef enum ALLEGRO_FOR_EACH_FS_ENTRY_RESULT {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return values for the callbacks of al_for_each_fs_entry(3alleg5) and for\n that function itself.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n+typedef struct ALLEGRO_FS_ENTRY ALLEGRO_FS_ENTRY;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Opaque filesystem entry object.\n Represents a file or a directory (check with\n al_get_fs_entry_mode(3alleg5)).\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n+typedef struct ALLEGRO_FS_INTERFACE ALLEGRO_FS_INTERFACE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n The available functions you can provide for a filesystem.\n They are:\n .IP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n+typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n A structure containing the properties of a character in a font.\n .IP\n .nf\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n+typedef struct ALLEGRO_HAPTIC ALLEGRO_HAPTIC;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This is an abstract data type representing a haptic device that supports\n force feedback or vibration.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_HAPTIC_CONSTANTS\n+enum ALLEGRO_HAPTIC_CONSTANTS\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n struct ALLEGRO_HAPTIC_EFFECT\n+struct ALLEGRO_HAPTIC_EFFECT\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n+typedef struct ALLEGRO_INDEX_BUFFER ALLEGRO_INDEX_BUFFER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_JOYFLAGS\n+enum ALLEGRO_JOYFLAGS\n \\f[R]\n .fi\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n+typedef struct ALLEGRO_JOYSTICK ALLEGRO_JOYSTICK;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This is an abstract data type representing a physical joystick.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n+typedef struct ALLEGRO_JOYSTICK_STATE ALLEGRO_JOYSTICK_STATE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n+typedef struct ALLEGRO_KEYBOARD_STATE ALLEGRO_KEYBOARD_STATE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_LINE_CAP\n+typedef enum ALLEGRO_LINE_CAP\n \\f[R]\n .fi\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_LINE_CAP_NONE\n .IP \\[bu] 2\n ALLEGRO_LINE_CAP_SQUARE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_LINE_JOIN\n+typedef enum ALLEGRO_LINE_JOIN\n \\f[R]\n .fi\n .SH DESCRIPTION\n .IP \\[bu] 2\n ALLEGRO_LINE_JOIN_NONE\n .IP \\[bu] 2\n ALLEGRO_LINE_JOIN_BEVEL\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n+typedef struct ALLEGRO_LOCKED_REGION ALLEGRO_LOCKED_REGION;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n+typedef struct ALLEGRO_MEMORY_INTERFACE ALLEGRO_MEMORY_INTERFACE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This structure has the following fields.\n .IP\n .nf\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n+typedef struct ALLEGRO_MENU ALLEGRO_MENU;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MENU_INFO {\n+typedef struct ALLEGRO_MENU_INFO {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n+typedef struct ALLEGRO_MIXER ALLEGRO_MIXER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_MIXER_QUALITY\n+enum ALLEGRO_MIXER_QUALITY\n \\f[R]\n .fi\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MONITOR_INFO\n+typedef struct ALLEGRO_MONITOR_INFO\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n+typedef enum ALLEGRO_MOUSE_EMULATION_MODE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Type of mouse emulation to apply.\n .TP\n ALLEGRO_MOUSE_EMULATION_NONE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n+typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Public fields (read only):\n .IP \\[bu] 2\n x - mouse x 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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n+#define ALLEGRO_MSECS_TO_SECS(x) ((x) / 1000.0)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n+typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n+#define ALLEGRO_NEW_WINDOW_TITLE_MAX_SIZE 255\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_PI 3.14159265358979323846\n+#define ALLEGRO_PI 3.14159265358979323846\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_PIXEL_FORMAT\n+typedef enum ALLEGRO_PIXEL_FORMAT\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Pixel formats.\n Each pixel format specifies the exact size and bit layout of a pixel in\n memory.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_PLAYMODE\n+enum ALLEGRO_PLAYMODE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Sample and stream playback mode.\n .IP \\[bu] 2\n ALLEGRO_PLAYMODE_ONCE - the sample/stream is played from start to finish\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_PRIM_ATTR\n+typedef enum ALLEGRO_PRIM_ATTR\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n+typedef enum ALLEGRO_PRIM_BUFFER_FLAGS\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_PRIM_QUALITY 10\n+#define ALLEGRO_PRIM_QUALITY 10\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_PRIM_STORAGE\n+typedef enum ALLEGRO_PRIM_STORAGE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_PRIM_TYPE\n+typedef enum ALLEGRO_PRIM_TYPE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_RENDER_FUNCTION {\n+typedef enum ALLEGRO_RENDER_FUNCTION {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Possible functions are:\n .IP \\[bu] 2\n ALLEGRO_RENDER_NEVER\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_RENDER_STATE {\n+typedef enum ALLEGRO_RENDER_STATE {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Possible render states which can be set with\n al_set_render_state(3alleg5):\n .TP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n+typedef struct ALLEGRO_SAMPLE ALLEGRO_SAMPLE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n+typedef struct ALLEGRO_SAMPLE_ID ALLEGRO_SAMPLE_ID;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n+typedef struct ALLEGRO_SAMPLE_INSTANCE ALLEGRO_SAMPLE_INSTANCE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_SEEK\n+typedef enum ALLEGRO_SEEK\n \\f[R]\n .fi\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n+typedef struct ALLEGRO_SHADER ALLEGRO_SHADER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n+typedef enum ALLEGRO_SHADER_PLATFORM ALLEGRO_SHADER_PLATFORM;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n+typedef enum ALLEGRO_SHADER_TYPE ALLEGRO_SHADER_TYPE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n \n \n typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n+typedef struct ALLEGRO_STATE ALLEGRO_STATE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Opaque type which is passed to\n al_store_state(3alleg5)/al_restore_state(3alleg5).\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n \n \n typedef enum ALLEGRO_STATE_FLAGS\n+typedef enum ALLEGRO_STATE_FLAGS\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_SYSTEM_ID {\n+enum ALLEGRO_SYSTEM_ID {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n The system Allegro is running on.\n .IP \\[bu] 2\n ALLEGRO_SYSTEM_ID_UNKNOWN - Unknown system.\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n+typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n+typedef struct ALLEGRO_THREAD ALLEGRO_THREAD;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An opaque structure representing a thread.\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n+typedef struct ALLEGRO_TIMER ALLEGRO_TIMER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n+typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An abstract data type representing a physical touch screen or touch pad.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n+#define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n The maximum amount of simultaneous touches that can be detected.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This is a structure that holds a snapshot of all simultaneous touches at\n a particular instant.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n+typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n+typedef struct ALLEGRO_TRANSFORM ALLEGRO_TRANSFORM;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n+#define ALLEGRO_USECS_TO_SECS(x) ((x) / 1000000.0)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n+typedef struct ALLEGRO_USER_EVENT ALLEGRO_USER_EVENT;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n An event structure that can be emitted by user event sources.\n These are the public fields:\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct _al_tagbstring ALLEGRO_USTR;\n+typedef struct _al_tagbstring ALLEGRO_USTR;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct _al_tagbstring ALLEGRO_USTR_INFO;\n+typedef struct _al_tagbstring ALLEGRO_USTR_INFO;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n A type that holds additional information for an ALLEGRO_USTR(3alleg5)\n that references an external memory buffer.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n+typedef struct ALLEGRO_VERTEX ALLEGRO_VERTEX;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n+typedef struct ALLEGRO_VERTEX_BUFFER ALLEGRO_VERTEX_BUFFER;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n #define ALLEGRO_VERTEX_CACHE_SIZE 256\n+#define ALLEGRO_VERTEX_CACHE_SIZE 256\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n+typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n A vertex declaration.\n This opaque structure is responsible for describing the format and\n layout of a user defined custom vertex.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n+typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n A small structure describing a certain element of a vertex.\n E.g.\n the position of the vertex, or its color.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n enum ALLEGRO_VIDEO_EVENT_TYPE\n+enum ALLEGRO_VIDEO_EVENT_TYPE\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Events sent by al_get_video_event_source(3alleg5).\n .SS ALLEGRO_EVENT_VIDEO_FRAME_SHOW\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n+typedef struct ALLEGRO_VOICE ALLEGRO_VOICE;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n+typedef enum ALLEGRO_WRITE_MASK_FLAGS {\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Each enabled bit means the corresponding value is written, a disabled\n bit means it is not.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Attach an audio stream to a mixer.\n The stream must not already be attached to anything.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Attach a sample instance to a mixer.\n The instance must not already be attached to anything.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n+ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Builds a menu based on the specifications of a sequence of\n \\f[V]ALLEGRO_MENU_INFO\\f[R] elements.\n .PP\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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_thf\n+ int num_points)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n When \\f[V]thickness <= 0\\f[R] this function computes positions of\n \\f[V]num_points\\f[R] regularly spaced points on an elliptical arc.\n When \\f[V]thickness > 0\\f[R] this function computes two sets of points,\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Calculates a ribbon given an array of points.\n The ribbon will go through all of the passed points.\n If \\f[V]thickness <= 0\\f[R], then \\f[V]num_segments\\f[R] of points are\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Calculates a B\u00e9zier spline given 4 control points.\n If \\f[V]thickness <= 0\\f[R], then \\f[V]num_segments\\f[R] of points are\n required in the destination, otherwise twice as many are needed.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like calloc() in the C standard library, but the implementation may be\n overridden.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n+ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Exactly like al_clone_menu(3alleg5), except that the copy is for a popup\n menu.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n+void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Closes a message log window opened with al_open_native_text_log(3alleg5)\n earlier.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_close_video(ALLEGRO_VIDEO *video)\n+void al_close_video(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Closes the video and frees all allocated resources.\n The video pointer is invalid after the function returns.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return an ALLEGRO_COLOR(3alleg5) structure from CMYK values (cyan,\n magenta, yellow, black).\n .SH SEE ALSO\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert CMYK values to RGB values.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return an ALLEGRO_COLOR(3alleg5) structure from HSL (hue, saturation,\n lightness) values.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert values in HSL color model to RGB color model.\n .PP\n Parameters:\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return an ALLEGRO_COLOR(3alleg5) structure from HSV (hue, saturation,\n value) values.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert values in HSV color model to RGB color model.\n .PP\n Parameters:\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_COLOR al_color_html(char const *string)\n+ALLEGRO_COLOR al_color_html(char const *string)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert CIE L*a*b* color values to RGB color space.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert CIE LCH color values to RGB color space.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert linear sRGB color values to gamma corrected (i.e.\\ normal) RGB\n values.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_COLOR al_color_name(char const *name)\n+ALLEGRO_COLOR al_color_name(char const *name)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return an ALLEGRO_COLOR(3alleg5) with the given name.\n If the color is not found then black is returned.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Parameters:\n .IP \\[bu] 2\n name - The (lowercase) name of the color.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert Oklab color values to RGB.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Each RGB color can be represented in CMYK with a K component of 0 with\n the following formula:\n .IP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Create an HTML-style string representation of an ALLEGRO_COLOR(3alleg5),\n e.g.\\ #00faff.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to L*a*b* color space.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to CIE LCH color space.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert gamma corrected sRGB values (i.e.\\ normal RGB) to linear sRGB\n space.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to the Oklab color space.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to xyY color space.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to XYZ color space.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_color_rgb_to_yuv(float red, float green, float blue,\n+void al_color_rgb_to_yuv(float red, float green, float blue,\n float *y, float *u, float *v)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert RGB values to YUV color space.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert xyY color values to RGB color space.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert XYZ color values to RGB color space.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return an ALLEGRO_COLOR(3alleg5) structure from YUV values.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Convert YUV color values to RGB color space.\n .SH SEE ALSO\n .PP\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_FONT *al_create_builtin_font(void)\n+ALLEGRO_FONT *al_create_builtin_font(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MENU *al_create_menu(void)\n+ALLEGRO_MENU *al_create_menu(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Creates a menu container that can hold menu items.\n .PP\n Returns \\f[V]NULL\\f[R] on failure.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,15 +24,20 @@\n .nf\n \\f[C]\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+ char const *patterns,e_frequency(const ALLEGRO_VOICE *voice)\n+ int mode)\n+ALLEGRO_FILECHOOSER *al_create_native_file_dialog(\n+ char const *initial_path,\n+ char const *title,\n+ char const *patterns,nt,\n int mode)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Creates a new native file dialog.\n You should only have one such dialog opened at a time.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MENU *al_create_popup_menu(void)\n+ALLEGRO_MENU *al_create_popup_menu(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Create a sample data structure from the supplied buffer.\n If \\f[V]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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Creates a vertex declaration, which describes a custom vertex format.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+void al_destroy_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n+void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroy an audio stream which was created with\n al_create_audio_stream(3alleg5) or al_load_audio_stream(3alleg5).\n .RS\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_font(ALLEGRO_FONT *f)\n+void al_destroy_font(ALLEGRO_FONT *f)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Frees the memory being used by a font structure.\n Does nothing if passed NULL.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n+void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroys a index buffer.\n Does nothing if passed NULL.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_menu(ALLEGRO_MENU *menu)\n+void al_destroy_menu(ALLEGRO_MENU *menu)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n+void al_destroy_mixer(ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroys the mixer.\n .SH SEE ALSO\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n+void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n+void al_destroy_sample(ALLEGRO_SAMPLE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Free the sample data structure.\n If it was created with the \\f[V]free_buf\\f[R] parameter set to true,\n then the buffer will be freed with al_free(3alleg5).\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n+void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n+void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroys a vertex buffer.\n Does nothing if passed NULL.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n+void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroys a vertex declaration.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_destroy_voice(ALLEGRO_VOICE *voice)\n+void al_destroy_voice(ALLEGRO_VOICE *voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Destroys the voice and deallocates it from the digital driver.\n Does nothing if the voice is NULL.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n+bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Detach the stream from whatever it\\[cq]s attached to, if anything.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n+bool al_detach_mixer(ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Detach the mixer from whatever it is attached to, if anything.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n+bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Detach the sample instance from whatever it\\[cq]s attached to, if\n anything.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_detach_voice(ALLEGRO_VOICE *voice)\n+void al_detach_voice(ALLEGRO_VOICE *voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Detaches the mixer, sample instance or audio stream from the voice.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n+void al_disable_menu_event_source(ALLEGRO_MENU *menu)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Disables a unique event source for the menu, causing it to use the\n default event source.\n .SH SINCE\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": "@@ -25,14 +25,18 @@\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This function processes the \\f[V]text\\f[R] and splits it into lines as\n al_draw_multiline_text(3alleg5) would, and then calls the callback\n \\f[V]cb\\f[R] once for every line.\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": "@@ -25,14 +25,18 @@\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n+void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an arc.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an outlined circle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an outlined ellipse.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an elliptical arc.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a filled circle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a filled ellipse.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a filled pieslice (filled circular sector).\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -21,14 +21,15 @@\n al_draw_filled_polygon - Allegro 5 API\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n+ ALLEGRO_COLOR color)\n void al_draw_filled_polygon(const float *vertices, int vertex_count,\n ALLEGRO_COLOR color)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draw a filled, simple polygon.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a filled rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an filled rounded rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a filled triangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws the glyph that corresponds with \\f[V]codepoint\\f[R] in the given\n \\f[V]color\\f[R] using the given \\f[V]font\\f[R].\n If \\f[V]font\\f[R] does not have such a glyph, nothing will be drawn.\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like al_draw_text(3alleg5), but justifies the string to the region\n x1-x2.\n .PP\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a line segment between two points.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like al_draw_text(3alleg5), but this function supports drawing multiple\n lines of text.\n It will break \\f[V]text\\f[R] in lines based on its contents and 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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a pieslice (outlined circular sector).\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draw an unfilled polygon.\n This is the same as passing \\f[V]ALLEGRO_LINE_CAP_CLOSED\\f[R] to\n al_draw_polyline(3alleg5).\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draw a series of line segments.\n .IP \\[bu] 2\n vertices - Interleaved array of (x, y) vertex coordinates\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a subset of the passed vertex array.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an outlined rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an outlined rounded rectangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -25,14 +25,18 @@\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -27,14 +27,20 @@\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a B\u00e9zier spline given 4 control points.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Writes the NUL-terminated string \\f[V]text\\f[R] onto the target bitmap\n at position \\f[V]x\\f[R], \\f[V]y\\f[R], using the specified\n \\f[V]font\\f[R].\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws an outlined triangle.\n .PP\n \\f[I]Parameters:\\f[R]\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,16 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n+ ALLEGRO_BITMAP* texture, int sta\n+int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,\n ALLEGRO_BITMAP* texture, int start, int end, int type)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Draws a subset of the passed vertex buffer.\n The vertex buffer must not be locked.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Searches in the \\f[V]haystack\\f[R] menu for any submenu with the given\n \\f[V]id\\f[R].\n (Note that this only represents a literal ID, and cannot be used as an\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Searches in the \\f[V]haystack\\f[R] menu for an item with the given\n \\f[V]id\\f[R].\n (Note that this only represents a literal ID, and cannot be used as an\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n typedef int32_t al_fixed;\n+typedef int32_t al_fixed;\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n A fixed point number.\n .PP\n Allegro provides some routines for working with fixed point numbers, and\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like free() in the C standard library, but the implementation may be\n overridden.\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_audio_version(void)\n+uint32_t al_get_allegro_audio_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_color_version(void)\n+uint32_t al_get_allegro_color_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_font_version(void)\n+uint32_t al_get_allegro_font_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_image_version(void)\n+uint32_t al_get_allegro_image_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_memfile_version(void)\n+uint32_t al_get_allegro_memfile_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_native_dialog_version(void)\n+uint32_t al_get_allegro_native_dialog_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_physfs_version(void)\n+uint32_t al_get_allegro_physfs_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_primitives_version(void)\n+uint32_t al_get_allegro_primitives_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_ttf_version(void)\n+uint32_t al_get_allegro_ttf_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n uint32_t al_get_allegro_video_version(void)\n+uint32_t al_get_allegro_video_version(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the (compiled) version of the addon, in the same format as\n al_get_allegro_version(3alleg5).\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the user friendly display name of the device.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the output audio device of the specified index.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the event as an ALLEGRO_AUDIO_RECORDER_EVENT(3alleg5).\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the event source for the recorder that generates the various\n recording events.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return whether the stream is attached to something.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the stream channel configuration.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the stream audio depth.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Retrieve the associated event source.\n .PP\n See al_get_audio_stream_fragment(3alleg5) for a description of the\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the playback gain of the stream.\n .SH SEE ALSO\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the length of the stream in seconds, if known.\n Otherwise returns zero.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 *streamrgb_to_yuv\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the pan value of the stream.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the number of samples consumed by the parent since the audio stream\n was started.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return true if the stream is playing.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the playback mode of the stream.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the relative playback speed of the stream.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MIXER *al_get_default_mixer(void)\n+ALLEGRO_MIXER *al_get_default_mixer(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_VOICE *al_get_default_voice(void)\n+ALLEGRO_VOICE *al_get_default_voice(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the default voice or NULL if there is none.\n .SH SINCE\n .PP\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": "@@ -21,15 +21,15 @@\n al_get_display_menu - Allegro 5 API\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n-ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *display)\n+ALLEGRO_MENU *al_get_display_menu(ALLEGRO_DISPLAY *displayrt, int end, int type)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the menu associated with the \\f[V]display\\f[R], or\n \\f[V]NULL\\f[R] if it does not have a menu.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n+ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Retrieves the fallback font for this font or NULL.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n int al_get_font_ascent(const ALLEGRO_FONT *f)\n+int al_get_font_ascent(const ALLEGRO_FONT *f)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the ascent of the specified font.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n int al_get_font_descent(const ALLEGRO_FONT *f)\n+int al_get_font_descent(const ALLEGRO_FONT *f)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the descent of the specified font.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n This function returns the width in pixels of the glyph that corresponds\n with \\f[V]codepoint\\f[R] in the font \\f[V]font\\f[R].\n Returns zero if the font does not have such a glyph.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the size of the index buffer\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the caption associated with the menu item.\n It is valid as long as the caption is not modified.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the currently set flags.\n See al_insert_menu_item(3alleg5) for a description of the available\n flags.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n+bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return true if the mixer is attached to something.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the mixer channel configuration.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the mixer audio depth.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the mixer frequency (in Hz).\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n+float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the mixer gain (amplification factor).\n The default is 1.0.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n+bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return true if the mixer is playing.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the mixer quality.\n .SH SEE ALSO\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns one of the selected paths with index \\f[V]i\\f[R].\n The index should range from \\f[V]0\\f[R] to the return value of\n al_get_native_file_dialog_count(3alleg5) \\f[V]-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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get an event source for a text log window.\n The possible events are:\n .TP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n int al_get_num_audio_output_devices()\n+int al_get_num_audio_output_devices()\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the number of available audio output devices on the system.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n+ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the channel configuration of the sample.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n+void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return a pointer to the raw sample data.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the audio depth of the sample.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the frequency (in Hz) of the sample.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return whether the sample instance is attached to something.\n .SH SEE ALSO\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the channel configuration of the sample instance\\[cq]s sample\n data.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the audio depth of the sample instance\\[cq]s sample data.\n .SH SEE ALSO\n .PP\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": "@@ -22,12 +22,13 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the playback gain of the sample instance.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the pan value of the sample instance.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the playback mode of the sample instance.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get the playback position of a sample instance.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the relative playback speed of the sample instance.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the length of the sample instance in seconds, assuming a playback\n speed of 1.0.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the length of the sample in sample values.\n .SH SEE ALSO\n .PP\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Calculates the length of a string in a particular font, in pixels.\n .SH SEE ALSO\n .PP\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like al_get_text_width(3alleg5) but expects an ALLEGRO_USTR.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the size of the vertex buffer\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n+double al_get_video_audio_rate(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the audio rate of the video, in Hz.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Get an event source for the video.\n The possible events are described under\n ALLEGRO_VIDEO_EVENT_TYPE(3alleg5).\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n double al_get_video_fps(ALLEGRO_VIDEO *video)\n+double al_get_video_fps(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns the speed of the video in frames per second.\n Often this will not be an integer value.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n+ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n+float al_get_video_scaled_height(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n+float al_get_video_scaled_width(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the channel configuration of the voice.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return the audio depth of the voice.\n .SH SEE ALSO\n .PP\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": "@@ -21,13 +21,13 @@\n al_get_voice_frequency - Allegro 5 API\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n-unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)\n+unsigned int al_get_voic_stream_loader\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n+bool al_get_voice_playing(const ALLEGRO_VOICE *voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Return true if the voice is currently playing.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n char const *al_identify_sample(char const *filename)\n+char const *al_identify_sample(char const *filename)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n+char const *al_identify_sample_f(ALLEGRO_FILE *fp)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n char const *al_identify_video(char const *filename)\n+char const *al_identify_video(char const *filename)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_acodec_addon(void)\n+bool al_init_acodec_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_font_addon(void)\n+bool al_init_font_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Initialise the font addon.\n .PP\n Note that if you intend to load bitmap fonts, you will need to\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_image_addon(void)\n+bool al_init_image_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_native_dialog_addon(void)\n+bool al_init_native_dialog_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Initialise the native dialog addon.\n .PP\n Returns true on success, false on error.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_primitives_addon(void)\n+bool al_init_primitives_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Initializes the primitives addon.\n .PP\n \\f[I]Returns:\\f[R] True on success, false on failure.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_ttf_addon(void)\n+bool al_init_ttf_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_init_video_addon(void)\n+bool al_init_video_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Initializes the video addon.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Inserts a menu item at the spot specified.\n See the introductory text for a detailed explanation of how the\n \\f[V]pos\\f[R] parameter is interpreted.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_install_audio(void)\n+bool al_install_audio(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Install the audio subsystem.\n .PP\n Returns true on success, false on failure.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_acodec_addon_initialized(void)\n+bool al_is_acodec_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the acodec addon is initialized, otherwise returns\n false.\n .SH SINCE\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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_audio_installed(void)\n+bool al_is_audio_installed(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the audio recorder is currently capturing data and\n generating events.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_font_addon_initialized(void)\n+bool al_is_font_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the font addon is initialized, otherwise returns false.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_image_addon_initialized(void)\n+bool al_is_image_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the image addon is initialized, otherwise returns false.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_native_dialog_addon_initialized(void)\n+bool al_is_native_dialog_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the native dialog addon is initialized, otherwise\n returns false.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_primitives_addon_initialized(void)\n+bool al_is_primitives_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the primitives addon is initialized, otherwise returns\n false.\n .SH SINCE\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_ttf_addon_initialized(void)\n+bool al_is_ttf_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the TTF addon is initialized, otherwise returns false.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_video_addon_initialized(void)\n+bool al_is_video_addon_initialized(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the video addon is initialized, otherwise returns false.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_is_video_playing(ALLEGRO_VIDEO *video)\n+bool al_is_video_playing(ALLEGRO_VIDEO *video)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the video is currently playing.\n .SH SINCE\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n+ALLEGRO_FONT *al_load_bitmap_font(const char *fname)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n+ALLEGRO_SAMPLE *al_load_sample(const char *filename)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like malloc() in the C standard library, but the implementation may be\n overridden.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n+bool al_mixer_has_attachments(const ALLEGRO_MIXER* mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the mixer has something attached to it.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_VIDEO *al_open_video(char const *filename)\n+ALLEGRO_VIDEO *al_open_video(char const *filename)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n+bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Play the sample instance.\n Returns true on success, false on failure.\n .SH SEE ALSO\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like realloc() in the C standard library, but the implementation may be\n overridden.\n .PP\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": "@@ -24,14 +24,16 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Informs Allegro of a new font file type, telling it how to load files of\n this format.\n .PP\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n+ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_reserve_samples(int reserve_samples)\n+bool al_reserve_samples(int reserve_samples)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_restore_default_mixer(void)\n+bool al_restore_default_mixer(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n+bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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[V]val\\f[R]) is filled with new data.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the playback gain of the stream.\n .PP\n Returns true on success, false on failure.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Change whether the stream is playing.\n .PP\n Returns true on success, false on failure.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the playback mode of the stream.\n .PP\n Returns true on success, false on failure.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the relative playback speed of the stream.\n 1.0 means normal speed.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n+bool al_set_default_mixer(ALLEGRO_MIXER *mixer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_set_default_voice(ALLEGRO_VOICE *voice)\n+void al_set_default_voice(ALLEGRO_VOICE *voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Associates the \\f[V]menu\\f[R] with the \\f[V]display\\f[R] and shows it.\n If there was a previous menu associated with the display, it will be\n destroyed.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Updates the menu item caption with the new \\f[V]caption\\f[R].\n This will invalidate any previous calls to\n al_get_menu_item_caption(3alleg5).\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Updates the menu item\\[cq]s flags.\n See al_insert_menu_item(3alleg5) for a description of the available\n flags.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Sets the icon for the specified menu item.\n The menu assumes ownership of the \\f[V]ALLEGRO_BITMAP\\f[R] and may\n invalidate the pointer, so you must clone it if you wish to continue\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the mixer frequency (in Hz).\n This will only work if the mixer is not attached to anything.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the mixer gain (amplification factor).\n .PP\n Returns true on success, false on failure.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Change whether the mixer is playing.\n .PP\n Returns true on success, false on failure.\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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -21,15 +21,16 @@\n al_set_mixer_quality - Allegro 5 API\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n-bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)\n+bool al_set_mixer_quality(ALLEGRO_MIXEal_get_allegro_acodec_version\n+bool al_set_mixer_quality(ALLEGRO_MIXEe_frequency(const ALLEGRO_VOICE *voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the mixer quality.\n This can only succeed if the mixer does not have anything attached to\n it.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_set_physfs_file_interface(void)\n+void al_set_physfs_file_interface(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Change the sample data that a sample instance plays.\n This can be quite an involved process.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the playback gain of the sample instance.\n .PP\n Returns true on success, false on failure.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the playback mode of the sample instance.\n .PP\n Returns true on success, false on failure.\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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the playback position of a sample instance.\n .PP\n Returns true on success, false on failure.\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Set the relative playback speed of the sample instance.\n 1.0 means normal speed.\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Paused or resumes playback.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -23,14 +23,16 @@\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Show the dialog window.\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_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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_font_addon(void)\n+void al_shutdown_font_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_image_addon(void)\n+void al_shutdown_image_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_native_dialog_addon(void)\n+void al_shutdown_native_dialog_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Shut down the native dialog addon.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_primitives_addon(void)\n+void al_shutdown_primitives_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,13 +22,14 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_ttf_addon(void)\n+void al_shutdown_ttf_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_shutdown_video_addon(void)\n+void al_shutdown_video_addon(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+bool al_start_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Starts streaming the video from the beginning.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Like al_start_video(3alleg5) but audio is routed to the provided voice.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n+void al_stop_audio_recorder(ALLEGRO_AUDIO_RECORDER *r)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n+void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Stop the sample started by al_play_sample(3alleg5).\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n+bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Stop an sample instance playing.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_stop_samples(void)\n+void al_stop_samples(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Stop all samples started by al_play_sample(3alleg5).\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -24,14 +24,17 @@\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_uninstall_audio(void)\n+void al_uninstall_audio(void)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Uninstalls the audio subsystem.\n .SH SEE ALSO\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n+void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Unlocks a previously locked index buffer.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\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 \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\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"}]}, {"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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n+void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Unlocks a previously locked vertex buffer.\n .SH SINCE\n .PP\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": "@@ -22,14 +22,15 @@\n .SH SYNOPSIS\n .IP\n .nf\n \\f[C]\n #include \n \n bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n+bool al_voice_has_attachments(const ALLEGRO_VOICE* voice)\n \\f[R]\n .fi\n .SH DESCRIPTION\n .PP\n Returns true if the voice has something attached to it.\n .SH SEE ALSO\n .PP\n"}]}]}, {"source1": "xz --list", "source2": "xz --list", "unified_diff": "@@ -1,13 +1,13 @@\n Streams: 1\n Blocks: 1\n- Compressed size: 1447.7 KiB (1482432 B)\n- Uncompressed size: 5890.0 KiB (6031360 B)\n- Ratio: 0.246\n+ Compressed size: 1456.5 KiB (1491472 B)\n+ Uncompressed size: 6050.0 KiB (6195200 B)\n+ Ratio: 0.241\n Check: CRC64\n Stream Padding: 0 B\n Streams:\n Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding\n- 1 1 0 0 1482432 6031360 0.246 CRC64 0\n+ 1 1 0 0 1491472 6195200 0.241 CRC64 0\n Blocks:\n Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check\n- 1 1 12 0 1482392 6031360 0.246 CRC64\n+ 1 1 12 0 1491432 6195200 0.241 CRC64\n"}]}]}, {"source1": "liballegro5-dev_5.2.9.1+dfsg-2_amd64.deb", "source2": "liballegro5-dev_5.2.9.1+dfsg-2_amd64.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 3432 2024-05-03 10:28:35.000000 control.tar.xz\n--rw-r--r-- 0 0 0 112604 2024-05-03 10:28:35.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 112600 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": "./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": "@@ -92,15 +92,15 @@\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/include/x86_64-linux-gnu/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/include/x86_64-linux-gnu/allegro5/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/include/x86_64-linux-gnu/allegro5/platform/\n -rw-r--r-- 0 root (0) root (0) 3942 2024-05-03 10:28:35.000000 ./usr/include/x86_64-linux-gnu/allegro5/platform/alplatf.h\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/lib/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/lib/cmake/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/\n--rw-r--r-- 0 root (0) root (0) 1590 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/AllegroConfig.cmake\n+-rw-r--r-- 0 root (0) root (0) 1586 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/AllegroConfig.cmake\n -rw-r--r-- 0 root (0) root (0) 1861 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/AllegroConfigVersion.cmake\n -rw-r--r-- 0 root (0) root (0) 7616 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/AllegroTargets-none.cmake\n -rw-r--r-- 0 root (0) root (0) 9427 2024-05-03 10:28:35.000000 ./usr/lib/cmake/allegro/AllegroTargets.cmake\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/lib/x86_64-linux-gnu/\n drwxr-xr-x 0 root (0) root (0) 0 2024-05-03 10:28:35.000000 ./usr/lib/x86_64-linux-gnu/pkgconfig/\n -rw-r--r-- 0 root (0) root (0) 314 2024-05-03 10:28:35.000000 ./usr/lib/x86_64-linux-gnu/pkgconfig/allegro-5.pc\n -rw-r--r-- 0 root (0) root (0) 377 2024-05-03 10:28:35.000000 ./usr/lib/x86_64-linux-gnu/pkgconfig/allegro_color-5.pc\n"}, {"source1": "./usr/lib/cmake/allegro/AllegroConfig.cmake", "source2": "./usr/lib/cmake/allegro/AllegroConfig.cmake", "unified_diff": "@@ -31,11 +31,11 @@\n set(ALLEGRO_PKG_VERSION_PATCH 9)\n set(ALLEGRO_PKG_VERSION 5.2.9)\n \n # Architecture, compiler and other low level flags\n set(ALLEGRO_PKG_LIBRARY_ARCHITECTURE \"x86_64-linux-gnu\")\n set(ALLEGRO_PKG_COMPILER \"GNU\")\n set(ALLEGRO_PKG_COMPILER_VERSION \"13.2.0\")\n-set(ALLEGRO_PKG_HOST_SYSTEM \"Linux-6.1.0-21-cloud-amd64\")\n+set(ALLEGRO_PKG_HOST_SYSTEM \"Linux-6.7.12+bpo-amd64\")\n \n # Targets\n include(\"${CMAKE_CURRENT_LIST_DIR}/AllegroTargets.cmake\")\n"}]}, {"source1": "xz --list", "source2": "xz --list", "unified_diff": "@@ -1,13 +1,13 @@\n Streams: 1\n Blocks: 1\n- Compressed size: 110.0 KiB (112604 B)\n+ Compressed size: 110.0 KiB (112600 B)\n Uncompressed size: 880.0 KiB (901120 B)\n Ratio: 0.125\n Check: CRC64\n Stream Padding: 0 B\n Streams:\n Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding\n- 1 1 0 0 112604 901120 0.125 CRC64 0\n+ 1 1 0 0 112600 901120 0.125 CRC64 0\n Blocks:\n Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check\n- 1 1 12 0 112568 901120 0.125 CRC64\n+ 1 1 12 0 112564 901120 0.125 CRC64\n"}]}]}]}