45 #define SND_PCM_DLSYM_VERSION _dlsym_pcm_001
78 typedef enum _snd_pcm_class {
92 typedef enum _snd_pcm_subclass {
101 typedef enum _snd_pcm_stream {
110 typedef enum _snd_pcm_access {
125 typedef enum _snd_pcm_format {
213 SND_PCM_FORMAT_G723_24,
215 SND_PCM_FORMAT_G723_24_1B,
217 SND_PCM_FORMAT_G723_40,
219 SND_PCM_FORMAT_G723_40_1B,
221 SND_PCM_FORMAT_DSD_U8,
223 SND_PCM_FORMAT_DSD_U16_LE,
225 SND_PCM_FORMAT_DSD_U32_LE,
227 SND_PCM_FORMAT_DSD_U16_BE,
229 SND_PCM_FORMAT_DSD_U32_BE,
230 SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_DSD_U32_BE,
232 #if __BYTE_ORDER == __LITTLE_ENDIAN
255 #elif __BYTE_ORDER == __BIG_ENDIAN
279 #error "Unknown endian"
284 typedef enum _snd_pcm_subformat {
291 typedef enum _snd_pcm_state {
316 typedef enum _snd_pcm_start {
325 typedef enum _snd_pcm_xrun {
334 typedef enum _snd_pcm_tstamp {
346 typedef enum _snd_pcm_tstamp_type {
353 typedef struct _snd_pcm_audio_tstamp_config {
355 unsigned int type_requested:4;
356 unsigned int report_delay:1;
359 typedef struct _snd_pcm_audio_tstamp_report {
363 unsigned int valid:1;
366 unsigned int actual_type:4;
369 unsigned int accuracy_report:1;
370 unsigned int accuracy;
379 #define SND_PCM_NONBLOCK 0x00000001
381 #define SND_PCM_ASYNC 0x00000002
383 #define SND_PCM_ABORT 0x00008000
385 #define SND_PCM_NO_AUTO_RESAMPLE 0x00010000
387 #define SND_PCM_NO_AUTO_CHANNELS 0x00020000
389 #define SND_PCM_NO_AUTO_FORMAT 0x00040000
391 #define SND_PCM_NO_SOFTVOL 0x00080000
468 typedef struct _snd_pcm_channel_area {
478 typedef union _snd_pcm_sync_id {
480 unsigned char id[16];
482 unsigned short id16[8];
484 unsigned int id32[4];
496 const char *name,
const char *orig_name,
546 #define SND_CHMAP_API_VERSION ((1 << 16) | (0 << 8) | 1)
600 #define SND_CHMAP_POSITION_MASK 0xffff
603 #define SND_CHMAP_PHASE_INVERSE (0x01 << 16)
605 #define SND_CHMAP_DRIVER_SPEC (0x02 << 16)
608 typedef struct snd_pcm_chmap {
614 typedef struct snd_pcm_chmap_query {
646 unsigned int channels,
649 unsigned int latency);
651 snd_pcm_uframes_t *buffer_size,
652 snd_pcm_uframes_t *period_size);
668 #define snd_pcm_info_alloca(ptr) __snd_alloca(ptr, snd_pcm_info)
714 unsigned int *rate_num,
715 unsigned int *rate_den);
720 typedef struct _snd_pcm_hw_strategy snd_pcm_hw_strategy_t;
723 typedef struct _snd_pcm_hw_strategy_simple_choices_list {
725 unsigned int badness;
726 } snd_pcm_hw_strategy_simple_choices_list_t;
729 const snd_pcm_hw_strategy_t *strategy,
730 unsigned int badness_min,
731 unsigned int badness_max);
733 void snd_pcm_hw_strategy_free(snd_pcm_hw_strategy_t *strategy);
734 int snd_pcm_hw_strategy_simple(snd_pcm_hw_strategy_t **strategyp,
735 unsigned int badness_min,
736 unsigned int badness_max);
737 int snd_pcm_hw_params_try_explain_failure(
snd_pcm_t *pcm,
750 #define snd_pcm_hw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_hw_params)
755 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API)
891 #define snd_pcm_sw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_sw_params)
897 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API)
921 #ifndef ALSA_LIBRARY_BUILD
922 #if defined(ALSA_PCM_OLD_HW_PARAMS_API) || defined(ALSA_PCM_OLD_SW_PARAMS_API)
939 #define snd_pcm_access_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_access_mask)
964 #define snd_pcm_format_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_format_mask)
989 #define snd_pcm_subformat_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_subformat_mask)
1014 #define snd_pcm_status_alloca(ptr) __snd_alloca(ptr, snd_pcm_status)
1030 static inline void snd_pcm_pack_audio_tstamp_config(
unsigned int *data,
1033 *data = config->report_delay;
1035 *data |= config->type_requested;
1038 static inline void snd_pcm_unpack_audio_tstamp_report(
unsigned int data,
unsigned int accuracy,
1042 report->valid = data & 1;
1043 report->actual_type = (data >> 1) & 0xF;
1044 report->accuracy_report = (data >> 5) & 1;
1045 report->accuracy = accuracy;
1101 snd_pcm_uframes_t *offset,
1102 snd_pcm_uframes_t *frames);
1104 snd_pcm_uframes_t offset,
1105 snd_pcm_uframes_t frames);
1153 snd_pcm_uframes_t dst_offset,
1154 const snd_pcm_uframes_t dst_size,
1156 snd_pcm_uframes_t src_offset,
1157 const snd_pcm_uframes_t src_size,
1158 const unsigned int channels,
1159 snd_pcm_uframes_t frames,
1172 typedef enum _snd_pcm_hook_type {
1173 SND_PCM_HOOK_TYPE_HW_PARAMS = 0,
1174 SND_PCM_HOOK_TYPE_HW_FREE,
1175 SND_PCM_HOOK_TYPE_CLOSE,
1176 SND_PCM_HOOK_TYPE_LAST = SND_PCM_HOOK_TYPE_CLOSE
1201 typedef struct _snd_pcm_scope_ops {
1249 unsigned int channel);
1261 typedef enum _snd_spcm_latency {
1274 typedef enum _snd_spcm_xrun_type {
1282 typedef enum _snd_spcm_duplex_type {
1291 unsigned int channels,
1301 unsigned int channels,
1311 snd_pcm_uframes_t *buffer_size,
1312 snd_pcm_uframes_t *period_size);
1330 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API)
1336 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API)