Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

121 lines
2.7 KiB

// $Header: G:/SwDev/WDM/Video/bt848/rcs/Scaler.h 1.2 1998/04/29 22:43:41 tomz Exp $
#ifndef __SCALER_H
#define __SCALER_H
#include "mytypes.h"
#ifndef __COMPREG_H
#include "compreg.h"
#endif
#define HDROP HANDLE
#include "viddefs.h"
// structure contains video information
struct VideoInfoStruct
{
WORD Clkx1_HACTIVE;
WORD Clkx1_HDELAY;
WORD Min_Pixels;
WORD Active_lines_per_field;
WORD Min_UncroppedPixels;
WORD Max_Pixels;
WORD Min_Lines;
WORD Max_Lines;
WORD Max_VFilter1_Pixels;
WORD Max_VFilter2_Pixels;
WORD Max_VFilter3_Pixels;
WORD Max_VFilter1_Lines;
WORD Max_VFilter2_Lines;
WORD Max_VFilter3_Lines;
};
/////////////////////////////////////////////////////////////////
//
// for pisces, instantiate as ...
//
// Scaler evenScaler( VF_Even );
// Scaler oddScaler( VF_Odd );
//
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CLASS Scaler
//
// Description:
// This class encapsulates the register fields in the scaler portion of
// the Bt848.
// A complete set of functions are developed to manipulate all the
// register fields in the scaler registers for the Bt848.
//
// Methods:
// See below
//
// Note:
// For Bt848, instantiate as ...
// Scaler evenScaler( VF_Even );
// Scaler oddScaler( VF_Odd );
//
/////////////////////////////////////////////////////////////////////////////
class Scaler
{
public:
Scaler( VidField );
~Scaler();
void VideoFormatChanged( VideoFormat );
void TurnVFilter( State st ) { VFilterFlag_ = st; }
void Scale( MRect & );
ErrorCode SetAnalogWin( const MRect & );
void GetAnalogWin( MRect & ) const;
ErrorCode SetDigitalWin( const MRect & );
void GetDigitalWin( MRect & ) const;
protected:
#include "S_declar.h"
VideoInfoStruct * m_ptrVideoIn;
MRect AnalogWin_;
MRect DigitalWin_;
// member functions to set scaling registers
virtual void SetHActive( MRect & );
virtual void SetHDelay( void );
virtual void SetHScale( void );
virtual void SetHFilter( void );
virtual void SetVActive( void );
virtual void SetVDelay( void );
virtual void SetVScale( MRect & );
virtual void SetVFilter( void );
private:
VideoFormat m_videoFormat; // video format
// this is to battle junk lines at the top of the video
State VFilterFlag_;
WORD m_HActive; // calcuated intermediate value
WORD m_pixels; // calcuated intermediate value
WORD m_lines; // calcuated intermediate value
WORD m_VFilter; // calcuated intermediate value
};
#endif __SCALER_H