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

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

?? spca500_init.h

?? 這是一個usb驅動源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * SPCA500 chip based cameras initialization data * */#ifndef SPCA500_INIT_H#define SPCA500_INIT_H/* Frame packet header offsets for the spca500 */#define SPCA500_OFFSET_PADDINGLB 2#define SPCA500_OFFSET_PADDINGHB 3#define SPCA500_OFFSET_MODE      4#define SPCA500_OFFSET_IMGWIDTH  5#define SPCA500_OFFSET_IMGHEIGHT 6#define SPCA500_OFFSET_IMGMODE   7#define SPCA500_OFFSET_QTBLINDEX 8#define SPCA500_OFFSET_FRAMSEQ   9#define SPCA500_OFFSET_CDSPINFO  10#define SPCA500_OFFSET_GPIO      11#define SPCA500_OFFSET_AUGPIO    12#define SPCA500_OFFSET_DATA      16#include "spca500.dat"/*******************     Camera Interface   *********************/static __u16 spca500_getbrightness(struct usb_spca50x *spca50x);static __u16 spca500_getcontrast(struct usb_spca50x *spca50x);static __u16 spca500_getcolors(struct usb_spca50x *spca50x);static void spca500_setbrightness(struct usb_spca50x *spca50x);static void spca500_setcontrast(struct usb_spca50x *spca50x);static void spca500_setcolors(struct usb_spca50x *spca50x);static int spca500_init(struct usb_spca50x *spca50x);static void spca500_start(struct usb_spca50x *spca50x);static void spca500_stopN(struct usb_spca50x *spca50x);static void spca500_stop0(struct usb_spca50x *spca50x);static int spca500_config(struct usb_spca50x *spca50x);static void spca500_shutdown(struct usb_spca50x *spca50x);static void spca500_setAutobright(struct usb_spca50x *spca50x);static void spca500_setquality(struct usb_spca50x *spca50x);static int spca500_sofdetect(struct usb_spca50x *spca50x,struct spca50x_frame * frame,unsigned char *cdata,int *iPix, int seqnum, int *datalength);/****************************************************************/static void spca500_stop0(struct usb_spca50x *spca50x){}static void spca500_shutdown(struct usb_spca50x *spca50x){}static void spca500_setAutobright(struct usb_spca50x *spca50x){}static void spca500_setquality(struct usb_spca50x *spca50x){}/****************************************************************/static void spca500_clksmart310_init(struct usb_spca50x *spca50x);static void spca500_reinit(struct usb_spca50x *spca50x);static int spca500_full_reset(struct usb_spca50x *spca50x);/****************************************************************/static struct cam_operation fspca500 = { 	.initialize = spca500_init,	.configure = spca500_config,	.start = spca500_start,	.stopN = spca500_stopN,	.stop0 = spca500_stop0,	.get_bright = spca500_getbrightness,	.set_bright = spca500_setbrightness,	.get_contrast = spca500_getcontrast,	.set_contrast = spca500_setcontrast,	.get_colors = spca500_getcolors,	.set_colors = spca500_setcolors,	.set_autobright = spca500_setAutobright,	.set_quality = spca500_setquality,	.cam_shutdown = spca500_shutdown,	.sof_detect = spca500_sofdetect, };static __u16 spca500_getbrightness(struct usb_spca50x *spca50x){	   spca50x->brightness = (spca50x_reg_read(spca50x->dev, 0x00, 0x8167, 1)+128) << 8;	    return spca50x->brightness;}static __u16 spca500_getcontrast(struct usb_spca50x *spca50x){            spca50x->contrast = spca50x_reg_read(spca50x->dev, 0x0, 0x8168, 1) << 10;return spca50x->contrast;}static __u16 spca500_getcolors(struct usb_spca50x *spca50x){            spca50x->colour = spca50x_reg_read(spca50x->dev, 0x0, 0x8169, 1) << 10;return spca50x->colour;}static void spca500_setbrightness(struct usb_spca50x *spca50x){	  spca50x_reg_write(spca50x->dev, 0x00, 0x8167,(__u8) ((spca50x->brightness >> 8)-128));}static void spca500_setcontrast(struct usb_spca50x *spca50x){          spca50x_reg_write(spca50x->dev, 0x00, 0x8168, (spca50x->contrast >> 10));}static void spca500_setcolors(struct usb_spca50x *spca50x){          spca50x_reg_write(spca50x->dev, 0x00, 0x8169, (spca50x->colour >> 10));}static int spca500_init(struct usb_spca50x *spca50x){	    /* initialisation of spca500 based cameras is deferred */	    PDEBUG(2, "Initializing SPCA500 started");	    if (spca50x->desc == LogitechClickSmart310) {		spca500_clksmart310_init(spca50x);	    } else {		//spca500_initialise(spca50x);	    }	    PDEBUG(2, "Initializing SPCA500 finished");return 0;}static void spca500_stopN(struct usb_spca50x *spca50x){	int err;	__u8 data = 0;    spca50x_reg_write(spca50x->dev, 0, 0x8003, 0x00);    /* switch to video camera mode */    err = spca50x_reg_write(spca50x->dev, 0x00, 0x8000, 0x0004);    spca5xxRegRead(spca50x->dev, 0, 0, 0x8000, &data, 1);    PDEBUG(0, "Stop  SPCA500 finished reg8000 = 0x%2X",data);}static int spca500_config(struct usb_spca50x *spca50x){   memset(spca50x->mode_cam, 0x00, TOTMODE * sizeof(struct mwebcam));   if( spca50x->desc != LogitechClickSmart310) {    spca50x->mode_cam[VGA].width = 640;    spca50x->mode_cam[VGA].height = 480;    spca50x->mode_cam[VGA].t_palette =	P_JPEG | 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_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;    } else {    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_JPEG | P_RAW | 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;    }  return 0;}/***************************************************************************/static void spca500_ping310(struct usb_spca50x *spca50x){    __u8 Data[2] = { 0, 0 };    spca5xxRegRead(spca50x->dev, 0, 0, 0x0d04, Data, 2);    PDEBUG(5, "ClickSmart310 ping 0x0d04 0x%02X  0x%02X ", Data[0],	   Data[1]);}static int spca500_synch310(struct usb_spca50x *spca50x){/* Synchro the Bridge with sensor *//* Maybe that will work on all spca500 chip *//* because i only own a clicksmart310 try for that chip *//* using spca50x_set_packet_size() cause an Ooops here *//* usb_set_interface from kernel 2.6.x clear all the urb stuff *//* up-port the same feature as in 2.4.x kernel */    __u8 Data;    if (spca_set_interface(spca50x->dev, spca50x->iface, 0) < 0) {	err("Set packet size: set interface error");	goto error;    }    spca500_ping310(spca50x);    spca5xxRegRead(spca50x->dev, 0, 0, 0x0d00, &Data, 1);    /* need alt setting here */    PDEBUG(5, "ClickSmart310 sync pipe %d altsetting %d ",	   spca50x->pipe_size, spca50x->alt);    /* Windoze use pipe with altsetting 6 why 7 here */    if (spca_set_interface(spca50x->dev, spca50x->iface, spca50x->alt) < 0) {	err("Set packet size: set interface error");	goto error;    }    return 0;  error:    return -EBUSY;}static void spca500_clksmart310_init(struct usb_spca50x *spca50x){    __u8 Data[2] = { 0, 0 };    spca5xxRegRead(spca50x->dev, 0, 0, 0x0d05, Data, 2);    PDEBUG(5, "ClickSmart310 init 0x0d05 0x%02X  0x%02X ", Data[0],	   Data[1]);    spca50x_reg_write(spca50x->dev, 0x00, 0x8167, 0x5a);    spca500_ping310(spca50x);    spca50x_reg_write(spca50x->dev, 0x00, 0x8168, 0x22);    spca50x_reg_write(spca50x->dev, 0x00, 0x816a, 0xc0);    spca50x_reg_write(spca50x->dev, 0x00, 0x816b, 0x0b);    spca50x_reg_write(spca50x->dev, 0x00, 0x8169, 0x25);    spca50x_reg_write(spca50x->dev, 0x00, 0x8157, 0x5b);    spca50x_reg_write(spca50x->dev, 0x00, 0x8158, 0x5b);    spca50x_reg_write(spca50x->dev, 0x00, 0x813f, 0x03);    spca50x_reg_write(spca50x->dev, 0x00, 0x8151, 0x4a);    spca50x_reg_write(spca50x->dev, 0x00, 0x8153, 0x78);    spca50x_reg_write(spca50x->dev, 0x00, 0x0d01, 0x04);	//00 for adjust shutter    spca50x_reg_write(spca50x->dev, 0x00, 0x0d02, 0x01);    spca50x_reg_write(spca50x->dev, 0x00, 0x8169, 0x25);    spca50x_reg_write(spca50x->dev, 0x00, 0x0d01, 0x02);}static void spca500_reinit(struct usb_spca50x *spca50x){    int err;    __u8 Data;    // some unknow command from Aiptek pocket dv and family300    spca50x_reg_write(spca50x->dev, 0x00, 0x0d01, 0x01);    spca50x_reg_write(spca50x->dev, 0x00, 0x0d03, 0x00);    spca50x_reg_write(spca50x->dev, 0x00, 0x0d02, 0x01);    /* enable drop packet */    spca50x_reg_write(spca50x->dev, 0x00, 0x850a, 0x0001);    err =	spca50x_setup_qtable(spca50x, 0x00, 0x8800, 0x8840,			     qtable_pocketdv);    if (err < 0) {	PDEBUG(2, "spca50x_setup_qtable failed on init");    }    /* set qtable index */    spca50x_reg_write(spca50x->dev, 0x00, 0x8880, 2);    /* family cam Quicksmart stuff */    spca50x_reg_write(spca50x->dev, 0x00, 0x800a, 0x00);    //Set agc transfer: synced inbetween frames    spca50x_reg_write(spca50x->dev, 0x00, 0x820f, 0x01);    //Init SDRAM - needed for SDRAM access    spca50x_reg_write(spca50x->dev, 0x00, 0x870a, 0x04);    /*Start init sequence or stream */    spca50x_reg_write(spca50x->dev, 0, 0x8003, 0x00);    /* switch to video camera mode */    err = spca50x_reg_write(spca50x->dev, 0x00, 0x8000, 0x0004);    wait_ms(2000);    if (spca50x_reg_readwait(spca50x->dev, 0, 0x8000, 0x44) != 0)	spca5xxRegRead(spca50x->dev, 0, 0, 0x816b, &Data, 1);    spca50x_reg_write(spca50x->dev, 0x00, 0x816b, Data);}static void spca500_setmode(struct usb_spca50x *spca50x , __u8 xmult, __u8 ymult){	/* set x multiplier */	spca50x_reg_write(spca50x->dev, 0, 0x8001,xmult);	/* set y multiplier */	spca50x_reg_write(spca50x->dev, 0, 0x8002,ymult);	/* use compressed mode, VGA, with mode specific subsample */	spca50x_reg_write(spca50x->dev, 0, 0x8003,spca50x->mode << 4);}static void spca500_start(struct usb_spca50x *spca50x){    int err;    __u8 Data;    __u8 xmult, ymult;       if( spca50x->desc == LogitechClickSmart310){   	xmult = 0x16;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品第1页| 欧美一级夜夜爽| 欧美性大战久久| 国产高清久久久| 色综合久久综合| 欧美乱妇23p| 国产精品色婷婷久久58| 亚洲电影你懂得| 国产一区二区三区黄视频 | 欧美猛男男办公室激情| 日韩午夜在线观看视频| 国产精品家庭影院| 一卡二卡三卡日韩欧美| 激情图区综合网| 91精品福利视频| 久久久www成人免费无遮挡大片| 国产精品久久国产精麻豆99网站| 丝袜美腿亚洲一区| 国产**成人网毛片九色| 欧美高清你懂得| 国产精品久久久久久久久久久免费看 | 美国毛片一区二区三区| 在线观看欧美黄色| 日韩三级伦理片妻子的秘密按摩| 中文成人av在线| 亚洲精品久久久久久国产精华液| 美女爽到高潮91| 欧美系列一区二区| 国产精品成人免费精品自在线观看| 免费观看久久久4p| 91福利精品第一导航| 中文字幕乱码日本亚洲一区二区| 午夜不卡av免费| 91久久精品网| 中文字幕一区二区不卡| 国产一区二区免费视频| 欧美丰满少妇xxxxx高潮对白| 亚洲视频一区二区在线观看| 国产一区二区三区日韩| 日韩精品专区在线影院重磅| 午夜精品影院在线观看| 色偷偷成人一区二区三区91| 国产精品成人一区二区艾草| 粗大黑人巨茎大战欧美成人| 欧美精品xxxxbbbb| 亚洲一区在线视频| 91精品办公室少妇高潮对白| 亚洲男人都懂的| 99久久久久久99| 亚洲人快播电影网| 91麻豆免费看片| 亚洲国产高清aⅴ视频| 丁香激情综合五月| **欧美大码日韩| 色综合久久久久久久久久久| 综合久久一区二区三区| 成人动漫精品一区二区| 最新中文字幕一区二区三区| 国产酒店精品激情| 一区视频在线播放| 97久久精品人人做人人爽| 一区二区在线观看视频在线观看| 色94色欧美sute亚洲线路一ni| 亚洲精品欧美二区三区中文字幕| 99视频热这里只有精品免费| 自拍偷拍亚洲综合| 欧美乱熟臀69xxxxxx| 免费的成人av| 久久日韩粉嫩一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 欧美高清在线精品一区| 国产99久久久国产精品免费看| **欧美大码日韩| 欧美午夜影院一区| 久久99久久久欧美国产| 国产色综合一区| 色菇凉天天综合网| 一区二区三区中文字幕精品精品 | 欧美亚洲国产一区二区三区va | 日本一区二区三级电影在线观看| 粉嫩av亚洲一区二区图片| 国产精品久久久久久久第一福利 | 日韩av高清在线观看| 欧美精品一区二区三区久久久 | 欧美日韩一二三区| 免费在线观看一区| 久久久久久久久99精品| 91女人视频在线观看| 亚洲精品国产无套在线观| 欧美一区二视频| 99久久777色| 日韩中文字幕91| 久久精品夜夜夜夜久久| 99久久综合精品| 免费观看30秒视频久久| 亚洲欧美电影院| 日韩精品在线看片z| 欧美综合亚洲图片综合区| 精品无码三级在线观看视频| wwwwww.欧美系列| 欧美中文字幕一二三区视频| 国产精品一线二线三线| 香蕉影视欧美成人| 亚洲视频一二区| 久久综合久久综合久久综合| 91极品美女在线| 成人三级在线视频| 老司机精品视频线观看86| 亚洲男同1069视频| www国产成人免费观看视频 深夜成人网| 欧美专区亚洲专区| av一区二区三区四区| 日本aⅴ免费视频一区二区三区| 一区二区三区四区蜜桃| 久久久久9999亚洲精品| 欧美在线小视频| 国产一区二区女| 蜜桃视频在线观看一区| 亚洲尤物在线视频观看| 国产精品美日韩| 中文字幕亚洲精品在线观看| 国产精品久久久久久久久快鸭| 国产精品国产三级国产专播品爱网 | 欧美色大人视频| 欧美精品久久久久久久多人混战 | 免费成人深夜小野草| 日本不卡不码高清免费观看| 美女网站色91| 粉嫩绯色av一区二区在线观看| 99精品在线免费| 欧美性大战久久久久久久蜜臀| 制服丝袜av成人在线看| 日韩视频在线你懂得| 久久久久一区二区三区四区| 亚洲国产精品av| 亚洲一区视频在线| 日韩激情视频网站| 国产老肥熟一区二区三区| av一区二区不卡| 欧美一区二区在线播放| 国产无人区一区二区三区| 中文字幕欧美一区| 午夜精品在线视频一区| 国产一区二区调教| 一本一道久久a久久精品| 欧美精品在欧美一区二区少妇| 日韩精品一区二区三区在线 | 成人一区在线看| 日本电影亚洲天堂一区| 日韩三级精品电影久久久| 欧美国产成人精品| 午夜av区久久| 国产成人夜色高潮福利影视| 在线一区二区三区四区五区| 欧美一级生活片| 国产精品另类一区| 日本大胆欧美人术艺术动态| 国产sm精品调教视频网站| 在线免费观看视频一区| 久久这里只精品最新地址| 一区二区三区四区在线免费观看| 老汉av免费一区二区三区| 一本久久综合亚洲鲁鲁五月天| 日韩一区二区精品在线观看| 亚洲欧洲日韩av| 国产综合一区二区| 欧美视频一区在线| 国产精品看片你懂得| 久久国产日韩欧美精品| 91成人免费在线视频| 欧美激情一区二区三区不卡| 免费成人性网站| 欧美情侣在线播放| 亚洲色图欧洲色图婷婷| 国产伦理精品不卡| 91精品黄色片免费大全| 亚洲欧美日韩精品久久久久| 国产麻豆视频一区二区| 在线电影一区二区三区| 亚洲精品大片www| 成人精品鲁一区一区二区| 日韩免费看的电影| 天堂午夜影视日韩欧美一区二区| 色综合天天性综合| 国产精品乱码一区二区三区软件| 国产自产2019最新不卡| 日韩一级大片在线观看| 午夜精品福利一区二区蜜股av | 91精品国产综合久久香蕉麻豆 | 中文字幕中文字幕一区二区| 国产九九视频一区二区三区| 日韩视频免费直播| 石原莉奈在线亚洲三区| 欧美性色黄大片手机版| 亚洲最大色网站| 在线免费视频一区二区| 一区二区三区免费看视频| 一本色道久久综合精品竹菊| 亚洲伦在线观看| 99久久99久久免费精品蜜臀|