ui/uiengine/medialists/src/glximagereader.cpp
changeset 26 c499df2dbb33
parent 23 74c9f037fd5d
equal deleted inserted replaced
24:99ad1390cd33 26:c499df2dbb33
    26 #include <caf/attributeset.h>
    26 #include <caf/attributeset.h>
    27 #include <DRMHelper.h>
    27 #include <DRMHelper.h>
    28 
    28 
    29 #include "glximagereader.h"
    29 #include "glximagereader.h"
    30 
    30 
       
    31 const TInt KDefaultFrameCount = 1;
    31 
    32 
    32 // ---------------------------------------------------------
    33 // ---------------------------------------------------------
    33 // CGlxImageReader::NewL
    34 // CGlxImageReader::NewL
    34 // ---------------------------------------------------------
    35 // ---------------------------------------------------------
    35 //  
    36 //  
    36 CGlxImageReader* CGlxImageReader::NewL(MImageReadyCallBack& aNotify)
    37 CGlxImageReader* CGlxImageReader::NewL()
    37     {
    38     {
    38     TRACER("CGlxImageReader::NewL");  
    39     TRACER("CGlxImageReader::NewL");  
    39     
    40     
    40     CGlxImageReader* self = CGlxImageReader::NewLC( aNotify);
    41     CGlxImageReader* self = CGlxImageReader::NewLC();
    41     CleanupStack::Pop(self);
    42     CleanupStack::Pop(self);
    42     return self;
    43     return self;
    43     }
    44     }
    44 
    45 
    45 // ---------------------------------------------------------
    46 // ---------------------------------------------------------
    46 // CGlxImageReader::NewLC
    47 // CGlxImageReader::NewLC
    47 // ---------------------------------------------------------
    48 // ---------------------------------------------------------
    48 //  
    49 //  
    49 CGlxImageReader* CGlxImageReader::NewLC(MImageReadyCallBack& aNotify)
    50 CGlxImageReader* CGlxImageReader::NewLC()
    50     {
    51     {
    51     TRACER("CGlxImageReader::NewLC"); 
    52     TRACER("CGlxImageReader::NewLC"); 
    52     
    53     
    53     CGlxImageReader* self = new(ELeave) CGlxImageReader(aNotify);
    54     CGlxImageReader* self = new(ELeave) CGlxImageReader();
    54     CleanupStack::PushL(self);
    55     CleanupStack::PushL(self);
    55     self->ConstructL();
    56     self->ConstructL();
    56     return self;
    57     return self;
    57     }
    58     }
    58 
    59 
    59 // ---------------------------------------------------------
    60 // ---------------------------------------------------------
    60 // CGlxImageReader::CGlxImageReader
    61 // CGlxImageReader::CGlxImageReader
    61 // ---------------------------------------------------------
    62 // ---------------------------------------------------------
    62 // 
    63 // 
    63 CGlxImageReader::CGlxImageReader(MImageReadyCallBack& aNotify)
    64 CGlxImageReader::CGlxImageReader()
    64 :CActive(0),iNotify(aNotify)
       
    65     {
    65     {
    66     //no implementation
    66     //no implementation
    67     }
    67     }
    68 
    68 
    69 // ---------------------------------------------------------
    69 // ---------------------------------------------------------
    73 CGlxImageReader::~CGlxImageReader()
    73 CGlxImageReader::~CGlxImageReader()
    74     {
    74     {
    75     TRACER("CGlxImageReader::~");
    75     TRACER("CGlxImageReader::~");
    76     if(iImageDecoder)
    76     if(iImageDecoder)
    77         {
    77         {
    78         Cancel();
       
    79         delete iImageDecoder;
    78         delete iImageDecoder;
    80         }  
    79         }  
    81 
       
    82     if(iFrame)
       
    83         {
       
    84         delete iFrame;
       
    85         }
       
    86 
    80 
    87     if(iImgViewerMgr)
    81     if(iImgViewerMgr)
    88         {
    82         {
    89         iImgViewerMgr->Close();
    83         iImgViewerMgr->Close();
    90         }
    84         }
    95 // ---------------------------------------------------------
    89 // ---------------------------------------------------------
    96 //
    90 //
    97 void CGlxImageReader::ConstructL()
    91 void CGlxImageReader::ConstructL()
    98     {
    92     {
    99     TRACER("CGlxImageReader::ConstructL");
    93     TRACER("CGlxImageReader::ConstructL");
   100 
       
   101     CActiveScheduler::Add(this);
       
   102 
    94 
   103     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
    95     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
   104     if (!iImgViewerMgr)
    96     if (!iImgViewerMgr)
   105         {
    97         {
   106         return;
    98         return;
   123         }
   115         }
   124     if (errInImage != KErrNone)
   116     if (errInImage != KErrNone)
   125         {
   117         {
   126         User::Leave(errInImage);
   118         User::Leave(errInImage);
   127         }
   119         }
   128 
       
   129     if ( iImageDecoder )
       
   130         {
       
   131         iFrame = new (ELeave) CFbsBitmap();
       
   132         iFrame->Create(iImageDecoder->FrameInfo(0).iOverallSizeInPixels,
       
   133                 iImageDecoder->FrameInfo(0).iFrameDisplayMode);
       
   134         iImageDecoder->Convert(&iStatus, *iFrame, 0);
       
   135         SetActive();
       
   136         }
       
   137     }
   120     }
   138 
   121 
   139 
       
   140 // ---------------------------------------------------------
       
   141 // CGlxImageReader::DoCancel
       
   142 // ---------------------------------------------------------
       
   143 //
       
   144 void CGlxImageReader::DoCancel()
       
   145     {
       
   146     TRACER("CGlxImageReader::DoCancel");
       
   147     iImageDecoder->Cancel();
       
   148     }
       
   149 
       
   150 // ---------------------------------------------------------
       
   151 // CGlxImageReader::RunL
       
   152 // ---------------------------------------------------------
       
   153 //
       
   154 void CGlxImageReader::RunL()
       
   155     {
       
   156     TRACER("CGlxImageReader::RunL");
       
   157     
       
   158     TSize size = TSize();
       
   159     TInt reqStatus = iStatus.Int(); 
       
   160     if (reqStatus == KErrNone && iFrame)
       
   161         {
       
   162         size = iFrame->SizeInPixels();
       
   163         }
       
   164     GLX_DEBUG2("CGlxImageReader::RunL() reqStatus=%d", reqStatus);   
       
   165     iNotify.ImageSizeReady(reqStatus, size);
       
   166     }
       
   167 // ---------------------------------------------------------
   122 // ---------------------------------------------------------
   168 // CGlxImageReader::GetDRMRightsL
   123 // CGlxImageReader::GetDRMRightsL
   169 // ---------------------------------------------------------
   124 // ---------------------------------------------------------
   170 //
   125 //
   171 TInt CGlxImageReader::GetDRMRightsL(TInt aAttribute)
   126 TInt CGlxImageReader::GetDRMRightsL(TInt aAttribute)
   207 		    	value = EFalse;
   162 		    	value = EFalse;
   208 			}
   163 			}
   209 	    }
   164 	    }
   210     return value;
   165     return value;
   211     }
   166     }
       
   167 
       
   168 // ---------------------------------------------------------
       
   169 // CGlxImageReader::GetFrameCount
       
   170 // ---------------------------------------------------------
       
   171 //
       
   172 TInt CGlxImageReader::GetFrameCount()
       
   173     {
       
   174     TRACER("CGlxImageReader::GetFrameCount");
       
   175     TInt frameCount = KDefaultFrameCount;
       
   176     if (iImageDecoder)
       
   177         {
       
   178         frameCount = iImageDecoder->FrameCount();
       
   179         }
       
   180     GLX_DEBUG2("CGlxImageReader::GetFrameCount frameCount=%d", frameCount);
       
   181     return frameCount;
       
   182     }
       
   183 
       
   184 // ---------------------------------------------------------
       
   185 // CGlxImageReader::GetDimensions
       
   186 // ---------------------------------------------------------
       
   187 //
       
   188 TSize CGlxImageReader::GetDimensions()
       
   189     {
       
   190     TRACER("CGlxImageReader::GetDimensions");
       
   191     TSize size = TSize();
       
   192     if (iImageDecoder)
       
   193         {
       
   194         size = iImageDecoder->FrameInfo().iOverallSizeInPixels;
       
   195         }
       
   196     GLX_DEBUG3("CGlxImageReader::GetImageSize() size w(%d) h(%d)",
       
   197             size.iWidth, size.iHeight);
       
   198     return size;
       
   199     }