📄 directif.h
字号:
/*+++ *******************************************************************\
*
* Copyright and Disclaimer:
*
* ---------------------------------------------------------------
* This software is provided "AS IS" without warranty of any kind,
* either expressed or implied, including but not limited to the
* implied warranties of noninfringement, merchantability and/or
* fitness for a particular purpose.
* ---------------------------------------------------------------
*
* Copyright (c) 2008 Conexant Systems, Inc.
* All rights reserved.
*
\******************************************************************* ---*/
#ifndef _DIRECTIF_H_
#define _DIRECTIF_H_
extern "C"
{
#include <wdm.h>
}
#include <windef.h>
#include <unknown.h>
#include <ks.h>
#include <ksmedia.h>
#include "device.h"
#include "SyncRegIo.h"
#include "DIF_reg.h"
//*****************************************************************************
// When setting standard, flags correct setting of PLL SRC
const DWORD DIF_USE_BASEBAND = 0xFFFFFFFF;
// Callback commands for DIF
typedef enum{
CALCULATE_AVERAGE_SNR = 0,
FREEZE_DIF_AGC_FOR_MAXIMUM_SENSTIVITY = 1,
FREEZE_DIF_AGC_FOR_NORMAL_SENSTIVITY = 2,
SET_DIF_IF_AGC_STATE = 3,
SET_DIF_RF_AGC_STATE = 4,
DISABLE_DIF_AGC = 5,
ENABLE_DIF_AGC = 6,
RESET_DIF_AGC = 7,
GET_AGC_ALGORITHM_ENABLE_STATE = 8
}GEN_SI_TUNER_CALLBACK_COMMANDS;
// Classes
class DirectIF
{
public:
DirectIF(DEVICE_OBJECT* p_do, Device *p_device, SyncRegIo* p_registers,BOOL enableAGCalgorithm);
~DirectIF();
static void static_setDIFbandpass(void *p_DIF,DWORD if_freq, BOOL spectral_invert, ULONG mode);
static void static_Gen_Si_Tuner_Callback(void *p_Colibri, DWORD COMMAND, void* CALLBACK_CONTEXT);
VOID powerUp();
VOID powerDown();
VOID setStandard(DWORD standard);
VOID setStandard(DWORD standard, ULONG mode);
VOID initialize();
VOID correctSignalOffset();
VOID setDIFbandpass(DWORD if_freq, BOOL spectral_invert, ULONG mode);
VOID preChannelChange();
VOID postChannelChange();
VOID CalculateAverageSNR(ULONG* p_snr);
VOID FreezeAgcForMaxSenstivity();
VOID FreezeAgcForNormalSenstivity();
VOID setIFAgcState(ULONG* p_agc_state);
VOID setRFAgcState(ULONG* p_agc_state);
VOID DisableAgc();
VOID EnableAgc();
VOID ResetAgc();
VOID GetAgcAlgorithmEnableState(BOOL *p_enabled);
VOID ResetAGCafterChannelChange();
DWORD getStandard(){return _standard;}
VOID ConfigureC2HHforLowIF(ULONG mode);
private:
Device* _p_device;
SyncRegIo* _p_registers;
DWORD _standard;
ULONG _mode;
BOOL _enableAGCalgorithm;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -