3gppttrenderer.h
来自「symbian 下的helix player源代码」· C头文件 代码 · 共 361 行 · 第 1/2 页
H
361 行
STDMETHOD(GetDisplayType)
(THIS_
REF(HX_DISPLAY_TYPE) displayType,
REF(IHXBuffer*) pDisplayInfo
);
STDMETHOD(OnEndofPackets) (THIS);
/************************************************************************
* IHXSiteUser Interface Methods ref: hxwin.h
*/
STDMETHOD(AttachSite) (THIS_ IHXSite* pSite);
STDMETHOD(DetachSite) (THIS);
STDMETHOD(HandleEvent) (THIS_ HXxEvent* pEvent);
STDMETHOD_(BOOL,NeedsWindowedSites) (THIS);
/************************************************************************
* IHXPlugin Interface Methods ref: hxplugn.h
*/
STDMETHOD(GetPluginInfo)
(THIS_
REF(BOOL) bLoadMultiple,
REF(const char*) pDescription,
REF(const char*) pCopyright,
REF(const char*) pMoreInfoURL,
REF(UINT32) versionNumber
);
STDMETHOD(InitPlugin) (THIS_ IUnknown* pContext);
/************************************************************************
* IUnknown COM Interface Methods ref: pncom.h
*/
STDMETHOD (QueryInterface ) (THIS_ REFIID ID, void** ppInterfaceObj);
STDMETHOD_(UINT32, AddRef ) (THIS);
STDMETHOD_(UINT32, Release) (THIS);
private:
/****** Private Class Methods ******************************************/
HX_RESULT CreateOffscreenBuffer(HXxSize& hxsize);
void SetDrawOutputBuffer();
// /This recalculates the list of text containers that need to be drawn
// as well as those that don't need to be drawn based on new time:
HX_RESULT RecomputeTextContainerDrawList(UINT32 ulCurTime);
/****** Private Class Variables ****************************************/
INT32 m_lRefCount;
IUnknown* m_pContext;
IHXStream* m_pStream;
IHXPlayer* m_pPlayer;
IHXValues* m_pHeader;
IHXPacket* m_pLatestPacket;
BOOL m_bGotAllPacketsAlready;
UINT32 m_ulTimeOfLastTimeSync; // /Most-recent time sync
UINT32 m_ulLastPacketTime;
UINT32 m_ulLastRealPacketTime;
UINT32 m_ulNumberOfClicks;
BOOL m_bIsSubscribed;
IHXHyperNavigate* m_pHyperNavigate;
IHXBackChannel* m_pBackChannel;
IHXASMStream* m_pASMStream;
HXxSize m_size;
IHXMultiInstanceSiteUserSupplier* m_pMISUS;
IHXSite* m_pMISUSSite;
IHXCommonClassFactory* m_pCommonClassFactory;
BOOL m_bInSeekMode;
BOOL m_bRTPPacketTested;
BOOL m_bUsesRTPPackets;
UINT32 m_ulDuration;
// /This is the offset from video's origin (top left point):
HXxPoint m_originTransformXY;
UINT32 m_ulNumTextSampleEntries;
IHXBuffer* m_p3GPPTextSampleEntryPackedArray;
SimpleArray m_textSampleEntries;
RuleToFlagMap* m_pRuleToFlagMap;
CHXSimpleList* m_pTextContainerList;
LISTPOSITION m_pTextContainerListFutureTimePos;
// /This keeps track of T.C.s that need to be redrawn periodically due to
// scroll motion or blinking:
CHXSimpleList* m_pTextContainerRedrawList;
INT16 m_nLastMouseMoveXPos;
INT16 m_nLastMouseMoveYPos;
HXxEvent* m_pEvent;
// /In Symbian, this is just a pointer into m_pBitMap so
// DO NOT NEW OR DELETE in Symbian!:
BYTE* m_pDrawOutputBuffer;
UINT32 m_ulDrawOutputBufferSizeInBytes;
UINT32 m_ulBitsPerPixel;
INT32 m_lXScrollOffset;
INT32 m_lYScrollOffset;
double m_dScrollFactor;
BOOL m_bDrawInNonTextScrollArea;
#if defined(HELIX_3GPPTT_USE_STATUS_BAR)
IHXStatusMessage* m_pStatusMessage;
BOOL m_bStatusMsgWillNeedErasing;
char* m_pszHLinkToDisplay;
#endif /* HELIX_3GPPTT_USE_STATUS_BAR */
#if defined(_WINDOWS) // / -----vvvvvvvvvvvvvvvvvvvvvvvvvv-----
BOOL m_bNeedToSetHyperlinkHandCursor;
HCURSOR m_hHyperlinkCursor;
HCURSOR m_hPreHyperlinkCursor;
// /These are used for TextOut()s of text to blt to vid surface:
void* m_pDeviceContextMemory; //memory DC for textWindow.
HFONT m_pFont;
HFONT m_pFontOld;
#if defined(USE_DIB_SECTION)
HBITMAP m_hBitmap;
HBITMAP m_hOldBitmap;
LPBITMAPINFO m_LPBITMAPINFO;
BITMAPINFOHEADER m_BITMAPINFOHEADER;
BOOL AllocNewLPBITMAPINFO(UINT32 ulNumBytes);
#else
#error: non-DIB-section version not implemented for Win32
#endif /* USE_DIB_SECTION */
#elif defined(_MACINTOSH)
CursHandle m_hHyperlinkCursor;
typedef enum
{
CURSOR_ARROW,
CURSOR_HYPERLINK
}
CursorShapes;
CursorShapes m_CurrentCursor;
CResourceLoader* m_pResourceLoader;
// /For offscreen drawing of text:
GWorldPtr m_pOffScreenWorld;
#elif defined(_UNIX) && (!(defined(_BEOS)))
Cursor m_hHyperlinkCursor;
BOOL m_bHandActivated;
Display* m_pdisp;
Window m_window;
GC m_gc;
#elif defined(_SYMBIAN) // / ------------------------------------
CFbsBitmap* m_pBitMap;
CFont* m_pFont;
CFbsScreenDevice* m_pScreenDevice;
CFbsBitGc* m_pGCSite;
CFbsBitGc* m_pGCOffscreen;
#endif // /_WINDOWS -elif- _MACINTOSH -elif- (_UNIX && !_BEOS) _____^^^^^^^^^^^^^^^^^^^^^^^^^^_____
#if !defined(_USE_DIB_SECTION)
HXBitmapInfoHeader m_BitmapInfoHeader;
#endif
/****** Private Static Class Variables *********************************/
static const char* const zm_pDescription;
static const char* const zm_pCopyright;
static const char* const zm_pMoreInfoURL;
static const char* const zm_pStreamMimeTypes[];
/****** Private Class Methods ******************************************/
~C3GPPTimedTextRenderer();
PRIVATE_DESTRUCTORS_ARE_NOT_A_CRIME // Avoids GCC compiler warning
};
#endif /* ndef _3GPPTTRENDERER_H_*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?