⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aticonfg.h

📁 winddk src目录下的WDM源码压缩!
💻 H
字号:
//==========================================================================;
//
//  ATIConfg.H
//      CATIHwConfiguration Class definition.
//  Copyright (c) 1996 - 1998  ATI Technologies Inc.  All Rights Reserved.
//
//      $Date:   16 Nov 1998 13:40:34  $
//  $Revision:   1.9  $
//    $Author:   minyailo  $
//
//==========================================================================;

#ifndef _ATICONFG_H_

#define _ATICONFG_H_


#include "i2script.h"
#include "tda9850.h"
#include "tda9851.h"
#include "atibios.h"
// this file is included for compatability with MiniVDD checked in for Beta3 of Windows98
#include "registry.h"
#include "mmconfig.h"   //Paul


class CATIHwConfiguration
{
public:
    // constructor
    CATIHwConfiguration     ( PPORT_CONFIGURATION_INFORMATION pConfigInfo, CI2CScript * pCScript, PUINT puiError);
    PVOID operator new      ( size_t size, PVOID pAllocation);

// Attributes   
private:
    // tuner's configuration properties
    USHORT          m_usTunerId;
    UCHAR           m_uchTunerAddress;
    USHORT          m_usTunerPowerConfiguration;
    // decoder's configuration properties
    USHORT          m_usDecoderId;
    UCHAR           m_uchDecoderAddress;
    USHORT          m_usDecoderConfiguration;
    // audio's configuration properties
    UCHAR           m_uchAudioAddress;
    UINT            m_uiAudioConfiguration;
    // hardware configuration
    UCHAR           m_uchI2CExpanderAddress;
    USHORT          m_usE2PROMValidation;
    // GPIO Provider related
    GPIOINTERFACE   m_gpioProviderInterface;
    PDEVICE_OBJECT  m_pdoDriver;
    DWORD           m_dwGPIOAccessKey;
    // Paul:  Decide video in standards supported by crystal by looking at MMTable or I2C expander crystal information
    ULONG           m_VideoInStandardsSupported;
    UCHAR           m_CrystalIDInMMTable;           

// Implementation
public:
    BOOL            GetTunerConfiguration       ( PUINT puiTunerId, PUCHAR puchTunerAddress);
    BOOL            GetDecoderConfiguration     ( PUINT puiDecoderId, PUCHAR puchDecoderAddress);
    BOOL            GetAudioConfiguration       ( PUINT puiAudioId, PUCHAR puchAudioAddress);
    UINT            GetDecoderOutputEnableLevel ( void);

    void            EnableDecoderI2CAccess      ( CI2CScript * pCScript, BOOL bEnable);
    BOOL            GetAudioProperties          ( PULONG puiNumberOfInputs, PULONG puiNumberOfOutputs);
    BOOL            InitializeAudioConfiguration( CI2CScript * pCScript, UINT uiAudioConfigurationId, UCHAR uchAudioChipAddress);

    BOOL            CanConnectAudioSource       ( int nAudioSource);
    BOOL            ConnectAudioSource          ( CI2CScript * pCScript, int nAudioSource);
    BOOL            GetTVAudioSignalProperties  ( CI2CScript * pCScript, PBOOL pbStereo, PBOOL pbSAP);

    BOOL            SetTunerPowerState          ( CI2CScript * pCScript,
                                                  BOOL bPowerState);
    ULONG           GetVideoInStandardsSupportedByCrystal( )
        { return m_VideoInStandardsSupported; }                 //Paul
    ULONG           GetVideoInStandardsSupportedByTuner( )
        { return ReturnTunerVideoStandard( m_usTunerId ); }
    BOOL            GetMMTableCrystalID( PUCHAR pucCrystalID );

private:
    BOOL            FindI2CExpanderAddress      ( CI2CScript * pCScript);
    BOOL            FindHardwareProperties      ( PDEVICE_OBJECT pDeviceObject, CI2CScript * pCScript);

    BOOL            GetI2CExpanderConfiguration ( CI2CScript * pCScript, PUCHAR puchI2CValue);
    BOOL            SetDefaultVolumeControl     ( CI2CScript * pCScript);

    BOOL            ValidateConfigurationE2PROM ( CI2CScript * pCScript);
    BOOL            ReadConfigurationE2PROM     ( CI2CScript * pCScript, ULONG nOffset, PUCHAR puchValue);

    BOOL            InitializeAttachGPIOProvider( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject);
    BOOL            LocateAttachGPIOProvider    ( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject, UCHAR nIrpMajorFunction);

    BOOL            LockGPIOProviderEx          ( PGPIOControl pgpioAccessBlock);
    BOOL            ReleaseGPIOProvider         ( PGPIOControl pgpioAccessBlock);
    BOOL            AccessGPIOProvider          ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
    ULONG           ReturnTunerVideoStandard    ( USHORT usTunerId );   //Paul:  For PAL support
    ULONG           SetVidStdBasedOnI2CExpander ( UCHAR ucI2CValue );   //Paul
    ULONG           SetVidStdBasedOnMMTable     ( CATIMultimediaTable * pCMultimediaInfo );    //Paul
};


#define ATIHARDWARE_TUNER_WAKEUP_DELAY      -100000     // 10 msec in 100 nsec units

