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

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

?? korg1212.c

?? LINUX2.6.15的源代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
}static void snd_korg1212_free_pcm(snd_pcm_t *pcm){        korg1212_t *korg1212 = (korg1212_t *) pcm->private_data;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_free_pcm [%s]\n", stateName[korg1212->cardState]);#endif        korg1212->pcm = NULL;}static int snd_korg1212_playback_open(snd_pcm_substream_t *substream){        unsigned long flags;        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);        snd_pcm_runtime_t *runtime = substream->runtime;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_open [%s]\n", stateName[korg1212->cardState]);#endif        snd_pcm_set_sync(substream);    // ???	snd_korg1212_OpenCard(korg1212);        runtime->hw = snd_korg1212_playback_info;	snd_pcm_set_runtime_buffer(substream, &korg1212->dma_play);        spin_lock_irqsave(&korg1212->lock, flags);        korg1212->playback_substream = substream;	korg1212->playback_pid = current->pid;        korg1212->periodsize = K1212_PERIODS;	korg1212->channels = K1212_CHANNELS;	korg1212->errorcnt = 0;        spin_unlock_irqrestore(&korg1212->lock, flags);        snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, kPlayBufferFrames, kPlayBufferFrames);        return 0;}static int snd_korg1212_capture_open(snd_pcm_substream_t *substream){        unsigned long flags;        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);        snd_pcm_runtime_t *runtime = substream->runtime;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_open [%s]\n", stateName[korg1212->cardState]);#endif        snd_pcm_set_sync(substream);	snd_korg1212_OpenCard(korg1212);        runtime->hw = snd_korg1212_capture_info;	snd_pcm_set_runtime_buffer(substream, &korg1212->dma_rec);        spin_lock_irqsave(&korg1212->lock, flags);        korg1212->capture_substream = substream;	korg1212->capture_pid = current->pid;        korg1212->periodsize = K1212_PERIODS;	korg1212->channels = K1212_CHANNELS;        spin_unlock_irqrestore(&korg1212->lock, flags);        snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, kPlayBufferFrames, kPlayBufferFrames);        return 0;}static int snd_korg1212_playback_close(snd_pcm_substream_t *substream){        unsigned long flags;        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", stateName[korg1212->cardState]);#endif	snd_korg1212_silence(korg1212, 0, K1212_MAX_SAMPLES, 0, korg1212->channels * 2);        spin_lock_irqsave(&korg1212->lock, flags);	korg1212->playback_pid = -1;        korg1212->playback_substream = NULL;        korg1212->periodsize = 0;        spin_unlock_irqrestore(&korg1212->lock, flags);	snd_korg1212_CloseCard(korg1212);        return 0;}static int snd_korg1212_capture_close(snd_pcm_substream_t *substream){        unsigned long flags;        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", stateName[korg1212->cardState]);#endif        spin_lock_irqsave(&korg1212->lock, flags);	korg1212->capture_pid = -1;        korg1212->capture_substream = NULL;        korg1212->periodsize = 0;        spin_unlock_irqrestore(&korg1212->lock, flags);	snd_korg1212_CloseCard(korg1212);        return 0;}static int snd_korg1212_ioctl(snd_pcm_substream_t *substream,			     unsigned int cmd, void *arg){#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_ioctl: cmd=%d\n", cmd);#endif	if (cmd == SNDRV_PCM_IOCTL1_CHANNEL_INFO ) {		snd_pcm_channel_info_t *info = arg;        	info->offset = 0;        	info->first = info->channel * 16;        	info->step = 256;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: channel_info %d:, offset=%ld, first=%d, step=%d\n", info->channel, info->offset, info->first, info->step);#endif		return 0;	}        return snd_pcm_lib_ioctl(substream, cmd, arg);}static int snd_korg1212_hw_params(snd_pcm_substream_t *substream,                             snd_pcm_hw_params_t *params){        unsigned long flags;        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);        int err;	pid_t this_pid;	pid_t other_pid;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_hw_params [%s]\n", stateName[korg1212->cardState]);#endif        spin_lock_irqsave(&korg1212->lock, flags);	if (substream->pstr->stream == SNDRV_PCM_STREAM_PLAYBACK) {		this_pid = korg1212->playback_pid;		other_pid = korg1212->capture_pid;	} else {		this_pid = korg1212->capture_pid;		other_pid = korg1212->playback_pid;	}	if ((other_pid > 0) && (this_pid != other_pid)) {		/* The other stream is open, and not by the same		   task as this one. Make sure that the parameters		   that matter are the same.		 */		if ((int)params_rate(params) != korg1212->clkRate) {			spin_unlock_irqrestore(&korg1212->lock, flags);			_snd_pcm_hw_param_setempty(params, SNDRV_PCM_HW_PARAM_RATE);			return -EBUSY;		}        	spin_unlock_irqrestore(&korg1212->lock, flags);	        return 0;	}        if ((err = snd_korg1212_SetRate(korg1212, params_rate(params))) < 0) {                spin_unlock_irqrestore(&korg1212->lock, flags);                return err;        }	korg1212->channels = params_channels(params);        korg1212->periodsize = K1212_PERIOD_BYTES;        spin_unlock_irqrestore(&korg1212->lock, flags);        return 0;}static int snd_korg1212_prepare(snd_pcm_substream_t *substream){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);	int rc;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare [%s]\n", stateName[korg1212->cardState]);#endif	spin_lock_irq(&korg1212->lock);	/* FIXME: we should wait for ack! */	if (korg1212->stop_pending_cnt > 0) {#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare - Stop is pending... [%s]\n", stateName[korg1212->cardState]);#endif        	spin_unlock_irq(&korg1212->lock);		return -EAGAIN;		/*		korg1212->sharedBufferPtr->cardCommand = 0;		del_timer(&korg1212->timer);		korg1212->stop_pending_cnt = 0;		*/	}        rc = snd_korg1212_SetupForPlay(korg1212);        korg1212->currentBuffer = 0;        spin_unlock_irq(&korg1212->lock);	return rc ? -EINVAL : 0;}static int snd_korg1212_trigger(snd_pcm_substream_t *substream,                           int cmd){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);	int rc;#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger [%s] cmd=%d\n", stateName[korg1212->cardState], cmd);#endif	spin_lock(&korg1212->lock);        switch (cmd) {                case SNDRV_PCM_TRIGGER_START:/*			if (korg1212->running) {#if K1212_DEBUG_LEVEL > 1				K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger: Already running?\n");#endif				break;			}*/                        korg1212->running++;                        rc = snd_korg1212_TriggerPlay(korg1212);                        break;                case SNDRV_PCM_TRIGGER_STOP:/*			if (!korg1212->running) {#if K1212_DEBUG_LEVEL > 1				K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_trigger: Already stopped?\n");#endif				break;			}*/                        korg1212->running--;                        rc = snd_korg1212_StopPlay(korg1212);                        break;                default:			rc = 1;			break;        }	spin_unlock(&korg1212->lock);        return rc ? -EINVAL : 0;}static snd_pcm_uframes_t snd_korg1212_playback_pointer(snd_pcm_substream_t *substream){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);        snd_pcm_uframes_t pos;	pos = korg1212->currentBuffer * kPlayBufferFrames;#if K1212_DEBUG_LEVEL > 2	K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_pointer [%s] %ld\n", 			stateName[korg1212->cardState], pos);#endif        return pos;}static snd_pcm_uframes_t snd_korg1212_capture_pointer(snd_pcm_substream_t *substream){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);        snd_pcm_uframes_t pos;	pos = korg1212->currentBuffer * kPlayBufferFrames;#if K1212_DEBUG_LEVEL > 2	K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_pointer [%s] %ld\n",			stateName[korg1212->cardState], pos);#endif        return pos;}static int snd_korg1212_playback_copy(snd_pcm_substream_t *substream,                        int channel, /* not used (interleaved data) */                        snd_pcm_uframes_t pos,                        void __user *src,                        snd_pcm_uframes_t count){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);#if K1212_DEBUG_LEVEL > 2		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count);#endif 	return snd_korg1212_copy_from(korg1212, src, pos, count, 0, korg1212->channels * 2);}static int snd_korg1212_playback_silence(snd_pcm_substream_t *substream,                           int channel, /* not used (interleaved data) */                           snd_pcm_uframes_t pos,                           snd_pcm_uframes_t count){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);#if K1212_DEBUG_LEVEL > 0		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_silence [%s]\n", stateName[korg1212->cardState]);#endif	return snd_korg1212_silence(korg1212, pos, count, 0, korg1212->channels * 2);}static int snd_korg1212_capture_copy(snd_pcm_substream_t *substream,                        int channel, /* not used (interleaved data) */                        snd_pcm_uframes_t pos,                        void __user *dst,                        snd_pcm_uframes_t count){        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);#if K1212_DEBUG_LEVEL > 2		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count);#endif	return snd_korg1212_copy_to(korg1212, dst, pos, count, 0, korg1212->channels * 2);}static snd_pcm_ops_t snd_korg1212_playback_ops = {        .open =		snd_korg1212_playback_open,        .close =	snd_korg1212_playback_close,        .ioctl =	snd_

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视频一区二区三区| 亚洲综合一区二区三区| 色婷婷国产精品综合在线观看| 亚洲第一福利视频在线| 国产欧美综合色| 4hu四虎永久在线影院成人| 成人黄动漫网站免费app| 日本美女视频一区二区| 一区二区三区不卡视频在线观看| 2欧美一区二区三区在线观看视频| 在线精品亚洲一区二区不卡| 国产乱码精品一区二区三区av | 欧美视频一区在线观看| 国产在线不卡视频| 日本美女视频一区二区| 亚洲一区二区三区四区五区黄| 欧美激情一区二区| 日韩久久久久久| 欧美日韩一卡二卡三卡| 91视频你懂的| 不卡免费追剧大全电视剧网站| 欧美午夜在线一二页| 成人黄色小视频| 国产精品一区二区x88av| 美女网站在线免费欧美精品| 亚洲一区二区五区| 亚洲激情图片小说视频| 中文字幕在线不卡| 国产欧美精品一区aⅴ影院 | 欧美精品一区男女天堂| 欧美午夜寂寞影院| 91高清在线观看| 91网址在线看| 97久久超碰国产精品| 成人av影院在线| 成人动漫在线一区| 懂色一区二区三区免费观看| 国产成人精品影视| 国产成人综合自拍| 国产91精品免费| 国产精品69毛片高清亚洲| 国模冰冰炮一区二区| 久久99国产精品成人| 久久99精品久久只有精品| 日韩电影免费在线观看网站| 天天av天天翘天天综合网色鬼国产| 亚洲精品福利视频网站| 韩国女主播成人在线观看| 偷拍与自拍一区| 五月婷婷久久综合| 日日夜夜免费精品| 日韩电影在线免费看| 日韩av中文字幕一区二区| 日韩av不卡一区二区| 色婷婷亚洲一区二区三区| 色综合天天综合网天天狠天天| 91在线观看视频| 日本精品一区二区三区高清| 欧美日韩国产a| 日韩三级高清在线| 国产亚洲视频系列| 综合婷婷亚洲小说| 亚洲不卡在线观看| 久久er99热精品一区二区| 国产精品亚洲一区二区三区妖精| 国产盗摄精品一区二区三区在线| www.欧美精品一二区| 91成人国产精品| 欧美一级xxx| 国产午夜久久久久| 亚洲男女毛片无遮挡| 视频一区欧美日韩| 国产一区二区三区| 91蜜桃传媒精品久久久一区二区| 欧美午夜精品久久久久久孕妇 | 国产精品亚洲综合一区在线观看| 成人开心网精品视频| 欧洲av在线精品| 欧美电视剧在线看免费| 欧美韩国日本综合| 亚洲国产wwwccc36天堂| 精一区二区三区| av成人动漫在线观看| 欧美猛男gaygay网站| 国产天堂亚洲国产碰碰| 亚洲一区在线观看免费观看电影高清 | 亚洲综合一二三区| 久久99日本精品| 91丨porny丨户外露出| 欧美一级生活片| 日韩一区在线看| 日本亚洲三级在线| 99久久伊人久久99| 日韩一区二区在线观看| 中文字幕一区在线观看视频| 日韩av电影天堂| 99久精品国产| 欧美tk丨vk视频| 亚洲一区二区美女| 成人性视频免费网站| 欧美一区二区啪啪| 亚洲色图在线看| 国产真实乱子伦精品视频| 在线观看亚洲专区| 中文一区二区在线观看 | jlzzjlzz国产精品久久| 日韩亚洲欧美一区| 樱桃视频在线观看一区| 欧美不卡一二三| 亚洲尤物视频在线| 成人黄色免费短视频| 久久影音资源网| 日本在线播放一区二区三区| 91搞黄在线观看| 国产精品美女久久久久久久久 | 欧美日韩精品综合在线| 国产精品久久久久久久久晋中 | 久久久久久久久久久电影| 丝袜美腿成人在线| 91麻豆福利精品推荐| 国产精品私房写真福利视频| 狠狠网亚洲精品| 91精品国产综合久久福利| 亚洲一区二区三区不卡国产欧美| jiyouzz国产精品久久| 久久久久久综合| 久久精品国产精品亚洲精品 | 中文字幕欧美三区| 国产精品自在欧美一区| 2024国产精品视频| 精品写真视频在线观看| 日韩一区二区三区在线| 天天色 色综合| 欧美性猛交xxxx黑人交 | 国产成人a级片| 久久久www成人免费无遮挡大片| 蜜臀精品一区二区三区在线观看 | 欧美精品777| 亚洲成av人片在线| 337p亚洲精品色噜噜噜| 日本中文字幕一区| 日韩三区在线观看| 久久99精品国产麻豆不卡| 精品少妇一区二区三区在线播放 | 91精品国产综合久久久久久漫画| 亚洲.国产.中文慕字在线| 欧美三级电影在线看| 亚洲444eee在线观看| 欧美精品乱码久久久久久按摩 | 中文字幕久久午夜不卡| 成人av在线影院| 最新日韩在线视频| 在线视频中文字幕一区二区| 亚洲大片免费看| 51精品国自产在线| 蓝色福利精品导航| 国产亚洲人成网站| 91原创在线视频| 亚洲一区精品在线| 欧美一区午夜视频在线观看| 麻豆成人久久精品二区三区小说| 久久亚洲综合av| 北条麻妃一区二区三区| 综合激情成人伊人| 欧美日韩一级视频| 精品在线你懂的| 国产精品污污网站在线观看| 色综合中文字幕国产| 亚洲一区二区三区四区在线免费观看 | 91精品国产欧美一区二区| 激情文学综合网| 亚洲欧美中日韩| 欧美三级电影网| 国产在线播精品第三| 亚洲色图19p| 欧美一区二区三区人| 国产精品中文字幕欧美| 一区二区三区在线高清| 欧美一区二区在线不卡| 成人午夜av在线| 午夜精品久久久久久久| 久久综合久久鬼色| 在线观看国产日韩| 极品瑜伽女神91| 夜夜嗨av一区二区三区| 3751色影院一区二区三区| 成人久久18免费网站麻豆 | 成人av手机在线观看| 亚洲国产成人porn| 国产日韩欧美综合在线| 欧美亚洲愉拍一区二区| 国产精品中文字幕一区二区三区| 亚洲一区二区欧美激情| 国产欧美日韩麻豆91| 在线播放一区二区三区| 99久久er热在这里只有精品66| 久久电影网电视剧免费观看| 一区二区三区四区国产精品| 国产婷婷一区二区| 日韩视频在线你懂得|