Example #1
0
void CImageRescaler::RunL()
    {
    switch( iState ) 
        {
        case EStartRescale:
            {
            // Start rescaling process
            DecodeL();
            break;
            }
        case EDecoding:
            {
            if(iStatus == KErrNone) 
                {
                ScaleL();
                }
            else if(iStatus == KErrUnderflow) 
                {
                iImageDecoder->ContinueConvert( &iStatus );
                SetActive();
                }
            else
                {
                // Unknown error
                iErr = iStatus.Int();
                CompleteRerescale();
                }
            break;
            }
        case EEncoding:
            {
            iErr = iStatus.Int();
            CompleteRerescale();
            break;
            }
        case EScaling:
            {
            EncodeL();
            break;
            }
        default:
            {
            iErr = KErrGeneral;
            CompleteRerescale();
            break;
            }
        }   
    }
Example #2
0
// -----------------------------------------------------------------------------
// Implementation of CActive
// -----------------------------------------------------------------------------
//
void CMPXImageUtil::RunL()
    {
    TInt deleteDecoder( ETrue );
    switch( iState ) 
        {
        case EDecoding:
            {
            if( iStatus == KErrNone ) 
                {
                if ( !iScaleRquired )
                    {   
                    iState = EIdle;
                    iObserver.ExtractAlbumArtCompleted(iBitmap,KErrNone);
                    iBitmap = NULL;
                    }
                else 
                    {
                    deleteDecoder = EFalse;
                    ScaleL();
                    }
                break;
                }
            else
                {
                // some error
                if ( iBitmap )
                    {
                    delete iBitmap;
                    iBitmap = NULL;                        
                    }
                iState = EIdle;
                iObserver.ExtractAlbumArtCompleted(iBitmap, iStatus.Int());
                break;   
                }
            }
        case EScaling:
            {
            iState = EIdle;
            iObserver.ExtractAlbumArtCompleted(iBitmap,iStatus.Int());
            iBitmap = NULL; 
            }
            break;

        default: // some error
            {
            iState = EIdle;
            if ( iBitmap )
                {
                delete iBitmap;
                iBitmap = NULL;                        
                }
            iObserver.ExtractAlbumArtCompleted(iBitmap,iStatus.Int());
            break;
            }
        }

    // It's safe to destroy iImageData here
    delete iImageData;
    iImageData = NULL;
    
    if ( deleteDecoder )
        {
        delete iImageDecoder;
        iImageDecoder = NULL;
        }
    }