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

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

?? dvb-usb-remote.c

?? 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"#include <linux/usb/input.h>/* 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. */static void dvb_usb_read_remote_control(struct work_struct *work){	struct dvb_usb_device *d =		container_of(work, struct dvb_usb_device, rc_query_work.work);	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);	input_dev->dev.parent = &d->udev->dev;	/* 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;	INIT_DELAYED_WORK(&d->rc_query_work, dvb_usb_read_remote_control);	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成人国产精品| 丰满亚洲少妇av| 国产美女精品人人做人人爽 | 国产一区二区视频在线播放| 人人狠狠综合久久亚洲| 天天射综合影视| 亚洲高清三级视频| 天堂一区二区在线| 日韩av一级片| 国产自产2019最新不卡| 国产精品中文有码| 成人激情黄色小说| 色吊一区二区三区| 欧美日韩色一区| 欧美精选一区二区| 日韩精品一区二区三区在线播放| 日韩欧美激情四射| 国产日本亚洲高清| 成人欧美一区二区三区白人 | 欧洲精品中文字幕| 欧美系列日韩一区| 欧美一区二区三区影视| 久久精品人人做人人综合| 国产精品久久久久久妇女6080| 亚洲丝袜精品丝袜在线| 午夜日韩在线观看| 大白屁股一区二区视频| 欧美系列一区二区| 久久久亚洲国产美女国产盗摄 | 91搞黄在线观看| 欧美一区二区三区视频免费播放| 精品1区2区在线观看| 国产女人18水真多18精品一级做| 国产精品福利电影一区二区三区四区 | 亚洲国产裸拍裸体视频在线观看乱了| 午夜精品爽啪视频| 国产伦精品一区二区三区免费迷| kk眼镜猥琐国模调教系列一区二区 | 色999日韩国产欧美一区二区| 欧美日韩国产成人在线免费| 久久色.com| 五月婷婷久久丁香| www.综合网.com| 日韩欧美一二三四区| 国产精品麻豆久久久| 视频一区中文字幕| 色婷婷av一区二区三区大白胸 | 不卡欧美aaaaa| 日韩欧美的一区| 亚洲高清视频中文字幕| 成人精品gif动图一区| 欧美一区二区三区电影| 亚洲男人的天堂网| 国产成人午夜电影网| 欧美一区二区三区四区视频| 亚洲人成影院在线观看| 国产激情偷乱视频一区二区三区| 欧美精品一卡两卡| 一区二区三区国产豹纹内裤在线| 国产成人在线免费观看| 欧美v亚洲v综合ⅴ国产v| 午夜久久电影网| 欧美亚洲动漫精品| 亚洲精品第1页| 91麻豆免费在线观看| 国产精品伦理一区二区| 国产精华液一区二区三区| 久久久综合视频| 成人一区二区三区| 久久亚洲精品国产精品紫薇| 蜜芽一区二区三区| 欧美日韩在线三区| 亚洲自拍另类综合| 色综合中文字幕国产 | 国产香蕉久久精品综合网| 久久电影网站中文字幕| 精品国产区一区| 毛片不卡一区二区| 久久精品亚洲一区二区三区浴池| 国产一区二区精品在线观看| 国产人成一区二区三区影院| 成人激情开心网| 亚洲综合小说图片| 欧美高清视频在线高清观看mv色露露十八| 一区二区三区欧美久久| 欧美日韩一区二区三区视频| 婷婷综合另类小说色区| 欧美成人性战久久| 国产成人自拍在线| 亚洲欧洲精品一区二区三区| 91视频一区二区| 亚洲6080在线| 久久久久久久久97黄色工厂| 成人晚上爱看视频| 亚洲成人资源网| 日韩欧美专区在线| 高清国产一区二区三区| 亚洲欧美国产高清| 欧美一级久久久久久久大片| 激情综合五月婷婷| 自拍偷拍国产亚洲| 欧美精品丝袜久久久中文字幕| 国内精品国产成人| 亚洲精品久久久久久国产精华液 | 国产一区二区精品久久91| 中文字幕av资源一区| 在线亚洲精品福利网址导航| 久久电影网站中文字幕| 亚洲视频一区在线| 欧美一级日韩免费不卡| 成人黄色小视频在线观看| 午夜精品久久一牛影视| 中文字幕日韩一区| 日韩欧美一级精品久久| 91久久国产最好的精华液| 国产一区二三区好的| 亚洲在线视频网站| 国产精品区一区二区三区| 911国产精品| 91免费观看在线| 国产一区二区三区| 午夜精品一区二区三区电影天堂 | 日韩一二三四区| 99精品热视频| 国产一区二区看久久| 日韩 欧美一区二区三区| 亚洲视频一区在线| 欧美激情中文不卡| 国产拍揄自揄精品视频麻豆| 欧美一区二区视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 国产成人8x视频一区二区| 麻豆精品新av中文字幕| 午夜久久久久久电影| 亚洲精品免费看| 国产精品白丝在线| 亚洲激情五月婷婷| 久久在线免费观看| 欧美大尺度电影在线| 欧美日韩精品欧美日韩精品一综合| bt欧美亚洲午夜电影天堂| 国产一区二区三区免费观看| 美女在线观看视频一区二区| 天天影视网天天综合色在线播放| 一区二区三区在线高清| 亚洲视频精选在线| 亚洲日本一区二区| 亚洲天堂福利av| 亚洲天堂福利av| 一区二区三区在线免费视频| 国产精品久线在线观看| 亚洲欧洲日韩综合一区二区| 最新国产成人在线观看| 亚洲天堂2016| 亚洲自拍偷拍麻豆| 日韩精品一二三四| 精品在线你懂的| 国产精品一区二区黑丝| 国产91精品在线观看| 成人动漫在线一区| 色猫猫国产区一区二在线视频| 97精品国产97久久久久久久久久久久| 菠萝蜜视频在线观看一区| 色婷婷av一区二区三区软件 | 美腿丝袜在线亚洲一区| 美国三级日本三级久久99| 国产曰批免费观看久久久| 国产成人精品免费网站| 99re热这里只有精品免费视频| 在线视频欧美精品| 日韩三级在线免费观看| 国产亚洲精品7777| 亚洲三级电影全部在线观看高清| 一区二区三区精密机械公司| 蜜臀av性久久久久蜜臀av麻豆| 国产成人av网站| 欧美中文一区二区三区| 日韩丝袜美女视频| 中文字幕中文字幕一区二区| 亚洲图片自拍偷拍| 国产在线观看一区二区| 91色porny蝌蚪| 日韩一区二区三区免费看 | 国产三区在线成人av| 亚洲欧美一区二区三区极速播放| 亚洲国产另类av| 不卡一区中文字幕| 欧美一区二区三区婷婷月色| 国产精品麻豆久久久| 免费高清在线视频一区·| 成人精品国产免费网站| 日韩一区二区三区免费观看| 国产精品久久久久久久久免费丝袜 | 日韩影院精彩在线| 丁香天五香天堂综合| 91精品久久久久久久99蜜桃| 国产精品美日韩| 久草精品在线观看|