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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? linear.c

?? LINUX 2.6.17.4的源碼
?? C
字號(hào):
/* *  Linear conversion Plug-In *  Copyright (c) 1999 by Jaroslav Kysela <perex@suse.cz>, *			  Abramo Bagnara <abramo@alsa-project.org> * * *   This library is free software; you can redistribute it and/or modify *   it under the terms of the GNU Library 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 Library General Public License for more details. * *   You should have received a copy of the GNU Library General Public *   License along with this library; if not, write to the Free Software *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA * */#include <sound/driver.h>#ifdef CONFIG_SND_PCM_OSS_PLUGINS#include <linux/time.h>#include <sound/core.h>#include <sound/pcm.h>#include "pcm_plugin.h"/* *  Basic linear conversion plugin */ struct linear_priv {	int conv;};static void convert(struct snd_pcm_plugin *plugin,		    const struct snd_pcm_plugin_channel *src_channels,		    struct snd_pcm_plugin_channel *dst_channels,		    snd_pcm_uframes_t frames){#define CONV_LABELS#include "plugin_ops.h"#undef CONV_LABELS	struct linear_priv *data = (struct linear_priv *)plugin->extra_data;	void *conv = conv_labels[data->conv];	int channel;	int nchannels = plugin->src_format.channels;	for (channel = 0; channel < nchannels; ++channel) {		char *src;		char *dst;		int src_step, dst_step;		snd_pcm_uframes_t frames1;		if (!src_channels[channel].enabled) {			if (dst_channels[channel].wanted)				snd_pcm_area_silence(&dst_channels[channel].area, 0, frames, plugin->dst_format.format);			dst_channels[channel].enabled = 0;			continue;		}		dst_channels[channel].enabled = 1;		src = src_channels[channel].area.addr + src_channels[channel].area.first / 8;		dst = dst_channels[channel].area.addr + dst_channels[channel].area.first / 8;		src_step = src_channels[channel].area.step / 8;		dst_step = dst_channels[channel].area.step / 8;		frames1 = frames;		while (frames1-- > 0) {			goto *conv;#define CONV_END after#include "plugin_ops.h"#undef CONV_END		after:			src += src_step;			dst += dst_step;		}	}}static snd_pcm_sframes_t linear_transfer(struct snd_pcm_plugin *plugin,			       const struct snd_pcm_plugin_channel *src_channels,			       struct snd_pcm_plugin_channel *dst_channels,			       snd_pcm_uframes_t frames){	struct linear_priv *data;	snd_assert(plugin != NULL && src_channels != NULL && dst_channels != NULL, return -ENXIO);	data = (struct linear_priv *)plugin->extra_data;	if (frames == 0)		return 0;#ifdef CONFIG_SND_DEBUG	{		unsigned int channel;		for (channel = 0; channel < plugin->src_format.channels; channel++) {			snd_assert(src_channels[channel].area.first % 8 == 0 &&				   src_channels[channel].area.step % 8 == 0,				   return -ENXIO);			snd_assert(dst_channels[channel].area.first % 8 == 0 &&				   dst_channels[channel].area.step % 8 == 0,				   return -ENXIO);		}	}#endif	convert(plugin, src_channels, dst_channels, frames);	return frames;}static int conv_index(int src_format, int dst_format){	int src_endian, dst_endian, sign, src_width, dst_width;	sign = (snd_pcm_format_signed(src_format) !=		snd_pcm_format_signed(dst_format));#ifdef SNDRV_LITTLE_ENDIAN	src_endian = snd_pcm_format_big_endian(src_format);	dst_endian = snd_pcm_format_big_endian(dst_format);#else	src_endian = snd_pcm_format_little_endian(src_format);	dst_endian = snd_pcm_format_little_endian(dst_format);#endif	if (src_endian < 0)		src_endian = 0;	if (dst_endian < 0)		dst_endian = 0;	src_width = snd_pcm_format_width(src_format) / 8 - 1;	dst_width = snd_pcm_format_width(dst_format) / 8 - 1;	return src_width * 32 + src_endian * 16 + sign * 8 + dst_width * 2 + dst_endian;}int snd_pcm_plugin_build_linear(struct snd_pcm_substream *plug,				struct snd_pcm_plugin_format *src_format,				struct snd_pcm_plugin_format *dst_format,				struct snd_pcm_plugin **r_plugin){	int err;	struct linear_priv *data;	struct snd_pcm_plugin *plugin;	snd_assert(r_plugin != NULL, return -ENXIO);	*r_plugin = NULL;	snd_assert(src_format->rate == dst_format->rate, return -ENXIO);	snd_assert(src_format->channels == dst_format->channels, return -ENXIO);	snd_assert(snd_pcm_format_linear(src_format->format) &&		   snd_pcm_format_linear(dst_format->format), return -ENXIO);	err = snd_pcm_plugin_build(plug, "linear format conversion",				   src_format, dst_format,				   sizeof(struct linear_priv), &plugin);	if (err < 0)		return err;	data = (struct linear_priv *)plugin->extra_data;	data->conv = conv_index(src_format->format, dst_format->format);	plugin->transfer = linear_transfer;	*r_plugin = plugin;	return 0;}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩午夜在线| 欧美成人vps| 国产最新精品免费| 一区二区三区国产精华| 精品播放一区二区| 欧美日韩国产高清一区二区三区| 国产精品一卡二| 爽好久久久欧美精品| 亚洲伦理在线免费看| 国产日韩欧美不卡| 日韩一级二级三级| 欧美三级视频在线观看| 97se亚洲国产综合在线| 国产成人在线观看| 精品在线亚洲视频| 人人精品人人爱| 亚洲二区在线视频| 亚洲综合在线电影| 中文字幕一区二区三区在线不卡| 国产日本亚洲高清| 久久一留热品黄| 精品免费视频.| 精品少妇一区二区| 日韩视频在线观看一区二区| 欧美日韩国产一级片| 欧美系列日韩一区| 欧美专区日韩专区| 欧美午夜电影在线播放| 在线观看免费成人| 欧美在线综合视频| 欧美色综合天天久久综合精品| 色8久久人人97超碰香蕉987| 99热99精品| 色综合一区二区| 色综合久久久久久久久久久| av不卡一区二区三区| 99re这里只有精品视频首页| jizz一区二区| 日本二三区不卡| 欧美日韩久久不卡| 在线成人免费视频| 欧美一级在线观看| 欧美精品一区二区三区四区| 亚洲精品在线电影| 久久九九全国免费| 中文字幕欧美日韩一区| 国产精品理伦片| 亚洲最色的网站| 三级不卡在线观看| 免费高清在线一区| 国产丶欧美丶日本不卡视频| 国产suv精品一区二区6| 91丝袜国产在线播放| 欧美综合一区二区| 欧美一区二区三区日韩| 精品av久久707| 中文字幕一区二区三区乱码在线 | 国产麻豆91精品| 国产一区二区三区在线观看免费 | 久久99国产精品免费网站| 精品亚洲成a人在线观看| 国产成人免费视| 91麻豆swag| 欧美一区二区三区在线观看视频 | 日韩精品最新网址| www一区二区| 日韩美女啊v在线免费观看| 亚洲一卡二卡三卡四卡无卡久久| 日本欧美在线观看| 成人听书哪个软件好| 欧美日韩中文国产| 久久久久99精品国产片| 亚洲在线成人精品| 国产麻豆91精品| 在线视频国内自拍亚洲视频| 精品国产伦一区二区三区观看体验| 欧美极品xxx| 五月婷婷另类国产| 成人国产视频在线观看 | 国产视频不卡一区| 亚洲韩国一区二区三区| 国产乱子轮精品视频| 91丨九色丨蝌蚪丨老版| 日韩精品中文字幕一区二区三区| 国产精品情趣视频| 日韩不卡一区二区三区 | 精品国产乱码久久| 亚洲精品国产第一综合99久久 | 久久精品无码一区二区三区 | 国产91清纯白嫩初高中在线观看| 日本韩国欧美国产| 国产欧美日韩亚州综合| 亚洲国产精品久久久久婷婷884| 国产美女精品一区二区三区| 在线免费精品视频| 国产欧美精品在线观看| 日韩激情在线观看| 欧洲精品在线观看| 中文字幕欧美日韩一区| 精品午夜一区二区三区在线观看| 日本精品一区二区三区高清| 久久久久成人黄色影片| 日韩av不卡一区二区| 色综合一区二区| 亚洲国产经典视频| 精品一二三四区| 欧美精品v国产精品v日韩精品| 国产精品视频线看| 激情文学综合插| 日韩女优毛片在线| 亚洲va韩国va欧美va精品| 欧美精品一区二| 日韩成人午夜精品| 欧美日韩免费观看一区二区三区| 国产精品美女一区二区| 国产在线视视频有精品| 日韩一区二区免费视频| 午夜精品一区二区三区电影天堂| 色综合久久久久久久| 国产精品久久久99| 成人高清免费观看| 国产精品丝袜久久久久久app| 国产乱对白刺激视频不卡| 91精品福利在线一区二区三区 | 偷拍亚洲欧洲综合| 欧美中文字幕不卡| 亚洲综合丝袜美腿| 欧美色爱综合网| 一区二区三区精品在线观看| 91丨九色丨国产丨porny| 亚洲欧美中日韩| 91免费国产在线| 亚洲美女屁股眼交3| 色婷婷精品久久二区二区蜜臂av| 中文字幕中文字幕中文字幕亚洲无线| 成人小视频在线观看| 中文av字幕一区| 91在线视频播放地址| 亚洲色图一区二区三区| 色婷婷国产精品| 亚洲va欧美va人人爽午夜| 欧美精品九九99久久| 美女被吸乳得到大胸91| 久久综合久久综合九色| 国产成人精品亚洲777人妖| 中文一区一区三区高中清不卡| 不卡av免费在线观看| 樱花草国产18久久久久| 欧美日韩综合在线免费观看| 亚洲成人7777| 日韩欧美一级二级| 国产成人免费视频精品含羞草妖精| 中文成人av在线| 欧美日韩一区二区电影| 日韩精品免费视频人成| 精品精品欲导航| 成人丝袜18视频在线观看| 国产在线精品一区二区不卡了| 国产女人水真多18毛片18精品视频 | www.欧美.com| 亚洲国产wwwccc36天堂| 日韩一区二区三区视频在线 | 亚洲第一综合色| 日韩天堂在线观看| 成人看片黄a免费看在线| 一区二区三区四区国产精品| 日韩区在线观看| 91在线视频网址| 日本中文一区二区三区| 亚洲国产精品v| 欧美日本在线一区| 国产东北露脸精品视频| 亚洲大片免费看| 久久综合999| 欧美综合欧美视频| 国产成人av一区| 亚洲午夜av在线| 欧美激情一区在线观看| 欧美男同性恋视频网站| 成人三级在线视频| 日韩中文字幕区一区有砖一区| 国产欧美精品一区| 欧美群妇大交群的观看方式| 成人国产精品免费观看视频| 日本在线不卡视频| 亚洲婷婷综合久久一本伊一区| 精品少妇一区二区三区在线播放 | 日本韩国欧美在线| 久久99精品国产麻豆不卡| 一级中文字幕一区二区| 久久人人爽爽爽人久久久| 欧美日韩中文字幕一区| 成人激情文学综合网| 久久成人麻豆午夜电影| 亚洲国产精品嫩草影院| 国产精品污www在线观看| 日韩欧美国产1| 欧美日韩精品一区二区三区四区| 成人性视频网站| 久久99精品一区二区三区三区|