Skip to content

File syn_audio.c

FileList > audio > syn_audio.c

Go to the source code of this file

Codec-Agnostic PCM Double-Buffered Audio Playback Engine implementation.

  • #include "../util/syn_assert.h"
  • #include "syn_audio.h"
  • #include <string.h>

Public Functions

Type Name
size_t syn_audio_feed (SYN_Audio * audio, const int16_t * samples, size_t count)
Feed decoded PCM audio samples into the stream buffer.
SYN_Status syn_audio_init (SYN_Audio * audio, const SYN_Audio_Config * cfg)
Initialize an Audio Streaming Engine instance.
void syn_audio_isr_complete (SYN_Audio * audio)
Hardware ISR Handler for DMA Transfer-Complete Interrupt.
void syn_audio_isr_half (SYN_Audio * audio)
Hardware ISR Handler for DMA Half-Transfer Interrupt.
SYN_Status syn_audio_start (SYN_Audio * audio)
Start audio playback streaming.
SYN_Status syn_audio_stop (SYN_Audio * audio)
Stop audio playback streaming.

Public Functions Documentation

function syn_audio_feed

Feed decoded PCM audio samples into the stream buffer.

size_t syn_audio_feed (
    SYN_Audio * audio,
    const int16_t * samples,
    size_t count
) 

Parameters:

  • audio Pointer to Audio instance.
  • samples Input 16-bit PCM sample array.
  • count Number of samples to push.

Returns:

Number of samples actually written to the buffer.


function syn_audio_init

Initialize an Audio Streaming Engine instance.

SYN_Status syn_audio_init (
    SYN_Audio * audio,
    const SYN_Audio_Config * cfg
) 

Parameters:

  • audio Pointer to Audio instance.
  • cfg Configuration structure pointer.

Returns:

SYN_OK on success, or SYN_INVALID_PARAM.


function syn_audio_isr_complete

Hardware ISR Handler for DMA Transfer-Complete Interrupt.

void syn_audio_isr_complete (
    SYN_Audio * audio
) 

Call this function from your hardware DMA interrupt when the entire circular buffer transfer completes (SYN_DMA_EVENT_COMPLETE).

Parameters:

  • audio Pointer to Audio instance.

function syn_audio_isr_half

Hardware ISR Handler for DMA Half-Transfer Interrupt.

void syn_audio_isr_half (
    SYN_Audio * audio
) 

Call this function from your hardware DMA interrupt when half of the circular buffer transfer completes (SYN_DMA_EVENT_HALF_COMPLETE).

Parameters:

  • audio Pointer to Audio instance.

function syn_audio_start

Start audio playback streaming.

SYN_Status syn_audio_start (
    SYN_Audio * audio
) 

Parameters:

  • audio Pointer to Audio instance.

Returns:

SYN_OK on success, or SYN_INVALID_PARAM.


function syn_audio_stop

Stop audio playback streaming.

SYN_Status syn_audio_stop (
    SYN_Audio * audio
) 

Parameters:

  • audio Pointer to Audio instance.

Returns:

SYN_OK on success, or SYN_INVALID_PARAM.



The documentation for this class was generated from the following file src/syntropic/audio/syn_audio.c