typedef enum
{
    VIDEODECODER_TYPE_NOTINSTALLED = 0,
    VIDEODECODER_TYPE_BT819,
    VIDEODECODER_TYPE_BT829,
    VIDEODECODER_TYPE_BT829A,
    VIDEODECODER_TYPE_PH7111,
    VIDEODECODER_TYPE_PH7112,
    VIDEODECODER_TYPE_RTHEATER  //  RTheater

} ATI_VIDEODECODER_TYPE;

enum
{
    AUDIOSOURCE_MUTE = 0,
    AUDIOSOURCE_TVAUDIO,
    AUDIOSOURCE_LINEIN,
    AUDIOSOURCE_FMAUDIO,
    AUDIOSOURCE_LASTSUPPORTED

};
//****************************************************************************
//  Decoder Configurations          Dec. Type               Dec. Enable Method
//****************************************************************************
typedef enum
{
    ATI_VIDEODECODER_CONFIG_UNDEFINED = 0,
    ATI_VIDEODECODER_CONFIG_1,      //  BT829 on ATI TV or AIW  IO Exp Bit 7
    ATI_VIDEODECODER_CONFIG_2,      //  BT829A and above        BT Reg 0x16, OE=1
    ATI_VIDEODECODER_CONFIG_3,      //  BT829                   CPU GPIO 0x7c
    ATI_VIDEODECODER_CONFIG_4,      //  BT829                   CPU GPIO 0x78

} ATI_DECODER_CONFIGURATION;

//****************************************************************************
//  Audio Configurations        SAP     STEREO          VOLUME      MUX
//****************************************************************************
enum
{
    ATI_AUDIO_CONFIG_1 = 1, //  No      IO Exp b6=0     No          IO Exp
                            //                                        b6:b4
                            //                                      M x:0
                            //                                      T 0:1
                            //                                      L 1:1
                            //                                      F n/a
//****************************************************************************
    ATI_AUDIO_CONFIG_2,     //  TDA9850 TDA9850         Yes         EXT_DAC_REGS
                            //                                        b6:b4
                            //                                      M 1:0
                            //                                      T 0:1
                            //                                      L 0:0
                            //                                      F 1:1
//****************************************************************************
    ATI_AUDIO_CONFIG_3,     //  No      No              No          IO Exp
                            //                                        b6
                            //                                      M n/a
                            //                                      T 0
                            //                                      L 1
                            //                                      F n/a
//****************************************************************************
    ATI_AUDIO_CONFIG_4,     //  No      No              Yes         TDA8425
//****************************************************************************
    ATI_AUDIO_CONFIG_5,     //  No      TEA5582         No          IO Exp
                            //                                        b6:b4
                            //                                      M 1:1
                            //                                      T 0:0
                            //                                      L 1:0
                            //                                      F 0:1
//****************************************************************************
    ATI_AUDIO_CONFIG_6,     //  No      BT829           Automatic   BT829 GPIO
                            //          GPIO4           Volume        0:1
                            //          and             Control     M 0:1
                            //          TDA9851                     T 1:0
                            //          for TV                      L 0:0
                            //                                      F 1:1
//****************************************************************************
    ATI_AUDIO_CONFIG_7,     //  TDA9850 TDA9850         Yes         BT829 GPIO
                            //                                      AS0:1
                            //                                      M 0:1
                            //                                      T 1:0
                            //                                      L 0:0
                            //                                      F 1:1
//****************************************************************************
    ATI_AUDIO_CONFIG_8      //  MSP3430 MSP3430         Yes         MSP3430
//****************************************************************************

};


//****************************************************************************
//  Tuner Power Mode Configurations     Supported   Control
//****************************************************************************
enum
{
    ATI_TUNER_POWER_CONFIG_0 = 0,   //  No
//****************************************************************************
    ATI_TUNER_POWER_CONFIG_1,       //  Yes         EXT_DAC_REGS
                                    //                  b4
                                    //              ON  0
                                    //              OFF 1
//****************************************************************************
    ATI_TUNER_POWER_CONFIG_2        //  Yes         BT829 GPIO
                                    //                  3
                                    //              ON  0
                                    //              OFF 1
//****************************************************************************
};


enum 
{
    OEM_ID_ATI = 0,
    OEM_ID_INTEL,
    OEM_ID_APRICOT,
    OEM_ID_COMPAQ,
    OEM_ID_SAMSUNG,
    OEM_ID_BCM,
    OEM_ID_QUANTA,
    OEM_ID_SAMREX,
    OEM_ID_FUJITSU,
    OEM_ID_NEC,

};

enum 
{
    REVISION0 = 0,
    REVISION1,
    REVISION2,
    REVISION3,
    REVISION4,
};

enum 
{
    ATI_PRODUCT_TYPE_AIW = 1,
    ATI_PRODUCT_TYPE_AIW_PRO_NODVD,             // 2
    ATI_PRODUCT_TYPE_AIW_PRO_DVD,               // 3
    ATI_PRODUCT_TYPE_AIW_PLUS,                  // 4
    ATI_PRODUCT_TYPE_AIW_PRO_R128_KITCHENER,    // 5
    ATI_PRODUCT_TYPE_AIW_PRO_R128_TORONTO       // 6

};

#define INTEL_ANCHORAGE                         1

#define AIWPRO_CONFIGURATIONE2PROM_ADDRESS      0xA8
#define AIWPRO_CONFIGURATIONE2PROM_LENGTH       128         // 0x80

#endif  // _ATICONFG_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -