xserver/hw/xfree86/i2c/bt829.h
Paulo Cesar Pereira de Andrade 87a7fb7438 Rework code using return value of LoaderSymbol as a function pointer.
The patch removes all macros in the format
  define xf86_sym  ((type (*)(argument-list))LoaderSymbol("sym"))
creates a new macro in the format
  define xf86_sym  sym
and ensures "sym" is a "visible" symbol.
  The patch doesn't add or remove features, and is source and binary
compatible with previous shared objects (with the difference that it
requires the dlloader).
  These symbols are a special case, as, due to the fact that LoaderSymbol
was being used to reference them, they are not easily found by "automated"
tools that check for missing symbols. And now it also have the benefit
that the compiler/loader "knows what is going on".
2008-11-27 00:12:59 -02:00

99 lines
2.7 KiB
C

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