Example #1
0
void vfeSession::StateChanged (pov_frontend::State NewState)
{
  if (NewState == kReady || NewState == kStopping)
    if (m_BackendState > kReady)
      RenderStopped () ;
  if (NewState == kRendering)
    m_StartTime = GetTimestamp();
  m_BackendState = NewState ;
  NotifyEvent(stBackendStateChanged);
}
Example #2
0
bool vfeSession::ProcessCancelRender (void)
{
  if (m_Frontend->GetState () > kReady)
  {
    try
    {
      m_Frontend->Stop () ;
    }
    catch (pov_base::Exception& e)
    {
      if (e.codevalid() && e.code() == kNotNowErr)
      {
        Delay (100) ;
        return (m_Frontend->GetState() == kReady);
      }
      if (m_Frontend->GetState () > kReady)
      {
        // TODO FIXME
        // char str [256] ;
        // sprintf (str, "Failed to send stop rendering message (%s)", e.what()) ;
        // MessageBox (NULL, str, "POVMS error", MB_OK | MB_ICONEXCLAMATION) ;
        Delay (100) ;
        return (m_Frontend->GetState () == kReady);
      }
    }
  }
  else
  {
    if (m_Frontend->GetState () == kReady)
    {
      // we possibly have an anamolous situation
      // TODO FIXME
      // MessageBox (NULL, "Warning: had to force state to stopped", "Cancel Render", MB_OK | MB_ICONEXCLAMATION) ;
      RenderStopped();
    }
  }
  return (true);
}