📄 asound.h
字号:
struct snd_mixer_element_mux1 { int output_size; /* WR: size of mixer elements */ int output; /* RO: count of mixer elements */ int output_over; /* RO: missing voice elements */ snd_mixer_eid_t *poutput; /* WR: selected source on element output */};/* * Simple MUX * * This mux allows selection of exactly one (or none - optional) source. */#define SND_MIXER_MUX2_NONE (1<<0)struct snd_mixer_element_mux2_info { unsigned int attrib; /* RO: SND_MIXER_MUX1_ */};struct snd_mixer_element_mux2 { snd_mixer_eid_t output; /* RO: input source on element output */};/* * Simple tone control */#define SND_MIXER_TC1_SW (1<<0)#define SND_MIXER_TC1_BASS (1<<1)#define SND_MIXER_TC1_TREBLE (1<<2)struct snd_mixer_element_tone_control1_info { unsigned int tc; /* RO: bitmap of SND_MIXER_TC_* */ int min_bass, max_bass; /* RO: Bass */ int min_bass_dB, max_bass_dB; /* RO: in decibels * 100 */ int min_treble, max_treble; /* RO: Treble */ int min_treble_dB, max_treble_dB; /* RO: in decibels * 100 */};struct snd_mixer_element_tone_control1 { unsigned int tc; /* WR: bitmap of SND_MIXER_TC_* */ unsigned int sw:1; /* WR: on/off switch */ int bass; /* WR: Bass control */ int treble; /* WR: Treble control */};/* * Simple pan control */#define SND_MIXER_PAN_LEFT_RIGHT 0#define SND_MIXER_PAN_FRONT_REAR 1#define SND_MIXER_PAN_BOTTOM_UP 2struct snd_mixer_element_pan_control1_range { int pan_type; /* RO: SND_MIXER_PAN_XXXX */ int min, max; /* RO: min & max range */ int min_dB, max_dB; /* RO: min dB & max dB range */};struct snd_mixer_element_pan_control1_info { int range_size; /* WR: size of range descriptors */ int range; /* RO: count of filled range descriptors */ int range_over; /* RO: missing range descriptors */ struct snd_mixer_element_pan_control1_range *prange; /* WR: array */};struct snd_mixer_element_pan_control1 { int pan_size; /* WR: size of pan descriptors */ int pan; /* RO: count of filled pan descriptors */ int pan_over; /* RO: missing pan descriptors */ int *ppan; /* WR: array of pan values */};/* * Equalizer *//* TODO *//* * Simple 3D Effect */#define SND_MIXER_EFF1_SW (1<<0)#define SND_MIXER_EFF1_MONO_SW (1<<1)#define SND_MIXER_EFF1_WIDE (1<<2)#define SND_MIXER_EFF1_VOLUME (1<<3)#define SND_MIXER_EFF1_CENTER (1<<4)#define SND_MIXER_EFF1_SPACE (1<<5)#define SND_MIXER_EFF1_DEPTH (1<<6)#define SND_MIXER_EFF1_DELAY (1<<7)#define SND_MIXER_EFF1_FEEDBACK (1<<8)#define SND_MIXER_EFF1_DEPTH_REAR (1<<9)struct snd_mixer_element_3d_effect1_info { unsigned int effect; /* RO: bitmap of SND_MIXER_EFF1_* */ int min_wide, max_wide; /* RO: 3D wide */ int min_volume, max_volume; /* RO: 3D volume */ int min_center, max_center; /* RO: 3D center */ int min_space, max_space; /* RO: 3D space */ int min_depth, max_depth; /* RO: 3D depth */ int min_delay, max_delay; /* RO: 3D delay */ int min_feedback, max_feedback; /* RO: 3D feedback */ int min_depth_rear, max_depth_rear; /* RO: 3D depth rear */};struct snd_mixer_element_3d_effect1 { unsigned int effect; /* RW: bitmap of SND_MIXER_EFF1_* */ unsigned int sw:1, /* RW: on/off switch */ mono_sw:1; /* RW: on/off switch */ int wide; /* RW: 3D wide */ int volume; /* RW: 3D volume */ int center; /* RW: 3D center */ int space; /* RW: 3D space */ int depth; /* RW: 3D depth */ int delay; /* RW: 3D delay */ int feedback; /* RW: 3D feedback */ int depth_rear; /* RW: 3D depth rear */};/* * Simple predefined effect */struct snd_mixer_element_pre_effect1_info_item { char name[32];};struct snd_mixer_element_pre_effect1_info_parameter { char name[32]; /* RO: parameter name */ int min, max; /* RO: minimum and maximum value */};struct snd_mixer_element_pre_effect1_info { /* predefined programs */ int items_size; /* WR: size of programs */ int items; /* RO: count of filled programs */ int items_over; /* RO: missing programs */ struct snd_mixer_element_pre_effect1_info_item *pitems; /* WR: array */ /* user parameters */ int parameters_size; /* WR: size of parameters */ int parameters; /* RO: count of filled parameters */ int parameters_over; /* RO: missing parameters */ struct snd_mixer_element_pre_effect1_info_parameter *pparameters; /* WR: array */};struct snd_mixer_element_pre_effect1 { int item; /* WR: chose item index or -1 = user parameters */ int parameters_size; /* WR: size of parameters */ int parameters; /* RO: count of filled parameters */ int parameters_over; /* RO: missing parameters */ int *pparameters; /* WR: array */};/* * */typedef struct snd_mixer_element_info { snd_mixer_eid_t eid; /* WR: element identification */ union { struct snd_mixer_element_io_info io; struct snd_mixer_element_pcm1_info pcm1; struct snd_mixer_element_pcm2_info pcm2; struct snd_mixer_element_converter_info converter; struct snd_mixer_element_switch3_info switch3; struct snd_mixer_element_volume1_info volume1; struct snd_mixer_element_volume2_info volume2; struct snd_mixer_element_accu1_info accu1; struct snd_mixer_element_accu2_info accu2; struct snd_mixer_element_accu3_info accu3; struct snd_mixer_element_mux1_info mux1; struct snd_mixer_element_mux2_info mux2; struct snd_mixer_element_tone_control1_info tc1; struct snd_mixer_element_pan_control1_info pc1; struct snd_mixer_element_3d_effect1_info teffect1; struct snd_mixer_element_pre_effect1_info peffect1; char reserve[120]; } data;} snd_mixer_element_info_t;typedef struct snd_mixer_element { snd_mixer_eid_t eid; union { struct snd_mixer_element_switch1 switch1; struct snd_mixer_element_switch2 switch2; struct snd_mixer_element_switch3 switch3; struct snd_mixer_element_mux1 mux1; struct snd_mixer_element_mux2 mux2; struct snd_mixer_element_accu3 accu3; struct snd_mixer_element_volume1 volume1; struct snd_mixer_element_volume2 volume2; struct snd_mixer_element_tone_control1 tc1; struct snd_mixer_element_pan_control1 pc1; struct snd_mixer_element_3d_effect1 teffect1; struct snd_mixer_element_pre_effect1 peffect1; char reserve[120]; } data;} snd_mixer_element_t;typedef struct snd_mixer_filter { unsigned int read_cmds[8];} snd_mixer_filter_t;/* ioctl commands */#define SND_MIXER_IOCTL_PVERSION _IOR ('R', 0x00, int)#define SND_MIXER_IOCTL_INFO _IOR ('R', 0x01, snd_mixer_info_t)#define SND_MIXER_IOCTL_ELEMENTS _IOWR('R', 0x10, snd_mixer_elements_t)#define SND_MIXER_IOCTL_ROUTES _IOWR('R', 0x11, snd_mixer_routes_t)#define SND_MIXER_IOCTL_GROUPS _IOWR('R', 0x12, snd_mixer_groups_t)#define SND_MIXER_IOCTL_GROUP_READ _IOWR('R', 0x13, snd_mixer_group_t)#define SND_MIXER_IOCTL_GROUP_WRITE _IOWR('R', 0x14, snd_mixer_group_t)#define SND_MIXER_IOCTL_ELEMENT_INFO _IOWR('R', 0x20, snd_mixer_element_info_t)#define SND_MIXER_IOCTL_ELEMENT_READ _IOWR('R', 0x21, snd_mixer_element_t)#define SND_MIXER_IOCTL_ELEMENT_WRITE _IOWR('R', 0x22, snd_mixer_element_t)#define SND_MIXER_IOCTL_GET_FILTER _IOR ('R', 0x30, snd_mixer_filter_t)#define SND_MIXER_IOCTL_PUT_FILTER _IOW ('R', 0x30, snd_mixer_filter_t)/* * Read interface. */#define SND_MIXER_READ_REBUILD 0 /* rebuild the mixer structure */#define SND_MIXER_READ_ELEMENT_VALUE 1 /* the element value was changed */#define SND_MIXER_READ_ELEMENT_CHANGE 2 /* the element was changed */#define SND_MIXER_READ_ELEMENT_ROUTE 3 /* the element route was changed */#define SND_MIXER_READ_ELEMENT_ADD 4 /* the element was added */#define SND_MIXER_READ_ELEMENT_REMOVE 5 /* the element was removed */#define SND_MIXER_READ_GROUP_VALUE 6 /* the group value was changed */#define SND_MIXER_READ_GROUP_CHANGE 7 /* the group was changed */#define SND_MIXER_READ_GROUP_ADD 8 /* the group was added */#define SND_MIXER_READ_GROUP_REMOVE 9 /* the group was removed */typedef struct snd_mixer_read { unsigned int cmd; /* command - SND_MIXER_READ_* */ union { snd_mixer_eid_t eid; /* element identification */ snd_mixer_gid_t gid; /* group identification */ unsigned char data8[60]; } data;} snd_mixer_read_t;/* * Interface compatible with Open Sound System API */#ifdef __SND_OSS_COMPAT__#define SND_MIXER_OSS_CAP_EXCL_INPUT 0x00000001 /* only one capture source at moment */#define SND_MIXER_OSS_DEVS 25#define SND_MIXER_OSS_VOLUME 0#define SND_MIXER_OSS_BASS 1#define SND_MIXER_OSS_TREBLE 2#define SND_MIXER_OSS_SYNTH 3#define SND_MIXER_OSS_PCM 4#define SND_MIXER_OSS_SPEAKER 5#define SND_MIXER_OSS_LINE 6#define SND_MIXER_OSS_MIC 7#define SND_MIXER_OSS_CD 8#define SND_MIXER_OSS_IMIX 9 /* recording monitor */#define SND_MIXER_OSS_ALTPCM 10#define SND_MIXER_OSS_RECLEV 11 /* recording level */#define SND_MIXER_OSS_IGAIN 12 /* input gain */#define SND_MIXER_OSS_OGAIN 13 /* output gain */#define SND_MIXER_OSS_LINE1 14#define SND_MIXER_OSS_LINE2 15#define SND_MIXER_OSS_LINE3 16#define SND_MIXER_OSS_DIGITAL1 17#define SND_MIXER_OSS_DIGITAL2 18#define SND_MIXER_OSS_DIGITAL3 19#define SND_MIXER_OSS_PHONEIN 20#define SND_MIXER_OSS_PHONEOUT 21#define SND_MIXER_OSS_VIDEO 22#define SND_MIXER_OSS_RADIO 23#define SND_MIXER_OSS_MONITOR 24#define SND_MIXER_OSS_UNKNOWN (32+1)struct snd_oss_mixer_info { char id[16]; char name[32]; int modify_counter; int fillers[10];};struct snd_oss_mixer_info_obsolete { char id[16]; char name[32];};#define SND_MIXER_OSS_SET_RECSRC _IOWR('M', 255, int)#define SND_MIXER_OSS_RECSRC _IOR ('M', 255, int)#define SND_MIXER_OSS_DEVMASK _IOR ('M', 254, int)#define SND_MIXER_OSS_RECMASK _IOR ('M', 253, int)#define SND_MIXER_OSS_CAPS _IOR ('M', 252, int)#define SND_MIXER_OSS_STEREODEVS _IOR ('M', 251, int)#define SND_MIXER_OSS_INFO _IOR ('M', 101, struct snd_oss_mixer_info)#define SND_MIXER_OSS_OLD_INFO _IOR ('M', 101, struct snd_oss_mixer_info_obsolete)#define SND_OSS_GETVERSION _IOR ('M', 118, int)#endif /* __SND_OSS_COMPAT__ *//***************************************************************************** * * * Digital Audio (PCM) interface - /dev/snd/pcm?? * * * *****************************************************************************/#define SND_PCM_VERSION SND_PROTOCOL_VERSION(1, 0, 0)#define SND_PCM_CHANNEL_PLAYBACK 0#define SND_PCM_CHANNEL_CAPTURE 1#define SND_PCM_MODE_UNKNOWN (-1)#define SND_PCM_MODE_STREAM 0#define SND_PCM_MODE_BLOCK 1#define SND_PCM_SFMT_S8 0#define SND_PCM_SFMT_U8 1#define SND_PCM_SFMT_S16_LE 2#define SND_PCM_SFMT_S16_BE 3#define SND_PCM_SFMT_U16_LE 4#define SND_PCM_SFMT_U16_BE 5#define SND_PCM_SFMT_S24_LE 6 /* low three bytes */#define SND_PCM_SFMT_S24_BE 7 /* low three bytes */#define SND_PCM_SFMT_U24_LE 8 /* low three bytes */#define SND_PCM_SFMT_U24_BE 9 /* low three bytes */#define SND_PCM_SFMT_S32_LE 10#define SND_PCM_SFMT_S32_BE 11#define SND_PCM_SFMT_U32_LE 12#define SND_PCM_SFMT_U32_BE 13#define SND_PCM_SFMT_FLOAT_LE 14 /* 4-byte float, IEEE-754 32-bit */#define SND_PCM_SFMT_FLOAT_BE 15 /* 4-byte float, IEEE-754 32-bit */#define SND_PCM_SFMT_FLOAT64_LE 16 /* 8-byte float, IEEE-754 64-bit */#define SND_PCM_SFMT_FLOAT64_BE 17 /* 8-byte float, IEEE-754 64-bit */#define SND_PCM_SFMT_IEC958_SUBFRAME_LE 18 /* IEC-958 subframe, Little Endian */#define SND_PCM_SFMT_IEC958_SUBFRAME_BE 19 /* IEC-958 subframe, Big Endian */#define SND_PCM_SFMT_MU_LAW 20#define SND_PCM_SFMT_A_LAW 21#define SND_PCM_SFMT_IMA_ADPCM 22#define SND_PCM_SFMT_MPEG 23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -