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

📄 viewport.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
            while (pos)            {                IHXViewPortSink* pSink =                    (IHXViewPortSink*) m_pViewPortSinkList->GetNext(pos);                if (pSink)                {                    // QI for IHXViewPortSupplier                    IHXViewPortSupplier* pSupplier = NULL;                    pSink->QueryInterface(IID_IHXViewPortSupplier, (void**) &pSupplier);                    if (pSupplier != m_pViewPortSupplier)                    {                        HX_RELEASE(m_pViewPortSupplier);                        m_pViewPortSupplier = pSupplier;                        m_pViewPortSupplier->AddRef();                        HX_RELEASE(pSupplier);                        break;                    }                    HX_RELEASE(pSupplier);                }            }        }    }#else    if (m_pPlayer && !m_pViewPortSupplier)    {	if (HXR_OK != m_pPlayer->QueryInterface(IID_IHXViewPortSupplier, (void**)&m_pViewPortSupplier))	{	    m_pViewPortSupplier = NULL;	}    }#endif    if (m_pViewPortSupplier)    {	m_pViewPortSupplier->OnViewPortOpen(pValues, pSiteUser);	if (m_pViewPortSinkList)	{	    ndx = m_pViewPortSinkList->Begin();	    for (; ndx != m_pViewPortSinkList->End(); ++ndx)	    {		pViewPortSink = (IHXViewPortSink*) (*ndx);		pViewPortSink->ViewPortOpened(pszViewPort);	    }	}    }cleanup:   HX_RELEASE(pBuffer);      return rc;}/************************************************************************ *	Method: *	    IHXViewPortManager::GetViewPort *	Purpose: *	    get viewport */STDMETHODIMPHXViewPortManager::GetViewPort(const char* pszViewPort,				REF(IHXViewPort*) pViewPort){    HX_RESULT	rc = HXR_OK;    pViewPort = NULL;    if (!m_pViewPortMap)    {	rc = HXR_FAILED;	goto cleanup;    }    if (!m_pViewPortMap->Lookup(pszViewPort, (void*&)pViewPort))    {	rc = HXR_FAILED;	goto cleanup;    }    pViewPort->AddRef();cleanup:    return rc;}/************************************************************************ *	Method: *	    IHXViewPortManager::CloseViewPort *	Purpose: *	    remove viewport */STDMETHODIMPHXViewPortManager::CloseViewPort(const char* pszViewPort){    HX_RESULT		rc = HXR_OK;    IHXViewPort*	pViewPort = NULL;    IHXViewPortSink*	pViewPortSink = NULL;    CHXSimpleList::Iterator ndx;    if (m_pViewPortMap &&	m_pViewPortMap->Lookup(pszViewPort, (void*&)pViewPort))    {	m_pViewPortMap->RemoveKey(pszViewPort);	HX_RELEASE(pViewPort);    }    if (m_pViewPortSupplier)    {	m_pViewPortSupplier->OnViewPortClose(pszViewPort);	if (m_pViewPortSinkList)	{	    ndx = m_pViewPortSinkList->Begin();	    for (; ndx != m_pViewPortSinkList->End(); ++ndx)	    {		pViewPortSink = (IHXViewPortSink*) (*ndx);		pViewPortSink->ViewPortClosed(pszViewPort);	    }	}    }    return rc;}/************************************************************************ *	Method: *	    IHXViewPortManager::AddViewPortSink *	Purpose: *	    add viewport sinker */STDMETHODIMPHXViewPortManager::AddViewPortSink(IHXViewPortSink*  pViewPortSink){    HX_RESULT	rc = HXR_OK;    if (!m_pViewPortSinkList)    {	m_pViewPortSinkList = new CHXSimpleList();    }    m_pViewPortSinkList->AddTail(pViewPortSink);    pViewPortSink->AddRef();    return rc;}/************************************************************************ *	Method: *	    IHXViewPortManager::RemoveViewPortSink *	Purpose: *	    remove viewport sinker */STDMETHODIMPHXViewPortManager::RemoveViewPortSink(IHXViewPortSink*  pViewPortSink){    if (!m_pViewPortSinkList)    {	return HXR_UNEXPECTED;    }    LISTPOSITION lPosition = m_pViewPortSinkList->Find(pViewPortSink);    if (!lPosition)    {	return HXR_UNEXPECTED;    }    m_pViewPortSinkList->RemoveAt(lPosition);    HX_RELEASE(pViewPortSink);        return HXR_OK;}HX_RESULTHXViewPortManager::OnViewPortShow(const char* pszViewPortName){    HX_RESULT		rc = HXR_OK;    IHXViewPortSink*	pViewPortSink = NULL;    CHXSimpleList::Iterator ndx;    if (!m_pViewPortSupplier)    {	rc = HXR_FAILED;	goto cleanup;    }    m_pViewPortSupplier->OnViewPortShow(pszViewPortName);    if (m_pViewPortSinkList)    {	ndx = m_pViewPortSinkList->Begin();	for (; ndx != m_pViewPortSinkList->End(); ++ndx)	{	    pViewPortSink = (IHXViewPortSink*) (*ndx);	    pViewPortSink->ViewPortShown(pszViewPortName);	}    }cleanup:    return rc;}HX_RESULTHXViewPortManager::OnViewPortHide(const char* pszViewPortName){    HX_RESULT		rc = HXR_OK;    IHXViewPortSink*	pViewPortSink = NULL;    CHXSimpleList::Iterator ndx;    if (!m_pViewPortSupplier)    {	rc = HXR_FAILED;	goto cleanup;    }    m_pViewPortSupplier->OnViewPortHide(pszViewPortName);    if (m_pViewPortSinkList)    {	ndx = m_pViewPortSinkList->Begin();	for (; ndx != m_pViewPortSinkList->End(); ++ndx)	{	    pViewPortSink = (IHXViewPortSink*) (*ndx);	    pViewPortSink->ViewPortHidden(pszViewPortName);	}    }cleanup:    return rc;}HX_RESULTHXViewPortManager::OnViewPortFocus(const char* pszViewPortName){    HX_RESULT		rc = HXR_OK;    IHXViewPortSink*	pViewPortSink = NULL;    CHXSimpleList::Iterator ndx;    if (!m_pViewPortSupplier)    {	rc = HXR_FAILED;	goto cleanup;    }    m_pViewPortSupplier->OnViewPortFocus(pszViewPortName);    if (m_pViewPortSinkList)    {	ndx = m_pViewPortSinkList->Begin();	for (; ndx != m_pViewPortSinkList->End(); ++ndx)	{	    pViewPortSink = (IHXViewPortSink*) (*ndx);	    pViewPortSink->ViewPortFocusSet(pszViewPortName);	}    }cleanup:    return rc;}HX_RESULTHXViewPortManager::OnViewPortZOrder(const char* pszViewPortName, 				     UINT32 ulZOrder){    HX_RESULT		rc = HXR_OK;    IHXViewPortSink*	pViewPortSink = NULL;    CHXSimpleList::Iterator ndx;    if (!m_pViewPortSupplier)    {	rc = HXR_FAILED;	goto cleanup;    }    m_pViewPortSupplier->OnViewPortZOrder(pszViewPortName, ulZOrder);    if (m_pViewPortSinkList)    {	ndx = m_pViewPortSinkList->Begin();	for (; ndx != m_pViewPortSinkList->End(); ++ndx)	{	    pViewPortSink = (IHXViewPortSink*) (*ndx);	    pViewPortSink->ViewPortZOrderSet(pszViewPortName, ulZOrder);	}    }cleanup:    return rc;}voidHXViewPortManager::Close(){    if (m_pViewPortMap)    {	CHXMapStringToOb::Iterator ndx = m_pViewPortMap->Begin();	for (; ndx != m_pViewPortMap->End(); ++ndx)	{	    HXViewPort* pViewPort = (HXViewPort*)(*ndx);	    HX_RELEASE(pViewPort);	}    }    HX_DELETE(m_pViewPortMap);    if (m_pViewPortSinkList)    {	CHXSimpleList::Iterator ndx = m_pViewPortSinkList->Begin();	for (; ndx != m_pViewPortSinkList->End(); ++ndx)	{	    IHXViewPortSink* pViewPortSink = (IHXViewPortSink*)(*ndx);	    HX_RELEASE(pViewPortSink);	}    }    HX_DELETE(m_pViewPortSinkList);    HX_RELEASE(m_pViewPortSupplier);    HX_RELEASE(m_pPlayer);}

⌨️ 快捷键说明

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