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

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

?? spca501_init.h

?? 這是一個usb驅動源代碼
?? H
字號:
/*  * SPCA501 chip based cameras initialization data * */#ifndef SPCA501_INIT_H#define SPCA501_INIT_H/* * Data to initialize a SPCA501. From a capture file provided by Bill Roehl * With SPCA501 chip description */#define CCDSP_SET		// set CCDSP parameters#define TG_SET			// set time generator set#undef DSPWIN_SET		// set DSP windows parameters#undef ALTER_GAMA		// Set alternate set to YUV transform coeffs.#define SPCA501_SNAPBIT 0x80#define SPCA501_SNAPCTRL 0x10/* Frame packet header offsets for the spca501 */#define SPCA501_OFFSET_GPIO   1#define SPCA501_OFFSET_TYPE   2#define SPCA501_OFFSET_TURN3A 3#define SPCA501_OFFSET_FRAMSEQ 4#define SPCA501_OFFSET_COMPRESS 5#define SPCA501_OFFSET_QUANT 6#define SPCA501_OFFSET_QUANT2 7#define SPCA501_OFFSET_DATA 8#define SPCA501_PROP_COMP_ENABLE(d) ( (d) & 1 )#define SPCA501_PROP_SNAP(d) ( (d) & 0x40 )#define SPCA501_PROP_SNAP_CTRL(d) ( (d) & 0x10)#define SPCA501_PROP_COMP_THRESH(d) ( ((d) & 0xE ) >> 1)#define SPCA501_PROP_COMP_QUANT(d) ( ((d) & 0x70 ) >> 4)/* SPCA501 CCDSP control */#define SPCA501_REG_CCDSP 0x1/* SPCA501 control/status registers */#define SPCA501_REG_CTLRL 0x2//registers for color correction and YUV transformation#define SPCA501_A11 0x08#define SPCA501_A12 0x09#define SPCA501_A13 0x0A#define SPCA501_A21 0x0B#define SPCA501_A22 0x0C#define SPCA501_A23 0x0D#define SPCA501_A31 0x0E#define SPCA501_A32 0x0F#define SPCA501_A33 0x10#include "spca501.dat"/*******************     Camera Interface   ***********************/static __u16 spca501_getbrightness(struct usb_spca50x *spca50x);static __u16 spca501_getcontrast(struct usb_spca50x *spca50x);static __u16 spca501_getcolors(struct usb_spca50x *spca50x);static void spca501_setbrightness(struct usb_spca50x *spca50x);static void spca501_setcontrast(struct usb_spca50x *spca50x);static void spca501_setcolors(struct usb_spca50x *spca50x);static int spca501_init(struct usb_spca50x *spca50x);static void spca501_start(struct usb_spca50x *spca50x);static void spca501_stopN(struct usb_spca50x *spca50x);static void spca501_stop0(struct usb_spca50x *spca50x);static int spca501_config(struct usb_spca50x *spca50x);static void spca501_shutdown(struct usb_spca50x *spca50x);static void spca501_setAutobright(struct usb_spca50x *spca50x);static void spca501_setquality(struct usb_spca50x *spca50x);static int spca501_sofdetect(struct usb_spca50x *spca50x,struct spca50x_frame *frame, unsigned char *cdata,int *iPix, int seqnum,int *datalength);/******************************************************************/static void spca501_stop0(struct usb_spca50x *spca50x){}static void spca501_setAutobright(struct usb_spca50x *spca50x){}static void spca501_setquality(struct usb_spca50x *spca50x){}/*****************************************************************/static struct cam_operation fspca501 = { 	.initialize = spca501_init,	.configure = spca501_config,	.start = spca501_start,	.stopN = spca501_stopN,	.stop0 = spca501_stop0,	.get_bright = spca501_getbrightness,	.set_bright = spca501_setbrightness,	.get_contrast = spca501_getcontrast,	.set_contrast = spca501_setcontrast,	.get_colors = spca501_getcolors,	.set_colors = spca501_setcolors,	.set_autobright = spca501_setAutobright,	.set_quality = spca501_setquality,	.cam_shutdown = spca501_shutdown,	.sof_detect = spca501_sofdetect, };static void spca501_shutdown(struct usb_spca50x *spca50x){// This maybe reset or power control	    spca50x_reg_write(spca50x->dev, SPCA501_REG_CTLRL, 0x5, 0x0);}static __u16 spca501_getbrightness(struct usb_spca50x *spca50x){__u16 brightness; brightness =		spca50x_reg_read(spca50x->dev,SPCA501_REG_CCDSP , 0x11, 2) & 0xFF;	    brightness <<= 8;	    spca50x->brightness = brightness;  return spca50x->brightness;}static __u16 spca501_getcontrast(struct usb_spca50x *spca50x){#if 0 __u8 byte = 0; 	byte =(spca50x_reg_read(spca50x->dev,						     0x00,						     0x00,						     1) & 0xFF) << 8;	spca50x->contrast = byte | (spca50x_reg_read(spca50x->dev,						     0x00,						     0x01,						     1) & 0xFF);#endifspca50x->contrast = 0xaa01;						     PDEBUG(0, "SPCA501 Getcontrast %d",spca50x->contrast);return spca50x->contrast;}static void spca501_setbrightness(struct usb_spca50x *spca50x){	spca50x_reg_write(spca50x->dev, SPCA501_REG_CCDSP, 0x11,			      spca50x->brightness >> 9);	spca50x_reg_write(spca50x->dev, SPCA501_REG_CCDSP, 0x12,			      spca50x->brightness >> 9);	spca50x_reg_write(spca50x->dev, SPCA501_REG_CCDSP, 0x13,			      spca50x->brightness >> 9);}static void spca501_setcontrast(struct usb_spca50x *spca50x){spca50x_reg_write(spca50x->dev,0x00, 0x00,			      (spca50x->contrast >> 8) & 0xff);spca50x_reg_write(spca50x->dev,0x00, 0x01,			      spca50x->contrast & 0xff);			      }static int spca501_init(struct usb_spca50x *spca50x){	    PDEBUG(2, "Initializing SPCA501 started");	    if (spca50x->dev->descriptor.idVendor == 0x0506		&& spca50x->dev->descriptor.idProduct == 0x00df) {		/* Special handling for 3com data */		spca50x_write_vector(spca50x, spca501_3com_open_data);	    } else if (spca50x->desc == Arowana300KCMOSCamera ||		       spca50x->desc == SmileIntlCamera) {		/* Arowana 300k CMOS Camera data */		spca50x_write_vector(spca50x, spca501c_arowana_open_data);	    } else if (spca50x->desc == MystFromOriUnknownCamera) {		/* UnKnow  CMOS Camera data */		spca50x_write_vector(spca50x,				     spca501c_mysterious_init_data);	    } else {		/* Generic 501 open data */		spca50x_write_vector(spca50x, spca501_open_data);	    }#ifdef SPCA50X_ENABLE_EXPERIMENTAL	    spca50x->a_blue = spca50x_reg_read(spca50x->dev,					       SPCA501_REG_CCDSP,					       SPCA501_A11, 2) & 0xFF;	    spca50x->a_green =		spca50x_reg_read(spca50x->dev, SPCA501_REG_CCDSP,				 SPCA501_A21, 2) & 0xFF;	    spca50x->a_red =		spca50x_reg_read(spca50x->dev, SPCA501_REG_CCDSP,				 SPCA501_A31, 2) & 0xFF;#endif				/* SPCA50X_ENABLE_EXPERIMENTAL */	    PDEBUG(2, "Initializing SPCA501 finished");return 0;}static void spca501_start(struct usb_spca50x *spca50x){int err_code = 0;struct usb_device *dev = spca50x->dev;	    /* Enable ISO packet machine CTRL reg=2,	     * index=1 bitmask=0x2 (bit ordinal 1) */	spca50x_reg_write(dev, SPCA50X_REG_USB, 0x6, 0x94);	switch (spca50x->mode){	case 0: //640x480	spca50x_reg_write(dev, SPCA50X_REG_USB, 0x7,0x004a);	break;	case 1: //320x240	spca50x_reg_write(dev, SPCA50X_REG_USB, 0x7, 0x104a);	break;	case 2: //160x120	spca50x_reg_write(dev, SPCA50X_REG_USB, 0x7, 0x204a);	break;	default:	spca50x_reg_write(dev, SPCA50X_REG_USB, 0x7, 0x204a);	break;	}	err_code = spca50x_reg_write(dev, SPCA501_REG_CTLRL,					 (__u16) 0x1, (__u16) 0x2);}static void spca501_stopN(struct usb_spca50x *spca50x){	    /* Disable ISO packet machine CTRL reg=2, index=1 bitmask=0x0 (bit ordinal 1) */	    spca50x_reg_write(spca50x->dev, SPCA501_REG_CTLRL,			      (__u16) 0x1, (__u16) 0x0);}static int spca501_config(struct usb_spca50x *spca50x){   memset(spca50x->mode_cam, 0x00, TOTMODE * sizeof(struct mwebcam));    spca50x->mode_cam[VGA].width = 640;    spca50x->mode_cam[VGA].height = 480;    spca50x->mode_cam[VGA].t_palette =	P_RAW | P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[VGA].pipe = 1023;    spca50x->mode_cam[VGA].method = 0;    spca50x->mode_cam[VGA].mode = 0;    spca50x->mode_cam[PAL].width = 384;    spca50x->mode_cam[PAL].height = 288;    spca50x->mode_cam[PAL].t_palette =	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[PAL].pipe = 1023;    spca50x->mode_cam[PAL].method = 1;    spca50x->mode_cam[PAL].mode = 0;    spca50x->mode_cam[SIF].width = 352;    spca50x->mode_cam[SIF].height = 288;    spca50x->mode_cam[SIF].t_palette =	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[SIF].pipe = 1023;    spca50x->mode_cam[SIF].method = 1;    spca50x->mode_cam[SIF].mode = 0;        spca50x->mode_cam[CIF].width = 320;    spca50x->mode_cam[CIF].height = 240;    spca50x->mode_cam[CIF].t_palette =        P_RAW | P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[CIF].pipe = 896;    spca50x->mode_cam[CIF].method = 0;    spca50x->mode_cam[CIF].mode = 1;    spca50x->mode_cam[QPAL].width = 192;    spca50x->mode_cam[QPAL].height = 144;    spca50x->mode_cam[QPAL].t_palette =	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[QPAL].pipe = 896;    spca50x->mode_cam[QPAL].method = 1;    spca50x->mode_cam[QPAL].mode = 1;    spca50x->mode_cam[QSIF].width = 176;    spca50x->mode_cam[QSIF].height = 144;    spca50x->mode_cam[QSIF].t_palette =	P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[QSIF].pipe = 896;    spca50x->mode_cam[QSIF].method = 1;    spca50x->mode_cam[QSIF].mode = 1;        spca50x->mode_cam[QCIF].width = 160;    spca50x->mode_cam[QCIF].height = 120;    spca50x->mode_cam[QCIF].t_palette =        P_RAW | P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;    spca50x->mode_cam[QCIF].pipe = 384;    spca50x->mode_cam[QCIF].method = 0;    spca50x->mode_cam[QCIF].mode = 2;        	    if (spca50x->desc == Arowana300KCMOSCamera ||		spca50x->desc == SmileIntlCamera) {		/* Arowana 300k CMOS Camera data */		if (spca50x_write_vector		    (spca50x, spca501c_arowana_init_data))		    goto error;	    } else if (spca50x->desc == MystFromOriUnknownCamera) {		/* UnKnow Ori CMOS Camera data */		if (spca50x_write_vector		    (spca50x, spca501c_mysterious_open_data))		    goto error;	    } else {		/* generic spca501 init data */		if (spca50x_write_vector(spca50x, spca501_init_data))		    goto error;	    }return 0;error:return -EINVAL;}static __u16 spca501_getcolors(struct usb_spca50x *spca50x){             spca50x->colour = (spca50x_reg_read(spca50x->dev,SPCA501_REG_CCDSP, 0x0c,			           2) & 0xFF) << 10;	     spca50x->hue = (spca50x_reg_read (spca50x->dev, SPCA501_REG_CCDSP, 0x13,			  2) & 0xFF) << 8;return spca50x->colour;}static void spca501_setcolors(struct usb_spca50x *spca50x){             spca50x_reg_write(spca50x->dev,SPCA501_REG_CCDSP, 0x0c,			           spca50x->colour >> 10);}static int spca501_sofdetect(struct usb_spca50x *spca50x,struct spca50x_frame *frame, unsigned char *cdata,int *iPix, int seqnum,int *datalength){	switch (cdata[0]){	   case 0:	   	*iPix = SPCA501_OFFSET_DATA;		*datalength -= *iPix;	   	return 0;	   case SPCA50X_SEQUENCE_DROP:	   	return -1;	   default:	        *iPix = 1;	        *datalength -= *iPix;	   	return seqnum+1 ;	   }}			/* SPCA501_INIT_H */#endif//eof

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品欧美一区二区三区综合在| 中文在线免费一区三区高中清不卡| 日韩欧美国产小视频| 国产午夜精品在线观看| 亚洲一级二级在线| 国产精品1区2区| 日韩一区二区三区视频在线观看| 综合在线观看色| 国产精品综合二区| 91精品国产美女浴室洗澡无遮挡| 亚洲女性喷水在线观看一区| 国产二区国产一区在线观看| 欧美成人午夜电影| 五月天久久比比资源色| 91视频com| 自拍偷在线精品自拍偷无码专区 | 一区二区三区日韩欧美| 精品写真视频在线观看| 8x8x8国产精品| 亚洲第一福利一区| 欧美在线观看你懂的| 亚洲美女淫视频| 99精品视频在线播放观看| 欧美极品少妇xxxxⅹ高跟鞋 | 午夜a成v人精品| 欧美视频一区二区三区在线观看| 国产精品―色哟哟| 国产a级毛片一区| 久久久噜噜噜久噜久久综合| 久久99国产精品免费网站| 欧美大片顶级少妇| 激情综合网天天干| 亚洲精品一区在线观看| 久久国产福利国产秒拍| 精品国内二区三区| 国产大陆精品国产| 中文字幕在线不卡| 色综合色综合色综合色综合色综合 | 国产在线精品一区二区| 精品国产欧美一区二区| 久久91精品国产91久久小草| 欧美mv和日韩mv的网站| 国产一区欧美一区| 国产丝袜在线精品| 92国产精品观看| 一区二区三区四区国产精品| 欧美日韩高清不卡| 免费欧美在线视频| 国产日韩欧美在线一区| 91麻豆国产精品久久| 午夜精品一区在线观看| 日韩一级高清毛片| 国产成人av电影在线播放| 18欧美乱大交hd1984| 色伊人久久综合中文字幕| 亚洲电影一区二区| 欧美电影精品一区二区| 99久久免费视频.com| 亚洲国产视频网站| 2024国产精品视频| 91麻豆自制传媒国产之光| 亚洲成av人片一区二区三区 | 黄色成人免费在线| 欧美激情一区三区| 欧美日韩一级二级三级| 久久99国产精品尤物| 一区精品在线播放| 欧美一区二区三区白人| 国产精品性做久久久久久| 亚洲视频在线观看一区| 日韩一区二区三区四区五区六区| 成人免费毛片app| 首页国产欧美久久| 中文字幕欧美日本乱码一线二线| 欧美中文字幕一区二区三区亚洲| 国产麻豆9l精品三级站| 亚洲高清免费在线| 国产精品―色哟哟| 日韩一区二区在线播放| 91久久线看在观草草青青| 国产一区二区三区观看| 夜夜嗨av一区二区三区四季av | 成人黄页在线观看| 日韩精品一卡二卡三卡四卡无卡| 国产精品美女久久久久久久| 欧美久久久久中文字幕| 99在线精品一区二区三区| 精品午夜一区二区三区在线观看| 亚洲靠逼com| 久久蜜桃一区二区| 欧美一区二区三区色| 在线观看日韩av先锋影音电影院| 粉嫩av一区二区三区粉嫩| 精品亚洲国产成人av制服丝袜| 亚洲午夜三级在线| 亚洲天堂网中文字| 国产农村妇女毛片精品久久麻豆 | 激情综合色综合久久| 亚洲高清视频在线| 亚洲综合色婷婷| 亚洲欧美区自拍先锋| 欧美国产日韩一二三区| 欧美不卡一区二区| 精品日韩在线观看| 日韩一区二区三区四区五区六区| 欧美人妖巨大在线| 欧美日韩国产乱码电影| 欧美吻胸吃奶大尺度电影| 91网站黄www| 91久久久免费一区二区| 色诱视频网站一区| 欧美主播一区二区三区美女| 在线视频中文字幕一区二区| 在线免费精品视频| 99re热视频精品| 色婷婷一区二区三区四区| 日本韩国欧美国产| 欧美男男青年gay1069videost | 亚洲国产成人一区二区三区| 久久久久久免费网| 国产精品网友自拍| 亚洲图片另类小说| 亚洲成av人片| 免费成人av在线播放| 九九视频精品免费| 国产一区二区三区高清播放| 丁香婷婷综合色啪| 色综合视频一区二区三区高清| 欧美午夜理伦三级在线观看| 欧美一二三四在线| 久久伊99综合婷婷久久伊| 国产欧美日韩另类视频免费观看| 国产精品成人免费 | 国产精品理论片在线观看| 亚洲丝袜精品丝袜在线| 国产综合色在线视频区| 国产69精品久久久久777| 91猫先生在线| 欧美一区二区三区四区在线观看| 久久伊人蜜桃av一区二区| 1000精品久久久久久久久| 亚洲精品伦理在线| 奇米色一区二区三区四区| 国产精品538一区二区在线| 一本色道久久加勒比精品 | 奇米精品一区二区三区在线观看| 国产一区二区三区免费| 91视视频在线直接观看在线看网页在线看| 色女孩综合影院| 日韩午夜在线观看| 中文字幕在线观看不卡视频| 偷偷要91色婷婷| 成人综合日日夜夜| 欧美丰满嫩嫩电影| 国产精品久久久久影院色老大 | av电影天堂一区二区在线| 91.com视频| 亚洲天堂2016| 久久99精品网久久| 欧美日韩中字一区| 国产精品久久精品日日| 喷水一区二区三区| 9i在线看片成人免费| 精品噜噜噜噜久久久久久久久试看 | 久久久国际精品| 午夜av一区二区三区| av电影在线观看不卡| 精品国产乱码久久久久久闺蜜| 成人欧美一区二区三区白人| 麻豆91精品91久久久的内涵| 91传媒视频在线播放| 久久精品夜夜夜夜久久| 五月婷婷久久综合| 色综合久久久久| 国产精品情趣视频| 久久99九九99精品| 欧美一区二区三区成人| 亚洲一区中文在线| 91美女片黄在线观看| 国产精品美女久久久久久久久| 国产在线精品国自产拍免费| 制服丝袜在线91| 亚洲午夜影视影院在线观看| 91麻豆视频网站| 亚洲区小说区图片区qvod| 高清在线观看日韩| 久久久亚洲欧洲日产国码αv| 久久精品国产99| 欧美xxxxx裸体时装秀| 日韩激情视频在线观看| 欧美午夜一区二区| 亚洲一区二区三区在线看| 欧洲一区二区三区免费视频| 一区二区三区成人| 91蜜桃婷婷狠狠久久综合9色| 亚洲欧洲精品天堂一级| 成人app在线| 亚洲精品一二三区| 91久久精品一区二区三| 一区二区三区国产豹纹内裤在线|