photosgallery/viewframework/medialists/src/glximagereader.cpp
changeset 1 9ba538e329bd
parent 0 4e91876724a2
child 2 7d9067c6fcb1
equal deleted inserted replaced
0:4e91876724a2 1:9ba538e329bd
    67 // ---------------------------------------------------------
    67 // ---------------------------------------------------------
    68 //
    68 //
    69 CGlxImageReader::~CGlxImageReader()
    69 CGlxImageReader::~CGlxImageReader()
    70     {
    70     {
    71     TRACER("CGlxImageReader::~");
    71     TRACER("CGlxImageReader::~");
    72     
    72     if(iImageDecoder)
    73     Cancel();
    73         {
    74     delete iFrame;
    74         Cancel();
    75     delete iImageDecoder;
    75         delete iImageDecoder;
       
    76         }  
       
    77 
       
    78     if(iFrame)
       
    79         {
       
    80         delete iFrame;
       
    81         }
       
    82 
    76     if(iImgViewerMgr)
    83     if(iImgViewerMgr)
    77         {
    84         {
    78         iImgViewerMgr->DeleteInstance();
    85         iImgViewerMgr->DeleteInstance();
    79         }
    86         }
    80     }
    87     }
    87     {
    94     {
    88     TRACER("CGlxImageReader::ConstructL");
    95     TRACER("CGlxImageReader::ConstructL");
    89     
    96     
    90     CActiveScheduler::Add(this);
    97     CActiveScheduler::Add(this);
    91     iIsLaunchedFromFMngr = EFalse;
    98     iIsLaunchedFromFMngr = EFalse;
    92     TDataType imageType;
       
    93 
    99 
    94     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
   100     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
    95     if (iImgViewerMgr && iImgViewerMgr->IsPrivate())
   101     if (iImgViewerMgr && iImgViewerMgr->IsPrivate())
    96         {
   102         {
    97         iIsLaunchedFromFMngr = ETrue;    
   103         iIsLaunchedFromFMngr = ETrue;    
    98         }
   104         }
    99     
   105     
   100     GetFileTypeL(imageType);
   106     TInt errInImage = KErrNone;
   101     if (iIsLaunchedFromFMngr)
   107     if (iIsLaunchedFromFMngr)
   102         {
   108         {
   103         // TODO type cast handle to RFile
   109         // TODO type cast handle to RFile
   104         iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek);
   110         TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(iImgViewerMgr->ImageFileHandle(), ContentAccess::EPeek));
   105         }
   111         }
   106     else
   112     else
   107         { 
   113         {
   108         iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des());
   114         TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des()));
   109         }
   115         }
   110 
   116 
       
   117     if(errInImage != KErrNone)
       
   118         {
       
   119         User::Leave(errInImage);
       
   120         }
   111     iFrame = new(ELeave)CFbsBitmap();
   121     iFrame = new(ELeave)CFbsBitmap();
   112     iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode);
   122     iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,iImageDecoder->FrameInfo(0).iFrameDisplayMode);
   113     iImageDecoder->Convert(&iStatus,*iFrame,0);
   123     iImageDecoder->Convert(&iStatus,*iFrame,0);
   114     SetActive();
   124     SetActive();
   115     }
   125     }
   116 
   126 
   117 // ---------------------------------------------------------
       
   118 // CGlxImageReader::GetFileTypeL
       
   119 // ---------------------------------------------------------
       
   120 //
       
   121 void CGlxImageReader::GetFileTypeL(TDataType aMimeType)
       
   122     {
       
   123     TRACER("CGlxImageReader::GetFileTypeL");
       
   124     
       
   125     RApaLsSession session;
       
   126     User::LeaveIfError(session.Connect());
       
   127     CleanupClosePushL(session);
       
   128 
       
   129     TUid uid;
       
   130     if(iIsLaunchedFromFMngr)
       
   131         {
       
   132         // TODO type cast handle to RFile
       
   133         User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageFileHandle(), uid, aMimeType));
       
   134         }
       
   135     else
       
   136         {
       
   137         User::LeaveIfError(session.AppForDocument(iImgViewerMgr->ImageUri()->Des(),uid,aMimeType));
       
   138         }
       
   139     CleanupStack::PopAndDestroy(); // session
       
   140     }
       
   141 
   127 
   142 // ---------------------------------------------------------
   128 // ---------------------------------------------------------
   143 // CGlxImageReader::DoCancel
   129 // CGlxImageReader::DoCancel
   144 // ---------------------------------------------------------
   130 // ---------------------------------------------------------
   145 //
   131 //
   187     TInt rights = ERightsNone;
   173     TInt rights = ERightsNone;
   188     TBool drmProtected = EFalse;
   174     TBool drmProtected = EFalse;
   189     attributeSet.GetValue(EIsProtected,drmProtected);
   175     attributeSet.GetValue(EIsProtected,drmProtected);
   190     if(!drmProtected)
   176     if(!drmProtected)
   191         {
   177         {
   192         CleanupStack::PopAndDestroy();
   178         CleanupStack::PopAndDestroy(&attributeSet);
   193         delete content;
   179         delete content;
   194         content = NULL;
   180         content = NULL;
   195         return EFalse;
   181         return EFalse;
   196         }
   182         }
   197     attributeSet.GetValue(ECanView,rights);
   183     attributeSet.GetValue(ECanView,rights);
   198     CleanupStack::PopAndDestroy();
   184     CleanupStack::PopAndDestroy(&attributeSet);
   199 
   185 
   200     if(content)
   186     if(content)
   201         {
   187         {
   202         delete content;
   188         delete content;
   203         content = NULL;
   189         content = NULL;