#ifndef __TUNER_H__
#define __TUNER_H__
#include "I2CPort.h"
enum tuner_type {
C_TUNER_NONE = 0x1400,
C_TUNER_FI1236 = 0x1401,
C_TUNER_FI1236J = 0x1402,
C_TUNER_FI1236MK2 = 0x1403,
C_TUNER_FI1216 = 0x1404,
C_TUNER_FI1216MK2 = 0x1405,
C_TUNER_FI1216MF = 0x1406,
C_TUNER_FI1246 = 0x1407,
C_TUNER_FI1256 = 0x1408,
C_TUNER_TEMIC_FN5AL_PAL = 0x1409,
C_TUNER_TEMIC_FN5AL_SECAM = 0x140a
};
enum tuner_picture_carrier {
C_TUNER_NTSC_PICTURE_CARRIER = 4575,
C_TUNER_PAL_PICTURE_CARRIER = 3890,
C_TUNER_SECAM_PICTURE_CARRIER = 3890
};
class CTuner {
public:
CTuner(CI2CPort & port);
~CTuner();
status_t InitCheck() const;
const char * Name() const;
tuner_type Type() const;
bool SetFrequency(float frequency, float picture);
bool SweepFrequency(float frequency, float picture);
bool HasSignal(void);
int Status();
bool IsLocked();
int ADC();
private:
void SetParameters(int divider, int control, int band);
private:
CI2CPort & fPort;
tuner_type fType;
int fAddress;
int fDivider;
};
#endif