IEBgps/src/IEBgpServerSession.cpp
changeset 3 93fff7023be8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IEBgps/src/IEBgpServerSession.cpp	Fri Oct 15 10:18:29 2010 +0900
@@ -0,0 +1,265 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors: Juha Kauppinen, Mika Hokkanen
+* 
+* Description: Photo Browser
+*
+*/
+
+// Include files
+#include <e32cons.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "IEBgpsInfo.h"
+#include "IEImageData.h"
+//#include <IEBGPSTrace.h>
+
+#include "IEBgpServerSession.h"
+#include "IETNGenerator.h"
+
+// --------------------------- MEMBER FUNCTIONS ---------------------------- //
+
+CIEBgpServerSession* CIEBgpServerSession::NewL(RFs* aFileServer)
+{
+	DP0_IMAGIC((_L("CIEBgpServerSession::NewL ++")));
+	CIEBgpServerSession* self = new (ELeave) CIEBgpServerSession();
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileServer);
+	CleanupStack::Pop();
+	DP0_IMAGIC((_L("<CIEBgpServerSession::NewL --")));
+	return self;
+}
+
+CIEBgpServerSession::~CIEBgpServerSession()
+{
+	DP0_IMAGIC((_L("CIEBgpServerSession::~CIEBgpServerSession ++")));
+ 
+ 	if(iIETNGeneratorAO)
+ 	{
+ 		delete iIETNGeneratorAO;
+ 		iIETNGeneratorAO = NULL;
+ 	}
+ 	
+ 	if(iFaceBrowser)
+ 	{
+ 	    delete iFaceBrowser;
+ 	    iFaceBrowser = NULL;
+ 	}
+	DP0_IMAGIC((_L("<CIEBgpServerSession::~CIEBgpServerSession --")));
+}
+
+CIEBgpServerSession::CIEBgpServerSession()
+{	
+	DP0_IMAGIC((_L("CIEBgpServerSession::CIEBgpServerSession ++")));
+	DP0_IMAGIC((_L("CIEBgpServerSession::CIEBgpServerSession --")));
+}
+
+void CIEBgpServerSession::ConstructL(RFs* aFileServer)
+    {
+	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL ++")));
+/*	
+	TInt initError = KErrNone;
+	if(initError != KErrNone)
+	{
+	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL- IDL Engine Creation Failed")));
+	User::Leave(initError);
+	}
+	
+*/	
+	iResolutionSize.iHeight = 512;
+	iResolutionSize.iWidth = 512;
+	
+	iIETNGeneratorAO = CIETNGeneratorAO::NewL(*aFileServer, *this);
+	
+	iFaceBrowser = CFaceBrowser::NewLC(*aFileServer, *this);
+	
+	DP0_IMAGIC((_L("CIEBgpServerSession::ConstructL --")));
+    }
+
+void CIEBgpServerSession::ServiceL(const RMessage2& aMessage)
+    {
+	DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL++")));
+
+	TInt error = KErrNone;
+	
+	switch(aMessage.Function())
+    	{
+    		case EIESrvTest:
+        		{
+                TInt value = aMessage.Int0();
+                aMessage.Complete(error);
+                break;
+        		}
+    		case EIESrvCloseSession:
+        		{
+        		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESrvCloseSession")));
+                break;
+        		}
+    	
+    		case EIEStartProcessing:
+        		{     
+        		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIEStartProcessing")));
+                break;
+        		}
+    		
+    		case EIEThumbnailGeneration:
+        		{
+        		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIEThumbnailGeneration")));
+        		iMessage = aMessage;
+        		iImageArray = *(RArray<CImageData*>*)aMessage.Ptr0();
+        		TInt count = iImageArray.Count();
+        		iIETNGeneratorAO->SetImageArray(iImageArray);
+        		
+        		iCount = 0;
+         		TFileName jpegFileName;
+         		TFileName imagicThumbFileName;
+                iImageArray[0]->GetFileName(jpegFileName, EFullSize);         		
+         		iImageArray[0]->GetFileName(imagicThumbFileName, ESize512x512);
+        	
+        		iIETNGeneratorAO->CreateThumbnailL(jpegFileName, imagicThumbFileName, iResolutionSize);
+        		break;	
+        		}
+    	
+    		case EIESingleTNGeneration:
+        		{
+        		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESingleTNGeneration")));
+        		iSingleTNGeneration = ETrue;
+        		iMessage = aMessage;
+        	
+        		TFileName jpegFileName;
+        	 	TFileName imagicThumbFileName;
+        	
+        		error  =  aMessage.Read(0, iJpegFileName, 0);
+        		error  =  aMessage.Read(1, iImagicThumbFileName, 0);
+        		
+        	 	iResolutionSize = *(TSize*)aMessage.Ptr2();
+        		if(error  == KErrNone)
+        			{
+        			iIETNGeneratorAO->CreateThumbnailL(iJpegFileName,iImagicThumbFileName,iResolutionSize);	
+        			}
+        		else
+        			{
+        			iSingleTNGeneration	= EFalse;
+        			iMessage.Complete(error);	
+        			}
+                break;
+        		}
+        		
+    		case EIESingleTNGenerationWithBitmap:
+                {
+                DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIESingleTNGenerationWithBitmap")));
+                iSingleTNGeneration = ETrue;
+                iMessage = aMessage;
+            
+                TFileName jpegFileName;
+                TFileName imagicThumbFileName;
+            
+                error  =  aMessage.Read(0, iJpegFileName, 0);
+                error  =  aMessage.Read(1, iImagicThumbFileName, 0);
+                
+                iResolutionSize = *(TSize*)aMessage.Ptr2();
+                iSrcBitmap = (CFbsBitmap*)aMessage.Ptr3();
+                
+                if(error  == KErrNone)
+                    {
+                    iIETNGeneratorAO->CreateThumbnailL(iJpegFileName,iImagicThumbFileName,iResolutionSize); 
+                    }
+                else
+                    {
+                    iSingleTNGeneration = EFalse;
+                    iMessage.Complete(error);   
+                    }
+                break;
+                }
+        		
+    		case EIECancelThumbnailGeneration:
+        		{
+        		DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL - EIECancelThumbnailGeneration")));
+        		iIETNGeneratorAO->CancelRequestsAndDeleteObjects();
+        		//Complete current "Cancel" message
+                aMessage.Complete(KErrNone);
+        		break;
+        		}   		
+    	
+    		default:
+    			break;
+    	}
+	
+	DP0_IMAGIC((_L("CIEBgpServerSession::ServiceL --")));	
+    }
+
+void CIEBgpServerSession::ThumbNailGenerationCompleted(TInt aError)
+    {
+    DP0_IMAGIC((_L("CIEBgpServerSession::ThumbNailGenerationCompleted++")));
+    
+	if(aError != KErrNone)
+	    {
+	    if(aError == KErrCancel)
+	        iMessage.Complete(ETNGenerationCancelled);
+	    else
+	        iMessage.Complete(aError);   
+	    }
+	if(aError == KErrNone)
+	    {
+    	if(iSingleTNGeneration)
+    		{
+    		iSingleTNGeneration	= EFalse;
+    		iMessage.Complete(ETNGenerationcomplete);	
+    		}
+    	else
+    		{
+    		iCount++;
+    
+    		if(iCount > iImageArray.Count()-1 )
+    		    {
+    			iMessage.Complete(ETNGenerationcomplete);	
+    		    }
+    		else
+    		    {
+    	        TFileName jpegFileName; 
+    	        TFileName imagicThumbFileName;
+    			iImageArray[0]->GetFileName(jpegFileName, EFullSize);
+                iImageArray[0]->GetFileName(imagicThumbFileName, ESize512x512);    			
+    			iIETNGeneratorAO->CreateThumbnailL(jpegFileName, imagicThumbFileName, iResolutionSize);		
+    		    }
+    		}
+	    }
+	DP0_IMAGIC((_L("CIEBgpServerSession::ThumbNailGenerationCompleted --")));
+    }
+
+void CIEBgpServerSession::FaceBrowsingComplete()
+    {
+    DP0_IMAGIC((_L("CIEBgpServerSession::FaceBrowsingComplete")));
+    iMessage.Complete(EFaceDetectionComplete);
+    }
+
+void CIEBgpServerSession::FaceBrowsingError(TInt aError)
+    {
+    DP0_IMAGIC((_L("CIEBgpServerSession::FaceBrowsingError")));
+    iMessage.Complete(aError);
+    }
+
+void CIEBgpServerSession::FaceCroppingError(TInt aError)
+    {
+    DP0_IMAGIC((_L("CIEBgpServerSession::FaceCroppingError")));
+    iMessage.Complete(aError);
+    }
+
+void CIEBgpServerSession::FaceSingleFaceBrowsingComplete()
+    {
+    DP0_IMAGIC((_L("CIEBgpServerSession::FaceSingleFaceBrowsingComplete")));
+    iMessage.Complete(ESingleFaceDetectionComplete);
+    }
+
+// EOF