⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smlparse.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
    CSmilAAnchorElement*   makeAAnchorElement(SMILNode* pNode);
    CSmilAnchorElement*    makeAnchorElement(SMILNode* pNode);
    CSmilSeqElement*       makeSeqElement(SMILNode* pNode);
    CSmilParElement*       makeParElement(SMILNode* pNode);
    CSmilExclElement*      makeExclElement(SMILNode* pNode);
    CSmilParamElement*     makeParamElement(SMILNode* pNode);
    CSmilBodyElement*      makeBodyElement(SMILNode* pNode);
#if defined(HELIX_FEATURE_SMIL2_ANIMATION)
    CSmilAnimateElement*   makeAnimateElement(SMILNode* pNode);
    HX_RESULT              animSetupElement(CSmilAnimateElement* pAnim);
#if defined(XXXMEH_SPLINE_ANIMATION)
    HX_RESULT              checkSplineAnimation(CSmilAnimateElement* pAnim);
    HX_RESULT              makeSVGPathExplicit(CSmilAnimateElement* pAnim);
#endif
    HX_RESULT              animCountValues(const char* pszStr, REF(char*)  rpStr,
                                           REF(UINT32) rulNumValues, REF(char**) rppStr);
    HX_RESULT              animParseValue(CSmilAnimateElement* pAnim,
                                          const char*          pszVal,
                                          UINT32               i);
#endif /* #if defined(HELIX_FEATURE_SMIL2_ANIMATION) */
    SMILNode*              getSpecificAncestor(SMILNodeTag ancestor, SMILNode* pNode);
    SMILNode*              findAnyActiveDescendant(SMILNode* pNode,
                               LONG32 lCurTime, SMILNode* pButNotThisNode);
    SMILNode*              findActiveChildOfAncestorExcl(SMILNode* pNode, LONG32 lCurTime);
    SMILNode*              findLastDeferredChildOfAncestorExcl(
                                   SMILNode* pInterruptingNode, LONG32 lCurTime);
    SMILNode*              findLastDeferredDescendant(SMILNode* pNode,
                                     LONG32 lCurTime,
                                     SMILNode* pButNotThisNode,
                                     SMILNode* pLastDeferredChild);
    BOOL                   firstDependentChild(SMILNode* pNode);
    SMILNode*              findFirstNode(SMILNodeList* pNodelist, SMILNodeTag tag);
    // /Finds parent's next child; doesn't have to be a timeline element:
    SMILNode*              findNextSibling(SMILNode* pNode);
    SMILNode*              getTimelineDescendent(SMILNode* pParentNode, SMILNode* pSiblingNode);
    SMILNode*              getTimelineDescendent(SMILNode* pParentNode);
    const char*            assignID(const char* pPrefix);
    HX_RESULT              parseDuration(const char*          pDuration,
                                         CSmilElement*        pElement,
                                         SMILSyncAttributeTag nTag);
    HX_RESULT              parseMarkerClipBeginEnd(const char* pszStr,
                                                   REF(char*)  rpszMarkerName,
                                                   REF(char*)  rpszExtFileName);
    HX_RESULT              adjustDuration(CSmilElement* pElement);
    HX_RESULT              parseClockValue(const char* pValue, UINT32& ulClockValue);
    HX_RESULT              parseSyncBehaviorVal(const char*          pSyncBhvrBuf,
                                                CSmilElement*        pElement,
                                                SMILSyncAttributeTag nTag);
    HX_RESULT              parsePeersHigherLower(const char* pBuf,
                                CSmilPriorityClassElement* pPCElement,
                                SMILPriorityClassPeersHigherLowerAttrib nAttrib);
    HX_RESULT              parsePauseDisplay(const char* pBuf,
                                CSmilPriorityClassElement* pPCElement);
    BOOL                   inLanguagePreference(const char* pLang);
    BOOL                   isRelativeURL(const char* pURL);
    UINT8                  getColorElement(const char* pColorFragment, int len);
    void                   handleXMLParserError(XMLError* pError);
    void                   badAttributeError(SMILNodeTag tag,
                                             const char* pNodeName,
                                             UINT32      ulLineNumber,
                                             BOOL        bJustStore);
    void                   initTagAttributes();
    void                   deleteTagAttributes();
    BOOL                   isLegalAttribute(SMILNodeTag tag, const char* pAttrName);
    HX_RESULT              storeError(HX_RESULT   errCode, 
                                      const char* pErrorString, 
                                      const char* pFrameString,
                                      UINT32      ulLineNumber, 
                                      UINT32      ulLinePosition,
                                      BOOL        bXml = TRUE);
    BOOL                   isEndTagObject(SMILNode* pNode);
    const char*            removeSurroundingWhitespace(const char* pValue);
    HX_RESULT              parseBeginEnd(const char*          pBuffer, 
                                         CSmilElement*        pElement,
                                         SMILSyncAttributeTag nTag);
    HX_RESULT              parseSmil1SyncbaseValue(const char*          pCh, 
                                                   CSmilElement*        pElement,
                                                   SMILSyncAttributeTag nTag);
    HX_RESULT              parseCoord(IHXBuffer* pBuf, REF(float) f);
    HX_RESULT              parseDigit(IHXBuffer* pBuf, REF(UINT32) ul);
    HX_RESULT              parseRestart(const char* pBuffer, CSmilElement* pElement);
    HX_RESULT              parseRestartDefault(const char* pBuffer, CSmilElement* pElement);
    HX_RESULT              parseSensitivity(const char* pszValue, CSmilElement* pSource);
    FillDefaultType        getFillDefault(CSmilElement* pElement);
    void                   resolveFillValue(CSmilElement* pElement);
    BOOL                   isAttributeSpecified(CSmilElement* pElement, const char* pszAttr);
