EngSrc/IEBgpsController.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
// Include files
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include <BAUTILS.H>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include "IEBgpsController.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
#include "debug.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
// ====================== MEMBER FUNCTION ================================== //
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
CIEBgpsController* CIEBgpsController::NewL(RFs& aFileServer,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
                                        MIEBgpsControllerObserver& aIEBgpsControllerObserver, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
                                        CIEEngineUtils& aEngineUtils,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
                                        RCriticalSection* aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
    CIEBgpsController* self = new (ELeave) CIEBgpsController(aFileServer,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
                                                            aIEBgpsControllerObserver, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
                                                            aEngineUtils,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
                                                            aCritical);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
    CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
    self->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
    CleanupStack::Pop();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
CIEBgpsController::CIEBgpsController(RFs& aFileServer, MIEBgpsControllerObserver& aIEBgpsControllerObserver, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
                                     CIEEngineUtils& aEngineUtils, RCriticalSection* aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
    :iFileServer(aFileServer),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
    iIEBgpsControllerObserver(aIEBgpsControllerObserver),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
    iFileLoader(NULL),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
    iIEEngineUtils(aEngineUtils),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
    iCritical(aCritical)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
CIEBgpsController::~CIEBgpsController()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
    DP0_IMAGIC(_L("CIEBgpsController::~CIEBgpsController++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
    if(iIEBgpsClient)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
        delete iIEBgpsClient;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
        iIEBgpsClient = NULL;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
    iFaceCropImageDataArray.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
    iFBCoordinateArray.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
    DP0_IMAGIC(_L("CIEBgpsController::~CIEBgpsController--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
void CIEBgpsController::ConstructL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
    DP0_IMAGIC(_L("CIEBgpsController::ConstructL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
    iImageIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
    iSingleTNGeneration = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
    iTnCreationCancelled = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    iAllTNsDone = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
    //iIEBgpsClient = CIEImageProcessing::NewL(*this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
    DP0_IMAGIC(_L("CIEBgpsController::ConstructL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
void CIEBgpsController::SetFileLoader(CIEFileLoader* aFileLoader)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
    DP0_IMAGIC(_L("CIEBgpsController::SetFileLoader"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    iFileLoader = aFileLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
void CIEBgpsController::CreateImageProcessing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
    DP0_IMAGIC(_L("CIEBgpsController::CreateImageProcessing"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
    iIEBgpsClient = CIEImageProcessing::NewL(*this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
void CIEBgpsController::ThumbnailGenerationCompleted(TInt aErrorCode)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
    DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    if (aErrorCode == KErrCancel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    /*CImageData* imageData = iIEBgpsControllerObserver.GetImageData(iTnCreationIndex, EImages);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    TFileName filename;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    imageData->GetFileName(filename, ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
    DP1_IMAGIC(_L("CFaceBrowser::BrowseFacesL 512x512TNFile = %S ++"), &filename);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
    //Single TN generation ----------->
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
    if(aErrorCode != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
        DP1_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - Error in TN creation: %d"), aErrorCode);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
        CImageData* imageData = iIEBgpsControllerObserver.GetImageData(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
        //Mark image as corrupted so we do not try to generate TN or load it
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
        imageData->iGridData.iCorrupted = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
        //In Error case any way delete the iCorrupted Thumbnail + file we were trying to generate TN(if it is not original)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
        if(!iSingleFaceDetectionOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
            DeleteCorruptedThumbNailFile(iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
            if(iJpegFilename.Find(KPAlbTNFilePath) != KErrNotFound)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
                DeleteCorruptedThumbNailFile(iJpegFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    iSingleFaceDetectionOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
    //If no error mark that TN was created
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
    if(aErrorCode == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
        if(i512x512TNCreationOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
            DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - i512x512TNCreationOn"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
            iImageDataArray[iTnCreationIndex]->iGridData.iCorrupted = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
            iImageDataArray[iTnCreationIndex]->SetImageReady(ESize512x512, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
            iIEBgpsControllerObserver.SingleTNGenerationComplete(iTnCreationIndex, ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
/*#ifdef FACE_DETECTION
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
            TInt count = iFBCoordinateArray.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
            for(TInt i=0; i<count; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
                iFBCoordinateArray.Remove(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
            iSingleFBCoordinateArray = &iFBCoordinateArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
            iImageData = iIEBgpsControllerObserver.GetImageData(iTnCreationIndex, EImages);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
            iIEBgpsClient->StartSingleFaceDetection(iTnCreationIndex, *iSingleFBCoordinateArray, iImageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
            iSingleFaceDetectionOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
#endif*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
        if(i128x128TNCreationOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
            DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - i128x128TNCreationOn"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
            iImageDataArray[iTnCreationIndex]->SetImageReady(ESize128x128, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
            iIEBgpsControllerObserver.SingleTNGenerationComplete(iTnCreationIndex, ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
        if(i32x32TNCreationOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
            DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - i32x32TNCreationOn"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
            iImageDataArray[iTnCreationIndex]->SetImageReady(ESize32x32, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
            iIEBgpsControllerObserver.SingleTNGenerationComplete(iTnCreationIndex, ESize32x32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
#ifdef FACE_DETECTION
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
            TInt count = iFBCoordinateArray.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
            for(TInt i=0; i<count; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
                iFBCoordinateArray.Remove(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
            iSingleFBCoordinateArray = &iFBCoordinateArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
            iImageData = iIEBgpsControllerObserver.GetImageData(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
            //iIEBgpsClient->StartSingleFaceDetection(iTnCreationIndex, *iSingleFBCoordinateArray, iImageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
            iSingleFaceDetectionOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
    if(aErrorCode != KErrNone || !iSingleFaceDetectionOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
        TThumbSize res;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
        iTnCreationIndex = FindMissingTN(res);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
        iAllTNsDone = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
        //Check if all TN images are done
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
        for(TInt i=0; i<iImageDataArray.Count(); i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
            if((!iImageDataArray[i]->IsImageReady(ESize512x512) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
               !iImageDataArray[i]->IsImageReady(ESize128x128) ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
               !iImageDataArray[i]->IsImageReady(ESize32x32)) &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
               !iImageDataArray[i]->iGridData.iCorrupted )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
                iAllTNsDone = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
                DP1_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - Continue TN creation from index: %d"), i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
                        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
        if(!iAllTNsDone && iTnCreationIndex >= 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
            //Start creating thumbnails by calling TN creator
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
            if(res == ESize512x512)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
                DP1_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - Res: ESize512x512, Index: %d"),iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
                i512x512TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
                i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
                i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
                Generate512x512Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
            else if(res == ESize128x128)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
                DP1_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - Res: ESize128x128, Index: %d"),iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
                i128x128TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
                i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
                i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
                Generate128x128Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
            else if(res == ESize32x32)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
                DP1_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - Res: ESize32x32, Index: %d"),iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
                i32x32TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
                i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
                i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
                Generate32x32Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
        // Callback after completion of all TNs 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
        if(iAllTNsDone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
            i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
            i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
            i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
            DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted - All thumbnails are created, start face Detection"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
            //iIEBgpsClient->StartFaceDetection(iImageDataArray);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
            //iBackGroundFaceDetectionOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
            iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
    DP0_IMAGIC(_L("CIEBgpsController::ThumbnailGenerationCompleted --"));    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
void CIEBgpsController::HandleError(TInt aError)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
    DP0_IMAGIC(_L("CIEBgpsController::HandleError"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
    //Handle BGPS errors here
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
    //Cancel UI frame blinking, we can not do anythign else if BGPS is jammed??
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
    //iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
    if(i32x32TNCreationOn || i128x128TNCreationOn || i512x512TNCreationOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
        DP0_IMAGIC(_L("CIEBgpsController::HandleError - Error on TN generation, try to continue"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
        ThumbnailGenerationCompleted(aError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
        iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
void CIEBgpsController::ThumbnailGenerationCancelled(TInt /*aErrorCode*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
    //Start TN generation again if it was stopped
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
    if(iTnCreationCancelled)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
        ;//StartSingleFaceDetection();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
void CIEBgpsController::GenerateThumbNailL(const TDes &aOrgFile, TThumbSize /*aTNResolution*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
    DP0_IMAGIC(_L("CIEBgpsController::GenerateThumbNailL ++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
    iSavedFileName.Copy(aOrgFile);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
          
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
    /*Generating Thumbnail path for 320x320 */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
    iIEEngineUtils.GenerateThumbnailFileName(ESize32x32,iSavedFileName,iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
    /*Creating folder if not exists */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
    TParse parser;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
    parser.Set(iTNFilename, NULL, NULL );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
    TFileName name = parser.NameAndExt();//image file name
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
    TFileName tnPath = parser.DriveAndPath();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
    CIEEngineUtils::CreateTNFolder(iFileServer, tnPath);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
    /*Generating TN file with absolute path */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
    tnPath.Append(name);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
    /* TN file name with absolute path*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
    iTNFilename.Copy(tnPath);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
    /*Set Single Thumbnail generation flag on */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
    iSingleTNGeneration = ETrue; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
    /*Generate TN for 320x320 resolution */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
    iLatestCreatedTNSize = ESize32x32;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
    iTmpImageData = CImageData::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
    TSize originalSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
    iIEEngineUtils.GetImageSizeL(iSavedFileName, originalSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
    DP1_IMAGIC(_L("iTNFilename: %S"), &iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
    TSize size(320, 320);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
    if (originalSize.iWidth && originalSize.iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
        if(originalSize.iWidth > originalSize.iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
            { // Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
            size.iHeight = 320 * originalSize.iHeight / originalSize.iWidth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
            if(size.iHeight%2 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
                size.iHeight++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
        else // Portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
            size.iWidth = 320 * originalSize.iWidth / originalSize.iHeight;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
            if(size.iWidth%2 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
                size.iWidth++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
    iTmpImageData->SetSize(size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
    iIEBgpsClient->GenerateTN(iSavedFileName, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
    DP0_IMAGIC(_L("CIEBgpsController::GenerateThumbNailL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
//Filename array has been filled(completetely) when this function is called
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
void CIEBgpsController::AllFilesAddedToFilenameArrayL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
    DP0_IMAGIC(_L("CIEBgpsController::AllFilesAddedToFilenameArrayL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
    //Get filename array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
    iImageDataArray = iFileLoader->GetFileNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
    // Start TN generation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
    if(iImageDataArray.Count() > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
        StartTNCreatorL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
    DP0_IMAGIC(_L("CIEBgpsController::AllFilesAddedToFilenameArrayL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
TReal CIEBgpsController::GetAspectRatio(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
    DP0_IMAGIC(_L("CIEBgpsController::GetAspectRatio"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
    iImageDataArray = iFileLoader->GetFileNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
    if(aIndex < iImageDataArray.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
        return iImageDataArray[aIndex]->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
        return 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
TReal CIEBgpsController::GetFacesAspectRatio(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
    DP0_IMAGIC(_L("CIEBgpsController::GetAspectRatio"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
    iImageDataArray = iFileLoader->GetFacesFileNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
    if(aIndex < iImageDataArray.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
        return iImageDataArray[aIndex]->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
        return 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
void CIEBgpsController::GenerateTNForEditedImage(const TFileName aEditedFileName, const TReal aAspectRatio)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
    DP0_IMAGIC(_L("CIEBgpsController::GenerateTNForEditedImage++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
    iSavedFileName.Copy(aEditedFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
    //set iSingleTNGeneration mode on
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   388
    iSingleTNGeneration = ETrue; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   389
    iAspectRatio = aAspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   390
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
    /*Generating 128x128 Thumbnail path */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
    iIEEngineUtils.GenerateThumbnailFileName(ESize128x128, aEditedFileName, iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
    //Create new imagedata instance to be appended to filename array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
    iTmpImageData = CImageData::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
    iTmpImageData->SetSize(TSize(128 * iAspectRatio, 128)); // TODO no size info
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
    iLatestCreatedTNSize = ESize128x128;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
    iIEBgpsClient->GenerateTN(aEditedFileName, iTNFilename, TSize(128,128));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
    //iIEBgpsClient->GenerateTN(aEditedFileName, iTNFilename, TSize(32,32));//mikares32
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
    DP0_IMAGIC(_L("CIEBgpsController::GenerateTNForEditedImage--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
void CIEBgpsController::FilenameArrayCountChanged(const RArray<CImageData*>& aImageDataArray)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
    iImageDataArray = aImageDataArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
    //iIEBgpsControllerObserver.TotalNumberOfImagesChanged(iImageDataArray.Count());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
CImageData* CIEBgpsController::GetImageData(const TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
    DP1_IMAGIC(_L("CIEBgpsController::GetImageData %d"), aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
    return (aIndex <= iImageDataArray.Count()) ? iImageDataArray[aIndex] : NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
void CIEBgpsController::GetFaceCoordinates(const TFileName aTNFileName, RArray<TRect>& aFaceCoordinateArray)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
    DP0_IMAGIC(_L("CIEBgpsController::GetFaceCoordinates"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
    aFaceCoordinateArray.Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
    //iIEBgpsClient->FindFaces(aTNFileName, aFaceCoordinateArray);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
//If background face Detection is still continuing, we have to use GetSingleFaceCoordinates() function to get face coordinates
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
void CIEBgpsController::GetSingleFaceCoordinates(TInt aIndex, const TFileName /*aTNFileName*/, RArray<TRect>& aFaceCoordinateArray)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
    DP0_IMAGIC(_L("CIEBgpsController::GetSingleFaceCoordinates++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
    if(i128x128TNCreationOn || i512x512TNCreationOn || i32x32TNCreationOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
        iTnCreationCancelled = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
        CancelTNGeneration();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
        i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
        i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
        i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
    iSingleFBIndex = aIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
    iSingleFBCoordinateArray = &aFaceCoordinateArray;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
    //If BGPS face Detection was on, we have to stop it first. Othervice we can contiue directly to StartSingleFaceDetection() 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
    if(iBackGroundFaceDetectionOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
        {//We just cancel background face Detection, when cancel is complete we get callback to StartSingleFaceDetection()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
        //iIEBgpsClient->CancelFaceDetection();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
        iBackGroundFaceDetectionOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
        //StartSingleFaceDetection();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
    DP0_IMAGIC(_L("CIEBgpsController::GetSingleFaceCoordinates--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
/* Creating Single Thumbnails for Editing. After editing the image we are 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
 * genereating the thumbnails 128x128 & 640x480 resolution*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
void CIEBgpsController::CreateSingleTNL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
    DP0_IMAGIC(_L("CIEBgpsController::CreateSingleTN++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
    if(iLatestCreatedTNSize == ESize128x128)  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
        //Create and set data to image data item
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
        iTmpImageData->SetFileNameL(iSavedFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
        iImageDataArray[iImageIndex]->SetImageReady(EFullSize, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
        iImageDataArray[iImageIndex]->SetImageReady(ESize32x32, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
        iImageDataArray[iImageIndex]->SetImageReady(ESize512x512, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
        iImageDataArray[iImageIndex]->SetImageReady(ESize128x128, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
        //Insert new image data to filename array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
        iFileLoader->AddNewImage(iTmpImageData, iImageIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
        iImageDataArray = iFileLoader->GetFileNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
        //iIEBgpsControllerObserver.TotalNumberOfImagesChanged(iImageDataArray.Count());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
        /*Generating 320x320 Tumbnail path */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
        iIEEngineUtils.GenerateThumbnailFileName(ESize32x32,iSavedFileName,iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
        iIEBgpsControllerObserver.TNGenerationComplete(ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
        iLatestCreatedTNSize = ESize32x32;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
        TSize size;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
        TInt w, h;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
        if(iImageDataArray[iImageIndex]->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
            {//Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
            w=320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
            h = 320/iImageDataArray[iImageIndex]->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
            if(h%2 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
                h++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
        else//Portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
            h = 320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
            w = 320 * iImageDataArray[iImageIndex]->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
            if(w%2 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
                w++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
        size.iHeight = h;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
        size.iWidth = w;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
        iTNSize = size;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
        iIEBgpsClient->GenerateTN(iSavedFileName, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
    else if(iLatestCreatedTNSize == ESize32x32)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
        iImageDataArray = iFileLoader->GetFileNameArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
        iImageDataArray[iImageIndex]->SetImageReady(ESize32x32, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
        //iSingleTNGeneration = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
        iIEBgpsControllerObserver.TNGenerationComplete(ESize32x32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
        TSize size;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
        size.iHeight = 512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
        size.iWidth = 512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
        iIEEngineUtils.GenerateThumbnailFileName(ESize512x512, iSavedFileName, iTNFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
        iTNSize = size;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
        iIEBgpsClient->GenerateTN(iSavedFileName, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
        iLatestCreatedTNSize = ESize512x512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
    //TN creation complete
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
        iSingleTNGeneration = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
        iImageDataArray[iImageIndex]->SetImageReady(ESize512x512, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
        //Insert new image data to filename array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
        iFileLoader->ModifyImageData(iTmpImageData, iImageIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
        //Call observer/AppUI class about completing TN creation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
        iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
    DP0_IMAGIC(_L("CIEBgpsController::CreateSingleTN--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
void CIEBgpsController::DeleteCorruptedThumbNailFile(TFileName aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
    DP0_IMAGIC(_L("CIEBgpsController::DeleteCorruptedThumbNailFile++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
    //Checking for if we generated Imgaic TN already from iCorrupted file and delete it
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
    //if(aFileName.Find(KPAlbTNFilePath) != KErrNotFound)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
        if(BaflUtils::FileExists(iFileServer, aFileName))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
            TInt err = BaflUtils::DeleteFile(iFileServer, aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
            DP2_IMAGIC(_L("CIEBgpsController::DeleteCorruptedThumbNailFile - file found: %S, err:%d"), &aFileName, err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
    DP0_IMAGIC(_L("CIEBgpsController::DeleteCorruptedThumbNailFile--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
//Finds optimal size for 128x128 TN creation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
void CIEBgpsController::CheckOptimalFileFor128x128TnCreation(TInt aIndex, TFileName& aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
    DP0_IMAGIC(_L("CIEBgpsController::CheckOptimalFileForTnCreation++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
    //TFileName tmpName;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
    //iImageDataArray[aIndex]->GetFileName(tmpName, E512x512Thumbnail);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
    if(iImageDataArray[aIndex]->IsImageReady(ESize512x512))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
    //if(BaflUtils::FileExists(iFileServer, tmpName))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
        iImageDataArray[aIndex]->GetFileName(aFileName, ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
    else//(iFileNameData[aIndex]->IsImageReady(EOriginalImage))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
        iImageDataArray[aIndex]->GetFileName(aFileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
    DP0_IMAGIC(_L("CIEBgpsController::CheckOptimalFileForTnCreation--")); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
//Finds optimal size for 32x32 TN creation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
void CIEBgpsController::CheckOptimalFileFor32x32TnCreation(TInt aIndex, TFileName& aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
    DP0_IMAGIC(_L("CIEBgpsController::CheckOptimalFileForTnCreation++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
    if(iImageDataArray[aIndex]->IsImageReady(ESize128x128))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
        iImageDataArray[aIndex]->GetFileName(aFileName, ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
/*    else if(iImageDataArray[aIndex]->IsImageReady(E128x96Thumbnail))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
        iImageDataArray[aIndex]->GetFileName(aFileName, E128x96Thumbnail);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename did not exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
    else if(iImageDataArray[aIndex]->IsImageReady(ESize512x512))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
        iImageDataArray[aIndex]->GetFileName(aFileName, ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
    else//(iFileNameData[aIndex]->iMG_FileExist)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
        //DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename OK: %S"), &aFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
        iImageDataArray[aIndex]->GetFileName(aFileName, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
        DP1_IMAGIC(_L("CIEBgpsController::CheckFileNmaesExitst - filename exits: %S"), &aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
    DP0_IMAGIC(_L("CIEBgpsController::CheckOptimalFileForTnCreation--")); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
void CIEBgpsController::Generate128x128Thumbnails(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
    DP0_IMAGIC(_L("CIEBgpsController::Generate128x128Thumbnails++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
    //DP1_IMAGIC(_L("CIEBgpsController::Generate128x128Thumbnails - New TN to be created: %S"), &iImageDataArray[aIndex]->iIETN_128x128_Filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
    iImageDataArray[aIndex]->GetFileName(iTNFilename, ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
    iImageDataArray[aIndex]->GetFileName(iJpegFilename, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
    CheckOptimalFileFor128x128TnCreation(aIndex,iJpegFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
#ifdef USE_64X64_BITMAP_TN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
    TSize size(64,64);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
    TSize size(128,128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
    iIEBgpsClient->GenerateTN(iJpegFilename, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
    DP0_IMAGIC(_L("CIEBgpsController::Generate128x128Thumbnails--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
void CIEBgpsController::Generate32x32Thumbnails(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
    DP0_IMAGIC(_L("CIEBgpsController::Generate32x32Thumbnails++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
//    DP1_IMAGIC(_L("CIEBgpsController::Generate320x320Thumbnails - New TN to be created: %S"), &iImageDataArray[aIndex]->iIETN_32x32_Filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
    iImageDataArray[aIndex]->GetFileName(iTNFilename, ESize32x32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
    iImageDataArray[aIndex]->GetFileName(iJpegFilename, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
    CheckOptimalFileFor32x32TnCreation(aIndex,iJpegFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
    TSize size(32,32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
    iIEBgpsClient->GenerateTN(iJpegFilename, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
    DP0_IMAGIC(_L("CIEBgpsController::Generate32x32Thumbnails--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
void CIEBgpsController::Generate512x512Thumbnails(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
    DP0_IMAGIC(_L("CIEBgpsController::Generate512x512Thumbnails++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
    //DP1_IMAGIC(_L("CIEBgpsController::Generate640x480Thumbnails - New TN to be created: %S"), &iImageDataArray[aIndex]->iIETN_512x512_Filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
    iImageDataArray[aIndex]->GetFileName(iTNFilename, ESize512x512); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
    iImageDataArray[aIndex]->GetFileName(iJpegFilename, EFullSize);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
    TSize size(512,512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
    iIEBgpsClient->GenerateTN(iJpegFilename, iTNFilename, size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
    DP0_IMAGIC(_L("CIEBgpsController::Generate512x512Thumbnails--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
/*TReal CIEBgpsController::ReadAspectRatioL(TFileName& aFileName)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
    DP0_IMAGIC(_L("CIEBgpsController::ReadAspectRatio++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
    CImageDecoder* imageDecoder = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
    imageDecoder = CImageDecoder::FileNewL(iFileServer, aFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
    TFrameInfo frameInfo = imageDecoder->FrameInfo();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
    TSize size = frameInfo.iFrameCoordsInPixels.Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
    if(imageDecoder)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
        delete imageDecoder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
        imageDecoder = NULL;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
    DP0_IMAGIC(_L("CIEBgpsController::ReadAspectRatio--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
    return (TReal)size.iWidth/(TReal)size.iHeight; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   674
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   675
    }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   676
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   677
void CIEBgpsController::StartTNCreatorL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
    DP0_IMAGIC(_L("CIEBgpsController::StartTNCreator++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
    TThumbSize res;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
    if((iTnCreationIndex = FindMissingTN(res)) < 0) {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
        iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
    //start creating thumbnails by calling TN creator
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
    //callback when one TN is created is done to CIEBgpsController::ThumbnailGenerationCompleted function
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
    if(res == ESize512x512)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
        i512x512TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
        i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
        i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
        Generate512x512Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
    else if(res == ESize128x128)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
        i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
        i128x128TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
        i32x32TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   701
        Generate128x128Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   702
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   703
    else if(res == ESize32x32)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   704
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   705
        i512x512TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   706
        i128x128TNCreationOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   707
        i32x32TNCreationOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   708
        Generate32x32Thumbnails(iTnCreationIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   709
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   710
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   711
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   712
        //All TNs were already done
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   713
        iIEBgpsControllerObserver.TNGenerationComplete(ENotDefined);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   714
        //We complete face Detection here also because if there was no new images added -> no need to start face Detection in BGPS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   715
        iIEBgpsControllerObserver.FaceDetectionComplete();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   716
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   717
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   718
    DP0_IMAGIC(_L("CIEBgpsController::StartTNCreator--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   719
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   720
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   721
//Returns index of first missing TN from any TN size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   722
TInt CIEBgpsController::FindMissingTN(TThumbSize& aRes)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   723
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   724
    DP0_IMAGIC(_L("CIEBgpsController::FindMissingTN++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   725
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   726
    TInt currentIndex = iIEBgpsControllerObserver.GetSelectedImageIndex();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   727
    CImageData* gridData = iIEBgpsControllerObserver.GetImageData(currentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   728
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   729
    TInt tnIndex = -1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   730
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   731
    for(TInt i = 0; i<iImageDataArray.Count(); i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   732
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   733
        // Check to positive and negative direction from current picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   734
        for (TInt j=0; j<2; j++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   735
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   736
            // Calculate image index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   737
            tnIndex = currentIndex + (j ? i : -i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   738
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   739
            // Check that index is valid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   740
            if (tnIndex < 0 || tnIndex >= iImageDataArray.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   741
                continue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   742
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   743
        CImageData* imageData = iIEBgpsControllerObserver.GetImageData(tnIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   744
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   745
        //Mark image as corrupted so we do not try to generate TN or load it
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   746
        if(imageData->iGridData.iCorrupted)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   747
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   748
            tnIndex = -20/*KErrCorrupt*/;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   749
            continue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   750
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   751
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   752
        if(!iImageDataArray[tnIndex]->IsImageReady(ESize512x512))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   753
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   754
            TFileName filename;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   755
            iImageDataArray[tnIndex]->GetFileName(filename,ESize512x512);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   756
            DP1_IMAGIC(_L("CIEBgpsController::FindMissingTN - Filename to be crated: %S"), &filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   757
            aRes = ESize512x512;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   758
            //break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   759
            return tnIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   760
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   761
        if(!iImageDataArray[tnIndex]->IsImageReady(ESize128x128))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   762
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   763
            TFileName filename;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   764
            iImageDataArray[tnIndex]->GetFileName(filename,ESize128x128);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   765
            DP1_IMAGIC(_L("CIEBgpsController::FindMissingTN - Filename to be crated: %S"), &filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   766
            aRes = ESize128x128;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   767
            //break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   768
            return tnIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   769
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   770
        if(!iImageDataArray[tnIndex]->IsImageReady(ESize32x32))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   771
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   772
            TFileName filename;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   773
            iImageDataArray[tnIndex]->GetFileName(filename,ESize32x32);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   774
            DP1_IMAGIC(_L("CIEBgpsController::FindMissingTN - Filename to be crated: %S"), &filename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   775
            aRes = ESize32x32;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   776
            //break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   777
            return tnIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   778
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   779
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   780
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   781
    DP0_IMAGIC(_L("CIEBgpsController::FindMissingTN--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   782
    return -1;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   783
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   784
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   785
void CIEBgpsController::CancelTNGeneration()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   786
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   787
    DP0_IMAGIC(_L("CIEBgpsController::CancelTNGeneration"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   788
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   789
    iIEBgpsClient->CancelTNGeneration();    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   790
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   791
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   792
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   793
// EOF