summaryrefslogtreecommitdiff
path: root/readme.txt
blob: 96ed85277cbc4dd1e20c8b11c6ed2b5be57892cb (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


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, the command API has been
converted to a more ordinary collection of subprograms rather than the single
function call with an enum that it is in C.

Please note that at the moment this binding is incomplete. The RIFF chunk API
is not bound, nor are the Cart_Info commands, the Loop_Info command, the
Instrument commands, or the Get/Set Cue commands. If anyone has a pressing need
for them, 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. For all I know I may have just written the virtual functions in
the example program slightly incorrectly.


Dependencies
------------

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

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 is released into the public domain.