#if defined(HELIX_FEATURE_SMIL2_TRANSITIONS)
    HX_RESULT              getNextTransitionEnd(CSmilElement* pElement, REF(UINT32) rulTime);
#endif /* #if defined(HELIX_FEATURE_SMIL2_TRANSITIONS) */
    void                   initParsingMaps();
#if defined(HELIX_FEATURE_SMIL2_VALIDATION)
    void                   processCollection(CRNBinaryMap* pMap,
                                             UINT32        ulElement,
                                             UINT32        ulCollection);
    void                   deleteEnumAttrMaps();
    void                   deleteReqAttrLists();
#endif /* #if defined(HELIX_FEATURE_SMIL2_VALIDATION) */
    void                   deleteValidationNamespaceList();
    void                   checkForXMMFDependency(CSmilElement* pElement);
    void                   handleBeginEndListXMMFReferences(CSmilElement*  pElement,
                                                            CHXSimpleList* pList);
    void                   handleClipBeginEndXMMFReference(CSmilElement*  pElement,
                                                           BOOL           bIsClipBegin);
    HX_RESULT              setElementHandler(SMILNode* pNode, CSmilElementHandler* pHandler);
    void                   addToBeginOrEndTimeMap(SmilTimeValue*     pValue,
                                                  SmilTimingListType eType);
    void                   removeFromBeginOrEndTimeMap(SmilTimeValue*     pValue,
                                                       SmilTimingListType eType);
    BOOL                   isTimeValueListPresent(const char*         pszEventName,
                                                  const char*         pszElementID,
                                                  SmilTimingListType  eType,
                                                  REF(CHXSimpleList*) rpList);
    void                   clearTimeValueMap(SmilTimingListType eType);
    void                   checkNodeForExternalEvents(SMILNode* pNode);
    void                   checkNodeTimeListForExternalEvents(CHXSimpleList* pList);
    void                   addExternalEventToList(const char*     pszID,
                                                  const char*     pszFullName,
                                                  const char*     pszName,
                                                  CNamespaceInfo* pInfo);
    void                   clearExternalEventList();

    IUnknown*               m_pContext;
    IHXCommonClassFactory* m_pClassFactory;
    IHXSystemRequired*     m_pISystemRequired;
    IHXXMLParser*          m_pParser;
    CSmilParserResponse*    m_pResponse;
    SMILNode*               m_pCurNode;
    CHXStack*               m_pNodeDependencies;
    SMILNode*               m_pCurrentDependentNode;
    CHXStack*               m_pAnchorStack;
    CSmilAAnchorElement*    m_pCurrentAnchor;
    INT32                   m_lLastCheckPendingTime;
    CHXSimpleList*          m_pPacketQueue;
    CHXSimpleList*          m_pSourceUpdateList;
    CHXMapLongToObj*        m_pAddGroupMap;
    CHXMapLongToObj*        m_pTagAttributeMap;
    CHXMapStringToOb*       m_pIDMap;
    CHXMapStringToOb*       m_pRequireTagsMap;
#if defined(HELIX_FEATURE_SMIL2_TRANSITIONS)
    CHXMapStringToOb*       m_pTransitionMap;
#endif /* #if defined(HELIX_FEATURE_SMIL2_TRANSITIONS) */
    CHXMapStringToOb*       m_pActiveNamespaceMap;
    CHXMapStringToOb*       m_pCustomTestMap;
    CHXSimpleList*          m_pNSConflictList;
    CHXSimpleList*          m_pBeginTimeSyncList;
    CHXSimpleList*          m_pEndTimeSyncList;
    CHXSimpleList*          m_pBeginEventList;
    CHXSimpleList*          m_pEndEventList;
    CHXSimpleList*          m_pBeginMediaMarkerList;
    CHXSimpleList*          m_pEndMediaMarkerList;
    CHXSimpleList*          m_pClipBeginMarkerList;
    CHXSimpleList*          m_pClipEndMarkerList;
    CHXSimpleList*          m_pPendingBeginTimeList;
    CHXSimpleList*          m_pPendingEndTimeList;
    CHXSimpleList*          m_pOnLoadURLList;
    CHXSimpleList*          m_pOnLoadURLListCopyForPostSeek; 
    BOOL                    m_bHandlePostSeekOnLoadURLs;
    char*                   m_pBasePath;
    CHXSimpleList*          m_pTrackHintList;
    UINT32                  m_ulBandwidthPreference;
    UINT32                  m_ulScreenHeightPreference;
    UINT32                  m_ulScreenWidthPreference;
    UINT32                  m_ulScreenDepthPreference;
    UINT32                  m_ulDurIfNoInitialTracksScheduled;
    char*                   m_pOverdubOrCaptionPreference;
    char*                   m_pEncoding;
    CHXSimpleList*          m_pLanguagePreferenceList;
    CHXPtrArray*            m_pErrors;
    time_t                  m_tRefTime;
    HXVERSIONINFO           m_versionInfo;
    ULONG32                 m_ulPlatformVer; // /Ret val of HXGetWinVer().
    CHXMapStringToOb*       m_pElementMap;
    CHXMapStringToOb*       m_pAttributeMap;
