Maestro Audio Framework v 1.7
NXP Semiconductors
Loading...
Searching...
No Matches
audio_sink.h File Reference

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

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.
 
#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.
 
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.
 
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.
 
AudioSinkStreamErrorType audiosink_set_device_string_name (ElementHandle element, char *device_string_name)
 This function sets the audio device string name.
 

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