diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-05-09 09:01:28 +1200 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-05-09 09:01:28 +1200 |
commit | df06f9d05ab2338a17f5062b15bf59af7b8d6117 (patch) | |
tree | d7bb327743e35e58897af82d2f6d300ccdcf705f | |
parent | ff9d5644c4cb6772dc9b834d1fbb04614f083974 (diff) |
-rw-r--r-- | readme.md | 84 | ||||
-rw-r--r-- | readme.txt | 73 |
2 files changed, 84 insertions, 73 deletions
diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..174280c --- /dev/null +++ b/readme.md @@ -0,0 +1,84 @@ + +## libsndfile Binding for the Ada Programming Language + +This is a thick binding of [libsndfile](https://libsndfile.github.io/libsndfile/) +so effort has been made to get rid of all C-isms and C-specific types wherever +possible. In particular: + +<ul> + <li>All error codes have been converted to exceptions</li> + <li>Void pointers are completely absent</li> + <li>The command API has been mapped to a more ordinary collection of + subprograms instead of the single function it is in C</li> +</ul> + +The package hierarchy is as follows: + +<ul> + <li>Libsndfile (Everything that isn't virtual IO or the command API) + <ul> + <li>Libsndfile.Commands (The command API datatypes and subprograms)</li> + <li>Libsndfile.Virtual (The virtual IO interface)</li> + </ul> + </li> +</ul> + +A few short example programs are available in the `example` subdirectory. + +Please note that at the moment this binding is incomplete, as the RIFF chunk +API is not bound. If anyone has a pressing need for it let me know. + +Finally, there appears to be a subtle bug in the virtual IO that causes the +frame count to be one lower than it should be. I am currently unsure of the +exact cause. Since the behaviour is the same regardless of whether using the +virtual IO in C or in Ada, the likely culprit is in the library itself. + + + +#### Dependencies + +Build time: +<ul> + <li>gcc</li> + <li>GNAT</li> + <li>GPRbuild</li> + <li>libsndfile</li> +</ul> + +Run time: +<ul> + <li>libsndfile</li> +</ul> + + + +#### Building and Installation + +This repository is written to use the GNAT Project Manager build tools. To +build, use the following command + +`gprbuild asndfile.gpr` + +There is a single build switch of `-Xbuild` which can have a value of `release` +(the default) or `debug`. + +To install the binding, use + +`gprinstall -p -m asndfile.gpr` + +The other gpr file `example.gpr` can be used to build the short example +programs provided. + +For further information on the build tools, consult the +[GPRbuild docs](https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug.html). + + + +#### Credits and Licensing + +This binding and the Ada test/example programs were written by Jedidiah Barber. + +All code of this binding and example programs is released into the public +domain. Consult `unlicense.txt` for further information. + + diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 92d267d..0000000 --- a/readme.txt +++ /dev/null @@ -1,73 +0,0 @@ - - -libsndfile Binding for the Ada Programming Language -=================================================== - - -Overview --------- - -This is a thick binding, so effort has been made to get rid of all C-isms and -C-specific types wherever possible. In particular: - - * All error codes have been converted to exceptions - * Void pointers are completely absent - * The command API has been mapped to a more ordinary collection of subprograms - instead of the single function it is in C - -The package hierarchy is as follows: - - * Libsndfile: Everything that isn't virtual IO or the command API - * Libsndfile.Commands: The command API datatypes and subprograms - * Libsndfile.Virtual: The virtual IO interface - -A few short example programs are available in /example/. - -Please note that at the moment this binding is incomplete, as the RIFF chunk -API is not bound. If anyone has a pressing need for it let me know. - -Finally, there appears to be a subtle bug in the virtual IO that causes the -frame count to be one lower than it should be. I am currently unsure of the -exact cause. Since the behaviour is the same regardless of whether using the -virtual IO in C or in Ada, the likely culprit is in the library itself. - - -Dependencies ------------- - -An Ada 2012 compiler and standard library (build) -A C compiler and standard library (build) -gprbuild (build) -libsndfile (run) - - -Build Instructions ------------------- - -Ensure that all dependencies are installed, including any developer or header -packages for libsndfile. Then the following commands will build and install the -binding: - - gprbuild libsndfile.gpr - gprinstall -p -m libsndfile.gpr - -The other gpr file, example.gpr, can be used to build the few short example and -test programs provided. - - -Further Information -------------------- - -C API of libsndfile: -https://libsndfile.github.io/libsndfile/api.html - - -Credits and Legal ------------------ - -This binding and the Ada test/example programs were written by Jedidiah Barber. - -All code of this binding and example programs is released into the public -domain. Consult unlicense.txt for further information. - - |