109 lines
2.8 KiB
C
109 lines
2.8 KiB
C
|
/* @file gl860.h
|
||
|
* @author Olivier LORIN, tiré du pilote Syntek par Nicolas VIVIEN
|
||
|
* @date 2009-08-27
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2 of the License, or
|
||
|
* any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
#ifndef GL860_DEV_H
|
||
|
#define GL860_DEV_H
|
||
|
#include <linux/version.h>
|
||
|
|
||
|
#include "gspca.h"
|
||
|
|
||
|
#define MODULE_NAME "gspca_gl860"
|
||
|
#define DRIVER_VERSION "0.9d10"
|
||
|
|
||
|
#define ctrl_in gl860_RTx
|
||
|
#define ctrl_out gl860_RTx
|
||
|
|
||
|
#define ID_MI1320 1
|
||
|
#define ID_OV2640 2
|
||
|
#define ID_OV9655 4
|
||
|
#define ID_MI2020 8
|
||
|
#define ID_MI2020b 16
|
||
|
|
||
|
#define _MI1320_ (((struct sd *) gspca_dev)->sensor == ID_MI1320)
|
||
|
#define _MI2020_ (((struct sd *) gspca_dev)->sensor == ID_MI2020)
|
||
|
#define _MI2020b_ (((struct sd *) gspca_dev)->sensor == ID_MI2020b)
|
||
|
#define _MI2020c_ 0
|
||
|
#define _OV2640_ (((struct sd *) gspca_dev)->sensor == ID_OV2640)
|
||
|
#define _OV9655_ (((struct sd *) gspca_dev)->sensor == ID_OV9655)
|
||
|
|
||
|
#define IMAGE_640 0
|
||
|
#define IMAGE_800 1
|
||
|
#define IMAGE_1280 2
|
||
|
#define IMAGE_1600 3
|
||
|
|
||
|
struct sd_gl860 {
|
||
|
u16 backlight;
|
||
|
u16 brightness;
|
||
|
u16 sharpness;
|
||
|
u16 contrast;
|
||
|
u16 gamma;
|
||
|
u16 hue;
|
||
|
u16 saturation;
|
||
|
u16 whitebal;
|
||
|
u8 mirror;
|
||
|
u8 flip;
|
||
|
u8 AC50Hz;
|
||
|
};
|
||
|
|
||
|
/* Specific webcam descriptor */
|
||
|
struct sd {
|
||
|
struct gspca_dev gspca_dev; /* !! must be the first item */
|
||
|
|
||
|
struct sd_gl860 vcur;
|
||
|
struct sd_gl860 vold;
|
||
|
struct sd_gl860 vmax;
|
||
|
|
||
|
int (*dev_configure_alt) (struct gspca_dev *);
|
||
|
int (*dev_init_at_startup)(struct gspca_dev *);
|
||
|
int (*dev_init_pre_alt) (struct gspca_dev *);
|
||
|
void (*dev_post_unset_alt) (struct gspca_dev *);
|
||
|
int (*dev_camera_settings)(struct gspca_dev *);
|
||
|
|
||
|
u8 swapRB;
|
||
|
u8 mirrorMask;
|
||
|
u8 sensor;
|
||
|
s32 nbIm;
|
||
|
s32 nbRightUp;
|
||
|
u8 waitSet;
|
||
|
};
|
||
|
|
||
|
struct validx {
|
||
|
u16 val;
|
||
|
u16 idx;
|
||
|
};
|
||
|
|
||
|
struct idxdata {
|
||
|
u8 idx;
|
||
|
u8 data[3];
|
||
|
};
|
||
|
|
||
|
int fetch_validx(struct gspca_dev *gspca_dev, struct validx *tbl, int len);
|
||
|
int keep_on_fetching_validx(struct gspca_dev *gspca_dev, struct validx *tbl,
|
||
|
int len, int n);
|
||
|
void fetch_idxdata(struct gspca_dev *gspca_dev, struct idxdata *tbl, int len);
|
||
|
|
||
|
int gl860_RTx(struct gspca_dev *gspca_dev,
|
||
|
unsigned char pref, u32 req, u16 val, u16 index,
|
||
|
s32 len, void *pdata);
|
||
|
|
||
|
void mi1320_init_settings(struct gspca_dev *);
|
||
|
void ov2640_init_settings(struct gspca_dev *);
|
||
|
void ov9655_init_settings(struct gspca_dev *);
|
||
|
void mi2020_init_settings(struct gspca_dev *);
|
||
|
|
||
|
#endif
|