亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hda_local.h

?? linux2.6.16版本
?? H
字號:
/* * Universal Interface for Intel High Definition Audio Codec * * Local helper functions * * Copyright (c) 2004 Takashi Iwai <tiwai@suse.de> * *  This program is free software; you can redistribute it and/or modify it *  under the terms of the GNU General Public License as published by the Free *  Software Foundation; either version 2 of the License, or (at your option) *  any later version. * *  This program is distributed in the hope that it will be useful, but WITHOUT *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for *  more details. * *  You should have received a copy of the GNU General Public License along with *  this program; if not, write to the Free Software Foundation, Inc., 59 *  Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#ifndef __SOUND_HDA_LOCAL_H#define __SOUND_HDA_LOCAL_H/* * for mixer controls */#define HDA_COMPOSE_AMP_VAL(nid,chs,idx,dir) ((nid) | ((chs)<<16) | ((dir)<<18) | ((idx)<<19))/* mono volume with index (index=0,1,...) (channel=1,2) */#define HDA_CODEC_VOLUME_MONO_IDX(xname, xcidx, nid, channel, xindex, direction) \	{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xcidx,  \	  .info = snd_hda_mixer_amp_volume_info, \	  .get = snd_hda_mixer_amp_volume_get, \	  .put = snd_hda_mixer_amp_volume_put, \	  .private_value = HDA_COMPOSE_AMP_VAL(nid, channel, xindex, direction) }/* stereo volume with index */#define HDA_CODEC_VOLUME_IDX(xname, xcidx, nid, xindex, direction) \	HDA_CODEC_VOLUME_MONO_IDX(xname, xcidx, nid, 3, xindex, direction)/* mono volume */#define HDA_CODEC_VOLUME_MONO(xname, nid, channel, xindex, direction) \	HDA_CODEC_VOLUME_MONO_IDX(xname, 0, nid, channel, xindex, direction)/* stereo volume */#define HDA_CODEC_VOLUME(xname, nid, xindex, direction) \	HDA_CODEC_VOLUME_MONO(xname, nid, 3, xindex, direction)/* mono mute switch with index (index=0,1,...) (channel=1,2) */#define HDA_CODEC_MUTE_MONO_IDX(xname, xcidx, nid, channel, xindex, direction) \	{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xcidx, \	  .info = snd_hda_mixer_amp_switch_info, \	  .get = snd_hda_mixer_amp_switch_get, \	  .put = snd_hda_mixer_amp_switch_put, \	  .private_value = HDA_COMPOSE_AMP_VAL(nid, channel, xindex, direction) }/* stereo mute switch with index */#define HDA_CODEC_MUTE_IDX(xname, xcidx, nid, xindex, direction) \	HDA_CODEC_MUTE_MONO_IDX(xname, xcidx, nid, 3, xindex, direction)/* mono mute switch */#define HDA_CODEC_MUTE_MONO(xname, nid, channel, xindex, direction) \	HDA_CODEC_MUTE_MONO_IDX(xname, 0, nid, channel, xindex, direction)/* stereo mute switch */#define HDA_CODEC_MUTE(xname, nid, xindex, direction) \	HDA_CODEC_MUTE_MONO(xname, nid, 3, xindex, direction)int snd_hda_mixer_amp_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo);int snd_hda_mixer_amp_volume_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);int snd_hda_mixer_amp_volume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);int snd_hda_mixer_amp_switch_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo);int snd_hda_mixer_amp_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);int snd_hda_mixer_amp_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);/* mono switch binding multiple inputs */#define HDA_BIND_MUTE_MONO(xname, nid, channel, indices, direction) \	{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = 0,  \	  .info = snd_hda_mixer_amp_switch_info, \	  .get = snd_hda_mixer_bind_switch_get, \	  .put = snd_hda_mixer_bind_switch_put, \	  .private_value = HDA_COMPOSE_AMP_VAL(nid, channel, indices, direction) }/* stereo switch binding multiple inputs */#define HDA_BIND_MUTE(xname,nid,indices,dir) HDA_BIND_MUTE_MONO(xname,nid,3,indices,dir)int snd_hda_mixer_bind_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);int snd_hda_mixer_bind_switch_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol);int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, hda_nid_t nid);int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid);/* * input MUX helper */#define HDA_MAX_NUM_INPUTS	16struct hda_input_mux_item {	const char *label;	unsigned int index;};struct hda_input_mux {	unsigned int num_items;	struct hda_input_mux_item items[HDA_MAX_NUM_INPUTS];};int snd_hda_input_mux_info(const struct hda_input_mux *imux, struct snd_ctl_elem_info *uinfo);int snd_hda_input_mux_put(struct hda_codec *codec, const struct hda_input_mux *imux,			  struct snd_ctl_elem_value *ucontrol, hda_nid_t nid,			  unsigned int *cur_val);/* * Channel mode helper */struct hda_channel_mode {	int channels;	const struct hda_verb *sequence;};int snd_hda_ch_mode_info(struct hda_codec *codec, struct snd_ctl_elem_info *uinfo,			 const struct hda_channel_mode *chmode, int num_chmodes);int snd_hda_ch_mode_get(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol,			const struct hda_channel_mode *chmode, int num_chmodes,			int max_channels);int snd_hda_ch_mode_put(struct hda_codec *codec, struct snd_ctl_elem_value *ucontrol,			const struct hda_channel_mode *chmode, int num_chmodes,			int *max_channelsp);/* * Multi-channel / digital-out PCM helper */enum { HDA_FRONT, HDA_REAR, HDA_CLFE, HDA_SIDE }; /* index for dac_nidx */enum { HDA_DIG_NONE, HDA_DIG_EXCLUSIVE, HDA_DIG_ANALOG_DUP }; /* dig_out_used */struct hda_multi_out {	int num_dacs;		/* # of DACs, must be more than 1 */	hda_nid_t *dac_nids;	/* DAC list */	hda_nid_t hp_nid;	/* optional DAC for HP, 0 when not exists */	hda_nid_t dig_out_nid;	/* digital out audio widget */	int max_channels;	/* currently supported analog channels */	int dig_out_used;	/* current usage of digital out (HDA_DIG_XXX) */};int snd_hda_multi_out_dig_open(struct hda_codec *codec, struct hda_multi_out *mout);int snd_hda_multi_out_dig_close(struct hda_codec *codec, struct hda_multi_out *mout);int snd_hda_multi_out_analog_open(struct hda_codec *codec, struct hda_multi_out *mout,				  struct snd_pcm_substream *substream);int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, struct hda_multi_out *mout,				     unsigned int stream_tag,				     unsigned int format,				     struct snd_pcm_substream *substream);int snd_hda_multi_out_analog_cleanup(struct hda_codec *codec, struct hda_multi_out *mout);/* * generic codec parser */int snd_hda_parse_generic_codec(struct hda_codec *codec);/* * generic proc interface */#ifdef CONFIG_PROC_FSint snd_hda_codec_proc_new(struct hda_codec *codec);#elsestatic inline int snd_hda_codec_proc_new(struct hda_codec *codec) { return 0; }#endif/* * Misc */struct hda_board_config {	const char *modelname;	int config;	unsigned short pci_subvendor;	unsigned short pci_subdevice;};int snd_hda_check_board_config(struct hda_codec *codec, const struct hda_board_config *tbl);int snd_hda_add_new_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew);/* * power management */#ifdef CONFIG_PMint snd_hda_resume_ctls(struct hda_codec *codec, struct snd_kcontrol_new *knew);int snd_hda_resume_spdif_out(struct hda_codec *codec);int snd_hda_resume_spdif_in(struct hda_codec *codec);#endif/* * unsolicited event handler */#define HDA_UNSOL_QUEUE_SIZE	64struct hda_bus_unsolicited {	/* ring buffer */	u32 queue[HDA_UNSOL_QUEUE_SIZE * 2];	unsigned int rp, wp;	/* workqueue */	struct workqueue_struct *workq;	struct work_struct work;};/* * Helper for automatic ping configuration */enum {	AUTO_PIN_MIC,	AUTO_PIN_FRONT_MIC,	AUTO_PIN_LINE,	AUTO_PIN_FRONT_LINE,	AUTO_PIN_CD,	AUTO_PIN_AUX,	AUTO_PIN_LAST};extern const char *auto_pin_cfg_labels[AUTO_PIN_LAST];struct auto_pin_cfg {	int line_outs;	hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */	hda_nid_t speaker_pin;	hda_nid_t hp_pin;	hda_nid_t input_pins[AUTO_PIN_LAST];	hda_nid_t dig_out_pin;	hda_nid_t dig_in_pin;};#define get_defcfg_connect(cfg) ((cfg & AC_DEFCFG_PORT_CONN) >> AC_DEFCFG_PORT_CONN_SHIFT)#define get_defcfg_association(cfg) ((cfg & AC_DEFCFG_DEF_ASSOC) >> AC_DEFCFG_ASSOC_SHIFT)#define get_defcfg_location(cfg) ((cfg & AC_DEFCFG_LOCATION) >> AC_DEFCFG_LOCATION_SHIFT)#define get_defcfg_sequence(cfg) (cfg & AC_DEFCFG_SEQUENCE)#define get_defcfg_device(cfg) ((cfg & AC_DEFCFG_DEVICE) >> AC_DEFCFG_DEVICE_SHIFT)int snd_hda_parse_pin_def_config(struct hda_codec *codec, struct auto_pin_cfg *cfg,				 hda_nid_t *ignore_nids);/* amp values */#define AMP_IN_MUTE(idx)	(0x7080 | ((idx)<<8))#define AMP_IN_UNMUTE(idx)	(0x7000 | ((idx)<<8))#define AMP_OUT_MUTE	0xb080#define AMP_OUT_UNMUTE	0xb000#define AMP_OUT_ZERO	0xb000/* pinctl values */#define PIN_IN		0x20#define PIN_VREF80	0x24#define PIN_VREF50	0x21#define PIN_OUT		0x40#define PIN_HP		0xc0#define PIN_HP_AMP	0x80/* * get widget capabilities */static inline u32 get_wcaps(struct hda_codec *codec, hda_nid_t nid){	if (nid < codec->start_nid ||	    nid >= codec->start_nid + codec->num_nodes)		return snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP);	return codec->wcaps[nid - codec->start_nid];}#endif /* __SOUND_HDA_LOCAL_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产传媒久久文化传媒| 久久免费精品国产久精品久久久久| 久久99精品久久久久久| 五月婷婷久久丁香| 亚洲免费视频中文字幕| 亚洲精品国产无天堂网2021| 亚洲男人的天堂av| 亚洲国产一区视频| 午夜久久久影院| 热久久国产精品| 久久不见久久见免费视频1| 免费人成在线不卡| 美女高潮久久久| 国产成人综合网站| 成人美女在线观看| 色综合久久久网| 欧美在线999| 中文字幕一区二区三区不卡 | 色呦呦国产精品| 色噜噜狠狠成人中文综合| 欧美私人免费视频| 欧美成人性福生活免费看| 久久婷婷色综合| 亚洲精品视频观看| 香港成人在线视频| 国产精品一区一区三区| 99久久婷婷国产综合精品电影| 欧美综合欧美视频| 精品va天堂亚洲国产| 亚洲免费在线观看| 久久精品国产澳门| 色综合天天性综合| 欧美刺激脚交jootjob| 亚洲欧美日韩国产综合在线| 手机精品视频在线观看| 成人黄色小视频| 欧美电影在线免费观看| 中文字幕精品三区| 日韩成人午夜电影| 91啦中文在线观看| 精品国产乱码久久久久久久久| 亚洲欧美日韩国产成人精品影院| 免费成人在线视频观看| 91精品91久久久中77777| 国产亚洲欧美在线| 日本女优在线视频一区二区| 99视频在线精品| 久久久蜜臀国产一区二区| 一区二区三区在线免费播放 | 国产精品乱人伦中文| 婷婷综合另类小说色区| 9色porny自拍视频一区二区| 亚洲精品在线观看网站| 亚洲成a人v欧美综合天堂下载| 成人国产在线观看| 久久精品男人的天堂| 日韩av一区二区三区四区| 色综合一区二区三区| 中文字幕不卡三区| 国模冰冰炮一区二区| 91精品国产欧美日韩| 午夜一区二区三区在线观看| 91麻豆免费视频| 国产精品国产三级国产aⅴ原创| 精品一区二区三区在线视频| 欧美精品一二三四| 亚洲国产综合视频在线观看| 在线观看一区不卡| 亚洲激情图片一区| 在线视频亚洲一区| 亚洲国产你懂的| 欧美精品三级在线观看| 日日夜夜免费精品视频| 欧美日韩国产免费| 亚洲 欧美综合在线网络| 欧美日韩一区久久| 视频在线观看一区二区三区| 欧美精品自拍偷拍| 图片区日韩欧美亚洲| 91精品国产综合久久精品性色| 日本va欧美va瓶| 精品日韩一区二区三区免费视频| 裸体一区二区三区| 国产视频一区在线播放| 不卡av在线网| 一区二区三区日韩欧美精品| 欧美婷婷六月丁香综合色| 天天色综合天天| 精品国产伦一区二区三区观看方式 | 亚洲乱码国产乱码精品精的特点 | 久久不见久久见免费视频1| 精品国精品自拍自在线| 国产一区二区女| 国产精品视频在线看| 91小视频在线免费看| 亚洲成人自拍偷拍| 欧美大片日本大片免费观看| 国产精品中文字幕日韩精品| 欧美国产精品v| 欧美性三三影院| 韩国女主播一区| 亚洲人成网站精品片在线观看| 欧美日韩国产高清一区| 国产麻豆精品theporn| 亚洲三级电影网站| 日韩欧美在线1卡| 99精品国产视频| 日韩电影免费在线看| 亚洲国产精品传媒在线观看| 色狠狠色噜噜噜综合网| 黄页网站大全一区二区| 亚洲精品乱码久久久久久久久| 日韩一区二区免费在线电影| 成人av在线看| 免费高清视频精品| 亚洲永久免费视频| 国产视频一区二区在线| 欧美喷潮久久久xxxxx| 成人avav影音| 久久99国产精品久久99果冻传媒| 亚洲精品写真福利| 久久精品在线观看| 日韩一区二区三区电影在线观看| 91香蕉国产在线观看软件| 精品中文字幕一区二区| 亚洲一区二区精品视频| 国产精品乱码一区二三区小蝌蚪| 在线综合亚洲欧美在线视频| 色综合久久久久综合| 粉嫩久久99精品久久久久久夜| 日韩av中文字幕一区二区三区 | 欧美天堂亚洲电影院在线播放| 高清不卡一二三区| 国产综合久久久久久鬼色 | 一区二区三区四区高清精品免费观看 | 国产一区在线观看麻豆| 日韩高清在线观看| 亚洲影院在线观看| 伊人色综合久久天天人手人婷| 久久久高清一区二区三区| 精品欧美一区二区久久| 日韩一区二区高清| 欧美男男青年gay1069videost| 色婷婷综合久久久中文一区二区| 波多野结衣在线一区| 成人性视频免费网站| 国产成人精品免费视频网站| 国模套图日韩精品一区二区| 国产真实乱对白精彩久久| 狂野欧美性猛交blacked| 久久精品噜噜噜成人av农村| 免费高清不卡av| 精品影视av免费| 国产精品99久久久久久似苏梦涵 | 欧美一区二区三区精品| 欧美日本一区二区三区| 欧美四级电影在线观看| 欧美日韩一区精品| 日韩网站在线看片你懂的| 欧美本精品男人aⅴ天堂| 精品国产一区二区三区久久久蜜月| 日韩免费观看高清完整版| 欧美电视剧免费全集观看 | 91视频免费播放| 91电影在线观看| 欧美精品v日韩精品v韩国精品v| 欧美二区乱c少妇| 国产亚洲欧美在线| 亚洲精选一二三| 秋霞国产午夜精品免费视频| 狠狠色狠狠色综合系列| 岛国精品一区二区| 在线看国产一区二区| 555夜色666亚洲国产免| 久久综合999| 一区二区三区在线视频观看58 | 久久久久亚洲综合| 综合激情成人伊人| 日韩精品亚洲专区| 岛国精品在线观看| 精品视频一区二区不卡| 久久综合九色综合欧美98| 国产精品国产精品国产专区不片| 夜夜精品视频一区二区| 久久99九九99精品| 在线视频中文字幕一区二区| 精品三级av在线| 亚洲第一在线综合网站| 国产精品亚洲一区二区三区妖精| 一本久久精品一区二区| 精品久久国产字幕高潮| 一区二区三区国产| 国产精品69毛片高清亚洲| 欧美最猛黑人xxxxx猛交| 国产拍揄自揄精品视频麻豆 | 精品久久五月天| 亚洲永久免费av| 成人国产免费视频| 精品三级av在线| 婷婷开心激情综合|