⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asound.h

📁 alsa-driver-1.0.14编译声卡所需要的库
💻 H
📖 第 1 页 / 共 3 页
字号:
	unsigned int flags;		/* timer flags - SNDRV_TIMER_FLG_* */	int card;			/* card number */	unsigned char id[64];		/* timer identificator */	unsigned char name[80];		/* timer name */	unsigned long reserved0;	/* reserved for future use */	unsigned long resolution;	/* average period resolution in ns */	unsigned char reserved[64];	/* reserved */};#define SNDRV_TIMER_PSFLG_AUTO		(1<<0)	/* auto start, otherwise one-shot */#define SNDRV_TIMER_PSFLG_EXCLUSIVE	(1<<1)	/* exclusive use, precise start/stop/pause/continue */#define SNDRV_TIMER_PSFLG_EARLY_EVENT	(1<<2)	/* write early event to the poll queue */struct sndrv_timer_params {	unsigned int flags;		/* flags - SNDRV_MIXER_PSFLG_* */	unsigned int ticks;		/* requested resolution in ticks */	unsigned int queue_size;	/* total size of queue (32-1024) */	unsigned int reserved0;		/* reserved, was: failure locations */	unsigned int filter;		/* event filter (bitmask of SNDRV_TIMER_EVENT_*) */	unsigned char reserved[60];	/* reserved */};struct sndrv_timer_status {	struct timespec tstamp;		/* Timestamp - last update */	unsigned int resolution;	/* current period resolution in ns */	unsigned int lost;		/* counter of master tick lost */	unsigned int overrun;		/* count of read queue overruns */	unsigned int queue;		/* used queue size */	unsigned char reserved[64];	/* reserved */};enum {	SNDRV_TIMER_IOCTL_PVERSION = _IOR('T', 0x00, int),	SNDRV_TIMER_IOCTL_NEXT_DEVICE = _IOWR('T', 0x01, struct sndrv_timer_id),	SNDRV_TIMER_IOCTL_TREAD = _IOW('T', 0x02, int),	SNDRV_TIMER_IOCTL_GINFO = _IOWR('T', 0x03, struct sndrv_timer_ginfo),	SNDRV_TIMER_IOCTL_GPARAMS = _IOW('T', 0x04, struct sndrv_timer_gparams),	SNDRV_TIMER_IOCTL_GSTATUS = _IOWR('T', 0x05, struct sndrv_timer_gstatus),	SNDRV_TIMER_IOCTL_SELECT = _IOW('T', 0x10, struct sndrv_timer_select),	SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info),	SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params),	SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status),	/* The following four ioctls are changed since 1.0.9 due to confliction */	SNDRV_TIMER_IOCTL_START = _IO('T', 0xa0),	SNDRV_TIMER_IOCTL_STOP = _IO('T', 0xa1),	SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0xa2),	SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0xa3),};struct sndrv_timer_read {	unsigned int resolution;	unsigned int ticks;};enum sndrv_timer_event {	SNDRV_TIMER_EVENT_RESOLUTION = 0,	/* val = resolution in ns */	SNDRV_TIMER_EVENT_TICK,			/* val = ticks */	SNDRV_TIMER_EVENT_START,		/* val = resolution in ns */	SNDRV_TIMER_EVENT_STOP,			/* val = 0 */	SNDRV_TIMER_EVENT_CONTINUE,		/* val = resolution in ns */	SNDRV_TIMER_EVENT_PAUSE,		/* val = 0 */	SNDRV_TIMER_EVENT_EARLY,		/* val = 0, early event */	SNDRV_TIMER_EVENT_SUSPEND,		/* val = 0 */	SNDRV_TIMER_EVENT_RESUME,		/* val = resolution in ns */	/* master timer events for slave timer instances */	SNDRV_TIMER_EVENT_MSTART = SNDRV_TIMER_EVENT_START + 10,	SNDRV_TIMER_EVENT_MSTOP = SNDRV_TIMER_EVENT_STOP + 10,	SNDRV_TIMER_EVENT_MCONTINUE = SNDRV_TIMER_EVENT_CONTINUE + 10,	SNDRV_TIMER_EVENT_MPAUSE = SNDRV_TIMER_EVENT_PAUSE + 10,	SNDRV_TIMER_EVENT_MSUSPEND = SNDRV_TIMER_EVENT_SUSPEND + 10,	SNDRV_TIMER_EVENT_MRESUME = SNDRV_TIMER_EVENT_RESUME + 10,};struct sndrv_timer_tread {	int event;	struct timespec tstamp;	unsigned int val;};/**************************************************************************** *                                                                          * *        Section for driver control interface - /dev/snd/control?          * *                                                                          * ****************************************************************************/#define SNDRV_CTL_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 3)struct sndrv_ctl_card_info {	int card;			/* card number */	int pad;			/* reserved for future (was type) */	unsigned char id[16];		/* ID of card (user selectable) */	unsigned char driver[16];	/* Driver name */	unsigned char name[32];		/* Short name of soundcard */	unsigned char longname[80];	/* name + info text about soundcard */	unsigned char reserved_[16];	/* reserved for future (was ID of mixer) */	unsigned char mixername[80];	/* visual mixer identification */	unsigned char components[80];	/* card components / fine identification, delimited with one space (AC97 etc..) */	unsigned char reserved[48];	/* reserved for future */};enum sndrv_ctl_elem_type {	SNDRV_CTL_ELEM_TYPE_NONE = 0,		/* invalid */	SNDRV_CTL_ELEM_TYPE_BOOLEAN,		/* boolean type */	SNDRV_CTL_ELEM_TYPE_INTEGER,		/* integer type */	SNDRV_CTL_ELEM_TYPE_ENUMERATED,		/* enumerated type */	SNDRV_CTL_ELEM_TYPE_BYTES,		/* byte array */	SNDRV_CTL_ELEM_TYPE_IEC958,		/* IEC958 (S/PDIF) setup */	SNDRV_CTL_ELEM_TYPE_INTEGER64,		/* 64-bit integer type */	SNDRV_CTL_ELEM_TYPE_LAST = SNDRV_CTL_ELEM_TYPE_INTEGER64,};enum sndrv_ctl_elem_iface {	SNDRV_CTL_ELEM_IFACE_CARD = 0,		/* global control */	SNDRV_CTL_ELEM_IFACE_HWDEP,		/* hardware dependent device */	SNDRV_CTL_ELEM_IFACE_MIXER,		/* virtual mixer device */	SNDRV_CTL_ELEM_IFACE_PCM,		/* PCM device */	SNDRV_CTL_ELEM_IFACE_RAWMIDI,		/* RawMidi device */	SNDRV_CTL_ELEM_IFACE_TIMER,		/* timer device */	SNDRV_CTL_ELEM_IFACE_SEQUENCER,		/* sequencer client */	SNDRV_CTL_ELEM_IFACE_LAST = SNDRV_CTL_ELEM_IFACE_SEQUENCER,};#define SNDRV_CTL_ELEM_ACCESS_READ		(1<<0)#define SNDRV_CTL_ELEM_ACCESS_WRITE		(1<<1)#define SNDRV_CTL_ELEM_ACCESS_READWRITE		(SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)#define SNDRV_CTL_ELEM_ACCESS_VOLATILE		(1<<2)	/* control value may be changed without a notification */#define SNDRV_CTL_ELEM_ACCESS_TIMESTAMP		(1<<3)	/* when was control changed */#define SNDRV_CTL_ELEM_ACCESS_TLV_READ		(1<<4)	/* TLV read is supported */#define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE		(1<<5)	/* TLV write is supported */#define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE	(SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)#define SNDRV_CTL_ELEM_ACCESS_TLV_COMMAND	(1<<6)	/* TLV command is possible */#define SNDRV_CTL_ELEM_ACCESS_INACTIVE		(1<<8)	/* control does actually nothing, but may be updated */#define SNDRV_CTL_ELEM_ACCESS_LOCK		(1<<9)	/* write lock */#define SNDRV_CTL_ELEM_ACCESS_OWNER		(1<<10)	/* write lock owner */#define SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK	(1<<28)	/* flag only for kernel */#define SNDRV_CTL_ELEM_ACCESS_USER		(1<<29) /* user space element */#define SNDRV_CTL_ELEM_ACCESS_DINDIRECT		(1<<30)	/* indirect access for matrix dimensions in the info structure */#define SNDRV_CTL_ELEM_ACCESS_INDIRECT		(1<<31)	/* indirect access for element value in the value structure *//* for further details see the ACPI and PCI power management specification */#define SNDRV_CTL_POWER_D0		0x0000	/* full On */#define SNDRV_CTL_POWER_D1		0x0100	/* partial On */#define SNDRV_CTL_POWER_D2		0x0200	/* partial On */#define SNDRV_CTL_POWER_D3		0x0300	/* Off */#define SNDRV_CTL_POWER_D3hot		(SNDRV_CTL_POWER_D3|0x0000)	/* Off, with power */#define SNDRV_CTL_POWER_D3cold		(SNDRV_CTL_POWER_D3|0x0001)	/* Off, without power */struct sndrv_ctl_elem_id {	unsigned int numid;		/* numeric identifier, zero = invalid */	int iface;			/* interface identifier */	unsigned int device;		/* device/client number */	unsigned int subdevice;		/* subdevice (substream) number */        unsigned char name[44];		/* ASCII name of item */	unsigned int index;		/* index of item */};struct sndrv_ctl_elem_list {	unsigned int offset;		/* W: first element ID to get */	unsigned int space;		/* W: count of element IDs to get */	unsigned int used;		/* R: count of element IDs set */	unsigned int count;		/* R: count of all elements */	struct sndrv_ctl_elem_id *pids; /* R: IDs */	unsigned char reserved[50];};struct sndrv_ctl_elem_info {	struct sndrv_ctl_elem_id id;	/* W: element ID */	int type;			/* R: value type - SNDRV_CTL_ELEM_TYPE_* */	unsigned int access;		/* R: value access (bitmask) - SNDRV_CTL_ELEM_ACCESS_* */	unsigned int count;		/* count of values */	pid_t owner;			/* owner's PID of this control */	union {		struct {			long min;		/* R: minimum value */			long max;		/* R: maximum value */			long step;		/* R: step (0 variable) */		} integer;		struct {			long long min;		/* R: minimum value */			long long max;		/* R: maximum value */			long long step;		/* R: step (0 variable) */		} integer64;		struct {			unsigned int items;	/* R: number of items */			unsigned int item;	/* W: item number */			char name[64];		/* R: value name */		} enumerated;		unsigned char reserved[128];	} value;	union {		unsigned short d[4];		/* dimensions */		unsigned short *d_ptr;		/* indirect */	} dimen;	unsigned char reserved[64-4*sizeof(unsigned short)];};struct sndrv_ctl_elem_value {	struct sndrv_ctl_elem_id id;	/* W: element ID */	unsigned int indirect: 1;	/* W: use indirect pointer (xxx_ptr member) */        union {		union {			long value[128];			long *value_ptr;		} integer;		union {			long long value[64];			long long *value_ptr;		} integer64;		union {			unsigned int item[128];			unsigned int *item_ptr;		} enumerated;		union {			unsigned char data[512];			unsigned char *data_ptr;		} bytes;		struct sndrv_aes_iec958 iec958;        } value;                /* RO */	struct timespec tstamp;        unsigned char reserved[128-sizeof(struct timespec)];};struct sndrv_ctl_tlv {	unsigned int numid;     /* control element numeric identification */        unsigned int length;    /* in bytes aligned to 4 */        unsigned int tlv[0];    /* first TLV */};enum {	SNDRV_CTL_IOCTL_PVERSION = _IOR('U', 0x00, int),	SNDRV_CTL_IOCTL_CARD_INFO = _IOR('U', 0x01, struct sndrv_ctl_card_info),	SNDRV_CTL_IOCTL_ELEM_LIST = _IOWR('U', 0x10, struct sndrv_ctl_elem_list),	SNDRV_CTL_IOCTL_ELEM_INFO = _IOWR('U', 0x11, struct sndrv_ctl_elem_info),	SNDRV_CTL_IOCTL_ELEM_READ = _IOWR('U', 0x12, struct sndrv_ctl_elem_value),	SNDRV_CTL_IOCTL_ELEM_WRITE = _IOWR('U', 0x13, struct sndrv_ctl_elem_value),	SNDRV_CTL_IOCTL_ELEM_LOCK = _IOW('U', 0x14, struct sndrv_ctl_elem_id),	SNDRV_CTL_IOCTL_ELEM_UNLOCK = _IOW('U', 0x15, struct sndrv_ctl_elem_id),	SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS = _IOWR('U', 0x16, int),	SNDRV_CTL_IOCTL_ELEM_ADD = _IOWR('U', 0x17, struct sndrv_ctl_elem_info),	SNDRV_CTL_IOCTL_ELEM_REPLACE = _IOWR('U', 0x18, struct sndrv_ctl_elem_info),	SNDRV_CTL_IOCTL_ELEM_REMOVE = _IOWR('U', 0x19, struct sndrv_ctl_elem_id),	SNDRV_CTL_IOCTL_TLV_READ = _IOWR('U', 0x1a, struct sndrv_ctl_tlv),	SNDRV_CTL_IOCTL_TLV_WRITE = _IOWR('U', 0x1b, struct sndrv_ctl_tlv),	SNDRV_CTL_IOCTL_TLV_COMMAND = _IOWR('U', 0x1c, struct sndrv_ctl_tlv),	SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE = _IOWR('U', 0x20, int),	SNDRV_CTL_IOCTL_HWDEP_INFO = _IOR('U', 0x21, struct sndrv_hwdep_info),	SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE = _IOR('U', 0x30, int),	SNDRV_CTL_IOCTL_PCM_INFO = _IOWR('U', 0x31, struct sndrv_pcm_info),	SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE = _IOW('U', 0x32, int),	SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE = _IOWR('U', 0x40, int),	SNDRV_CTL_IOCTL_RAWMIDI_INFO = _IOWR('U', 0x41, struct sndrv_rawmidi_info),	SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE = _IOW('U', 0x42, int),	SNDRV_CTL_IOCTL_POWER = _IOWR('U', 0xd0, int),	SNDRV_CTL_IOCTL_POWER_STATE = _IOR('U', 0xd1, int),};/* *  Read interface. */enum sndrv_ctl_event_type {	SNDRV_CTL_EVENT_ELEM = 0,	SNDRV_CTL_EVENT_LAST = SNDRV_CTL_EVENT_ELEM,};#define SNDRV_CTL_EVENT_MASK_VALUE	(1<<0)	/* element value was changed */#define SNDRV_CTL_EVENT_MASK_INFO	(1<<1)	/* element info was changed */#define SNDRV_CTL_EVENT_MASK_ADD	(1<<2)	/* element was added */#define SNDRV_CTL_EVENT_MASK_REMOVE	(~0U)	/* element was removed */struct sndrv_ctl_event {	int type;				/* event type - SNDRV_CTL_EVENT_* */	union {		struct {			unsigned int mask;			struct sndrv_ctl_elem_id id;		} elem;                unsigned char data8[60];        } data;};/* *  Control names */#define SNDRV_CTL_NAME_NONE				""#define SNDRV_CTL_NAME_PLAYBACK				"Playback "#define SNDRV_CTL_NAME_CAPTURE				"Capture "#define SNDRV_CTL_NAME_IEC958_NONE			""#define SNDRV_CTL_NAME_IEC958_SWITCH			"Switch"#define SNDRV_CTL_NAME_IEC958_VOLUME			"Volume"#define SNDRV_CTL_NAME_IEC958_DEFAULT			"Default"#define SNDRV_CTL_NAME_IEC958_MASK			"Mask"#define SNDRV_CTL_NAME_IEC958_CON_MASK			"Con Mask"#define SNDRV_CTL_NAME_IEC958_PRO_MASK			"Pro Mask"#define SNDRV_CTL_NAME_IEC958_PCM_STREAM		"PCM Stream"#define SNDRV_CTL_NAME_IEC958(expl,direction,what)	"IEC958 " expl SNDRV_CTL_NAME_##direction SNDRV_CTL_NAME_IEC958_##what/* * */struct sndrv_xferv {	const struct iovec *vector;	unsigned long count;};enum {	SNDRV_IOCTL_READV = _IOW('K', 0x00, struct sndrv_xferv),	SNDRV_IOCTL_WRITEV = _IOW('K', 0x01, struct sndrv_xferv),};#endif /* __SOUND_ASOUND_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -