Lines Matching +full:stream +full:- +full:id +full:- +full:range
1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
3 * Advanced Linux Sound Architecture - ALSA - Driver
4 * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
5 * Abramo Bagnara <abramo@alsa-project.org>
54 * CEA-861 Audio InfoFrame. Used in HDMI and DisplayPort *
63 unsigned char db5_dminh_lsv; /* downmix inhibit & level-shit values */
68 * Section for driver hardware dependent interface - /dev/snd/hw? *
91 SNDRV_HWDEP_IFACE_HDA, /* HD-audio */
92 SNDRV_HWDEP_IFACE_USB_STREAM, /* direct access to usb stream */
110 unsigned char id[64]; /* ID (user selectable) */
118 unsigned int version; /* R: driver-specific version */
119 unsigned char id[32]; /* R: driver-specific ID string */
128 unsigned char name[64]; /* W: ID (e.g. file name) */
131 unsigned long driver_data; /* W: driver-specific data */
141 * Digital Audio (PCM) interface - /dev/snd/pcm?? *
193 * available bit count in most significant bit. It's for the case of so-called 'left-justified' or
194 * `right-padding` sample which has less width than 32 bit.
200 #define SNDRV_PCM_FORMAT_FLOAT_LE ((__force snd_pcm_format_t) 14) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
201 #define SNDRV_PCM_FORMAT_FLOAT_BE ((__force snd_pcm_format_t) 15) /* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
202 #define SNDRV_PCM_FORMAT_FLOAT64_LE ((__force snd_pcm_format_t) 16) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
203 #define SNDRV_PCM_FORMAT_FLOAT64_BE ((__force snd_pcm_format_t) 17) /* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
204 #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE ((__force snd_pcm_format_t) 18) /* IEC-958 subframe, Little Endian */
205 #define SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE ((__force snd_pcm_format_t) 19) /* IEC-958 subframe, Big Endian */
233 #define SNDRV_PCM_FORMAT_DSD_U8 ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
234 #define SNDRV_PCM_FORMAT_DSD_U16_LE ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
235 #define SNDRV_PCM_FORMAT_DSD_U32_LE ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
236 #define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
237 #define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
280 #define SNDRV_PCM_INFO_PERFECT_DRAIN 0x00000040 /* silencing at the end of stream is not required */
286 #define SNDRV_PCM_INFO_RESUME 0x00040000 /* hardware supports stream resume after suspend */
289 #define SNDRV_PCM_INFO_JOINT_DUPLEX 0x00200000 /* playback and capture stream are somewhat correlated */
299 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
300 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
307 #define SNDRV_PCM_STATE_OPEN ((__force snd_pcm_state_t) 0) /* stream is open */
308 #define SNDRV_PCM_STATE_SETUP ((__force snd_pcm_state_t) 1) /* stream has a setup */
309 #define SNDRV_PCM_STATE_PREPARED ((__force snd_pcm_state_t) 2) /* stream is ready to start */
310 #define SNDRV_PCM_STATE_RUNNING ((__force snd_pcm_state_t) 3) /* stream is running */
311 #define SNDRV_PCM_STATE_XRUN ((__force snd_pcm_state_t) 4) /* stream reached an xrun */
312 #define SNDRV_PCM_STATE_DRAINING ((__force snd_pcm_state_t) 5) /* stream is draining */
313 #define SNDRV_PCM_STATE_PAUSED ((__force snd_pcm_state_t) 6) /* stream is paused */
334 unsigned char id[16];
342 int stream; /* RO/WR (control): stream direction */
344 unsigned char id[64]; /* ID (user selectable) */
351 unsigned char pad1[16]; /* was: hardware synchronization ID */
410 struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK -
413 struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL -
419 unsigned int msbits; /* R: used most significant bits (in sample bit-width) */
423 unsigned char sync[16]; /* R: synchronization ID (perfect sync - one clock source) */
444 snd_pcm_uframes_t stop_threshold; /* - stop playback */
445 snd_pcm_uframes_t silence_threshold; /* - pre-fill buffer with silence */
446 snd_pcm_uframes_t silence_size; /* max size of silence pre-fill; when >= boundary,
478 /* explicit padding avoids incompatibility between i386 and x86-64 */
479 typedef struct { unsigned char pad[sizeof(time_t) - sizeof(int)]; } __time_pad;
482 snd_pcm_state_t state; /* stream state */
484 struct timespec trigger_tstamp; /* time when stream was started/stopped/paused */
492 snd_pcm_state_t suspended_state; /* suspended stream state */
493 __u32 audio_tstamp_data; /* needed for 64-bit alignment, used for configs/report to/from userspace */
494 struct timespec audio_tstamp; /* sample counter, wall clock, PHC or on-demand sync'ed */
497 unsigned char reserved[52-2*sizeof(struct timespec)]; /* must be filled with zero */
502 * For mmap operations, we need the 64-bit layout, both for compat mode,
503 * and for y2038 compatibility. For 64-bit applications, the two definitions
532 snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
534 snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
536 snd_pcm_state_t suspended_state; /* RO: suspended stream state */
541 snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
562 typedef char __pad_before_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
568 typedef char __pad_after_uframe[sizeof(__u64) - sizeof(snd_pcm_uframes_t)];
572 snd_pcm_state_t state; /* RO: state - SNDRV_PCM_STATE_XXXX */
575 snd_pcm_uframes_t hw_ptr; /* RO: hw ptr (0...boundary-1) */
578 snd_pcm_state_t suspended_state;/* RO: suspended stream state */
585 snd_pcm_uframes_t appl_ptr; /* RW: appl ptr (0...boundary-1) */
630 SNDRV_CHMAP_MONO, /* mono stream */
631 /* this follows the alsa-lib mixer channel value + 3 */
716 * Raw MIDI section - /dev/snd/midi??
738 int stream; /* WR: stream */
741 unsigned char id[64]; /* ID (user selectable) */
776 int stream;
786 int stream;
815 unsigned short family_id; /* MIDI device family ID */
816 unsigned short model_id; /* MIDI family model ID */
817 unsigned int manufacturer_id; /* MIDI manufacturer ID */
821 unsigned char product_id[128]; /* unique product id string */
834 /* UMP block user-interface hint */
848 unsigned char block_id; /* block ID (R/W) */
851 unsigned char first_group; /* first group ID */
853 unsigned char midi_ci_version; /* MIDI-CI support version */
873 * Timer section - /dev/snd/timer
879 SNDRV_TIMER_CLASS_NONE = -1,
915 struct snd_timer_id tid; /* requested timer ID */
916 unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
918 unsigned char id[64]; /* timer identification */
929 struct snd_timer_id tid; /* requested timer ID */
930 unsigned long period_num; /* requested precise period duration (in seconds) - numerator */
931 unsigned long period_den; /* requested precise period duration (in seconds) - denominator */
936 struct snd_timer_id tid; /* requested timer ID */
938 unsigned long resolution_num; /* precise current period resolution (in seconds) - numerator */
939 unsigned long resolution_den; /* precise current period resolution (in seconds) - denominator */
944 struct snd_timer_id id; /* bind to timer ID */
949 unsigned int flags; /* timer flags - SNDRV_TIMER_FLG_* */
951 unsigned char id[64]; /* timer identificator */
958 #define SNDRV_TIMER_PSFLG_AUTO (1<<0) /* auto start, otherwise one-shot */
963 unsigned int flags; /* flags - SNDRV_TIMER_PSFLG_* */
965 unsigned int queue_size; /* total size of queue (32-1024) */
973 struct timespec tstamp; /* Timestamp - last update */
983 * This structure describes the userspace-driven timer. Such timers are purely virtual,
990 unsigned int id;
1057 * Section for driver control interface - /dev/snd/control? *
1066 unsigned char id[16]; /* ID of card (user selectable) */
1070 unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
1082 #define SNDRV_CTL_ELEM_TYPE_INTEGER64 ((__force snd_ctl_elem_type_t) 6) /* 64-bit integer type */
1131 unsigned int offset; /* W: first element ID to get */
1140 struct snd_ctl_elem_id id; /* W: element ID */
1141 snd_ctl_elem_type_t type; /* R: value type - SNDRV_CTL_ELEM_TYPE_* */
1142 unsigned int access; /* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */
1169 struct snd_ctl_elem_id id; /* W: element ID */
1170 unsigned int indirect: 1; /* W: indirect access - obsoleted */
1244 int type; /* event type - SNDRV_CTL_EVENT_* */
1248 struct snd_ctl_elem_id id;
1269 #define SNDRV_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"