43 #define SND_PCM_DLSYM_VERSION _dlsym_pcm_001
76 typedef enum _snd_pcm_class {
90 typedef enum _snd_pcm_subclass {
99 typedef enum _snd_pcm_stream {
108 typedef enum _snd_pcm_access {
123 typedef enum _snd_pcm_format {
203 SND_PCM_FORMAT_G723_24,
205 SND_PCM_FORMAT_G723_24_1B,
207 SND_PCM_FORMAT_G723_40,
209 SND_PCM_FORMAT_G723_40_1B,
211 SND_PCM_FORMAT_DSD_U8,
213 SND_PCM_FORMAT_DSD_U16_LE,
215 SND_PCM_FORMAT_DSD_U32_LE,
217 SND_PCM_FORMAT_DSD_U16_BE,
219 SND_PCM_FORMAT_DSD_U32_BE,
220 SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_DSD_U32_BE,
222 #if __BYTE_ORDER == __LITTLE_ENDIAN
241 #elif __BYTE_ORDER == __BIG_ENDIAN
261 #error "Unknown endian"
266 typedef enum _snd_pcm_subformat {
273 typedef enum _snd_pcm_state {
296 typedef enum _snd_pcm_start {
305 typedef enum _snd_pcm_xrun {
314 typedef enum _snd_pcm_tstamp {
326 typedef enum _snd_pcm_tstamp_type {
327 SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0,
339 #define SND_PCM_NONBLOCK 0x00000001
341 #define SND_PCM_ASYNC 0x00000002
343 #define SND_PCM_ABORT 0x00008000
345 #define SND_PCM_NO_AUTO_RESAMPLE 0x00010000
347 #define SND_PCM_NO_AUTO_CHANNELS 0x00020000
349 #define SND_PCM_NO_AUTO_FORMAT 0x00040000
351 #define SND_PCM_NO_SOFTVOL 0x00080000
428 typedef struct _snd_pcm_channel_area {
438 typedef union _snd_pcm_sync_id {
440 unsigned char id[16];
442 unsigned short id16[8];
444 unsigned int id32[4];
456 const char *name,
const char *orig_name,
506 #define SND_CHMAP_API_VERSION ((1 << 16) | (0 << 8) | 1)
510 SND_CHMAP_TYPE_NONE = 0,
560 #define SND_CHMAP_POSITION_MASK 0xffff
563 #define SND_CHMAP_PHASE_INVERSE (0x01 << 16)
565 #define SND_CHMAP_DRIVER_SPEC (0x02 << 16)
568 typedef struct snd_pcm_chmap {
574 typedef struct snd_pcm_chmap_query {
606 unsigned int channels,
609 unsigned int latency);
611 snd_pcm_uframes_t *buffer_size,
612 snd_pcm_uframes_t *period_size);
628 #define snd_pcm_info_alloca(ptr) __snd_alloca(ptr, snd_pcm_info)
673 unsigned int *rate_num,
674 unsigned int *rate_den);
679 typedef struct _snd_pcm_hw_strategy snd_pcm_hw_strategy_t;
682 typedef struct _snd_pcm_hw_strategy_simple_choices_list {
684 unsigned int badness;
685 } snd_pcm_hw_strategy_simple_choices_list_t;
688 const snd_pcm_hw_strategy_t *strategy,
689 unsigned int badness_min,
690 unsigned int badness_max);
692 void snd_pcm_hw_strategy_free(snd_pcm_hw_strategy_t *strategy);
693 int snd_pcm_hw_strategy_simple(snd_pcm_hw_strategy_t **strategyp,
694 unsigned int badness_min,
695 unsigned int badness_max);
696 int snd_pcm_hw_params_try_explain_failure(
snd_pcm_t *pcm,
709 #define snd_pcm_hw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_hw_params)
714 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API)
850 #define snd_pcm_sw_params_alloca(ptr) __snd_alloca(ptr, snd_pcm_sw_params)
856 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API)
880 #ifndef ALSA_LIBRARY_BUILD
881 #if defined(ALSA_PCM_OLD_HW_PARAMS_API) || defined(ALSA_PCM_OLD_SW_PARAMS_API)
898 #define snd_pcm_access_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_access_mask)
923 #define snd_pcm_format_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_format_mask)
948 #define snd_pcm_subformat_mask_alloca(ptr) __snd_alloca(ptr, snd_pcm_subformat_mask)
973 #define snd_pcm_status_alloca(ptr) __snd_alloca(ptr, snd_pcm_status)
1036 snd_pcm_uframes_t *offset,
1037 snd_pcm_uframes_t *frames);
1039 snd_pcm_uframes_t offset,
1040 snd_pcm_uframes_t frames);
1098 typedef enum _snd_pcm_hook_type {
1099 SND_PCM_HOOK_TYPE_HW_PARAMS = 0,
1100 SND_PCM_HOOK_TYPE_HW_FREE,
1101 SND_PCM_HOOK_TYPE_CLOSE,
1102 SND_PCM_HOOK_TYPE_LAST = SND_PCM_HOOK_TYPE_CLOSE
1127 typedef struct _snd_pcm_scope_ops {
1175 unsigned int channel);
1187 typedef enum _snd_spcm_latency {
1200 typedef enum _snd_spcm_xrun_type {
1208 typedef enum _snd_spcm_duplex_type {
1217 unsigned int channels,
1227 unsigned int channels,
1237 snd_pcm_uframes_t *buffer_size,
1238 snd_pcm_uframes_t *period_size);
1256 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_SW_PARAMS_API)
1262 #if !defined(ALSA_LIBRARY_BUILD) && !defined(ALSA_PCM_OLD_HW_PARAMS_API)