⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zc3xx.h

📁 spca5xx
💻 H
📖 第 1 页 / 共 2 页
字号:
		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_JPEG | P_RAW | P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;		spca50x->mode_cam[CIF].pipe = 1023;		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 = 1023;		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 = 1023;		spca50x->mode_cam[QSIF].method = 1;		spca50x->mode_cam[QSIF].mode = 1;}static void set_zc3xxSIF(struct usb_spca50x *spca50x ){		memset (spca50x->mode_cam, 0x00, TOTMODE * sizeof(struct mwebcam));		spca50x->mode_cam[SIF].width = 352;		spca50x->mode_cam[SIF].height = 288;		spca50x->mode_cam[SIF].t_palette = P_JPEG | P_RAW |P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;		spca50x->mode_cam[SIF].pipe = 1023;		spca50x->mode_cam[SIF].method = 0;		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_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;		spca50x->mode_cam[CIF].pipe = 1023;		spca50x->mode_cam[CIF].method = 1;		spca50x->mode_cam[CIF].mode = 0;		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 = 1023;		spca50x->mode_cam[QPAL].method = 1;		spca50x->mode_cam[QPAL].mode = 0;		spca50x->mode_cam[QSIF].width = 176;		spca50x->mode_cam[QSIF].height = 144;		spca50x->mode_cam[QSIF].t_palette = P_JPEG | P_RAW |P_YUV420 | P_RGB32 | P_RGB24 | P_RGB16;		spca50x->mode_cam[QSIF].pipe = 1023;		spca50x->mode_cam[QSIF].method = 0;		spca50x->mode_cam[QSIF].mode = 1;}static int zc3xx_config( struct usb_spca50x *spca50x ){ 		int sensor =0;	__u8 bsensor = 0;	spca50x->qindex = 1;	sensor = zcxx_probeSensor(spca50x);	switch (sensor) {		case -1:		PDEBUG(0,"Find Sensor UNKNOW_0 force Tas5130");		spca50x->sensor = SENSOR_TAS5130C;		set_zc3xxVGA (spca50x);		break;		case 0:		PDEBUG(0,"Find Sensor HV7131B");		spca50x->sensor = SENSOR_HV7131B;		set_zc3xxVGA (spca50x);		break;		case 1:		PDEBUG(0,"Find Sensor SIF UNKNOW_1");		break;		case 0x02:		PDEBUG(0,"Find Sensor UNKNOW_2");		break;		case 0x04:		PDEBUG(0,"Find Sensor CS2102");		spca50x->sensor = SENSOR_CS2102;		set_zc3xxVGA (spca50x);		break;		case 5:		PDEBUG(0,"Find Sensor SIF UNKNOW_5");		break;		case 0x06:		PDEBUG(0,"Find Sensor VGA UNKNOW_6");		break;		case 7:		PDEBUG(0,"Find Sensor SIF UNKNOW_7");		break;		case 0x08:		PDEBUG(0,"Find Sensor HDCS2020(b)");		spca50x->sensor = SENSOR_HDCS2020b;		set_zc3xxVGA (spca50x);		break;		case 9:		PDEBUG(0,"Find Sensor SIF UNKNOW_9");		break;		case 0x0a:		PDEBUG(0,"Find Sensor PB0330");		spca50x->sensor = SENSOR_PB0330;		set_zc3xxVGA (spca50x);		break;		case 0x0b:		PDEBUG(0,"Find Sensor SIF UNKNOW_b");		break;		case 0x0c:		PDEBUG(0,"Find Sensor ICM105T");		spca50x->sensor = SENSOR_ICM105A;		set_zc3xxVGA (spca50x);		break;		case 0x0d:		PDEBUG(0,"Find Sensor SIF UNKNOW_d");		break;		case 0x0e:		PDEBUG(0,"Find Sensor PAS202BCB");		spca50x->sensor = SENSOR_HDCS2020;		set_zc3xxVGA (spca50x);		break;		case 0x0f:		PDEBUG(0,"Find Sensor PAS106");		spca50x->sensor = SENSOR_PAS106;		set_zc3xxSIF (spca50x);		break;		case 0x10:		PDEBUG(0,"Find Sensor TAS5130");		spca50x->sensor = SENSOR_TAS5130C;		set_zc3xxVGA (spca50x);		break;		case 0x11:		PDEBUG(0,"Find Sensor HV7131R(c)");		spca50x->sensor = SENSOR_HV7131C;		set_zc3xxVGA (spca50x);		break;		case 0x12:		PDEBUG(0,"Find Sensor TAS5130");		spca50x->sensor = SENSOR_TAS5130C;		set_zc3xxVGA (spca50x);		break;			};	if (( sensor == 0x02) || (sensor == 0x06 ) || (sensor == 0x01) || (sensor == 0x05)	     || (sensor == 0x07) || (sensor == 0x09) || (sensor == 0x0b) || (sensor == 0x0d)){		PDEBUG(0,"Our Sensor is unknow at the moment please report mxhaard@free.fr ");		return -EINVAL;	}	if((sensor == -1) || (sensor == 0x10) || (sensor == 0x12)){		spca5xxRegWrite(spca50x->dev,0xa0,0x02,0x0010,NULL,0);		spca5xxRegRead(spca50x->dev,0xa1,0x01,0x0010,&bsensor,1);	} else {		sensor = sensor & 0x0f;		spca5xxRegWrite(spca50x->dev,0xa0,sensor,0x0010,NULL,0);		spca5xxRegRead(spca50x->dev,0xa1,0x01,0x0010,&bsensor,1);	}	//  spca5xxRegWrite(spca50x->dev,0xa0,0x01,0x0000,NULL,0);		return 0;}static void zc3xx_setquality(struct usb_spca50x *spca50x ){	__u8 quality = 0;	quality = (spca50x->qindex) & 0xff;	 spca5xxRegWrite(spca50x->dev,0xa0,quality,0x0008,NULL,0);}static void zc3xx_setAutobright (struct usb_spca50x *spca50x){ 	__u8 autoval = 0;	if(spca50x->autoexpo)		autoval = 0x42;	else 		autoval = 0x02;	spca5xxRegWrite(spca50x->dev,0xa0,autoval,0x0180,NULL,0);	}static void zc3xx_start(struct usb_spca50x *spca50x ){	int err = 0;	/* Assume start use the good resolution from spca50x->mode */	err = zcxx_probeSensor(spca50x);	switch (spca50x->sensor){		case SENSOR_TAS5130C:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,tas5130cxx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,tas5130cxx_scale_data);			}		break;		case SENSOR_ICM105A:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,icm105axx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,icm105axx_scale_data);			}		break;		case SENSOR_HDCS2020:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,hdcs2020xx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,hdcs2020xx_scale_data);			}		break;		case SENSOR_HDCS2020b:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,hdcs2020xb_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,hdcs2020xb_scale_data);			}		break;		case SENSOR_HV7131B:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,hv7131bxx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,hv7131bxx_scale_data);			}		break;		case SENSOR_HV7131C://HV7131R			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,hv7131cxx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,hv7131cxx_scale_data);			}		break;		case SENSOR_PB0330:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,pb0330xx_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,pb0330xx_scale_data);			}		break;		case SENSOR_CS2102:			if (spca50x->mode){			/* 320x240 */			err = zc3xxWriteVector(spca50x,cs2102_start_data);			} else {			/* 640x480 */			err = zc3xxWriteVector(spca50x,cs2102_scale_data);			}		break;		case SENSOR_PAS106:			if (spca50x->mode){			/* 176x144 */			err = zc3xxWriteVector(spca50x,pas106b_start_data);			} else {			/* 352x288 */			err = zc3xxWriteVector(spca50x,pas106b_scale_data);			}		break;	}	zc3xx_setbrightness(spca50x);	zc3xx_setquality(spca50x );	zc3xx_setAutobright (spca50x);}static void zc3xx_stop(struct usb_spca50x *spca50x ){  	// Nothing todo }static void zc3xx_shutdown(struct usb_spca50x *spca50x ){  			struct usb_device *dev=spca50x->dev;	__u8 buffread;		spca5xxRegRead(dev,0xa1,0x01,0x0180,&buffread,1);	spca5xxRegWrite(dev,0xa0,0x00,0x0180,NULL,0);	spca5xxRegWrite(dev,0xa0,0x01,0x0000,NULL,0);}#endif // ZC3XXUSB_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -