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

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

?? dvb-usb-remote.c

?? trident tm5600的linux驅動
?? C
字號:
/* dvb-usb-remote.c is part of the DVB USB library. * * Copyright (C) 2004-6 Patrick Boettcher (patrick.boettcher@desy.de) * see dvb-usb-init.c for copyright information. * * This file contains functions for initializing the input-device and for handling remote-control-queries. */#include "dvb-usb-common.h"#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)#include <linux/usb/input.h>#else#include <linux/usb_input.h>#endif/* Remote-control poll function - called every dib->rc_query_interval ms to see * whether the remote control has received anything. * * TODO: Fix the repeat rate of the input device. */#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)static void dvb_usb_read_remote_control(void *data)#elsestatic void dvb_usb_read_remote_control(struct work_struct *work)#endif{#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)	struct dvb_usb_device *d = data;#else	struct dvb_usb_device *d =		container_of(work, struct dvb_usb_device, rc_query_work.work);#endif	u32 event;	int state;	/* TODO: need a lock here.  We can simply skip checking for the remote control	   if we're busy. */	/* when the parameter has been set to 1 via sysfs while the driver was running */	if (dvb_usb_disable_rc_polling)		return;	if (d->props.rc_query(d,&event,&state)) {		err("error while querying for an remote control event.");		goto schedule;	}	switch (state) {		case REMOTE_NO_KEY_PRESSED:			break;		case REMOTE_KEY_PRESSED:			deb_rc("key pressed\n");			d->last_event = event;		case REMOTE_KEY_REPEAT:			deb_rc("key repeated\n");			input_event(d->rc_input_dev, EV_KEY, event, 1);			input_event(d->rc_input_dev, EV_KEY, d->last_event, 0);			input_sync(d->rc_input_dev);			break;		default:			break;	}/* improved repeat handling ???	switch (state) {		case REMOTE_NO_KEY_PRESSED:			deb_rc("NO KEY PRESSED\n");			if (d->last_state != REMOTE_NO_KEY_PRESSED) {				deb_rc("releasing event %d\n",d->last_event);				input_event(d->rc_input_dev, EV_KEY, d->last_event, 0);				input_sync(d->rc_input_dev);			}			d->last_state = REMOTE_NO_KEY_PRESSED;			d->last_event = 0;			break;		case REMOTE_KEY_PRESSED:			deb_rc("KEY PRESSED\n");			deb_rc("pressing event %d\n",event);			input_event(d->rc_input_dev, EV_KEY, event, 1);			input_sync(d->rc_input_dev);			d->last_event = event;			d->last_state = REMOTE_KEY_PRESSED;			break;		case REMOTE_KEY_REPEAT:			deb_rc("KEY_REPEAT\n");			if (d->last_state != REMOTE_NO_KEY_PRESSED) {				deb_rc("repeating event %d\n",d->last_event);				input_event(d->rc_input_dev, EV_KEY, d->last_event, 2);				input_sync(d->rc_input_dev);				d->last_state = REMOTE_KEY_REPEAT;			}		default:			break;	}*/schedule:	schedule_delayed_work(&d->rc_query_work,msecs_to_jiffies(d->props.rc_interval));}int dvb_usb_remote_init(struct dvb_usb_device *d){	struct input_dev *input_dev;	int i;	int err;	if (d->props.rc_key_map == NULL ||		d->props.rc_query == NULL ||		dvb_usb_disable_rc_polling)		return 0;	usb_make_path(d->udev, d->rc_phys, sizeof(d->rc_phys));	strlcat(d->rc_phys, "/ir0", sizeof(d->rc_phys));	input_dev = input_allocate_device();	if (!input_dev)		return -ENOMEM;	input_dev->evbit[0] = BIT_MASK(EV_KEY);	input_dev->name = "IR-receiver inside an USB DVB receiver";	input_dev->phys = d->rc_phys;	usb_to_input_id(d->udev, &input_dev->id);#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)	input_dev->dev.parent = &d->udev->dev;#else	input_dev->cdev.dev = &d->udev->dev;#endif	/* set the bits for the keys */	deb_rc("key map size: %d\n", d->props.rc_key_map_size);	for (i = 0; i < d->props.rc_key_map_size; i++) {		deb_rc("setting bit for event %d item %d\n",			d->props.rc_key_map[i].event, i);		set_bit(d->props.rc_key_map[i].event, input_dev->keybit);	}	/* Start the remote-control polling. */	if (d->props.rc_interval < 40)		d->props.rc_interval = 100; /* default */	/* setting these two values to non-zero, we have to manage key repeats */	input_dev->rep[REP_PERIOD] = d->props.rc_interval;	input_dev->rep[REP_DELAY]  = d->props.rc_interval + 150;	err = input_register_device(input_dev);	if (err) {		input_free_device(input_dev);		return err;	}	d->rc_input_dev = input_dev;#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)	INIT_WORK(&d->rc_query_work, dvb_usb_read_remote_control, d);#else	INIT_DELAYED_WORK(&d->rc_query_work, dvb_usb_read_remote_control);#endif	info("schedule remote query interval to %d msecs.", d->props.rc_interval);	schedule_delayed_work(&d->rc_query_work,msecs_to_jiffies(d->props.rc_interval));	d->state |= DVB_USB_STATE_REMOTE;	return 0;}int dvb_usb_remote_exit(struct dvb_usb_device *d){	if (d->state & DVB_USB_STATE_REMOTE) {		cancel_rearming_delayed_work(&d->rc_query_work);		flush_scheduled_work();		input_unregister_device(d->rc_input_dev);	}	d->state &= ~DVB_USB_STATE_REMOTE;	return 0;}#define DVB_USB_RC_NEC_EMPTY           0x00#define DVB_USB_RC_NEC_KEY_PRESSED     0x01#define DVB_USB_RC_NEC_KEY_REPEATED    0x02int dvb_usb_nec_rc_key_to_event(struct dvb_usb_device *d,		u8 keybuf[5], u32 *event, int *state){	int i;	struct dvb_usb_rc_key *keymap = d->props.rc_key_map;	*event = 0;	*state = REMOTE_NO_KEY_PRESSED;	switch (keybuf[0]) {		case DVB_USB_RC_NEC_EMPTY:			break;		case DVB_USB_RC_NEC_KEY_PRESSED:			if ((u8) ~keybuf[1] != keybuf[2] ||				(u8) ~keybuf[3] != keybuf[4]) {				deb_err("remote control checksum failed.\n");				break;			}			/* See if we can match the raw key code. */			for (i = 0; i < d->props.rc_key_map_size; i++)				if (keymap[i].custom == keybuf[1] &&					keymap[i].data == keybuf[3]) {					*event = keymap[i].event;					*state = REMOTE_KEY_PRESSED;					return 0;				}			deb_err("key mapping failed - no appropriate key found in keymapping\n");			break;		case DVB_USB_RC_NEC_KEY_REPEATED:			*state = REMOTE_KEY_REPEAT;			break;		default:			deb_err("unkown type of remote status: %d\n",keybuf[0]);			break;	}	return 0;}EXPORT_SYMBOL(dvb_usb_nec_rc_key_to_event);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品无圣光一区二区| 日本免费在线视频不卡一不卡二 | 国产激情精品久久久第一区二区 | 国产91露脸合集magnet| 欧美日韩在线播| 中文子幕无线码一区tr| 久久国产精品第一页| 欧美在线短视频| 亚洲女女做受ⅹxx高潮| 国产99精品在线观看| 精品国产一区a| 国产精品看片你懂得| 免费精品99久久国产综合精品| 午夜精品久久久久久久久久久| 高清不卡一区二区在线| 亚洲成人自拍一区| 亚洲裸体在线观看| 五月天一区二区三区| 久久精品国产免费看久久精品| 国内精品不卡在线| 99久久精品国产精品久久| 91国偷自产一区二区三区成为亚洲经典 | 成人精品高清在线| 成人免费av网站| 欧美亚洲日本一区| 欧美大片日本大片免费观看| 国产色爱av资源综合区| 亚洲日本一区二区| 日韩电影在线一区二区三区| 国产河南妇女毛片精品久久久| 91亚洲精品久久久蜜桃网站| 欧美日本乱大交xxxxx| 亚洲精品在线电影| 一区二区三区欧美久久| 精品亚洲国产成人av制服丝袜| 成人黄色综合网站| 日韩一区二区免费电影| 亚洲欧洲精品一区二区精品久久久 | 成人黄色网址在线观看| 欧美日韩专区在线| 国产精品视频你懂的| 人人爽香蕉精品| 色综合天天性综合| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精品五月天| 国产乱码精品一区二区三区av | 精品一区二区三区不卡| 91在线观看美女| 久久五月婷婷丁香社区| 亚洲丰满少妇videoshd| 成人毛片视频在线观看| 精品三级在线看| 性做久久久久久久久| 91在线精品一区二区| 国产亚洲短视频| 蜜臀av一区二区在线观看| 在线观看免费一区| 亚洲精品中文在线| 99久久综合国产精品| 国产喷白浆一区二区三区| 蜜桃av一区二区| 制服.丝袜.亚洲.另类.中文| 亚洲激情自拍视频| www.亚洲精品| 中文字幕一区二区三区不卡| 国产v综合v亚洲欧| 中文字幕av一区二区三区高| 国产一区二区三区香蕉| 欧美精品一区二区三| 美国三级日本三级久久99| 欧美一级欧美一级在线播放| 日韩av电影免费观看高清完整版 | 欧美国产一区视频在线观看| 极品少妇一区二区| 久久久久久久综合色一本| 精品在线免费观看| 久久亚洲二区三区| 国产精品一二三四区| 欧美激情一区在线| 波多野结衣亚洲| 亚洲品质自拍视频网站| 在线观看视频一区二区| 亚洲精品伦理在线| 欧美精品自拍偷拍动漫精品| 日本aⅴ亚洲精品中文乱码| 欧美变态tickling挠脚心| 国产在线视频一区二区| 国产精品视频观看| 在线视频你懂得一区| 天天综合色天天综合色h| 久久精品一级爱片| aaa亚洲精品| 香蕉久久一区二区不卡无毒影院| 欧美精品日日鲁夜夜添| 国产在线观看免费一区| 中文字幕日韩一区二区| 欧美性视频一区二区三区| 日本不卡在线视频| 欧美激情在线免费观看| 欧美午夜电影网| 九一久久久久久| 亚洲日本va午夜在线影院| 欧美日韩三级一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 蜜桃久久精品一区二区| 国产色产综合产在线视频 | 久久久www成人免费无遮挡大片| 国产成人小视频| 伊人开心综合网| 精品国产乱码久久久久久老虎 | 欧美福利视频导航| 丁香婷婷深情五月亚洲| 亚洲线精品一区二区三区八戒| 日韩欧美视频在线| 91在线视频观看| 老司机免费视频一区二区三区| 亚洲欧美影音先锋| 欧美成人精精品一区二区频| 91麻豆.com| 国产精品亚洲午夜一区二区三区| 亚洲一区二区精品久久av| 久久先锋影音av| 3d动漫精品啪啪1区2区免费| 99久久综合99久久综合网站| 久久97超碰色| 亚洲一二三区在线观看| 中文字幕成人av| 久久免费国产精品| 91 com成人网| 欧美在线高清视频| av一区二区三区在线| 国产精品白丝jk白祙喷水网站| 亚洲地区一二三色| 一区二区三区日本| 亚洲视频你懂的| 国产精品五月天| 久久久亚洲欧洲日产国码αv| 欧美挠脚心视频网站| 日本精品一区二区三区高清 | 日韩精品成人一区二区三区| 最新高清无码专区| 国产精品每日更新| 国产精品色哟哟| 国产目拍亚洲精品99久久精品| 精品久久久久久久人人人人传媒| 欧美男同性恋视频网站| 欧美另类久久久品| 欧美久久久久免费| 制服视频三区第一页精品| 在线91免费看| 日韩亚洲国产中文字幕欧美| 91精品麻豆日日躁夜夜躁| 制服丝袜中文字幕一区| 91麻豆精品国产91久久久久久久久| 欧美三区在线视频| 欧美日韩国产精选| 欧美一级夜夜爽| 精品久久久久久无| 国产女同互慰高潮91漫画| 中文字幕精品三区| 亚洲伦在线观看| 日韩中文欧美在线| 另类专区欧美蜜桃臀第一页| 国产在线播精品第三| 成人久久久精品乱码一区二区三区 | 日本欧美肥老太交大片| 久久精品国产999大香线蕉| 国产在线精品国自产拍免费| 福利一区二区在线| 日本道在线观看一区二区| 欧美日韩免费电影| 精品美女一区二区| 一区二区中文字幕在线| 亚洲一区二区三区免费视频| 婷婷成人激情在线网| 国产精品中文字幕日韩精品 | 在线视频国内一区二区| 91精品国产综合久久久蜜臀图片| 91精品婷婷国产综合久久性色| 久久夜色精品一区| 亚洲精品视频在线| 麻豆精品一区二区三区| 成人app在线| 91麻豆精品国产91| 午夜久久久影院| 高清国产午夜精品久久久久久| 在线中文字幕不卡| 久久久久国产精品麻豆| 亚洲午夜日本在线观看| 国产精品自拍av| 911精品国产一区二区在线| 欧美经典三级视频一区二区三区| 亚洲亚洲人成综合网络| 成人免费视频网站在线观看| 666欧美在线视频| 亚洲九九爱视频| 国产传媒一区在线| 精品区一区二区| 亚洲va国产天堂va久久en| 成人av电影在线观看|