Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

105 lines
4.0 KiB

//==========================================================================;
//
// WDMTuner.H
// WDM Tuner MiniDriver.
// CWDMTuner Class definition.
// Copyright (c) 1996 - 1997 ATI Technologies Inc. All Rights Reserved.
//
//==========================================================================;
#ifndef _WDMTUNER_H_
#define _WDMTUNER_H_
#include "i2script.h"
#include "aticonfg.h"
#include "pinmedia.h"
#define KSPROPERTIES_TUNER_LAST ( KSPROPERTY_TUNER_STATUS + 1)
typedef struct // this structure is derived from MS KSPROPERTY_TUNER_CAPS_S
{
ULONG ulStandardsSupported; // KS_AnalogVideo_*
ULONG ulMinFrequency; // Hz
ULONG ulMaxFrequency; // Hz
ULONG ulTuningGranularity; // Hz
ULONG ulNumberOfInputs; // count of inputs
ULONG ulSettlingTime; // milliSeconds
ULONG ulStrategy; // KS_TUNER_STRATEGY
} ATI_KSPROPERTY_TUNER_CAPS, * PATI_KSPROPERTY_TUNER_CAPS;
class CATIWDMTuner
{
public:
CATIWDMTuner ( PPORT_CONFIGURATION_INFORMATION pConfigInfo, CI2CScript * pCScript, PUINT puiErrorCode);
~CATIWDMTuner ();
PVOID operator new ( size_t stSize, PVOID pAllocation);
// Attributes
private:
// pending device Srb
PHW_STREAM_REQUEST_BLOCK m_pPendingDeviceSrb;
// WDM global topology headers
GUID m_wdmTunerTopologyCategory;
KSTOPOLOGY m_wdmTunerTopology;
// WDM global property headers
PKSPIN_MEDIUM m_pTVTunerPinsMediumInfo;
PBOOL m_pTVTunerPinsDirectionInfo;
KSPROPERTY_ITEM m_wdmTunerProperties[KSPROPERTIES_TUNER_LAST];
KSPROPERTY_SET m_wdmTunerPropertySet;
// WDM global stream headers
HW_STREAM_HEADER m_wdmTunerStreamHeader;
// WDM adapter properties
// configuration properties
CATIHwConfiguration m_CATIConfiguration;
ULONG m_ulNumberOfStandards;
ATI_KSPROPERTY_TUNER_CAPS m_wdmTunerCaps;
ULONG m_ulVideoStandard;
ULONG m_ulTuningFrequency;
ULONG m_ulSupportedModes;
ULONG m_ulTunerMode;
ULONG m_ulNumberOfPins;
ULONG m_ulTunerInput;
DEVICE_POWER_STATE m_ulPowerState;
// configuration properties
UINT m_uiTunerId;
ULONG m_ulIntermediateFrequency;
UCHAR m_uchTunerI2CAddress;
// I2C client properties
CI2CScript * m_pI2CScript;
// Implementation
public:
BOOL AdapterUnInitialize ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterGetStreamInfo ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterQueryUnload ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterGetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
BOOL AdapterSetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
NTSTATUS AdapterSetPowerState ( PHW_STREAM_REQUEST_BLOCK pSrb);
NTSTATUS AdapterCompleteInitialization ( PHW_STREAM_REQUEST_BLOCK pSrb);
private:
BOOL SetTunerWDMCapabilities ( UINT uiTunerId);
void SetWDMTunerKSProperties ( void);
void SetWDMTunerKSTopology ( void);
BOOL SetTunerVideoStandard ( ULONG ulStandard);
BOOL SetTunerInput ( ULONG nInput);
BOOL SetTunerFrequency ( ULONG ulFrequency);
BOOL SetTunerMode ( ULONG ulModeToSet);
BOOL GetTunerPLLOffsetBusyStatus ( PLONG plPLLOffset, PBOOL pbBusyStatus);
USHORT GetTunerControlCode ( ULONG ulFrequencyDivider);
};
#endif // _WDMTUNER_H_