PreExposureDelay::PreExposureDelay(my_context ctx) : my_base(ctx)
{  
    UISubState uiSubState = PRINTENGINE->PauseRequested() ? AboutToPause : 
                                                            NoUISubState;
    
    PRINTENGINE->SendStatus(PreExposureDelayState, Entering, uiSubState);

    if (PRINTENGINE->NeedsPreExposureDelay())
    {
        PRINTENGINE->StartDelayTimer(PRINTENGINE->GetPreExposureDelayTimeSec());
    }
    else
    {
        // no delay needed (we really should never get here)
        post_event(EvDelayEnded());
    }
}
PreExposureDelay::PreExposureDelay(my_context ctx) : my_base(ctx)
{  
    UISubState uiSubState = PRINTENGINE->PauseRequested() ? AboutToPause : 
                                                            NoUISubState;
    
    PRINTENGINE->SendStatus(PreExposureDelayState, Entering, uiSubState);

    // check to see if the door is still open after calibrating,
    // in case we skipped the tray deflection steps
    if (PRINTENGINE->DoorIsOpen())
        post_event(EvDoorOpened());
    else
    {
        double delay = PRINTENGINE->GetPreExposureDelayTimeSec();
        if (delay < 0.001)
        {
            // no delay needed
            post_event(EvDelayEnded());
        }
        else
            PRINTENGINE->StartDelayTimer(delay);
    }
}