IEBgps/src/IEBgpServerSession.cpp
changeset 3 93fff7023be8
equal deleted inserted replaced
2:e1e28b0273b0 3:93fff7023be8
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors: Juha Kauppinen, Mika Hokkanen
       
    13 * 
       
    14 * Description: Photo Browser
       
    15 *
       
    16 */
       
    17 
       
    18 // Include files
       
    19 #include <e32cons.h>
       
    20 
       
    21 #include <string.h>
       
    22 #include <stdlib.h>
       
    23 
       
    24 #include "IEBgpsInfo.h"
       
    25 #include "IEImageData.h"
       
    26 //#include <IEBGPSTrace.h>
       
    27 
       
    28 #include "IEBgpServerSession.h"
       
    29 #include "IETNGenerator.h"
       
    30 
       
    31 // --------------------------- MEMBER FUNCTIONS ---------------------------- //
       
    32 
       
    33 CIEBgpServerSession* CIEBgpServerSession::NewL(RFs* aFileServer)
       
    34 {
       
    35 	DP0_IMAGIC((_L("CIEBgpServerSession::NewL ++")));
       
    36 	CIEBgpServerSession* self = new (ELeave) CIEBgpServerSession();
       
    37 	CleanupStack::PushL(self);
       
    38 	self->ConstructL(aFileServer);
       
    39 	CleanupStack::Pop();
       
    40 	DP0_IMAGIC((_L("<CIEBgpServerSession::NewL --")));
       
    41 	return self;
       
    42 }
       
    43 
       
    44 CIEBgpServerSession::~CIEBgpServerSession()
       
    45 {
       
    46 	DP0_IMAGIC((_L("CIEBgpServerSession::~CIEBgpServerSession ++")));
       
    47  
       
    48  	if(iIETNGeneratorAO)
       
    49  	{
       
    50  		delete iIETNGeneratorAO;
       
    51  		iIETNGeneratorAO = NULL;
       
    52  	}
       
    53  	
       
    54  	if(iFaceBrowser)
       
    55  	{
       
    56  	    delete iFaceBrowser;
       
    57  	    iFaceBrowser = NULL;
       
    58  	}
       
    59 	DP0_IMAGIC((_L("<CIEBgpServerSession::~CIEBgpServerSession --")));
       
    60 }
       
    61 
       
    62 CIEBgpServerSession::CIEBgpServerSession()
       
    63 {	
       
    64 	DP0_IMAGIC((_L("CIEBgpServerSession::CIEBgpServerSession ++")));
       
    65 	DP0_IMAGIC((_L("CIEBgpServerSession::CIEBgpServerSession --")));
       
    66 }
       
    67 
       
    68 void CIEBgpServerSession::ConstructL(RFs* aFileServer)
       
    69     {
       
    70 	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL ++")));
       
    71 /*	
       
    72 	TInt initError = KErrNone;
       
    73 	if(initError != KErrNone)
       
    74 	{
       
    75 	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL- IDL Engine Creation Failed")));
       
    76 	User::Leave(initError);
       
    77 	}
       
    78 	
       
    79 */	
       
    80 	iResolutionSize.iHeight = 512;
       
    81 	iResolutionSize.iWidth = 512;
       
    82 	
       
    83 	iIETNGeneratorAO = CIETNGeneratorAO::NewL(*aFileServer, *this);
       
    84 	
       
    85 	iFaceBrowser = CFaceBrowser::NewLC(*aFileServer, *this);
       
    86 	
       
    87 	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL --")));
       
    88     }
       
    89 
       
    90 void CIEBgpServerSession::ServiceL(const RMessage2& aMessage)
       
    91     {
       
    92 	DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL++")));
       
    93 
       
    94 	TInt error = KErrNone;
       
    95 	
       
    96 	switch(aMessage.Function())
       
    97     	{
       
    98     		case EIESrvTest:
       
    99         		{
       
   100                 TInt value = aMessage.Int0();
       
   101                 aMessage.Complete(error);
       
   102                 break;
       
   103         		}
       
   104     		case EIESrvCloseSession:
       
   105         		{
       
   106         		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESrvCloseSession")));
       
   107                 break;
       
   108         		}
       
   109     	
       
   110     		case EIEStartProcessing:
       
   111         		{     
       
   112         		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIEStartProcessing")));
       
   113                 break;
       
   114         		}
       
   115     		
       
   116     		case EIEThumbnailGeneration:
       
   117         		{
       
   118         		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIEThumbnailGeneration")));
       
   119         		iMessage = aMessage;
       
   120         		iImageArray = *(RArray<CImageData*>*)aMessage.Ptr0();
       
   121         		TInt count = iImageArray.Count();
       
   122         		iIETNGeneratorAO->SetImageArray(iImageArray);
       
   123         		
       
   124         		iCount = 0;
       
   125          		TFileName jpegFileName;
       
   126          		TFileName imagicThumbFileName;
       
   127                 iImageArray[0]->GetFileName(jpegFileName, EFullSize);         		
       
   128          		iImageArray[0]->GetFileName(imagicThumbFileName, ESize512x512);
       
   129         	
       
   130         		iIETNGeneratorAO->CreateThumbnailL(jpegFileName, imagicThumbFileName, iResolutionSize);
       
   131         		break;	
       
   132         		}
       
   133     	
       
   134     		case EIESingleTNGeneration:
       
   135         		{
       
   136         		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESingleTNGeneration")));
       
   137         		iSingleTNGeneration = ETrue;
       
   138         		iMessage = aMessage;
       
   139         	
       
   140         		TFileName jpegFileName;
       
   141         	 	TFileName imagicThumbFileName;
       
   142         	
       
   143         		error  =  aMessage.Read(0, iJpegFileName, 0);
       
   144         		error  =  aMessage.Read(1, iImagicThumbFileName, 0);
       
   145         		
       
   146         	 	iResolutionSize = *(TSize*)aMessage.Ptr2();
       
   147         		if(error  == KErrNone)
       
   148         			{
       
   149         			iIETNGeneratorAO->CreateThumbnailL(iJpegFileName,iImagicThumbFileName,iResolutionSize);	
       
   150         			}
       
   151         		else
       
   152         			{
       
   153         			iSingleTNGeneration	= EFalse;
       
   154         			iMessage.Complete(error);	
       
   155         			}
       
   156                 break;
       
   157         		}
       
   158         		
       
   159     		case EIESingleTNGenerationWithBitmap:
       
   160                 {
       
   161                 DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESingleTNGenerationWithBitmap")));
       
   162                 iSingleTNGeneration = ETrue;
       
   163                 iMessage = aMessage;
       
   164             
       
   165                 TFileName jpegFileName;
       
   166                 TFileName imagicThumbFileName;
       
   167             
       
   168                 error  =  aMessage.Read(0, iJpegFileName, 0);
       
   169                 error  =  aMessage.Read(1, iImagicThumbFileName, 0);
       
   170                 
       
   171                 iResolutionSize = *(TSize*)aMessage.Ptr2();
       
   172                 iSrcBitmap = (CFbsBitmap*)aMessage.Ptr3();
       
   173                 
       
   174                 if(error  == KErrNone)
       
   175                     {
       
   176                     iIETNGeneratorAO->CreateThumbnailL(iJpegFileName,iImagicThumbFileName,iResolutionSize); 
       
   177                     }
       
   178                 else
       
   179                     {
       
   180                     iSingleTNGeneration = EFalse;
       
   181                     iMessage.Complete(error);   
       
   182                     }
       
   183                 break;
       
   184                 }
       
   185         		
       
   186     		case EIECancelThumbnailGeneration:
       
   187         		{
       
   188         		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIECancelThumbnailGeneration")));
       
   189         		iIETNGeneratorAO->CancelRequestsAndDeleteObjects();
       
   190         		//Complete current "Cancel" message
       
   191                 aMessage.Complete(KErrNone);
       
   192         		break;
       
   193         		}   		
       
   194     	
       
   195     		default:
       
   196     			break;
       
   197     	}
       
   198 	
       
   199 	DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL --")));	
       
   200     }
       
   201 
       
   202 void CIEBgpServerSession::ThumbNailGenerationCompleted(TInt aError)
       
   203     {
       
   204     DP0_IMAGIC((_L("CIEBgpServerSession::ThumbNailGenerationCompleted++")));
       
   205     
       
   206 	if(aError != KErrNone)
       
   207 	    {
       
   208 	    if(aError == KErrCancel)
       
   209 	        iMessage.Complete(ETNGenerationCancelled);
       
   210 	    else
       
   211 	        iMessage.Complete(aError);   
       
   212 	    }
       
   213 	if(aError == KErrNone)
       
   214 	    {
       
   215     	if(iSingleTNGeneration)
       
   216     		{
       
   217     		iSingleTNGeneration	= EFalse;
       
   218     		iMessage.Complete(ETNGenerationcomplete);	
       
   219     		}
       
   220     	else
       
   221     		{
       
   222     		iCount++;
       
   223     
       
   224     		if(iCount > iImageArray.Count()-1 )
       
   225     		    {
       
   226     			iMessage.Complete(ETNGenerationcomplete);	
       
   227     		    }
       
   228     		else
       
   229     		    {
       
   230     	        TFileName jpegFileName; 
       
   231     	        TFileName imagicThumbFileName;
       
   232     			iImageArray[0]->GetFileName(jpegFileName, EFullSize);
       
   233                 iImageArray[0]->GetFileName(imagicThumbFileName, ESize512x512);    			
       
   234     			iIETNGeneratorAO->CreateThumbnailL(jpegFileName, imagicThumbFileName, iResolutionSize);		
       
   235     		    }
       
   236     		}
       
   237 	    }
       
   238 	DP0_IMAGIC((_L("CIEBgpServerSession::ThumbNailGenerationCompleted --")));
       
   239     }
       
   240 
       
   241 void CIEBgpServerSession::FaceBrowsingComplete()
       
   242     {
       
   243     DP0_IMAGIC((_L("CIEBgpServerSession::FaceBrowsingComplete")));
       
   244     iMessage.Complete(EFaceDetectionComplete);
       
   245     }
       
   246 
       
   247 void CIEBgpServerSession::FaceBrowsingError(TInt aError)
       
   248     {
       
   249     DP0_IMAGIC((_L("CIEBgpServerSession::FaceBrowsingError")));
       
   250     iMessage.Complete(aError);
       
   251     }
       
   252 
       
   253 void CIEBgpServerSession::FaceCroppingError(TInt aError)
       
   254     {
       
   255     DP0_IMAGIC((_L("CIEBgpServerSession::FaceCroppingError")));
       
   256     iMessage.Complete(aError);
       
   257     }
       
   258 
       
   259 void CIEBgpServerSession::FaceSingleFaceBrowsingComplete()
       
   260     {
       
   261     DP0_IMAGIC((_L("CIEBgpServerSession::FaceSingleFaceBrowsingComplete")));
       
   262     iMessage.Complete(ESingleFaceDetectionComplete);
       
   263     }
       
   264 
       
   265 // EOF