Пример #1
0
void COverlayRenderer::CloseOverlay(const uint8_t plane)
{
  CAutoLock lock(&m_csOverlayQueue);

  if (m_pPlanes[plane])
  {
    ClearOverlay(plane);
    CopyToFrontBuffer(plane);

    OSDTexture nullTexture = {0};
    nullTexture.plane = plane;
    m_pLib->HandleOSDUpdate(nullTexture);

    // C# side will release the front buffer
    if (m_pPlanes[plane])
    {
      delete m_pPlanes[plane];
      m_pPlanes[plane] = NULL;
    }

    if (m_pPlanesBackbuffer[plane])
    {
      if (m_pPlanesBackbuffer[plane]->texture)
        m_pPlanesBackbuffer[plane]->texture->Release();

      delete m_pPlanesBackbuffer[plane];
      m_pPlanesBackbuffer[plane] = NULL;
    }
  }

  FreeOverlayQueue(plane);
  CancelTimers();
}
Пример #2
0
// --------------------------------------------------------------------------
// TAOState::CancelAll
// --------------------------------------------------------------------------
//
void TAOState::CancelAll()
{
    LOG_1( _L("TAOState::CancelAll") );

    // Cancel timers
    CancelTimers();

    // Close current connection
    iStateContext.ConnectionManager().CloseConnection();
}