blob: 92d267d83cfa90a54f113fcc09e2ce39ca5b11cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
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.
|