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.
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.
To enable the library, set the
CONFIG_CONTIN_ARRAY Kconfig option to
y in the project configuration file
- group contin_array
Basic continuous array.
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.
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.
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)