#if defined(HELIX_FEATURE_SMIL2_VALIDATION)
    CHXMapStringToOb*       m_pExtElementMap;
    CHXMapStringToOb*       m_pExtAttributeMap;
    CHXMapStringToOb*       m_pNamespaceMap;
    CRNBinaryMap*           m_pLegalAttrMap;
    CRNBinaryMap*           m_pContentModelMap;
    XMLAttributeType*       m_pAttrType;
    CHXMapStringToOb**      m_ppEnumAttrMap;
    CHXSimpleList**         m_ppReqAttrList;
#endif /* #if defined(HELIX_FEATURE_SMIL2_VALIDATION) */
    CHXSimpleList*          m_pValNSList;
    CHXSimpleList*          m_pXMMFElementList;
    UINT32                  m_ulPersistentComponentID;
    ElementWithinTag        m_elementWithinTag;
    UINT16                  m_usNumGroups;
    HX_RESULT               m_lParseError;
    CHXSimpleList*          m_pAnimateElementList;
    CHXMapStringToOb*       m_pBeginTimeMap;
    CHXMapStringToOb*       m_pEndTimeMap;
    CHXSimpleList*          m_pExternalEventList;
    LISTPOSITION            m_pExternalEventListPos;
    CHXSimpleList*          m_pElementsWithHandlerList;
    char*                   m_pVarName;
    UINT32                  m_ulNextVar;
    static const char* const zm_pSupportedSMIL2ModuleNamespaces[
                               NUM_SUPPORTED_SMIL_2_0_MODULE_NAMESPACES + 1];
    // ONLY HX_BITFIELD MEMBERS SHOULD GO BELOW THIS LINE!
    // ALL OTHER MEMBER TYPES SHOULD GO ABOVE THIS LINE!
    HX_BITFIELD             m_bIgnoreUnrecognizedElements : 1;
    HX_BITFIELD             m_bNoNamespaces : 1;
    HX_BITFIELD             m_bRNNamespace : 1;
    HX_BITFIELD             m_bSMILRootLayoutAlreadyFound : 1;
    HX_BITFIELD             m_bCaptionsPreference : 1;
    HX_BITFIELD             m_bSystemAudioDescPreference : 1;
    HX_BITFIELD             m_bUseSystemCPU : 1;
    HX_BITFIELD             m_bUseSystemOS : 1;
    HX_BITFIELD             m_bContainsSource : 1;
    HX_BITFIELD             m_bContainsInitiallyScheduledTrack: 1;
    HX_BITFIELD             m_bStoreErrors : 1;
    HX_BITFIELD             m_bFirstPacket : 1;
    HX_BITFIELD             m_bTimestampsResolved : 1;
    HX_BITFIELD             m_bAllowPlaylistBehavior : 1;
    HX_BITFIELD             m_bAllTracksNeedReflushHint : 1;
};

#if defined(HELIX_FEATURE_SMIL2_VALIDATION)

inline BOOL CSmilParser::isXMLLetter(char ch) const
{
    BOOL bRet = FALSE;

    // /Fixes some gcc compiler warnings that might actually be bugs in our
    // UNIX player; need to compare unsigneds with the 0x..'s which are unsigned:
    const unsigned char c = (unsigned char)ch;

    if ((c >= 0x41 && c <= 0x5A) ||
        (c >= 0x61 && c <= 0x7A) ||
        (c >= 0xC0 && c <= 0xD6) ||
        (c >= 0xD8 && c <= 0xF6) ||
        (c >= 0xF8 && c <= 0xFF))
    {
        bRet = TRUE;
    }

    return bRet;
}

inline BOOL CSmilParser::isXMLDigit(char c) const
{
    return ((c >= 0x30 && c <= 0x39) ? TRUE : FALSE);
}

inline BOOL CSmilParser::isXMLNameChar(char ch) const
{
    BOOL bRet = FALSE;

    // /Fixes some gcc compiler warnings that might actually be bugs in our
    // UNIX player; need to compare unsigneds with the 0x..'s which are unsigned:
    const unsigned char c = (unsigned char)ch;

    if (isXMLLetter(c) ||
        isXMLDigit(c)  ||
        c == '.'       ||
        c == '-'       ||
        c == '_'       ||
        c == ':'       ||
        c == 0xB7)
    {
        bRet = TRUE;
    }

    return bRet;
}

#endif /* #if defined(HELIX_FEATURE_SMIL2_VALIDATION) */

#endif  /* _SMLPARSE_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -