xserver-multidpi/hw/xfree86/i2c/tda8425.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

42 lines
1.0 KiB
C

#ifndef __TDA8425_H__
#define __TDA8425_H__
#include "xf86i2c.h"
typedef struct {
I2CDevRec d;
int mux;
int stereo;
int v_left;
int v_right;
int bass;
int treble;
int src_sel;
Bool mute;
} TDA8425Rec, *TDA8425Ptr;
#define TDA8425_ADDR_1 0x82
/* the third parameter is meant to force detection of tda8425.
This is because tda8425 is write-only and complete implementation
of I2C protocol is not always available. Besides address there is no good
way to autodetect it so we have to _know_ it is there anyway */
#define xf86_Detect_tda8425 Detect_tda8425
extern TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,Bool force);
#define xf86_tda8425_init tda8425_init
extern Bool tda8425_init(TDA8425Ptr t);
#define xf86_tda8425_setaudio tda8425_setaudio
extern void tda8425_setaudio(TDA8425Ptr t);
#define xf86_tda8425_mute tda8425_mute
extern void tda8425_mute(TDA8425Ptr t, Bool mute);
#define TDA8425SymbolsList \
"Detect_tda8425", \
"tda8425_init", \
"tda8425_setaudio", \
"tda8425_mute"
#endif