📄 thresher.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 _THRESHER_H
#define _THRESHER_H
extern "C"
{
#include <wdm.h>
}
#include <windef.h>
#include <unknown.h>
#include <ks.h>
#include <ksmedia.h>
#include "SyncRegIo.h"
#include "IVideoDecoder.h"
#include "CxCopyProtect.h"
#include "colibri.h"
class Device;
class DirectIF;
class Thresher : public IVideoDecoder
{
public:
BOOLEAN IsVideoPresent();
Thresher(Device* p_device, DWORD video_standard, SyncRegIo* p_registers, DirectIF* p_DIF, Colibri *p_colibri);
~Thresher();
VOID setVideoInput(DWORD video_input, DWORD input_mux);
VOID setResolution(ULONG width, ULONG height);
VOID setVideoMode(VIDEO_MODE video_mode);
VOID getResolution(ULONG *width, ULONG *height) {*width=_width; *height=_height;}
VOID enableVideoOutput();
VOID disableVideoOutput();
VOID waitForLock();
VOID notifyPreChannelChange();
VOID notifyPostChannelChange();
VOID EnableACGEnAndCKillen(BOOLEAN fld_CAGCEN, BOOLEAN fld_CKILLEN);
//Video Proc Amp
BOOLEAN setBrightness(INT brightness);
BOOLEAN setContrast(INT contrast);
BOOLEAN setHue(INT hue);
BOOLEAN setSaturation(INT saturation);
BOOLEAN setSharpness(INT sharpness);
DWORD getCopyProtectStatus();
VOID videoMute();
VOID videoUnmute();
VOID videoSetGrey(BOOLEAN enableGrey);
VOID powerUp();
VOID powerDown();
DWORD initializeThresher();
//416 SliceCC support
DWORD getSlicedVbiStartCodes();
DWORD getSlicedVbiStopCodes();
DWORD caliberateDroopComp();
VOID setupHTL_CTRL();
protected:
VOID initializeRegistersAutoDetect();
VOID initializeRegisters_NTSC();
VOID initializeRegisters_PAL();
VOID initializeRegisters_SECAM();
VOID initializeRegisters_PAL_N();
VOID initializeRegisters_PAL_NC();
VOID setInputMux(DWORD input_mux);
VOID do_MODE_CTRL_overrides();
BOOLEAN GetVideoLock();
private:
SyncRegIo* _p_registers;
Colibri* _p_colibri;
DWORD _width;
DWORD _height;
BOOLEAN _enable_3d_comb;
BYTE _preserved_saturation;
BYTE _preserved_contrast;
BYTE _preserved_brightness;
BOOLEAN _video_muted;
BOOLEAN _powered_up;
};
inline DWORD Thresher::getSlicedVbiStartCodes()
{
//91 is for ancillary packet data ID's field 1,
//55 is for ancillary packet data ID's field 2
return 0x91559155;
}
inline DWORD Thresher::getSlicedVbiStopCodes()
{
//20 is SAV VBI field 1, 60 is SAV VBI field 2
//80 is SAV active video field 1, 0xC0 is SAV active video field 2
return 0x206080C0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -