Case Interface


Defines

#define SND_USE_CASE_VERB_INACTIVE   "Inactive"
#define SND_USE_CASE_VERB_HIFI   "HiFi"
#define SND_USE_CASE_VERB_HIFI_LOW_POWER   "HiFi Low Power"
#define SND_USE_CASE_VERB_VOICE   "Voice"
#define SND_USE_CASE_VERB_VOICE_LOW_POWER   "Voice Low Power"
#define SND_USE_CASE_VERB_VOICECALL   "Voice Call"
#define SND_USE_CASE_VERB_IP_VOICECALL   "Voice Call IP"
#define SND_USE_CASE_VERB_ANALOG_RADIO   "FM Analog Radio"
#define SND_USE_CASE_VERB_DIGITAL_RADIO   "FM Digital Radio"
#define SND_USE_CASE_DEV_NONE   "None"
#define SND_USE_CASE_DEV_SPEAKER   "Speaker"
#define SND_USE_CASE_DEV_LINE   "Line"
#define SND_USE_CASE_DEV_HEADPHONES   "Headphones"
#define SND_USE_CASE_DEV_HEADSET   "Headset"
#define SND_USE_CASE_DEV_HANDSET   "Handset"
#define SND_USE_CASE_DEV_BLUETOOTH   "Bluetooth"
#define SND_USE_CASE_DEV_EARPIECE   "Earpiece"
#define SND_USE_CASE_DEV_SPDIF   "SPDIF"
#define SND_USE_CASE_DEV_HDMI   "HDMI"
#define SND_USE_CASE_MOD_CAPTURE_VOICE   "Capture Voice"
#define SND_USE_CASE_MOD_CAPTURE_MUSIC   "Capture Music"
#define SND_USE_CASE_MOD_PLAY_MUSIC   "Play Music"
#define SND_USE_CASE_MOD_PLAY_VOICE   "Play Voice"
#define SND_USE_CASE_MOD_PLAY_TONE   "Play Tone"
#define SND_USE_CASE_MOD_ECHO_REF   "Echo Reference"
#define SND_USE_CASE_TQ_MUSIC   "Music"
#define SND_USE_CASE_TQ_VOICE   "Voice"
#define SND_USE_CASE_TQ_TONES   "Tones"

Typedefs

typedef snd_use_case_mgr snd_use_case_mgr_t

Functions

char * snd_use_case_identifier (const char *fmt,...)
 Create an identifier.
int snd_use_case_free_list (const char *list[], int items)
 Free a string list.
int snd_use_case_get_list (snd_use_case_mgr_t *uc_mgr, const char *identifier, const char **list[])
 Obtain a list of entries.
int snd_use_case_get (snd_use_case_mgr_t *uc_mgr, const char *identifier, const char **value)
 Get current - string.
int snd_use_case_geti (snd_use_case_mgr_t *uc_mgr, const char *identifier, long *value)
 Get current - integer.
int snd_use_case_set (snd_use_case_mgr_t *uc_mgr, const char *identifier, const char *value)
 Set new.
int snd_use_case_mgr_open (snd_use_case_mgr_t **uc_mgr, const char *card_name)
 Open and initialise use case core for sound card.
int snd_use_case_mgr_reload (snd_use_case_mgr_t *uc_mgr)
 Reload and re-parse use case configuration files for sound card.
int snd_use_case_mgr_close (snd_use_case_mgr_t *uc_mgr)
 Close use case manager.
int snd_use_case_mgr_reset (snd_use_case_mgr_t *uc_mgr)
 Reset use case manager verb, device, modifier to deafult settings.

Detailed Description

The ALSA Use Case manager interface. See Usecase page for more details.

Define Documentation

#define SND_USE_CASE_TQ_MUSIC   "Music"

TQ - Tone Quality

The interface allows clients to determine the audio TQ required for each use case verb and modifier. It's intended as an optional hint to the audio driver in order to lower power consumption.

#define SND_USE_CASE_VERB_INACTIVE   "Inactive"

ALSA Use Case Interface

The use case manager works by configuring the sound card ALSA kcontrols to change the hardware digital and analog audio routing to match the requested device use case. The use case manager kcontrol configurations are stored in easy to modify text files.

An audio use case can be defined by a verb and device parameter. The verb describes the use case action i.e. a phone call, listening to music, recording a conversation etc. The device describes the physical audio capture and playback hardware i.e. headphones, phone handset, bluetooth headset, etc.

It's intended clients will mostly only need to set the use case verb and device for each system use case change (as the verb and device parameters cover most audio use cases).

However there are times when a use case has to be modified at runtime. e.g.

o Incoming phone call when the device is playing music o Recording sections of a phone call o Playing tones during a call.

In order to allow asynchronous runtime use case adaptations, we have a third optional modifier parameter that can be used to further configure the use case during live audio runtime.

This interface allows clients to :-

o Query the supported use case verbs, devices and modifiers for the machine. o Set and Get use case verbs, devices and modifiers for the machine. o Get the ALSA PCM playback and capture device PCMs for use case verb and modifier. o Get the TQ parameter for each use case verb and modifier. o Get the ALSA master playback and capture volume/switch kcontrols for each use case.


Typedef Documentation

typedef struct snd_use_case_mgr snd_use_case_mgr_t

use case container


Function Documentation

int snd_use_case_free_list ( const char *  list[],
int  items 
)

Free a string list.

Parameters:
list The string list to free
items Count of strings
Returns:
Zero if success, otherwise a negative error code

int snd_use_case_get ( snd_use_case_mgr_t uc_mgr,
const char *  identifier,
const char **  value 
)

Get current - string.

Parameters:
uc_mgr Use case manager
identifier 
value Value pointer
Returns:
Zero if success, otherwise a negative error code
Note: String is dynamically allocated, use free() to deallocate this string.

int snd_use_case_get_list ( snd_use_case_mgr_t uc_mgr,
const char *  identifier,
const char **  list[] 
)

Obtain a list of entries.

Parameters:
uc_mgr Use case manager (may be NULL - card list)
identifier (may be NULL - card list)
list Returned allocated list
Returns:
Number of list entries if success, otherwise a negative error code

int snd_use_case_geti ( snd_use_case_mgr_t uc_mgr,
const char *  identifier,
long *  value 
)

Get current - integer.

Parameters:
uc_mgr Use case manager
identifier 
Returns:
Value if success, otherwise a negative error code

char* snd_use_case_identifier ( const char *  fmt,
  ... 
)

Create an identifier.

Parameters:
fmt Format (sprintf like)
... Optional arguments for sprintf like format
Returns:
Allocated string identifier or NULL on error

int snd_use_case_mgr_close ( snd_use_case_mgr_t uc_mgr  ) 

Close use case manager.

Parameters:
uc_mgr Use case manager
Returns:
zero on success, otherwise a negative error code

int snd_use_case_mgr_open ( snd_use_case_mgr_t **  mgr,
const char *  card_name 
)

Open and initialise use case core for sound card.

Parameters:
uc_mgr Returned use case manager pointer
card_name name of card to open
Returns:
zero on success, otherwise a negative error code

int snd_use_case_mgr_reload ( snd_use_case_mgr_t uc_mgr  ) 

Reload and re-parse use case configuration files for sound card.

Parameters:
uc_mgr Use case manager
Returns:
zero on success, otherwise a negative error code

int snd_use_case_mgr_reset ( snd_use_case_mgr_t uc_mgr  ) 

Reset use case manager verb, device, modifier to deafult settings.

Parameters:
uc_mgr Use case manager
Returns:
zero on success, otherwise a negative error code

int snd_use_case_set ( snd_use_case_mgr_t uc_mgr,
const char *  identifier,
const char *  value 
)

Set new.

Parameters:
uc_mgr Use case manager
identifier 
value Value
Returns:
Zero if success, otherwise a negative error code


Generated for ALSA project - the C library reference by doxygen 1.4.7