Bus 001 Device 004: ID 041e:403a Creative Technology, Ltd WebCam NX Pro 2 ## spca5xx.c case 0x403a: spca50x->desc = CreativeNxPro2; spca50x->bridge = BRIDGE_ZC3XX; spca50x->sensor = SENSOR_TAS5130C; spca50x->cameratype = JPGH; info("USB SPCA5XX camera found. Type Creative Nx Pro FW2 Zc301+Tas5130c"); memcpy(&spca50x->funct,&fzc3xx,sizeof(struct cam_operation)); break; ## zc3xx.h static struct cam_operation fzc3xx = { .initialize = zc3xx_init, .configure = zc3xx_config, .start = zc3xx_start, .stopN = zc3xx_stopN, .stop0 = zc3xx_stop0, .get_bright = zc3xx_getbrightness, .set_bright = zc3xx_setbrightness, .get_contrast = zc3xx_getcontrast, .set_contrast = zc3xx_setcontrast, .get_colors = zc3xx_getcolors, .set_colors = zc3xx_setcolors, .set_autobright = zc3xx_setAutobright, .set_quality = zc3xx_setquality, .cam_shutdown = zc3xx_shutdown, .sof_detect = zc3xx_sofdetect, }; static int zc3xx_sofdetect(struct usb_spca50x *spca50x,struct spca50x_frame *frame, unsigned char *cdata,int *iPix, int seqnum, int *datalength) { if (cdata[0] == 0xFF && cdata[1] == 0xD8) { *iPix = 2; //18 remove 0xff 0xd8; *datalength -= *iPix; return 0; PDEBUG(5, "Zc301 header packet found datalength %d !!", *datalength ); } *iPix = 0; return (seqnum +1); }