Maestro Audio Framework v 1.5
NXP Semiconductors
audio_sink.h File Reference

This file includes defines, enums and typedefs for audio sink. More...

#include "streamer_element.h"

Data Structures

struct  AudioSinkPadDeviceIOFuncType
 sink pad device IO functions More...
 
struct  ElementAudioSink
 audio sink element's data structures More...
 

Macros

#define MAX_NO_OF_APP   1
 
#define AUDIO_ID(pstaudio_packet)   ((pstaudio_packet)->id)
 Get audio ID.
 
#define AUDIO_BUFFER(pstaudio_packet)   ((pstaudio_packet)->buffer)
 Get audio buffer.
 
#define AUDIO_CHUNK_SIZE(pstaudio_packet)   ((pstaudio_packet)->chunk_size)
 Get audio chunk size.
 
#define AUDIO_SAMPLE_RATE(pstaudio_packet)   ((pstaudio_packet)->sample_rate)
 Get audio sample rate.
 
#define AUDIO_BITS_PER_SAMPLE(pstaudio_packet)   ((pstaudio_packet)->bits_per_sample)
 Get audio bits per sample.
 
#define AUDIO_NUM_CHANNELS(pstaudio_packet)   ((pstaudio_packet)->num_channels)
 Get audio number of channels.
 
#define AUDIO_FORMAT(pstaudio_packet)   ((pstaudio_packet)->format)
 Get audio format.
 
#define AUDIO_VOLUME(pstaudio_packet)   ((pstaudio_packet)->volume)
 Get audio volume.
 
#define AUDIO_INTERLEAVED(pstaudio_packet)   ((pstaudio_packet->format >> 0) & 0x1)
 Get interleaved flag. More...
 
#define AUDIO_ENDIANNESS(pstaudio_packet)   ((pstaudio_packet->format >> 1) & 0x1)
 Get endiannes flag.
 
#define AUDIO_SIGNED(pstaudio_packet)   ((pstaudio_packet->format >> 2) & 0x1)
 Get signed flag.
 
#define AUDIO_WORD_LENGTH(pstaudio_packet)   ((pstaudio_packet->format >> 4) & 0xFF)
 Get word length flag.
 

Typedefs

typedef AudioSinkStreamErrorType(* AudioSinkOpenDeviceFunc) (ElementAudioSink *audio_sink_element)
 open device function proto type
 
typedef AudioSinkStreamErrorType(* AudioSinkCloseDeviceFunc) (ElementAudioSink *audio_sink_element)
 close device function proto type
 
typedef AudioSinkStreamErrorType(* AudioSinkStartDeviceFunc) (ElementAudioSink *audio_sink_element)
 Start device function proto type.
 
typedef AudioSinkStreamErrorType(* AudioSinkStopDeviceFunc) (ElementAudioSink *audio_sink_element)
 Stop device function proto type.
 
typedef AudioSinkStreamErrorType(* AudioSinkSetVolumeFunc) (ElementAudioSink *audio_sink_element, int volume)
 Set volume function proto type.
 

Enumerations

enum  AudioSinkDeviceName {
  AUDIO_SINK_DEVICE_DEFAULT = 0 ,
  AUDIO_SINK_DEVICE_2 ,
  AUDIO_SINK_DEVICE_MAX
}
 audio sink device select, reserved for extension devices More...
 
enum  AudioSinkDeviceStateType {
  AUDIO_SINK_DEVICE_STATE_CLOSED = 0 ,
  AUDIO_SINK_DEVICE_STATE_OPENED ,
  LAST_AUDIO_SINK_DEVICE_STATE_TYPE
}
 audio sink device state More...
 
enum  AudioSinkStreamErrorType {
  AUDIO_SINK_SUCCESS = 0 ,
  AUDIO_SINK_FAILED = -1 ,
  AUDIO_SINK_ERROR_INVALID_ARGS = -2 ,
  AUDIO_SINK_ERROR_NEED_DATA = -3 ,
  AUDIO_SINK_ERROR_OSA_ERROR = -4 ,
  AUDIO_SINK_ERROR_OUT_OF_HEAP_MEMORY = -5 ,
  AUDIO_SINK_ERROR_OUT_OF_STACK_MEMORY = -6 ,
  AUDIO_SINK_ERROR_UNDEFINED_STREAM_PROPERTY_TYPE = -7 ,
  AUDIO_SINK_ERROR_READONLY_STREAM_PROPERTY_TYPE = -8 ,
  AUDIO_SINK_ERROR_UNHANDLED_EVENT = -9 ,
  AUDIO_SINK_ERROR_PAD = -10 ,
  AUDIO_SINK_ERROR_DEVICE_OPEN_FAILED = -11 ,
  AUDIO_SINK_ERROR_DEVICE_CLOSE_FAILED = -12 ,
  AUDIO_SINK_ERROR_BAD_STATE = -13 ,
  AUDIO_SINK_ERROR_NO_RESOURCE = -14 ,
  AUDIO_SINK_ERROR_POST_PROC_INIT_FAILED = -15 ,
  AUDIO_SINK_ERROR_POST_PROC_FAILED = -16 ,
  AUDIO_SINK_ERROR_MAX
}
 AudioSinkStreamErrorType. More...
 

Functions

