327 lines
9.6 KiB
C
327 lines
9.6 KiB
C
#ifndef _ASM_JULIETTE_H
|
|
#define _ASM_JULIETTE_H
|
|
|
|
/* juliette _IOC_TYPE, bits 8 to 15 in ioctl cmd */
|
|
|
|
#define JULIOCTYPE 42
|
|
|
|
/* supported ioctl _IOC_NR's */
|
|
|
|
#define JULSTARTDMA 0x1 /* start a picture asynchronously */
|
|
|
|
/* set parameters */
|
|
|
|
#define SETDEFAULT 0x2 /* CCD/VIDEO/SS1M */
|
|
#define SETPARAMETERS 0x3 /* CCD/VIDEO */
|
|
#define SETSIZE 0x4 /* CCD/VIDEO/SS1M */
|
|
#define SETCOMPRESSION 0x5 /* CCD/VIDEO/SS1M */
|
|
#define SETCOLORLEVEL 0x6 /* CCD/VIDEO */
|
|
#define SETBRIGHTNESS 0x7 /* CCD */
|
|
#define SETROTATION 0x8 /* CCD */
|
|
#define SETTEXT 0x9 /* CCD/VIDEO/SS1M */
|
|
#define SETCLOCK 0xa /* CCD/VIDEO/SS1M */
|
|
#define SETDATE 0xb /* CCD/VIDEO/SS1M */
|
|
#define SETTIMEFORMAT 0xc /* CCD/VIDEO/SS1M */
|
|
#define SETDATEFORMAT 0xd /* VIDEO */
|
|
#define SETTEXTALIGNMENT 0xe /* VIDEO */
|
|
#define SETFPS 0xf /* CCD/VIDEO/SS1M */
|
|
#define SETVGA 0xff /* VIDEO */
|
|
#define SETCOMMENT 0xfe /* CCD/VIDEO */
|
|
|
|
/* get parameters */
|
|
|
|
#define GETDRIVERTYPE 0x10 /* CCD/VIDEO/SS1M */
|
|
#define GETNBROFCAMERAS 0x11 /* CCD/VIDEO/SS1M */
|
|
#define GETPARAMETERS 0x12 /* CCD/VIDEO/SS1M */
|
|
#define GETBUFFERSIZE 0x13 /* CCD/VIDEO/SS1M */
|
|
#define GETVIDEOTYPE 0x14 /* VIDEO/SS1M */
|
|
#define GETVIDEOSIGNAL 0x15 /* VIDEO */
|
|
#define GETMODULATION 0x16 /* VIDEO */
|
|
#define GETDCYVALUES 0xa0 /* CCD /SS1M */
|
|
#define GETDCYWIDTH 0xa1 /* CCD /SS1M */
|
|
#define GETDCYHEIGHT 0xa2 /* CCD /SS1M */
|
|
#define GETSIZE 0xa3 /* CCD/VIDEO */
|
|
#define GETCOMPRESSION 0xa4 /* CCD/VIDEO */
|
|
|
|
/* detect and get parameters */
|
|
|
|
#define DETECTMODULATION 0x17 /* VIDEO */
|
|
#define DETECTVIDEOTYPE 0x18 /* VIDEO */
|
|
#define DETECTVIDEOSIGNAL 0x19 /* VIDEO */
|
|
|
|
/* configure default parameters */
|
|
|
|
#define CONFIGUREDEFAULT 0x20 /* CCD/VIDEO/SS1M */
|
|
#define DEFSIZE 0x21 /* CCD/VIDEO/SS1M */
|
|
#define DEFCOMPRESSION 0x22 /* CCD/VIDEO/SS1M */
|
|
#define DEFCOLORLEVEL 0x23 /* CCD/VIDEO */
|
|
#define DEFBRIGHTNESS 0x24 /* CCD */
|
|
#define DEFROTATION 0x25 /* CCD */
|
|
#define DEFWHITEBALANCE 0x26 /* CCD */
|
|
#define DEFEXPOSURE 0x27 /* CCD */
|
|
#define DEFAUTOEXPWINDOW 0x28 /* CCD */
|
|
#define DEFTEXT 0x29 /* CCD/VIDEO/SS1M */
|
|
#define DEFCLOCK 0x2a /* CCD/VIDEO/SS1M */
|
|
#define DEFDATE 0x2b /* CCD/VIDEO/SS1M */
|
|
#define DEFTIMEFORMAT 0x2c /* CCD/VIDEO/SS1M */
|
|
#define DEFDATEFORMAT 0x2d /* VIDEO */
|
|
#define DEFTEXTALIGNMENT 0x2e /* VIDEO */
|
|
#define DEFFPS 0x2f /* CCD/VIDEO/SS1M */
|
|
#define DEFTEXTSTRING 0x30 /* CCD/VIDEO/SS1M */
|
|
#define DEFHEADERINFO 0x31 /* CCD/VIDEO/SS1M */
|
|
#define DEFWEXAR 0x32 /* CCD */
|
|
#define DEFLINEDELAY 0x33 /* CCD */
|
|
#define DEFDISABLEDVIDEO 0x34 /* VIDEO */
|
|
#define DEFVIDEOTYPE 0x35 /* VIDEO */
|
|
#define DEFMODULATION 0x36 /* VIDEO */
|
|
#define DEFXOFFSET 0x37 /* VIDEO */
|
|
#define DEFYOFFSET 0x38 /* VIDEO */
|
|
#define DEFYCMODE 0x39 /* VIDEO */
|
|
#define DEFVCRMODE 0x3a /* VIDEO */
|
|
#define DEFSTOREDCYVALUES 0x3b /* CCD/VIDEO/SS1M */
|
|
#define DEFWCDS 0x3c /* CCD */
|
|
#define DEFVGA 0x3d /* VIDEO */
|
|
#define DEFCOMMENT 0x3e /* CCD/VIDEO */
|
|
#define DEFCOMMENTSIZE 0x3f /* CCD/VIDEO */
|
|
#define DEFCOMMENTTEXT 0x50 /* CCD/VIDEO */
|
|
#define DEFSTOREDCYTEXT 0x51 /* VIDEO */
|
|
|
|
|
|
#define JULABORTDMA 0x70 /* Abort current DMA transfer */
|
|
|
|
/* juliette general i/o port */
|
|
|
|
#define JIO_READBITS 0x40 /* read and return current port bits */
|
|
#define JIO_SETBITS 0x41 /* set bits marked by 1 in the argument */
|
|
#define JIO_CLRBITS 0x42 /* clr bits marked by 1 in the argument */
|
|
#define JIO_READDIR 0x43 /* read direction, 0=input 1=output */
|
|
#define JIO_SETINPUT 0x44 /* set direction, 0=unchanged 1=input
|
|
returns current dir */
|
|
#define JIO_SETOUTPUT 0x45 /* set direction, 0=unchanged 1=output
|
|
returns current dir */
|
|
|
|
/**** YumYum internal adresses ****/
|
|
|
|
/* Juliette buffer addresses */
|
|
|
|
#define BUFFER1_VIDEO 0x1100
|
|
#define BUFFER2_VIDEO 0x2800
|
|
#define ACDC_BUFF_VIDEO 0x0aaa
|
|
#define BUFFER1 0x1700
|
|
#define BUFFER2 0x2b01
|
|
#define ACDC_BUFFER 0x1200
|
|
#define BUFFER1_SS1M 0x1100
|
|
#define BUFFER2_SS1M 0x2800
|
|
#define ACDC_BUFF_SS1M 0x0900
|
|
|
|
/* Juliette parameter memory addresses */
|
|
|
|
#define PA_BUFFER_CNT 0x3f09 /* CCD/VIDEO */
|
|
#define PA_CCD_BUFFER 0x3f10 /* CCD */
|
|
#define PA_VIDEO_BUFFER 0x3f10 /* VIDEO */
|
|
#define PA_DCT_BUFFER 0x3f11 /* CCD/VIDEO */
|
|
#define PA_TEMP 0x3f12 /* CCD/VIDEO */
|
|
#define PA_VIDEOLINE_RD 0x3f13 /* VIDEO */
|
|
#define PA_VIDEOLINE_WR 0x3f14 /* VIDEO */
|
|
#define PA_VI_HDELAY0 0x3f15 /* VIDEO */
|
|
#define PA_VI_VDELAY0 0x3f16 /* VIDEO */
|
|
#define PA_VI_HDELAY1 0x3f17 /* VIDEO */
|
|
#define PA_VI_VDELAY1 0x3f18 /* VIDEO */
|
|
#define PA_VI_HDELAY2 0x3f19 /* VIDEO */
|
|
#define PA_VI_VDELAY2 0x3f1a /* VIDEO */
|
|
#define PA_VI_HDELAY3 0x3f1b /* VIDEO */
|
|
#define PA_VI_VDELAY3 0x3f1c /* VIDEO */
|
|
#define PA_VI_CTRL 0x3f20 /* VIDEO */
|
|
#define PA_JPEG_CTRL 0x3f22 /* CCD/VIDEO */
|
|
#define PA_BUFFER_SIZE 0x3f24 /* CCD/VIDEO */
|
|
#define PA_PAL_NTSC 0x3f25 /* VIDEO */
|
|
#define PA_MACROBLOCKS 0x3f26 /* CCD/VIDEO */
|
|
#define PA_COLOR 0x3f27 /* VIDEO */
|
|
#define PA_MEMCH1CNT2 0x3f28 /* CCD/VIDEO */
|
|
#define PA_MEMCH1CNT3 0x3f29 /* VIDEO */
|
|
#define PA_MEMCH1STR2 0x3f2a /* CCD/VIDEO */
|
|
#define PA_MEMCH1STR3 0x3f2b /* VIDEO */
|
|
#define PA_BUFFERS 0x3f2c /* CCD/VIDEO */
|
|
#define PA_PROGRAM 0x3f2d /* CCD/VIDEO */
|
|
#define PA_ROTATION 0x3f2e /* CCD */
|
|
#define PA_PC 0x3f30 /* CCD/VIDEO */
|
|
#define PA_PC2 0x3f31 /* VIDEO */
|
|
#define PA_ODD_LINE 0x3f32 /* VIDEO */
|
|
#define PA_EXP_DELAY 0x3f34 /* CCD */
|
|
#define PA_MACROBLOCK_CNT 0x3f35 /* CCD/VIDEO */
|
|
#define PA_DRAM_PTR1_L 0x3f36 /* CCD/VIDEO */
|
|
#define PA_CLPOB_CNT 0x3f37 /* CCD */
|
|
#define PA_DRAM_PTR1_H 0x3f38 /* CCD/VIDEO */
|
|
#define PA_DRAM_PTR2_L 0x3f3a /* VIDEO */
|
|
#define PA_DRAM_PTR2_H 0x3f3c /* VIDEO */
|
|
#define PA_CCD_LINE_CNT 0x3f3f /* CCD */
|
|
#define PA_VIDEO_LINE_CNT 0x3f3f /* VIDEO */
|
|
#define PA_TEXT 0x3f41 /* CCD/VIDEO */
|
|
#define PA_CAMERA_CHANGED 0x3f42 /* VIDEO */
|
|
#define PA_TEXTALIGNMENT 0x3f43 /* VIDEO */
|
|
#define PA_DISABLED 0x3f44 /* VIDEO */
|
|
#define PA_MACROBLOCKTEXT 0x3f45 /* VIDEO */
|
|
#define PA_VGA 0x3f46 /* VIDEO */
|
|
#define PA_ZERO 0x3ffe /* VIDEO */
|
|
#define PA_NULL 0x3fff /* CCD/VIDEO */
|
|
|
|
typedef enum {
|
|
jpeg = 0,
|
|
dummy = 1
|
|
} request_type;
|
|
|
|
typedef enum {
|
|
hugesize = 0,
|
|
fullsize = 1,
|
|
halfsize = 2,
|
|
fieldsize = 3
|
|
} size_type;
|
|
|
|
typedef enum {
|
|
min = 0,
|
|
low = 1,
|
|
medium = 2,
|
|
high = 3,
|
|
very_high = 4,
|
|
very_low = 5,
|
|
q1 = 6,
|
|
q2 = 7,
|
|
q3 = 8,
|
|
q4 = 9,
|
|
q5 = 10,
|
|
q6 = 11
|
|
} compr_type;
|
|
|
|
typedef enum {
|
|
deg_0 = 0,
|
|
deg_180 = 1,
|
|
deg_90 = 2,
|
|
deg_270 = 3
|
|
} rotation_type;
|
|
|
|
typedef enum {
|
|
auto_white = 0,
|
|
hold = 1,
|
|
fixed_outdoor = 2,
|
|
fixed_indoor = 3,
|
|
fixed_fluor = 4
|
|
} white_balance_type;
|
|
|
|
typedef enum {
|
|
auto_exp = 0,
|
|
fixed_exp = 1
|
|
} exposure_type;
|
|
|
|
typedef enum {
|
|
no_window = 0,
|
|
center = 1,
|
|
top = 2,
|
|
lower = 3,
|
|
left = 4,
|
|
right = 5,
|
|
spot = 6,
|
|
cw = 7
|
|
} exp_window_type;
|
|
|
|
typedef enum {
|
|
h_24 = 0,
|
|
h_12 = 1,
|
|
h_24P = 2
|
|
} hour_type;
|
|
|
|
typedef enum {
|
|
standard = 0,
|
|
YYYY_MM_DD = 1,
|
|
Www_Mmm_DD_YYYY = 2,
|
|
Www_DD_MM_YYYY = 3
|
|
} date_type;
|
|
|
|
typedef enum {
|
|
left_align = 0,
|
|
center_align = 1,
|
|
right_align = 2
|
|
} alignment_type;
|
|
|
|
typedef enum {
|
|
off = 0,
|
|
on = 1,
|
|
no = 0,
|
|
yes = 1
|
|
} enable_type;
|
|
|
|
typedef enum {
|
|
disabled = 0,
|
|
enabled = 1,
|
|
extended = 2
|
|
} comment_type;
|
|
|
|
typedef enum {
|
|
pal = 0,
|
|
ntsc = 1
|
|
} video_type;
|
|
|
|
typedef enum {
|
|
pal_bghi_ntsc_m = 0,
|
|
ntsc_4_43_50hz_pal_4_43_60hz = 1,
|
|
pal_n_ntsc_4_43_60hz = 2,
|
|
ntsc_n_pal_m = 3,
|
|
secam_pal_4_43_60hz = 4
|
|
} modulation_type;
|
|
|
|
typedef enum {
|
|
cam0 = 0,
|
|
cam1 = 1,
|
|
cam2 = 2,
|
|
cam3 = 3,
|
|
quad = 32
|
|
} camera_type;
|
|
|
|
typedef enum {
|
|
video_driver = 0,
|
|
ccd_driver = 1
|
|
} driver_type;
|
|
|
|
struct jul_param {
|
|
request_type req_type;
|
|
size_type size;
|
|
compr_type compression;
|
|
rotation_type rotation;
|
|
int color_level;
|
|
int brightness;
|
|
white_balance_type white_balance;
|
|
exposure_type exposure;
|
|
exp_window_type auto_exp_window;
|
|
hour_type time_format;
|
|
date_type date_format;
|
|
alignment_type text_alignment;
|
|
enable_type text;
|
|
enable_type clock;
|
|
enable_type date;
|
|
enable_type fps;
|
|
enable_type vga;
|
|
enable_type comment;
|
|
};
|
|
|
|
struct video_param {
|
|
enable_type disabled;
|
|
modulation_type modulation;
|
|
video_type video;
|
|
enable_type signal;
|
|
enable_type vcr;
|
|
int xoffset;
|
|
int yoffset;
|
|
};
|
|
|
|
/* The juliette_request structure is used during the JULSTARTDMA asynchronous
|
|
* picture-taking ioctl call as an argument to specify a buffer which will get
|
|
* the final picture.
|
|
*/
|
|
|
|
struct juliette_request {
|
|
char *buf; /* Pointer to the buffer to hold picture data */
|
|
unsigned int buflen; /* Length of the above buffer */
|
|
unsigned int size; /* Resulting length, 0 if the picture is not ready */
|
|
};
|
|
|
|
#endif
|