Continuous array
The continuous array library introduces an array that you can loop over, for example if you want to create a period of a Pulse-code modulated (PCM) sine wave. You can use it to test playback with applications that support audio development kits, for example the nRF5340 Audio applications.
The library introduces the contin_array_create()
function, which takes an array that the user wants to loop over.
For more information, see API documentation.
Configuration
To enable the library, set the CONFIG_CONTIN_ARRAY
Kconfig option to y
in the project configuration file prj.conf
.
API documentation
include/contin_array.h
lib/contin_array/contin_array.c
- group contin_array
Basic continuous array.
Functions
-
int contin_array_create(void *pcm_cont, uint32_t pcm_cont_size, void const *const pcm_finite, uint32_t pcm_finite_size, uint32_t *const finite_pos)
Creates a continuous array from a finite array.
Note
This function serves the purpose of e.g. having a set of audio samples stored in pcm_finite. This can then be fetched in smaller pieces into ram and played back in a loop using the results in pcm_cont. The function keeps track of the current position in finite_pos, so that the function can be called multiple times and maintain the correct position in pcm_finite.
- Parameters:
pcm_cont – Pointer to the destination array.
pcm_cont_size – Size of pcm_cont.
pcm_finite – Pointer to an array of samples or data.
pcm_finite_size – Size of pcm_finite.
finite_pos – Variable used internally. Must be set to 0 for the first run and not changed.
- Return values:
0 – If the operation was successful.
-EPERM – If any sizes are zero.
-ENXIO – On NULL pointer.
-
int contin_array_create(void *pcm_cont, uint32_t pcm_cont_size, void const *const pcm_finite, uint32_t pcm_finite_size, uint32_t *const finite_pos)