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

📄 effect.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulTarget);    ulCurPos += m_cSrcRect.InitFromBinary(pBuffer + ulCurPos);    ulCurPos += m_cDstRect.InitFromBinary(pBuffer + ulCurPos);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_bAspectFlag);    return ulCurPos;}void CIMFWipeEffect::RenderText(GString &rText){    rText += CIMFFileObject::m_pszTagStart;    rText += CIMFFileObject::m_pszWipeTag;    rText += " ";    CIMFFileObject::RenderAttribute(m_pszStart,    m_ulStart,     rText);    CIMFFileObject::RenderAttribute(m_pszDuration, m_ulDuration,  rText);    CIMFFileObject::RenderAttribute(m_pszTarget,   m_ulTarget,    rText);    // Render direction    rText += m_pszWipeDirection;    rText += "=";    switch (m_ulDirection)    {        case kDirectionUp:            rText += m_pszWipeDirectionUp;            break;        case kDirectionDown:            rText += m_pszWipeDirectionDown;            break;        case kDirectionLeft:            rText += m_pszWipeDirectionLeft;            break;        case kDirectionRight:            rText += m_pszWipeDirectionRight;            break;    }    rText += " ";    // Render type    rText += m_pszWipeType;    rText += "=";    switch (m_ulType)    {        case kTypeNormal:            rText += m_pszWipeTypeNormal;            break;        case kTypePush:            rText += m_pszWipeTypePush;            break;    }    rText += " ";    m_cSrcRect.RenderText(rText);    m_cDstRect.RenderText(rText);    if (m_bAspectFlag != m_bAspectDefault)    {        CIMFFileObject::RenderAttribute(m_pszAspect, m_bAspectFlag, rText);    }    if (m_cURL.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszURL, m_cURL, rText);    }    rText += CIMFFileObject::m_pszTagEnd;}BOOL CIMFWipeEffect::InitFromText(GString &rText){    // These are required attributes    // Get the start time    HX_RESULT retVal = CIMFFileObject::SetAttributeTimeValue(rText,                                                             m_pszStart,                                                             m_pFileObject->GetTimeFormat(),                                                             m_ulStart);    if (retVal != HXR_OK)    {        if (retVal == HXR_PROP_NOT_FOUND)        {            m_cErrorMessage = "Missing start attribute in ";        }        else        {            m_cErrorMessage = "Invalid time formatting in ";        }        m_cErrorMessage += rText;        return FALSE;    }    // Get the duration    retVal = CIMFFileObject::SetAttributeTimeValue(rText,                                                   m_pszDuration,                                                   m_pFileObject->GetTimeFormat(),                                                   m_ulDuration);    if (retVal != HXR_OK)    {        if (retVal == HXR_PROP_NOT_FOUND)        {            m_cErrorMessage = "Missing duration attribute in ";        }        else        {            m_cErrorMessage = "Invalid time formatting in ";        }        m_cErrorMessage += rText;        return FALSE;    }//    if (!CIMFFileObject::SetAttributeValue(rText, m_pszStart,    m_ulStart))    return FALSE;//    if (!CIMFFileObject::SetAttributeValue(rText, m_pszDuration, m_ulDuration)) return FALSE;    if (!CIMFFileObject::SetAttributeValue(rText, m_pszTarget,   m_ulTarget))   return FALSE;    // The following are optional attributes    GString cTmpStr;    CIMFFileObject::SetAttributeValue(rText, m_pszMaxFps, m_ulMaxFps);    // Initialize the direction attribute    if (CIMFFileObject::GetAttributeSubstring(rText, m_pszWipeDirection, cTmpStr))    {        if      (cTmpStr == m_pszWipeDirectionUp)    m_ulDirection = kDirectionUp;        else if (cTmpStr == m_pszWipeDirectionDown)  m_ulDirection = kDirectionDown;        else if (cTmpStr == m_pszWipeDirectionLeft)  m_ulDirection = kDirectionLeft;        else if (cTmpStr == m_pszWipeDirectionRight) m_ulDirection = kDirectionRight;    }    // Initialize the type attribute    if (CIMFFileObject::GetAttributeSubstring(rText, m_pszWipeType, cTmpStr))    {        if      (cTmpStr == m_pszWipeTypeNormal) m_ulType = kTypeNormal;        else if (cTmpStr == m_pszWipeTypePush)   m_ulType = kTypePush;    }    m_cSrcRect.InitFromText(rText);    m_cDstRect.InitFromText(rText);    if (!CIMFFileObject::SetAttributeValueBOOL(rText, m_pszAspect, m_bAspectFlag))    {        m_bAspectFlag = m_bAspectDefault;    }    CIMFFileObject::SetAttributeValue(rText, m_pszURL, m_cURL);    return TRUE;}void CIMFWipeEffect::RenderToolData(IMFEFFECT& imfEffect){    imfEffect.m_ulBinSize        = GetBinaryLength();    imfEffect.m_ulMaxFps         = GetMaxFps();    imfEffect.m_ulStart          = GetStart();    imfEffect.m_ulDuration       = GetDuration();    imfEffect.m_ulDirection      = GetDirection();    imfEffect.m_bAspect          = GetAspectFlag();    imfEffect.m_bDefaultAspect   = GetAspectDefault();    imfEffect.m_ulTarget         = GetTargetImageHandle();    imfEffect.m_ulType           = GetType();    imfEffect.m_nSrc_x           = m_cSrcRect.GetX();    imfEffect.m_nSrc_y           = m_cSrcRect.GetY();    imfEffect.m_nSrc_W           = m_cSrcRect.GetWidth();    imfEffect.m_nSrc_H           = m_cSrcRect.GetHeight();    imfEffect.m_nDest_x          = m_cDstRect.GetX();    imfEffect.m_nDest_y          = m_cDstRect.GetY();    imfEffect.m_nDest_W          = m_cDstRect.GetWidth();    imfEffect.m_nDest_H          = m_cDstRect.GetHeight();    if (m_cURL.length() > 0)        SafeStrCpy(imfEffect.m_cURL, GetURL().c_str(), 256);    }BOOL  CIMFWipeEffect::InitFromToolData(IMFEFFECT imfEffect){    SetStart(imfEffect.m_ulStart);    SetDefaultMaxFps(imfEffect.m_ulMaxFps);    SetDuration(imfEffect.m_ulDuration);       SetAspectFlag(imfEffect.m_bAspect);    SetAspectDefault(imfEffect.m_bDefaultAspect);    SetTargetImageHandle(imfEffect.m_ulTarget);       SetURL(imfEffect.m_cURL);    m_cSrcRect.SetX(imfEffect.m_nSrc_x);    m_cSrcRect.SetY(imfEffect.m_nSrc_y);    m_cSrcRect.SetWidth(imfEffect.m_nSrc_W);    m_cSrcRect.SetHeight(imfEffect.m_nSrc_H);    m_cDstRect.SetX(imfEffect.m_nDest_x);    m_cDstRect.SetY(imfEffect.m_nDest_y);    m_cDstRect.SetWidth(imfEffect.m_nDest_W);    m_cDstRect.SetHeight(imfEffect.m_nDest_H);    return TRUE;    }//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ULONG32 CIMFViewchangeEffect::GetBinaryLength(){    return 46 + 4 + m_cURL.length();}ULONG32 CIMFViewchangeEffect::RenderBinary(unsigned char *pBuffer){    ULONG32 ulCurPos = 0;    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, (ULONG32) kTypeViewChange);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulStart);	ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulMaxFps);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cURL);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulDuration);    ulCurPos += m_cSrcRect.RenderBinary(pBuffer + ulCurPos);    ulCurPos += m_cDstRect.RenderBinary(pBuffer + ulCurPos);    return ulCurPos;}ULONG32 CIMFViewchangeEffect::InitFromBinary(unsigned char *pBuffer){    ULONG32 ulCurPos = 0;    ULONG32 ulTmp;    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, ulTmp); // This is the type    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulStart);	ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulMaxFps);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cURL);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulDuration);    ulCurPos += m_cSrcRect.InitFromBinary(pBuffer + ulCurPos);    ulCurPos += m_cDstRect.InitFromBinary(pBuffer + ulCurPos);    return ulCurPos;}void CIMFViewchangeEffect::RenderText(GString &rText){    rText += CIMFFileObject::m_pszTagStart;    rText += CIMFFileObject::m_pszViewchangeTag;    rText += " ";    CIMFFileObject::RenderAttribute(m_pszStart,    m_ulStart,     rText);    CIMFFileObject::RenderAttribute(m_pszDuration, m_ulDuration,  rText);    m_cSrcRect.RenderText(rText);    m_cDstRect.RenderText(rText);    if (m_cURL.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszURL, m_cURL, rText);    }    rText += CIMFFileObject::m_pszTagEnd;}BOOL CIMFViewchangeEffect::InitFromText(GString &rText){    // These are required attributes    // Get the start time    HX_RESULT retVal = CIMFFileObject::SetAttributeTimeValue(rText,                                                             m_pszStart,                                                             m_pFileObject->GetTimeFormat(),                                                             m_ulStart);    if (retVal != HXR_OK)    {        if (retVal == HXR_PROP_NOT_FOUND)        {            m_cErrorMessage = "Missing start attribute in ";        }        else        {            m_cErrorMessage = "Invalid time formatting in ";        }        m_cErrorMessage += rText;        return FALSE;    }    // Get the duration    retVal = CIMFFileObject::SetAttributeTimeValue(rText,                                                   m_pszDuration,                                                   m_pFileObject->GetTimeFormat(),                                                   m_ulDuration);    if (retVal != HXR_OK)    {        if (retVal == HXR_PROP_NOT_FOUND)        {            m_cErrorMessage = "Missing duration attribute in ";        }        else        {            m_cErrorMessage = "Invalid time formatting in ";        }        m_cErrorMessage += rText;        return FALSE;    }//    if (!CIMFFileObject::SetAttributeValue(rText, m_pszStart,    m_ulStart))    return FALSE;//    if (!CIMFFileObject::SetAttributeValue(rText, m_pszDuration, m_ulDuration)) return FALSE;    // These are optional attributes    m_cSrcRect.InitFromText(rText);    m_cDstRect.InitFromText(rText);    CIMFFileObject::SetAttributeValue(rText, m_pszURL, m_cURL);	CIMFFileObject::SetAttributeValue(rText, m_pszMaxFps, m_ulMaxFps);    return TRUE;}void CIMFViewchangeEffect::RenderToolData(IMFEFFECT& imfEffect){    imfEffect.m_ulBinSize        = GetBinaryLength();    imfEffect.m_ulMaxFps         = GetMaxFps();    imfEffect.m_ulStart          = GetStart();    imfEffect.m_ulDuration       = GetDuration();    imfEffect.m_bAspect          = GetAspectFlag();    imfEffect.m_bDefaultAspect   = GetAspectDefault();    imfEffect.m_ulTarget         = GetTargetImageHandle();    imfEffect.m_ulType           = GetType();    imfEffect.m_nSrc_x           = m_cSrcRect.GetX();    imfEffect.m_nSrc_y           = m_cSrcRect.GetY();    imfEffect.m_nSrc_W           = m_cSrcRect.GetWidth();    imfEffect.m_nSrc_H           = m_cSrcRect.GetHeight();    imfEffect.m_nDest_x          = m_cDstRect.GetX();    imfEffect.m_nDest_y          = m_cDstRect.GetY();    imfEffect.m_nDest_W          = m_cDstRect.GetWidth();    imfEffect.m_nDest_H          = m_cDstRect.GetHeight();    if (m_cURL.length() > 0)        SafeStrCpy(imfEffect.m_cURL, GetURL().c_str(), 256);    }BOOL CIMFViewchangeEffect::InitFromToolData(IMFEFFECT imfEffect){    SetStart(imfEffect.m_ulStart);    SetDefaultMaxFps(imfEffect.m_ulMaxFps);    SetDuration(imfEffect.m_ulDuration);       SetAspectFlag(imfEffect.m_bAspect);    SetAspectDefault(imfEffect.m_bDefaultAspect);    SetTargetImageHandle(imfEffect.m_ulTarget);    SetURL(imfEffect.m_cURL);    m_cSrcRect.SetX(imfEffect.m_nSrc_x);    m_cSrcRect.SetY(imfEffect.m_nSrc_y);    m_cSrcRect.SetWidth(imfEffect.m_nSrc_W);    m_cSrcRect.SetHeight(imfEffect.m_nSrc_H);    m_cDstRect.SetX(imfEffect.m_nDest_x);    m_cDstRect.SetY(imfEffect.m_nDest_y);    m_cDstRect.SetWidth(imfEffect.m_nDest_W);    m_cDstRect.SetHeight(imfEffect.m_nDest_H);    return TRUE;        }//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ULONG32 CIMFExternalEffect::GetBinaryLength(){    return 62 + 4 +		        m_cURL.length()     +                m_cPackage.length() +                m_cName.length()    +                m_cData.length()    +                m_cFile.length();}ULONG32 CIMFExternalEffect::RenderBinary(unsigned char *pBuffer){    ULONG32 ulCurPos = 0;    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, (ULONG32) kTypeExternal);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulStart);	ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulMaxFps);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cURL);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulDuration);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_ulTarget);    ulCurPos += m_cSrcRect.RenderBinary(pBuffer + ulCurPos);    ulCurPos += m_cDstRect.RenderBinary(pBuffer + ulCurPos);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_bAspectFlag);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cPackage);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cName);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cData);    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, m_cFile);    return ulCurPos;}ULONG32 CIMFExternalEffect::InitFromBinary(unsigned char *pBuffer){    ULONG32 ulCurPos = 0;    ULONG32 ulTmp;    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, ulTmp); // This is the type    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulStart);	ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulMaxFps);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cURL);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulDuration);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_ulTarget);    ulCurPos += m_cSrcRect.InitFromBinary(pBuffer + ulCurPos);    ulCurPos += m_cDstRect.InitFromBinary(pBuffer + ulCurPos);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_bAspectFlag);

⌨️ 快捷键说明

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