* Use GitHub's Jekyll static site generator. * Move all documentation to docs/ directory. * Convert HTML to Markdown.
Showing the changes to docs/api.md (1 of 38 files). Show all
Unified · Split
| @@ -0,0 +1,46 @@ | ||
| 1 | +--- | |
| 2 | +layout: default | |
| 3 | +--- | |
| 4 | + | |
| 5 | +# Applications Programming Interface | |
| 6 | + | |
| 7 | +The publically callable functions of libsamplerate are all listed in the | |
| 8 | +**\<samplerate.h\>** header file. In order to use any of the functionality of | |
| 9 | +libsamplerate, you need to add | |
| 10 | + | |
| 11 | +```c | |
| 12 | +#include <samplerate.h> | |
| 13 | +``` | |
| 14 | + | |
| 15 | +to the top of any function that call any of the following functions. You will | |
| 16 | +also need to link you binary with the libsamplerate library. | |
| 17 | + | |
| 18 | +The API allows three methods for accessing the capabilies of the library: | |
| 19 | + | |
| 20 | +- A [simple interface](api_simple.md) which can sample rate convert a single | |
| 21 | + block of samples (one or more channels) in one go. The simple API is less | |
| 22 | + capable than the full API. | |
| 23 | +- A [more fully featured interface](api_full.md) which allows time varying | |
| 24 | + sample rate conversion on streaming data (again one or more channels). | |
| 25 | +- A [callback interface](api_callback.md) which has the same functionality as | |
| 26 | + the interface above but allows the details of input and output to be | |
| 27 | + separated. The output is generated by call a read function and the library | |
| 28 | + calls a user supplied callback function to obtain its input. This interface is | |
| 29 | + particularly well suited to applications where the output sample rate is | |
| 30 | + varied with time. | |
| 31 | + | |
| 32 | +**NB :** All three access methods are able to process multi channel interleaved | |
| 33 | +data. | |
| 34 | + | |
| 35 | +The parts of the API which are common to all three interfaces are: | |
| 36 | + | |
| 37 | +- The [error reporting](api_misc.md#error-reporting) mechanisim. | |
| 38 | +- The available [converter](api_misc.md#converters) types. | |
| 39 | +- The [SRC_DATA](api_misc.md#src_data) struct. | |
| 40 | + | |
| 41 | +All three versions of the API are restricted to operating on buffers of ISO C | |
| 42 | +Standard **float** data. However, there are two [auxillary functions](api_misc.md#auxillary-functions) | |
| 43 | +for converting arrays of float data to and from short data. | |
| 44 | + | |
| 45 | +**Note:** The **tests/** and **examples/** directories of the source code | |
| 46 | +distribution contain numerous example programs showing the use of the library. | |