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

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

?? pwc-ctrl.c

?? webcam device driver
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* SATURATION *//* return a value between [-100 , 100] */int pwc_get_saturation(struct pwc_device *pdev, int *value){	char buf;	int ret, saturation_register;	if (pdev->type < 675)		return -EINVAL;	if (pdev->type < 730)		saturation_register = SATURATION_MODE_FORMATTER2;	else		saturation_register = SATURATION_MODE_FORMATTER1;	ret = RecvControlMsg(GET_CHROM_CTL, saturation_register, 1);	if (ret < 0)		return ret;	*value = (signed)buf;	return 0;}/* @param value saturation color between [-100 , 100] */int pwc_set_saturation(struct pwc_device *pdev, int value){	char buf;	int saturation_register;	if (pdev->type < 675)		return -EINVAL;	if (value < -100)		value = -100;	if (value > 100)		value = 100;	if (pdev->type < 730)		saturation_register = SATURATION_MODE_FORMATTER2;	else		saturation_register = SATURATION_MODE_FORMATTER1;	return SendControlMsg(SET_CHROM_CTL, saturation_register, 1);}/* AGC */int pwc_set_agc(struct pwc_device *pdev, int mode, int value){	char buf;	int ret;		if (mode)		buf = 0x0; /* auto */	else		buf = 0xff; /* fixed */	ret = SendControlMsg(SET_LUM_CTL, AGC_MODE_FORMATTER, 1);		if (!mode && ret >= 0) {		if (value < 0)			value = 0;		if (value > 0xffff)			value = 0xffff;		buf = (value >> 10) & 0x3F;		ret = SendControlMsg(SET_LUM_CTL, PRESET_AGC_FORMATTER, 1);	}	if (ret < 0)		return ret;	return 0;}int pwc_get_agc(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_LUM_CTL, AGC_MODE_FORMATTER, 1);	if (ret < 0)		return ret;	if (buf != 0) { /* fixed */		ret = RecvControlMsg(GET_LUM_CTL, PRESET_AGC_FORMATTER, 1);		if (ret < 0)			return ret;		if (buf > 0x3F)			buf = 0x3F;		*value = (buf << 10);			}	else { /* auto */		ret = RecvControlMsg(GET_STATUS_CTL, READ_AGC_FORMATTER, 1);		if (ret < 0)			return ret;		/* Gah... this value ranges from 0x00 ... 0x9F */		if (buf > 0x9F)			buf = 0x9F;		*value = -(48 + buf * 409);	}	return 0;}int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value){	char buf[2];	int speed, ret;	if (mode)		buf[0] = 0x0;	/* auto */	else		buf[0] = 0xff; /* fixed */		ret = SendControlMsg(SET_LUM_CTL, SHUTTER_MODE_FORMATTER, 1);	if (!mode && ret >= 0) {		if (value < 0)			value = 0;		if (value > 0xffff)			value = 0xffff;		if (DEVICE_USE_CODEC2(pdev->type)) {			/* speed ranges from 0x0 to 0x290 (656) */			speed = (value / 100);			buf[1] = speed >> 8;			buf[0] = speed & 0xff;		} else if (DEVICE_USE_CODEC3(pdev->type)) {			/* speed seems to range from 0x0 to 0xff */			buf[1] = 0;			buf[0] = value >> 8;		}		ret = SendControlMsg(SET_LUM_CTL, PRESET_SHUTTER_FORMATTER, 2);	}	return ret;}	/* This function is not exported to v4l1, so output values between 0 -> 256 */int pwc_get_shutter_speed(struct pwc_device *pdev, int *value){	unsigned char buf[2];	int ret;		ret = RecvControlMsg(GET_STATUS_CTL, READ_SHUTTER_FORMATTER, 2);	if (ret < 0)		return ret;	*value = buf[0] + (buf[1] << 8);	if (DEVICE_USE_CODEC2(pdev->type)) {		/* speed ranges from 0x0 to 0x290 (656) */		*value *= 256/656;	} else if (DEVICE_USE_CODEC3(pdev->type)) {		/* speed seems to range from 0x0 to 0xff */	}	return 0;}/* POWER */int pwc_camera_power(struct pwc_device *pdev, int power){	char buf;	if (pdev->type < 675 || (pdev->type < 730 && pdev->release < 6))		return 0;	/* Not supported by Nala or Timon < release 6 */	if (power)		buf = 0x00; /* active */	else		buf = 0xFF; /* power save */	return SendControlMsg(SET_STATUS_CTL, SET_POWER_SAVE_MODE_FORMATTER, 1);}/* private calls */int pwc_restore_user(struct pwc_device *pdev){	char buf; /* dummy */	return SendControlMsg(SET_STATUS_CTL, RESTORE_USER_DEFAULTS_FORMATTER, 0);}int pwc_save_user(struct pwc_device *pdev){	char buf; /* dummy */	return SendControlMsg(SET_STATUS_CTL, SAVE_USER_DEFAULTS_FORMATTER, 0);}int pwc_restore_factory(struct pwc_device *pdev){	char buf; /* dummy */	return SendControlMsg(SET_STATUS_CTL, RESTORE_FACTORY_DEFAULTS_FORMATTER, 0);} /* ************************************************* */ /* Patch by Alvarado: (not in the original version   */ /*  * the camera recognizes modes from 0 to 4:  *  * 00: indoor (incandescant lighting)  * 01: outdoor (sunlight)  * 02: fluorescent lighting  * 03: manual  * 04: auto  */ int pwc_set_awb(struct pwc_device *pdev, int mode){	char buf;	int ret;		if (mode < 0)	    mode = 0;		if (mode > 4)	    mode = 4;		buf = mode & 0x07; /* just the lowest three bits */		ret = SendControlMsg(SET_CHROM_CTL, WB_MODE_FORMATTER, 1);		if (ret < 0)		return ret;	return 0;}int pwc_get_awb(struct pwc_device *pdev){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_CHROM_CTL, WB_MODE_FORMATTER, 1);	if (ret < 0) 		return ret;	return buf;}int pwc_set_red_gain(struct pwc_device *pdev, int value){        unsigned char buf;	if (value < 0)		value = 0;	if (value > 0xffff)		value = 0xffff;	/* only the msb is considered */	buf = value >> 8;	return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1);}int pwc_get_red_gain(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1);	if (ret < 0)	    return ret;	*value = buf << 8;	return 0;}int pwc_set_blue_gain(struct pwc_device *pdev, int value){	unsigned char buf;	if (value < 0)		value = 0;	if (value > 0xffff)		value = 0xffff;	/* only the msb is considered */	buf = value >> 8;	return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1);}int pwc_get_blue_gain(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1);	if (ret < 0)	    return ret;	*value = buf << 8;	return 0;}/* The following two functions are different, since they only read the   internal red/blue gains, which may be different from the manual    gains set or read above. */   static int pwc_read_red_gain(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_STATUS_CTL, READ_RED_GAIN_FORMATTER, 1);	if (ret < 0)		return ret;	*value = buf << 8;	return 0;}static int pwc_read_blue_gain(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_STATUS_CTL, READ_BLUE_GAIN_FORMATTER, 1);	if (ret < 0)		return ret;	*value = buf << 8;	return 0;}static int pwc_set_wb_speed(struct pwc_device *pdev, int speed){	unsigned char buf;		/* useful range is 0x01..0x20 */	buf = speed / 0x7f0;	return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1);}static int pwc_get_wb_speed(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1);	if (ret < 0)		return ret;	*value = buf * 0x7f0;	return 0;}static int pwc_set_wb_delay(struct pwc_device *pdev, int delay){	unsigned char buf;		/* useful range is 0x01..0x3F */	buf = (delay >> 10);	return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1);}static int pwc_get_wb_delay(struct pwc_device *pdev, int *value){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1);	if (ret < 0)		return ret;	*value = buf << 10;	return 0;}int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value){	unsigned char buf[2];	if (pdev->type < 730)		return 0;	on_value /= 100;	off_value /= 100;	if (on_value < 0)		on_value = 0;	if (on_value > 0xff)		on_value = 0xff;	if (off_value < 0)		off_value = 0;	if (off_value > 0xff)		off_value = 0xff;	buf[0] = on_value;	buf[1] = off_value;	return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2);}int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value){	unsigned char buf[2];	int ret;		if (pdev->type < 730) {		*on_value = -1;		*off_value = -1;		return 0;	}	ret = RecvControlMsg(GET_STATUS_CTL, LED_FORMATTER, 2);	if (ret < 0)		return ret;	*on_value = buf[0] * 100;	*off_value = buf[1] * 100;	return 0;}int pwc_set_contour(struct pwc_device *pdev, int contour){	unsigned char buf;	int ret;		if (contour < 0)		buf = 0xff; /* auto contour on */	else		buf = 0x0; /* auto contour off */	ret = SendControlMsg(SET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1);	if (ret < 0)		return ret;		if (contour < 0)		return 0;	if (contour > 0xffff)		contour = 0xffff;		buf = (contour >> 10); /* contour preset is [0..3f] */	ret = SendControlMsg(SET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1);	if (ret < 0)			return ret;		return 0;}int pwc_get_contour(struct pwc_device *pdev, int *contour){	unsigned char buf;	int ret;		ret = RecvControlMsg(GET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1);	if (ret < 0)		return ret;	if (buf == 0) {		/* auto mode off, query current preset value */		ret = RecvControlMsg(GET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1);		if (ret < 0)				return ret;		*contour = buf << 10;	}	else		*contour = -1;	return 0;}int pwc_set_backlight(struct pwc_device *pdev, int backlight){	unsigned char buf;		if (backlight)		buf = 0xff;	else		buf = 0x0;	return SendControlMsg(SET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1);}int pwc_get_backlight(struct pwc_device *pdev, int *backlight){	int ret;	unsigned char buf;		ret = RecvControlMsg(GET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1);	if (ret < 0)		return ret;	*backlight = !!buf;	return 0;}int pwc_set_colour_mode(struct pwc_device *pdev, int colour){	unsigned char buf;		if (colour)		buf = 0xff;	else		buf = 0x0;	return SendControlMsg(SET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1);}int pwc_get_colour_mode(struct pwc_device *pdev, int *colour){	int ret;	unsigned char buf;		ret = RecvControlMsg(GET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1);	if (ret < 0)		return ret;	*colour = !!buf;	return 0;}int pwc_set_flicker(struct pwc_device *pdev, int flicker){	unsigned char buf;		if (flicker)		buf = 0xff;	else		buf = 0x0;	return SendControlMsg(SET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1);}int pwc_get_flicker(struct pwc_device *pdev, int *flicker){	int ret;	unsigned char buf;		ret = RecvControlMsg(GET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1);	if (ret < 0)		return ret;	*flicker = !!buf;	return 0;}int pwc_set_dynamic_noise(struct pwc_device *pdev, int noise){	unsigned char buf;	if (noise < 0)		noise = 0;	if (noise > 3)		noise = 3;	buf = noise;	return SendControlMsg(SET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1);}int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise){	int ret;	unsigned char buf;		ret = RecvControlMsg(GET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1);	if (ret < 0)		return ret;	*noise = buf;	return 0;}static int _pwc_mpt_reset(struct pwc_device *pdev, int flags){	unsigned char buf;	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品99久久久久久老狼 | 久久久久久99久久久精品网站| 中文字幕第一区第二区| 亚洲国产三级在线| 国产露脸91国语对白| 欧美性色欧美a在线播放| 久久久久久久久蜜桃| 亚洲图片欧美色图| 成人午夜视频福利| 欧美大片一区二区三区| 亚洲精品免费电影| 成人精品高清在线| 精品国产伦理网| 日韩精品一级中文字幕精品视频免费观看| 国产精品影视天天线| 正在播放一区二区| 一区二区三区欧美日韩| www.66久久| 久久久99精品久久| 紧缚捆绑精品一区二区| 欧美丰满一区二区免费视频| 亚洲色图欧美激情| 成人av高清在线| 久久久久久久久久美女| 精品一区二区国语对白| 日韩一区二区在线播放| 日韩成人精品在线观看| 欧美撒尿777hd撒尿| 一区二区三区美女视频| 91蜜桃在线免费视频| 中文字幕精品三区| 成人一道本在线| 欧美精品18+| 欧美精品 日韩| 欧美大胆一级视频| 一区二区三区欧美久久| 日本伦理一区二区| 一区二区视频免费在线观看| bt7086福利一区国产| 国产精品天干天干在线综合| 国产91在线观看| 国产精品视频一二三区| av一区二区三区四区| 中文字幕一区二区三区四区不卡 | 欧美一区二区高清| 日本美女一区二区| 日韩视频中午一区| 国产精品白丝av| 国产精品视频一二| 色8久久精品久久久久久蜜| 亚洲最大的成人av| 欧美精品视频www在线观看 | 一区二区三区欧美在线观看| 欧美在线播放高清精品| 午夜精品福利一区二区三区av| 91麻豆精品国产91久久久资源速度| 三级不卡在线观看| 精品理论电影在线观看| 粉嫩嫩av羞羞动漫久久久| 最新久久zyz资源站| 欧美日韩日日摸| 日本最新不卡在线| 中文字幕成人在线观看| 欧美丝袜第三区| 久久爱www久久做| 最新国产成人在线观看| 欧美一区二区三区不卡| 成人h动漫精品一区二区| 亚洲大片精品永久免费| 久久这里只精品最新地址| 91麻豆国产精品久久| 久久精品久久综合| 亚洲日本在线a| 日韩精品一区二区三区在线| 99精品视频一区| 秋霞午夜鲁丝一区二区老狼| 久久精品视频在线看| 色欧美88888久久久久久影院| 青草国产精品久久久久久| 国产精品萝li| 日韩无一区二区| 色噜噜狠狠成人中文综合 | 久久久99久久| 精品婷婷伊人一区三区三| 国产成人av一区| 五月综合激情日本mⅴ| 国产精品三级电影| 日韩一区二区三区免费观看| 一本到三区不卡视频| 国产高清在线观看免费不卡| 亚洲成av人片一区二区| 日韩理论片一区二区| 国产日韩欧美一区二区三区综合| 欧美午夜免费电影| 成人午夜看片网址| 久久精品国产网站| 午夜精品国产更新| 亚洲男人的天堂av| 国产拍欧美日韩视频二区| 日韩欧美国产综合在线一区二区三区| www..com久久爱| 粉嫩蜜臀av国产精品网站| 久久国产精品免费| 久久精品国产亚洲一区二区三区| 亚洲伊人伊色伊影伊综合网| 亚洲欧美在线观看| 欧美国产精品中文字幕| xnxx国产精品| 精品国产一区二区三区四区四| 欧美日韩精品系列| 欧美三日本三级三级在线播放| 91香蕉国产在线观看软件| 成人av在线影院| 精品一区二区三区免费毛片爱| 蜜臀av性久久久久蜜臀av麻豆 | 免费观看30秒视频久久| 天天免费综合色| 五月天视频一区| 天堂午夜影视日韩欧美一区二区| 一区二区三国产精华液| 亚洲黄网站在线观看| 亚洲综合在线免费观看| 一区二区三区四区在线播放| 亚洲欧美另类久久久精品2019| 18涩涩午夜精品.www| 一区二区三区在线播放| 亚洲一级二级在线| 日韩成人dvd| 精品一区二区三区的国产在线播放| 免费欧美在线视频| 国产一二精品视频| 成人在线一区二区三区| 99久久综合99久久综合网站| 色综合色狠狠综合色| 精品视频在线看| 欧美tickling挠脚心丨vk| 久久久久88色偷偷免费| 亚洲国产精品精华液ab| 亚洲欧洲成人自拍| 亚洲一区二区三区四区五区黄| 丝袜美腿亚洲色图| 狠狠色丁香婷综合久久| 成人性色生活片| 欧美性感一区二区三区| 日韩欧美你懂的| 国产精品久久久久婷婷二区次| 亚洲精品免费看| 蜜桃av噜噜一区| 成年人网站91| 欧美丰满嫩嫩电影| 国产欧美视频在线观看| 亚洲综合一区在线| 久久精品国产一区二区三| av资源网一区| 欧美二区三区91| 久久精品网站免费观看| 亚洲一本大道在线| 国模无码大尺度一区二区三区| 99re这里都是精品| 日韩美女视频一区二区在线观看| 国产视频一区二区在线观看| 夜夜揉揉日日人人青青一国产精品| 免费在线欧美视频| 9久草视频在线视频精品| 欧美电影在哪看比较好| 国产精品网站一区| 蜜桃91丨九色丨蝌蚪91桃色| 99国产精品视频免费观看| 日韩三级在线免费观看| 亚洲色图欧美偷拍| 国产精品一区二区不卡| 欧美日韩小视频| 久久久久久久久伊人| 首页国产欧美久久| 一本到不卡精品视频在线观看| 久久久久久久久97黄色工厂| 午夜精品免费在线| 色综合久久久网| 久久青草国产手机看片福利盒子 | 秋霞电影一区二区| 日本道色综合久久| 国产精品污污网站在线观看| 激情成人综合网| 欧美一区二区三区小说| 亚洲国产视频a| 在线免费观看成人短视频| 国产精品美女久久久久久久久| 麻豆国产精品777777在线| 欧美一a一片一级一片| 国产精品996| 91成人国产精品| 一区二区三区在线观看国产| 国产91清纯白嫩初高中在线观看 | 亚洲成人精品一区二区| 丁香一区二区三区| 欧美电视剧在线看免费| 精品在线你懂的| 欧美精品九九99久久| 一区二区三区免费观看| 欧美丝袜丝nylons|