int32_t audiosink_init_element (StreamElement *element)
 This function initializes audio sink element and its sink pads. More...
 
AudioSinkStreamErrorType audiosink_set_device_driver_type (ElementHandle element, AudioSinkDeviceDriverType device_driver_type)
 This function sets the audio driver type as SSI or ALSA. Now, only a SSI interface is implemented. More...
 
AudioSinkStreamErrorType audiosink_set_device_name (ElementHandle element, AudioSinkDeviceName device_name)
 This function sets the audio device name. This API is provided just in case an enumeration is done by ALSA or OSS probably before opening the device. More...
 
AudioSinkStreamErrorType audiosink_set_device_string_name (ElementHandle element, char *device_string_name)
 This function sets the audio device string name. More...
 

Macro Definition Documentation

◆ MAX_NO_OF_APP

#define MAX_NO_OF_APP   1

Maximum number of APP allowed

◆ AUDIO_INTERLEAVED

#define AUDIO_INTERLEAVED (   pstaudio_packet)    ((pstaudio_packet->format >> 0) & 0x1)

Extract Output format: AUDIO_ENDIANNESS AUDIO_INTERLEAVED AUDIO_SIGNED AUDIO_WORD_LENGTH

bit (15-8) bit (3) bit (2) bit (1) bit (0) output word unused signed/ little endian/ interleaved/ length unsigned big endian non-interleaved

Enumeration Type Documentation

◆ AudioSinkDeviceName

Enumerator
AUDIO_SINK_DEVICE_DEFAULT 

default sink device

AUDIO_SINK_DEVICE_2 

second sink device

◆ AudioSinkDeviceStateType

Enumerator
AUDIO_SINK_DEVICE_STATE_CLOSED 

device is closed

AUDIO_SINK_DEVICE_STATE_OPENED 

device is opened

◆ AudioSinkStreamErrorType

Potential Return Values (Error Codes) for Audio Sink Operations

Enumerator
AUDIO_SINK_SUCCESS 

Success.

AUDIO_SINK_FAILED 

Failed.

AUDIO_SINK_ERROR_INVALID_ARGS 

Invalid Arguments.

AUDIO_SINK_ERROR_NEED_DATA 

Error Need More Data.

AUDIO_SINK_ERROR_OSA_ERROR 

Operating System Abstraction Layer Error.

AUDIO_SINK_ERROR_OUT_OF_HEAP_MEMORY 

Error: Out of heap memory.

AUDIO_SINK_ERROR_OUT_OF_STACK_MEMORY 

Error: Out of stack memory.

AUDIO_SINK_ERROR_UNDEFINED_STREAM_PROPERTY_TYPE 

Undefined Stream Property Type.

AUDIO_SINK_ERROR_READONLY_STREAM_PROPERTY_TYPE 

Read Only Stream Property Type.

AUDIO_SINK_ERROR_UNHANDLED_EVENT 

Unhandled Event.

AUDIO_SINK_ERROR_PAD 

Pad Error.

AUDIO_SINK_ERROR_DEVICE_OPEN_FAILED 

Failed to Open Device.

AUDIO_SINK_ERROR_DEVICE_CLOSE_FAILED 

Failed to Close Device.

AUDIO_SINK_ERROR_BAD_STATE 

try to operate in a bad state

AUDIO_SINK_ERROR_NO_RESOURCE 

can not find valid resource

AUDIO_SINK_ERROR_POST_PROC_INIT_FAILED 

could not initialize post processing

AUDIO_SINK_ERROR_POST_PROC_FAILED 

Post processing failure.

Function Documentation

◆ audiosink_init_element()

int32_t audiosink_init_element ( StreamElement *  element)
Parameters
elementaudio sink element
Returns
AudioSinkStreamErrorType
Return values
AUDIO_SINK_SUCCESSsuccess
AUDIO_SINK_ERROR_INVALID_ARGSinvalid argument

◆ audiosink_set_device_driver_type()

AudioSinkStreamErrorType audiosink_set_device_driver_type ( ElementHandle  element,
AudioSinkDeviceDriverType  device_driver_type 
)
Parameters
elementaudio sink element
device_driver_typeset audio device driver type relate with AudioSinkDeviceDriverType
Note
This function should be called only at STATE_NULL state
Returns
AudioSinkStreamErrorType
Return values
AUDIO_SINK_SUCCESSsuccess
AUDIO_SINK_ERROR_INVALID_ARGSinvalid argument
AUDIO_SINK_ERROR_BAD_STATEif element state is not STATE_NULL

◆ audiosink_set_device_name()

AudioSinkStreamErrorType audiosink_set_device_name ( ElementHandle  element,
AudioSinkDeviceName  device_name 
)
Parameters
elementaudio sink element
device_nameset audio device name
Returns
AudioSinkStreamErrorType
Return values
AUDIO_SINK_SUCCESSsuccess
AUDIO_SINK_ERROR_INVALID_ARGSinvalid arguments

◆ audiosink_set_device_string_name()

AudioSinkStreamErrorType audiosink_set_device_string_name ( ElementHandle  element,
char *  device_string_name 
)
Parameters
elementaudio sink element
device_string_nameset audio device string name
Returns
AudioSinkStreamErrorType
Return values
AUDIO_SINK_SUCCESS
AUDIO_SINK_ERROR_INVALID_ARGS