📄 coverlaycontroller.h
字号:
//
// COverlayController.h
//
#ifndef __H_COverlayController__
#define __H_COverlayController__
#include "CBasePixel.h"
#include "OverlayDefs.h"
class COverlayController
{
protected:
CBasePixel * mPixelConverter;
BOOL mCanDoOverlay; // Title overlay workable flag
BOOL mIsOverlayByCover;
long mOverlayCounter;
double mDoubleStartTime; // Actual start and end time
double mDoubleEndTime;
long mOverlayStartTime; // Using frame index
long mOverlayEndTime;
// Title property
char * mTitle;
unsigned char * mTitleDIBBits;
unsigned char mColorRed; // Text color
unsigned char mColorGreen;
unsigned char mColorBlue;
SIZE mTitleSize;
POINT mStartPos; // Start position to draw text
LOGFONT mTitleFont;
BOOL mIsFontChanged;
long mDIBWidthInBytes;
// Input video property
RGB_FORMAT mInputColorSpace;
long mImageWidth;
long mImageHeight; // This is an absolute value
long mImageWidthInBytes; // the line width in bytes
WORD mImageBitCount;
BOOL mIsBottomUpImage;
double mInputFrameRate;
public:
COverlayController();
virtual ~COverlayController();
void SetInputColorSpace(RGB_FORMAT inColorSpace);
void SetInputVideoInfo(const VIDEOINFOHEADER * inInfoHeader);
// If VIDEOINFOHEADER not contain valid frame rate,
// using the following method to set an estimated value.
void SetEstimatedFrameRate(double inFrameRate);
void SetOverlayStyle(BOOL inUsingCover);
void GetOverlayStyle(BOOL * outUsingCover);
virtual void SetTitle(const char * inTitle, int inLength);
void SetTitleColor(BYTE inR, BYTE inG, BYTE inB);
void SetTitleStartPosition(POINT inStartPos);
void SetTitleFont(LOGFONT inFont);
void SetTitleDuration(double inStart, double inEnd);
// Get the title length by passing NULL to outBuffer
int GetTitle(char * outBuffer);
void GetTitleColor(BYTE * outR, BYTE * outG, BYTE * outB);
void GetTitleStartPosition(POINT * outStartPos);
void GetTitleFont(LOGFONT * outFont);
void GetTitleDuration(double * outStart, double * outEnd);
public:
virtual BOOL StartTitleOverlay(void);
virtual BOOL StopTitleOverlay(void);
BOOL DoTitleOverlay(PBYTE inImage);
protected:
void ReleasePixelConverter(void);
void ReleaseTitleBuffer(void);
void ReleaseTitleDIB(void);
BOOL CreateTitleDIBBits(void);
HBITMAP ActualCreateTitleDIB(HDC inDC);
virtual BOOL ValidateTitleDIBSize(void);
virtual void SideEffectProgressChanged(void);
virtual void SideEffectColorSpaceChanged(void);
virtual void SideEffectFontChanged(void);
// Subclass can use these methods to do more details
virtual BOOL BeforeActualOverlay(void);
virtual BOOL AfterActualOverlay(void);
virtual BOOL ActualOverlay(PBYTE inImage);
};
#endif // __H_COverlayController__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -