b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef __BT829_H__
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define __BT829_H__
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "xf86i2c.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int tunertype; /* Must be set before init */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /* Private variables */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync I2CDevRec d;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 brightness;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 ccmode;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 code;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 contrast;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 format;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int height;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 hue;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 len;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 mux;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 out_en;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 p_io;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 sat_u;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 sat_v;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 vbien;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 vbifmt;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int width;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 hdelay;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 hscale;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 vactive;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 vdelay;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 vscale;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 htotal;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 id;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 svideo_mux;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} BT829Rec, *BT829Ptr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncBT829Ptr bt829_Detect(I2CBusPtr b, I2CSlaveAddr addr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* ATI card specific initialization */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_ATI_ADDR_1 0x8A
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_ATI_ADDR_2 0x88
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint bt829_ATIInit(BT829Ptr bt);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_NTSC 1 /* NTSC-M */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_NTSC_JAPAN 2 /* NTSC-Japan */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_PAL 3 /* PAL-B,D,G,H,I */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_PAL_M 4 /* PAL-M */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_PAL_N 5 /* PAL-N */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_SECAM 6 /* SECAM */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_PAL_N_COMB 7 /* PAL-N combination */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint bt829_SetFormat(BT829Ptr bt, CARD8 format);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_MUX2 1 /* ATI -> composite video */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_MUX0 2 /* ATI -> tv tuner */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829_MUX1 3 /* ATI -> s-video */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint bt829_SetMux(BT829Ptr bt, CARD8 mux);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint bt829_SetCaptSize(BT829Ptr bt, int width, int height);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetBrightness(BT829Ptr bt, int brightness);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetContrast(BT829Ptr bt, int contrast);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetSaturation(BT829Ptr bt, int saturation);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetTint(BT829Ptr bt, int hue); /* Hue */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetOUT_EN(BT829Ptr bt, BOOL out_en); /* VPOLE register */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncvoid bt829_SetP_IO(BT829Ptr bt, CARD8 p_io); /* P_IO register */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncint bt829_SetCC(BT829Ptr bt);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BT829SymbolsList \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_Detect", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_ATIInit", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetFormat", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetMux", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetBrightness", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetContrast", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetSaturation", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetTint", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetCaptSize", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetOUT_EN", \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "bt829_SetP_IO"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef XFree86LOADER
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_Detect ((BT829Ptr (*)(I2CBusPtr, I2CSlaveAddr))LoaderSymbol("bt829_Detect"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_ATIInit ((int (*)(BT829Ptr))LoaderSymbol("bt829_ATIInit"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetFormat ((int (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetFormat"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetMux ((int (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetMux"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetCaptSize ((int (*)(BT829Ptr, int, int))LoaderSymbol("bt829_SetCaptSize"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetBrightness ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetBrightness"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetContrast ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetContrast"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetSaturation ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetSaturation"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetTint ((void (*)(BT829Ptr, int))LoaderSymbol("bt829_SetTint"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetOUT_EN ((void (*)(BT829Ptr, Bool))LoaderSymbol("bt829_SetOUT_EN"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetP_IO ((void (*)(BT829Ptr, CARD8))LoaderSymbol("bt829_SetP_IO"))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_Detect bt829_Detect
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_ATIInit bt829_ATIInit
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetFormat bt829_SetFormat
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetMux bt829_SetMux
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetCaptSize bt829_SetCaptSize
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetBrightness bt829_SetBrightness
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetContrast bt829_SetContrast
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetSaturation bt829_SetSaturation
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetTint bt829_SetTint
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetOUT_EN bt829_SetOUT_EN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define xf86_bt829_SetP_IO bt829_SetP_IO
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif