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

📄 effect.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 4 页
字号:
    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cPackage);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cName);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cData);    ulCurPos += InitFromBinaryType(pBuffer + ulCurPos, m_cFile);    return ulCurPos;}void CIMFExternalEffect::RenderText(GString &rText){    rText += CIMFFileObject::m_pszTagStart;    rText += CIMFFileObject::m_pszCrossfadeTag;    rText += " ";    CIMFFileObject::RenderAttribute(m_pszStart,    m_ulStart,     rText);    CIMFFileObject::RenderAttribute(m_pszDuration, m_ulDuration,  rText);    CIMFFileObject::RenderAttribute(m_pszTarget,   m_ulTarget,    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);    }    if (m_cPackage.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszPackage, m_cPackage, rText);    }    if (m_cName.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszName, m_cName, rText);    }    if (m_cData.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszData, m_cData, rText);    }    if (m_cFile.length() > 0)    {        CIMFFileObject::RenderAttribute(m_pszFile, m_cFile, rText);    }    rText += CIMFFileObject::m_pszTagEnd;}BOOL CIMFExternalEffect::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;    if (!CIMFFileObject::SetAttributeValue(rText, m_pszPackage,  m_cPackage))   return FALSE;    if (!CIMFFileObject::SetAttributeValue(rText, m_pszName,     m_cName))      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);    if (!CIMFFileObject::SetAttributeValueBOOL(rText, m_pszAspect, m_bAspectFlag))    {        m_bAspectFlag = m_bAspectDefault;    }    CIMFFileObject::SetAttributeValue(rText, m_pszData, m_cData);    CIMFFileObject::SetAttributeValue(rText, m_pszFile, m_cFile);    return TRUE;}void CIMFExternalEffect::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();    if (m_cPackage.length() > 0)        SafeStrCpy(imfEffect.m_cPackage, m_cPackage.c_str(), 256);        if (m_cName.length() > 0)        SafeStrCpy(imfEffect.m_cName, m_cName.c_str(), 256);        if (m_cData.length() > 0)        SafeStrCpy(imfEffect.m_cData, m_cData.c_str(), 256);    if (m_cFile.length() > 0)        SafeStrCpy(imfEffect.m_cFile, m_cFile.c_str(), 256);        if (m_cURL.length() > 0)        SafeStrCpy(imfEffect.m_cURL, GetURL().c_str(), 256);    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();}BOOL CIMFExternalEffect::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);    SetPackage(imfEffect.m_cPackage);    SetName(imfEffect.m_cName);    SetData(imfEffect.m_cData);    SetFile(imfEffect.m_cFile);    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 CIMFAnimateEffect::GetBinaryLength(){    return 54 + 4 + m_cURL.length();}ULONG32 CIMFAnimateEffect::RenderBinary(unsigned char *pBuffer){    ULONG32 ulCurPos = 0;    ulCurPos += RenderBinaryType(pBuffer + ulCurPos, (ULONG32) kTypeAnimate);    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);        return ulCurPos;}ULONG32 CIMFAnimateEffect::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 += RenderBinaryType(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);        return ulCurPos;}void CIMFAnimateEffect::RenderText(GString &rText){    rText += CIMFFileObject::m_pszTagStart;    rText += CIMFFileObject::m_pszAnimateTag;    rText += " ";    CIMFFileObject::RenderAttribute(m_pszStart,    m_ulStart,     rText);	CIMFFileObject::RenderAttribute(m_pszDuration, m_ulDuration,  rText);    CIMFFileObject::RenderAttribute(m_pszTarget,   m_ulTarget,    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 CIMFAnimateEffect::InitFromText(GString &rText){    // 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;    // 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);    if (!CIMFFileObject::SetAttributeValueBOOL(rText, m_pszAspect, m_bAspectFlag))    {        m_bAspectFlag = m_bAspectDefault;    }    return TRUE;}void CIMFAnimateEffect::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 CIMFAnimateEffect::InitFromToolData(IMFEFFECT imfEffect){    // Set Attributes    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;    }/////////////////////////////////////////////////////////////////////////////////////////////////CIMFEffect* CIMFEffectFactory::CreateInstance(IMFEFFECT& imfEffect){    CIMFEffect* pEffect= NULL;    switch(imfEffect.m_ulType)    {        case kTypeFill:            pEffect = new CIMFFillEffect();        break;        case kTypeFadeIn:            pEffect = new CIMFFadeinEffect();        break;        case kTypeFadeOut:            pEffect = new CIMFFadeoutEffect();        break;        case kTypeCrossFade:            pEffect = new CIMFCrossfadeEffect();        break;        case kTypeWipe:            pEffect = new CIMFWipeEffect();        break;        case kTypeViewChange:            pEffect = new  CIMFViewchangeEffect();        break;        case kTypeExternal:            pEffect = new  CIMFExternalEffect();        break;        case kTypeAnimate:            pEffect = new  CIMFAnimateEffect();        break;    }    if(pEffect)        pEffect->InitFromToolData(imfEffect);    return pEffect;}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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