AppSrc/ImagicContainerBrowser.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
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
// INCLUDE FILES
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
#include "ImagicContainerBrowser.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#include "ImagicViewBrowser.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
#include "TextureLoader.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
#include <e32math.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
#include <e32debug.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
#include <BitmapTransforms.h> 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
#include <e32cmn.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
#include <hal.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
#include "Imagic.hrh"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
#include "project.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
#include <hal.h>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
#include "DrawUtility.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
#include "ImagicConsts.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
#include <PhotoBrowser.rsg>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
const float CImagicContainerBrowser::KMinOneByOneZoom = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
const float CImagicContainerBrowser::KMaxOneByOneZoom = 4.2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
const TInt  CImagicContainerBrowser::KDoubleTapZoomOneByOne1 = KMinOneByOneZoom;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
const TInt  CImagicContainerBrowser::KDoubleTapZoomOneByOne2 = KMaxOneByOneZoom*0.71;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
const TReal CImagicContainerBrowser::KAngle2Start128Loading = 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
const TReal CImagicContainerBrowser::KAngle2Start128LoadingHwAcc = 6;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
const TInt  CImagicContainerBrowser::KGridSizeY = 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
/*const*/ TInt  CImagicContainerBrowser::K512TNImageBuffer = 1;//number of pictures to be loaded when using dynamic loading in grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
const TInt  CImagicContainerBrowser::K128TNImageBuffer = 8;//number of pictures to be loaded when using dynamic loading in grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
/*const*/ TInt  CImagicContainerBrowser::K32TNImageBuffer = 300;//number of pictures to be loaded when using dynamic loading in grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
/*const*/ TInt  CImagicContainerBrowser::K32TNImageUnLoadBuffer = K32TNImageBuffer*3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
const TReal KLoadingImageAspectRatio = 1.23;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
const TInt  KNumOf32ThumbsLoadedBefore128Thumb = 10;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
#ifdef ADAPTIVE_FRAMERATE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
#ifdef __WINS__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
const TInt  KDisplayDrawFreq = 20000; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
const TInt  KPowerSaveDisplayDrawFreq = 20000;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
const TInt  KWaitTicksAfterDraw = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
const TInt  KDisplayDrawFreq = 60000; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
const TInt  KPowerSaveDisplayDrawFreq = 135000;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
const TInt  KWaitTicksAfterDraw = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
const TInt  KDisplayDrawFreq = 60000;//display update freq in micro secons, 60.000us = 16.7FPS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
const TInt  KPowerSaveDisplayDrawFreq = 95000;//display update freq in micro secons, 12.5FPS
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
const float CImagicContainerBrowser::KSpacingX = 1.2;// Picture spacing in the grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
const float CImagicContainerBrowser::KSpacingY = 1.15;// Picture spacing in the grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
// Space between pictures in one by one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
const float CImagicContainerBrowser::KOneByOneSpacing=1.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
const float KFindFaceSearchRange = 0.01;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
const TInt KPowerSavePeriodicDelay = 300000;//0.3s
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
const TInt KTouchDelay = 1000000;//1s. longer because it scrolls even after user action
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
const TInt KPowerSavePeriodicInterval = 40000000;//0.4s
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
const TReal KInitDrawZoom = 0.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
#define INT_MAX ((int)(((unsigned int)-1)>>1))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
// macro to check if OneByOne view is zooming in. +0.01f for safety
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
#define IS_NOT_IN_ZOOM_ONEBYONE ((iDrawOneByOne->GetDrawOneByOneTargetZoom()) < (KDoubleTapZoomOneByOne1 + 0.01f))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
#define IS_ALMOST_ZERO (0.001)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
const float KUpdatesPerSecond = 1.0/15;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
//App UI Feature definition flags
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
#define USE_LOW_DRAW_SPEED_WHILE_LOADING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
// Texture coordinate data
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
const GLfixed CImagicContainerBrowser::iGlobalTexCoords[] =
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
   {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
   //bitmap has to be flipped over
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
   0,       1<<16,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
   1<<16,   1<<16,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
   0,       0,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
   1<<16,   0
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
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
// ================= MEMBER FUNCTIONS =======================
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
// CImagicContainerBrowser::ConstructL(const TRect& aRect)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
// EPOC two phased constructor
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
void CImagicContainerBrowser::ConstructL(CImagicAppUi* aImagicAppUi, CImagicViewBrowser* aView, const TRect& /*aRect*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
    DP0_IMAGIC(_L("CImagicContainerBrowser::ConstructL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
    iDisplayDrawFreq = KDisplayDrawFreq;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
    iUserInputGiven = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
    iDeleteTextures = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
    iLastEventFromKeys = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    iImagicAppUi = aImagicAppUi;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
    iIEngine = iImagicAppUi->GetEngine();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
    iView = aView;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
    iDrawGrid = CDrawGrid::NewL(this, iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
    iDrawOneByOne = CDrawOneByOne::NewL(this, iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    iDrawFaceBrowsing = CDrawFaceBrowsing::NewL(this, iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
#ifdef ADAPTIVE_FRAMERATE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
    iWaitDrawTicks = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
#endif  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
    //iPlayedWithDrag = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    iHoldSelection = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
    iOneByOneSlideByDrag = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
#ifdef MOMENTUM_MOVE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
    iMomentumMove = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
#ifdef RD_FACEFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
    //iDrawFaceFrame = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
    // Create the native window
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
    CreateWindowL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
    // Take the whole screen into use
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
    SetExtentToWholeScreen();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
    // If the device supports touch, construct long tap detector
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
    if ( AknLayoutUtils::PenEnabled() )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
        // Enable drag events listening
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
        EnableDragEvents();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
#ifdef USE_AVKON_LONGTAP_DETECTOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
        // Enable long tap detection
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
        iLongTapDetector = CAknLongTapDetector::NewL(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
        iLongTapDetector->SetTimeDelayBeforeAnimation(200000); // Delay before animation is set to 2 seconds in this example. Defualt is 0.15 seconds
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
        iLongTapDetector->SetLongTapDelay(400000); // Long tap delay is set to 5 seconds in this example. Defualt is 0.8 seconds
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
#ifdef USE_AVKON_TACTILE_FEEDBACK
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
        iTouchFeedBack = MTouchFeedback::Instance();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
        iTouchFeedBack->SetFeedbackEnabledForThisApp(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
        iGesture = CGesture::NewL(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
//        iGesture->SetThresholdOfTap(10);            // tap must have movement with 10 pixels
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
//        iGesture->SetThresholdOfMovement(50);       // experimental value on Ivalo
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
//        iGesture->SetThresholdOfFastMove(100);      // fast move if > 100 pixel/100ms 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
//        iGesture->SetMonitoringTime(100000);        // 100ms
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
#ifdef USE_AVKON_LONGTAP_DETECTOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
        iLongTapDetector = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
        iGesture = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
    //Activate view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
    ActivateL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
    //Create critical section
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
    iDrawLock.CreateLocal();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
    //Create an active object for animating the scene, keep priority high!
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
    //EPriorityIdle, EPriorityLow, EPriorityStandard, EPriorityUserInput, EPriorityHigh
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
    iPeriodic = CPeriodic::NewL( CActive::EPriorityUserInput);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
#ifdef USE_LOW_DRAW_SPEED_WHILE_LOADING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
    iPowerSavePeriodic = CPeriodic::NewL( CActive::EPriorityUserInput);//keep this high, othervice can not quarantee that draw freq drop is getting run time
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
    iPowerSavePeriodic->Start(KPowerSavePeriodicDelay, KPowerSavePeriodicInterval, TCallBack( CImagicContainerBrowser::PowerSaveCallBack, this ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
    // Initialize OpenGL
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
    InitAfterPowerSaveL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
    //Create texture loader
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
    iTextureLoader = new (ELeave) CTextureLoader(iImagicAppUi, this, iView, &iDrawLock);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
    iTextureLoader->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
    iTextureLoader->CreateIconTextures();		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
    iDisplayRotation = 0;//Set initial display rotation to 0. This controls the whole display rotation, not single picture 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
    iDisplayRotationTarget = 0;//Set initial display rotation to 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
    iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
    iPreferHighResLoading = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
    iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
    //iSelector = CRemConInterfaceSelector::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
    //iTarget = CRemConCoreApiTarget::NewL( *iSelector, *this ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
    //iSelector->OpenTargetL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
	//Create Draw utility class
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
	iDrawUtility = CDrawUtility::NewL(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
    DP0_IMAGIC(_L("CImagicContainerBrowser::ConstructL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
void CImagicContainerBrowser::InitAfterPowerSaveL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
    OpenGLInitL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
    InitL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
    iDrawOnes = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
    // Load loading icon
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
    iLoadingTextureIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
#ifdef EMPTY_IMAGE_AS_BMP    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
    CFbsBitmap loadingBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
    TInt error = loadingBitmap.Load(KLoadingFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
    if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
        iLoadingTextureIndex = iTextureLoader->CreateTexture(&loadingBitmap, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
    iExitTextureIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
    CFbsBitmap exitBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
    error = exitBitmap.Load(KExitFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
    if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
        iExitTextureIndex = iTextureLoader->CreateTexture(&exitBitmap, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
    iMenuTextureIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
    CFbsBitmap menuBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
    error = menuBitmap.Load(KMenuFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
    if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
        iMenuTextureIndex = iTextureLoader->CreateTexture(&menuBitmap, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
#ifdef SHADOW_PHOTOS    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
    iShadowTextureIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
    CFbsBitmap shadowBitmap;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
    error = shadowBitmap.Load(KShadowFileName);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
    if (error == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
        iShadowTextureIndex = iTextureLoader->CreateTexture(&shadowBitmap, EFalse);        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
#endif    
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 CImagicContainerBrowser::InitL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
   {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
   DP0_IMAGIC(_L("CImagicContainerBrowser::GridDataInit++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
    //iDeviceOrientation = TSensrvOrientationData::EOrientationDisplayRightUp;//Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
    //iDeviceOrientation = TImagicDeviceOrientation::EOrientationDisplayRightUp;//Portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
    //iDeviceOrientation = 3;//EOrientationDisplayRightUp = Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
    iDeviceOrientation = iIEngine->GetDeviceOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
    DP1_IMAGIC(_L("CImagicContainerBrowser::GridDataInit - Device orientation: %d"),iDeviceOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
       iScreenImmeadetaUpdate = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
       iDrawNow = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
       iDynamicLoadingOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
       iNewImageAdded = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
       iPreferHighResLoading = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
       if(iImagicAppUi->GetImageIndex())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
           iCurrentIndex = iImagicAppUi->GetImageIndex();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
       else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
           iCurrentIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
       //Read user settings from database <--------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
       //Set default draw function
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
       iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
              
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
       //Init key data here
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
       ResetKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
           
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
       DP0_IMAGIC(_L("CImagicContainerBrowser::GridDataInit--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
   }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
void CImagicContainerBrowser::OpenGLInitL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
   {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
   DP0_IMAGIC(_L("CImagicContainerBrowser::OpenGLInit++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
       // Open GL hasn't been initialized
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
       iOpenGlInitialized = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
       // Describes the format, type and size of the color buffers and
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
       // ancillary buffers for EGLSurface
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
       EGLConfig config;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
       // Get the display for drawing graphics
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
       iEglDisplay = eglGetDisplay( EGL_DEFAULT_DISPLAY );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
       if ( iEglDisplay == NULL )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglGetDisplay failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
           _LIT(KGetDisplayFailed, "eglGetDisplay failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
           User::Panic( KGetDisplayFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
       // Initialize display
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
       if ( eglInitialize( iEglDisplay, NULL, NULL ) == EGL_FALSE )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglInitialize failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
           _LIT(KInitializeFailed, "eglInitialize failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
           User::Panic( KInitializeFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334
       // Pointer for EGLConfigs
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   335
       EGLConfig *configList = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   336
       EGLint numOfConfigs   = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   337
       EGLint configSize     = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   338
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   339
       // Get the number of possible EGLConfigs
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   340
       if ( eglGetConfigs( iEglDisplay, configList, configSize, &numOfConfigs ) == EGL_FALSE )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   341
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   342
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglGetConfigs failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   343
           _LIT(KGetConfigsFailed, "eglGetConfigs failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   344
           User::Panic( KGetConfigsFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   345
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   346
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   347
       configSize = numOfConfigs;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   348
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   349
       // Allocate memory for the configList
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   350
       configList = (EGLConfig*) User::Alloc( sizeof(EGLConfig)*configSize );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   351
       if ( configList == NULL )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   352
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   353
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - config alloc failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   354
           _LIT(KConfigAllocFailed, "config alloc failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   355
           User::Panic( KConfigAllocFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   356
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   357
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   358
       // Define properties for the wanted EGLSurface. To get the best possible
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   359
       // performance, choose an EGLConfig with a buffersize matching the current
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   360
       // window's display mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   361
       TDisplayMode DMode = Window().DisplayMode();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   362
       TInt BufferSize = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   363
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   364
       switch(DMode)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   365
       {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   366
       case(EColor4K):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   367
           BufferSize = 12;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   368
           break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   369
       case(EColor64K):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   370
           BufferSize = 16;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   371
           break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   372
       case(EColor16M):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   373
           BufferSize = 24;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   374
           break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   375
       case(EColor16MU):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   376
       case(EColor16MA):
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   377
           BufferSize = 32;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   378
           break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   379
       default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   380
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - unsupported displaymode - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   381
           _LIT(KDModeError, "unsupported displaymode");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   382
           User::Panic( KDModeError, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   383
           break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   384
       }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   385
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   386
       // Define properties for the wanted EGLSurface
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   387
       const EGLint attrib_list[] =
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   388
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   389
           EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   390
           EGL_BUFFER_SIZE,  BufferSize,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   391
           EGL_DEPTH_SIZE,   16,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   392
           EGL_NONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   393
           };
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   394
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   395
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   396
       // No configs with antialising were found. Try to get the non-antialiased config
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   397
       if ( eglChooseConfig( iEglDisplay, attrib_list, configList, configSize, &numOfConfigs ) == EGL_FALSE )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   398
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   399
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglChooseConfig failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   400
           _LIT( KChooseConfigFailed, "eglChooseConfig failed" );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   401
           User::Panic( KChooseConfigFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   402
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   403
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   404
       if ( numOfConfigs == 0 )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   405
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   406
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - Can't find the requested config. - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   407
           // No configs found without antialiasing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   408
           _LIT( KNoConfig, "Can't find the requested config." );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   409
           User::Panic( KNoConfig, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   410
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   411
           
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   412
       // Choose the best EGLConfig. EGLConfigs returned by eglChooseConfig are
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   413
       // sorted so that the best matching EGLConfig is first in the list.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   414
       config = configList[0];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   415
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   416
       // Free configList, as it's not used anymore.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   417
       User::Free( configList );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   418
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   419
       // Create a window where the graphics are blitted
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   420
       iEglSurface = eglCreateWindowSurface( iEglDisplay, config, &Window(), NULL );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   421
       if ( iEglSurface == NULL )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   422
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   423
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglCreateWindowSurface failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   424
           _LIT(KCreateWindowSurfaceFailed, "eglCreateWindowSurface failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   425
           User::Panic( KCreateWindowSurfaceFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   426
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   427
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   428
       // Create a rendering context
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   429
       iEglContext = eglCreateContext( iEglDisplay, config, EGL_NO_CONTEXT, NULL );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   430
       if ( iEglContext == NULL )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   431
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   432
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglCreateContext failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   433
           _LIT(KCreateContextFailed, "eglCreateContext failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   434
           User::Panic( KCreateContextFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   435
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   436
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   437
       // Make the context current. Binds context to the current rendering thread
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   438
       // and surface.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   439
       if ( eglMakeCurrent( iEglDisplay, iEglSurface, iEglSurface, iEglContext ) == EGL_FALSE )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   440
           {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   441
           DP1_IMAGIC(_L("CImagicContainerBrowser::ConstructL - eglMakeCurrent failed - GL Error: %d"),glGetError());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   442
           _LIT(KMakeCurrentFailed, "eglMakeCurrent failed");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   443
           User::Panic( KMakeCurrentFailed, 0 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   444
           }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   445
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   446
#ifdef SHADOW_PHOTOS        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   447
       glClearColor(1,1,1, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   448
#else       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   449
       glClearColor(0,0,0, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   450
#endif       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   451
       //glClearDepth(1.0f);                                 // Depth Buffer Setup
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   452
       glEnable(GL_DEPTH_TEST);                            // Enables Depth Testing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   453
       //glDisable(GL_DEPTH_TEST);                            // Enables Depth Testing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   454
       //glDepthMask(GL_FALSE);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   455
       glDepthFunc(GL_LEQUAL);                             // The Type Of Depth Testing To Do
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   456
       // TODO,  check the perf gain
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   457
       //glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);  // Really Nice Perspective Calculations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   458
       glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);  // Fast Perspective Calculations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   459
       glShadeModel(GL_FLAT);//GL_FLAT ,GL_SMOOTH TODO, check perf if smooth is on
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   460
       //glShadeModel(GL_SMOOTH);//GL_FLAT ,GL_SMOOTH TODO, check perf if smooth is on
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   461
       //glDisable( GL_LINE_SMOOTH  );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   462
       //glEnable with the arguments GL_LINE_SMOOTH or GL_POINT_SMOOTH.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   463
       //glEnable(GL_POLYGON_SMOOTH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   464
       //glEnable(GL_POINT_SMOOTH);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   465
       //glEnable( GL_LINE_SMOOTH  );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   466
       //glEnable(GL_MULTISAMPLE_ARB);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   467
       glEnable( GL_TEXTURE_2D  );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   468
       glDisable( GL_LIGHTING  );//disable for performance reasons
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   469
       //Disable alpha blending
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   470
       glDisable(GL_BLEND);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   471
       glDisable(GL_ALPHA_TEST);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   472
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   473
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   474
       //GLint params;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   475
       glGetIntegerv( GL_MAX_TEXTURE_SIZE, &iGLMaxRes );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   476
       DP1_IMAGIC(_L("CImagicContainerBrowser::OpenGLInit - OpenGL max image Res size: %d"), iGLMaxRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   477
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   478
       glMatrixMode( GL_MODELVIEW );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   479
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   480
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   481
       iOpenGlInitialized = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   482
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   483
       //Start draw timer
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   484
       DP0_IMAGIC(_L("CImagicContainerBrowser::OpenGLInit - Start Draw timer"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   485
       iPeriodic->Start( 100, KDisplayDrawFreq, TCallBack( CImagicContainerBrowser::DrawCallBackL, this ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   486
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   487
       DP0_IMAGIC(_L("CImagicContainerBrowser::OpenGLInit--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   488
   }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   489
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   490
//This is called when we want to reduce screen drawing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   491
TInt CImagicContainerBrowser::PowerSaveCallBack(TAny *aInstance)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   492
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   493
    DP0_IMAGIC(_L("CImagicContainerBrowser::PowerSaveCallBack++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   494
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   495
    ((CImagicContainerBrowser*) aInstance)->PowerSave();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   496
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   497
    DP0_IMAGIC(_L("CImagicContainerBrowser::PowerSaveCallBack--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   498
    return 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   499
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   500
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   501
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   502
void CImagicContainerBrowser::PowerSave()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   503
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   504
    iPowerSavePeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   505
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   506
    if(iDisplayDrawFreq == KDisplayDrawFreq)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   507
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   508
#ifndef ADAPTIVE_FRAMERATE		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   509
        iDisplayDrawFreq = KPowerSaveDisplayDrawFreq;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   510
        DisableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   511
        if(iImagicAppUi->IsAppOnTop())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   512
            EnableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   513
#endif		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   514
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   515
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   516
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   517
TInt CImagicContainerBrowser::DisableDrawTimer( TAny* aInstance )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   518
   {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   519
   DP0_IMAGIC(_L("CImagicContainerBrowser::DisableDrawTimer++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   520
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   521
   // Get pointer to instance
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   522
   CImagicContainerBrowser* instance = (CImagicContainerBrowser*) aInstance;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   523
   //instance->iPeriodicTimerActive = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   524
   instance->DisableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   525
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   526
   DP0_IMAGIC(_L("CImagicContainerBrowser::DisableDrawTimer--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   527
   return 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   528
   }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   529
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   530
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   531
// Destructor
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   532
CImagicContainerBrowser::~CImagicContainerBrowser()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   533
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   534
    DP0_IMAGIC(_L("CImagicContainerBrowser::~CImagicContainerBrowser++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   535
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   536
    //delete iPeriodic;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   537
    if(iPeriodic)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   538
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   539
        if(iPeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   540
            iPeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   541
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   542
        delete iPeriodic;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   543
        iPeriodic = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   544
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   545
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   546
    delete iDrawUtility;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   547
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   548
    //Cancelling CTimer...
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   549
    if(iPowerSavePeriodic)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   550
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   551
        if(iPowerSavePeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   552
            iPowerSavePeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   553
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   554
        delete iPowerSavePeriodic;   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   555
        iPowerSavePeriodic = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   556
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   557
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   558
    DeleteTextures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   559
    iDrawLock.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   560
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   561
    if(iTextureLoader)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   562
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   563
        delete iTextureLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   564
        iTextureLoader = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   565
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   566
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   567
    //iFloatCoordinates.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   568
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   569
#ifdef USE_AVKON_LONGTAP_DETECTOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   570
    if(iLongTapDetector)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   571
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   572
        delete iLongTapDetector;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   573
        iLongTapDetector = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   574
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   575
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   576
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   577
    if(iGesture)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   578
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   579
        delete iGesture;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   580
        iGesture = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   581
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   582
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   583
    //Destruct all engine components
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   584
    iImagicAppUi->DestructEngine();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   585
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   586
    delete iDrawGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   587
    delete iDrawOneByOne;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   588
    delete iDrawFaceBrowsing;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   589
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   590
    DP0_IMAGIC(_L("CImagicContainerBrowser::~CImagicContainerBrowser--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   591
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   592
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   593
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   594
// CTextureManager::DeleteTextures
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   595
// Deletes named textures by calling glDeleteTextures.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   596
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   597
void CImagicContainerBrowser::DeleteTextures()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   598
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   599
    DP0_IMAGIC(_L("CImagicContainerBrowser::DeleteTextures++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   600
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   601
    iIEngine->CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   602
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   603
    if(iPeriodic && iPeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   604
        iPeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   605
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   606
    eglMakeCurrent( iEglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   607
    eglDestroySurface( iEglDisplay, iEglSurface );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   608
    eglDestroyContext( iEglDisplay, iEglContext );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   609
    eglTerminate( iEglDisplay );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   610
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   611
    //Delete OpenGL memory allocations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   612
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   613
    for(TInt i=0; i < num; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   614
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   615
        CImageData* data = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   616
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   617
        if(data->iGridData.iGlLQ128TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   618
            glDeleteTextures( 1, &data->iGridData.iGlLQ128TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   619
        if(data->iGridData.iGlLQ32TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   620
            glDeleteTextures( 1, &data->iGridData.iGlLQ32TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   621
        if(data->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   622
            glDeleteTextures(1, &data->iGridData.iGlHQ512TextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   623
        if(data->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   624
            glDeleteTextures(1, &data->iGridData.iGlSuperHQTextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   625
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   626
        data->iGridData.iGlLQ32TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   627
        data->iGridData.iGlLQ128TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   628
        data->iGridData.iGlHQ512TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   629
        data->iGridData.iGlSuperHQTextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   630
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   631
       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   632
    iOpenGlInitialized = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   633
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   634
    DP0_IMAGIC(_L("CImagicContainerBrowser::DeleteTextures--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   635
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   636
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   637
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   638
//Prepares container to filename array swap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   639
void CImagicContainerBrowser::SwapArrays()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   640
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   641
    DP0_IMAGIC(_L("CImagicContainerBrowser::SwapArrays++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   642
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   643
    //Delete OpenGL memory allocations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   644
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   645
    for(TInt i=0; i < num; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   646
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   647
        CImageData* data = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   648
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   649
        if(data->iGridData.iGlLQ128TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   650
            glDeleteTextures( 1, &data->iGridData.iGlLQ128TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   651
        if(data->iGridData.iGlLQ32TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   652
            glDeleteTextures( 1, &data->iGridData.iGlLQ32TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   653
        if(data->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   654
            glDeleteTextures(1, &data->iGridData.iGlHQ512TextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   655
        if(data->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   656
            glDeleteTextures(1, &data->iGridData.iGlSuperHQTextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   657
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   658
        data->iGridData.iGlLQ32TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   659
        data->iGridData.iGlLQ128TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   660
        data->iGridData.iGlHQ512TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   661
        data->iGridData.iGlSuperHQTextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   662
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   663
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   664
    iOpenGlInitialized = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   665
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   666
    DP0_IMAGIC(_L("CImagicContainerBrowser::SwapArrays--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   667
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   668
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   669
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   670
void CImagicContainerBrowser::InitFaceBrowsing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   671
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   672
    iDrawFaceBrowsing->InitFaceBrowsing();    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   673
    }
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
// Interpolates given value into target value with step
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   678
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   679
void CImagicContainerBrowser::Interpolate(float &aValue, const float aTarget, const float aStep)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   680
	{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   681
	//DP0_IMAGIC(_L("CImagicContainerBrowser::Interpolate"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   682
	// Calculate new value
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   683
	float diff = aTarget-aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   684
//    aValue += diff * aStep * iTimeDiff * 30; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   685
	float timediff = Min(0.1f, iTimeDiff); // so max value of timediff is 100tick (100ms)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   686
	aValue += diff * aStep * timediff * 30; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   687
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   688
	// Check that value is in range
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   689
    if (aValue > aTarget && diff > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   690
        aValue = aTarget;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   691
    if (aValue < aTarget && diff < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   692
        aValue = aTarget;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   693
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   694
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   695
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   696
// Makes sure that given value is within limits
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   697
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   698
void CImagicContainerBrowser::CheckLimits(float &aValue, const float aMin, const float aMax)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   699
	{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   700
	DP0_IMAGIC(_L("CImagicContainerBrowser::CheckLimits"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   701
	if (aValue < aMin)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   702
		aValue = aMin;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   703
	if (aValue > aMax)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   704
		aValue = aMax;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   705
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   706
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   707
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   708
// Handle rotation keys
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   709
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   710
void CImagicContainerBrowser::HandleRotationKeys(void)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   711
	{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   712
	//DP0_IMAGIC(_L("CImagicContainerBrowser::HandleRotationKeys"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   713
	// Handle rotation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   714
	CImageData* imageData = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   715
	if(imageData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   716
	    imageData->iGridData.iTargetRotationAngle += iKeyData.iRotate*90;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   717
	iKeyData.iRotate = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   718
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   719
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   720
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   721
TInt CImagicContainerBrowser::GetFreeRam()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   722
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   723
    TInt mem = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   724
    TInt ret = HAL::Get(HALData::EMemoryRAMFree, mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   725
    DP1_IMAGIC(_L("CImagicContainerBrowser::CheckFreeRam - mem: %d"),mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   726
    return mem;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   727
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   728
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   729
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   730
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   731
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   732
// Checks limits for iFileIndex and starts loading image when 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   733
// new image was selected
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   734
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   735
void CImagicContainerBrowser::DynamicLoadingL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   736
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   737
    if(!iDynamicLoadingOn && !iNewImageAdded)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   738
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   739
        DP2_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - return #Loading is off, iDynamicLoadingOn:%d, iNewImageAdded:%d"),iDynamicLoadingOn,iNewImageAdded);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   740
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   741
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   742
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   743
    // Check that loader is not running
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   744
    if(iTextureLoader->IsRunning())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   745
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   746
        DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - return #Loader is running"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   747
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   748
/*        if(iIsLoaderRunning > 30)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   749
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   750
            DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - return #Loader is running >30 times in loop"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   751
            iIsLoaderRunning = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   752
            iDynamicLoadingOn = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   753
            iNewImageAdded = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   754
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   755
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   756
        iIsLoaderRunning++;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   757
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   758
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   759
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   760
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   761
    if(iPreferHighResLoading)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   762
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   763
        DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - return #Prefer High res loading"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   764
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   765
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   766
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   767
    DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   768
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   769
    /*TInt imageBuffer = iIEngine->IsScanningFiles() ? 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   770
                        K128TNImageBuffer + KNumOf32ThumbsLoadedBefore128Thumb : 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   771
                        K32TNImageBuffer;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   772
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   773
    TInt imageBuffer = K32TNImageBuffer; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   774
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   775
    //DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL load closest unloaded image"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   776
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   777
    for (TInt i = 0;i < imageBuffer; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   778
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   779
        // Check to positive and negative direction from current picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   780
        for (TInt j = 0; j < 2; j++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   781
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   782
            // Calculate image index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   783
            TInt index = iCurrentIndex + (j ?  i : -i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   784
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   785
            // Check that index is valid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   786
            if (index >= 0 && index < iIEngine->GetTotalNumOfImages())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   787
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   788
                CImageData* imageData = iIEngine->GetImageData(index);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   789
                // Load tiny thumbnail
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   790
                if( !imageData->iGridData.iCorrupted &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   791
                    imageData->iGridData.iGlLQ32TextIndex == 0 &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   792
                    (imageData->IsImageReady(ESize32x32) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   793
                     imageData->IsImageReady(EExifThumb)) //&& 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   794
                    //Abs(iCurrentIndex-index) <= K32TNImageBuffer
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   795
                    )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   796
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   797
                    TRAPD(err, iTextureLoader->LoadL(imageData, ESize32x32));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   798
                    if(err == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   799
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   800
                        DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - start loading 32x32"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   801
                        i = imageBuffer + 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   802
                        iNewImageAdded = EFalse;//should be set off only when we tried to load new image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   803
                        break; //Image loading did start, break out
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   804
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   805
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   806
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   807
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   808
            // Load higher resolution thumb only after couple of tiny thumbs 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   809
            TInt i2 = i - KNumOf32ThumbsLoadedBefore128Thumb;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   810
            if (i2 < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   811
                continue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   812
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   813
            // Calculate image index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   814
            index = iCurrentIndex + (j ? i2 : -i2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   815
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   816
            // Check that index is valid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   817
            if (index < 0 || index >= iIEngine->GetTotalNumOfImages())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   818
                continue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   819
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   820
            CImageData* imageData = iIEngine->GetImageData(index);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   821
            // Higher resolution thumbnail exist
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   822
            if(!imageData->iGridData.iCorrupted &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   823
               imageData->iGridData.iGlLQ128TextIndex == 0 &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   824
                (imageData->IsImageReady(ESize128x128) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   825
                 imageData->IsImageReady(EExifThumb)) && 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   826
                Abs(iCurrentIndex-index) <= K128TNImageBuffer)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   827
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   828
                //Do not load 128 TN before tilted to flat
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   829
                if(IsHwAcceleration() && Abs(iDrawGrid->GetCurrentGridTilt()) < KAngle2Start128LoadingHwAcc)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   830
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   831
                    TRAPD(err, iTextureLoader->LoadL(imageData, ESize128x128));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   832
                    if(err == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   833
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   834
                        DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - start loading 128x128"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   835
                        i = imageBuffer + 1;                        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   836
                        iNewImageAdded = EFalse;//should be set off only when we tried to load new image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   837
                        break; //Image loading did start, break out
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   838
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   839
                    }   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   840
                if(!IsHwAcceleration() && Abs(iDrawGrid->GetCurrentGridTilt()) < KAngle2Start128Loading)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   841
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   842
                    TRAPD(err, iTextureLoader->LoadL(imageData, ESize128x128));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   843
                    if(err == KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   844
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   845
                        DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL - start loading 128x128"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   846
                        i = imageBuffer + 1;                        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   847
                        iNewImageAdded = EFalse;//should be set off only when we tried to load new image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   848
                        break; //Image loading did start, break out
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   849
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   850
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   851
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   852
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   853
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   854
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   855
    iNewImageAdded = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   856
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   857
    // Wait until something new happen before continue loading
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   858
    iDynamicLoadingOn = iIEngine->IsScanningFiles();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   859
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   860
    DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicLoadingL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   861
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   862
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   863
void CImagicContainerBrowser::NewImageAdded()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   864
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   865
    iNewImageAdded = ETrue;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   866
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   867
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   868
void CImagicContainerBrowser::ImageListChanged(TInt aIndex, TBool aAdded)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   869
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   870
    if (iDrawGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   871
        iDrawGrid->UpdateImageCoordinates(aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   872
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   873
    if (IsUserInputGiven())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   874
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   875
        /* TODO if (iCurrentIndex >= aIndex) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   876
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   877
            if (aAdded)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   878
                iCurrentIndex++;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   879
            else 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   880
                iCurrentIndex--;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   881
            CheckIndexLimits(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   882
            }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   883
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   884
    iDynamicLoadingOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   885
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   886
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   887
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   888
// Unloads images from Grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   889
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   890
void CImagicContainerBrowser::DynamicUnLoading()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   891
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   892
    DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   893
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   894
    CImageData* imageData = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   895
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   896
    // Loop through all pictures
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   897
    for (TInt i=0; i<iIEngine->GetTotalNumOfImages(); i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   898
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   899
        // Check if picture is loaded
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   900
        imageData = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   901
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   902
        if(imageData->iGridData.iGlLQ32TextIndex!=0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   903
            if(i<(iCurrentIndex-(K32TNImageUnLoadBuffer+1)) || i>(iCurrentIndex+(K32TNImageUnLoadBuffer+1)))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   904
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   905
                // Unload picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   906
                iTextureLoader->UnloadLQ32Tex( imageData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   907
                DP1_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading - Unload 32x32 [%d] texture!!!!!"),i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   908
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   909
        if(imageData->iGridData.iGlLQ128TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   910
            if(i<(iCurrentIndex-(K128TNImageBuffer+1)) || i>(iCurrentIndex+(K128TNImageBuffer+1)))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   911
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   912
                // Unload picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   913
                iTextureLoader->UnloadLQ128Tex( imageData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   914
                DP1_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading - Unload 128x128 [%d] texture!!!!!"),i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   915
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   916
        if(imageData->iGridData.iGlHQ512TextIndex != 0 )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   917
            if((i < (iCurrentIndex-(K512TNImageBuffer+1))) || (i > (iCurrentIndex+(K512TNImageBuffer+1))))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   918
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   919
                //Unload picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   920
                iTextureLoader->UnloadLQ512Tex( imageData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   921
                DP1_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading - Unload 512x512 [%d] texture!!!!!"),i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   922
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   923
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   924
        if(imageData->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   925
            if(i != iCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   926
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   927
                //Unload picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   928
                iTextureLoader->ReleaseSuperHResTexture( imageData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   929
                DP1_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading - Unload Superresolution [%d] texture!!!!!"),i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   930
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   931
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   932
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   933
    DP0_IMAGIC(_L("CImagicContainerBrowser::DynamicUnLoading--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   934
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   935
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   936
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   937
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   938
// Calculates widht and height with aspect ratio
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   939
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   940
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   941
void CImagicContainerBrowser::BubbleEffect(TInt& x, TInt& y, float& z)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   942
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   943
    if(iBubbleEffect)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   944
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   945
        // Selected image in coordinates x,y
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   946
        iSelectedX = iCurrentIndex/iGridSizeY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   947
        iSelectedY =- (iCurrentIndex%iGridSizeY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   948
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   949
        // Distance to selected
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   950
        iDistanceX = iSelectedX-x;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   951
        iDistanceY = iSelectedY-y;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   952
        // Squared
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   953
        if(iDistanceX<0) iDistanceX*= -1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   954
        if(iDistanceY<0) iDistanceY*= -1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   955
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   956
        // Distance
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   957
        iDiff=iDistanceX+iDistanceY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   958
        // Convert distance to depth
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   959
        // http://en.wikipedia.org/wiki/Gaussian_function
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   960
        /*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   961
        if (iDiff==0) z=4.2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   962
        if (iDiff==1) z=3.973029769;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   963
        if (iDiff==2) z=3.363097092;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   964
        if (iDiff==3) z=2.547428771;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   965
        if (iDiff==4) z=1.72667162;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   966
        if (iDiff==5) z=1.047279277;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   967
        if (iDiff==6) z=0.56840819;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   968
        if (iDiff==7) z=0.27605982;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   969
        if (iDiff==8) z=0.119975103;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   970
        if (iDiff==9) z=0.046657785;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   971
        if (iDiff==10) z=0.016236865;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   972
        if (iDiff>10) z=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   973
        */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   974
        if (iDiff==0) z=5.0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   975
        if (iDiff==1) z=4.2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   976
        if (iDiff==2) z=3.4;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   977
        if (iDiff==3) z=2.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   978
        if (iDiff==4) z=1.3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   979
        if (iDiff==5) z=0.8;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   980
        if (iDiff==6) z=0.4;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   981
        if (iDiff==7) z=0.3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   982
        if (iDiff>7) z=0.3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   983
        //if (iDiff==8) z=0.1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   984
        //if (iDiff==9) z=0.05;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   985
        //if (iDiff==10) z=0.01;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   986
        //if (iDiff>10) z=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   987
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   988
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   989
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   990
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   991
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   992
// Calculates widht and height with aspect ratio
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   993
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   994
void CImagicContainerBrowser::CalculateImageSize(float& aWidth, float& aHeight, const float aAspectRatio/*display aspectratio*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   995
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   996
    DP0_IMAGIC(_L("CImagicContainerBrowser::CalculateImageSize"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   997
	// Check picture orientation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   998
    TBool landscape = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   999
    TBool tmp = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1000
    CImageData* imageData = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1001
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1002
    if(imageData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1003
        landscape = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1004
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1005
	//Change landscape<->portrait if pic is rotated 90 or 270
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1006
    //if(imageData->iGridData.iTargetRotationAngle%90==0 && imageData->iGridData.iTargetRotationAngle%180!=0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1007
    //if(Abs(imageData->iGridData.iTargetRotationAngle-90) <= 0.1 && Abs(imageData->iGridData.iTargetRotationAngle-270) <= 0.1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1008
    TInt angle = imageData->iGridData.iTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1009
    if(angle % 90 == 0 && angle % 180 != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1010
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1011
        tmp=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1012
        landscape = !landscape;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1013
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1014
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1015
	//Calculate new width and height
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1016
    aWidth=0.5;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1017
    aHeight=0.5;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1018
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1019
    if(landscape)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1020
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1021
        //Fix aspect ratio
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1022
        aHeight/=aAspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1023
        if(imageData->GetAspectRatio() < aAspectRatio && imageData->GetAspectRatio() >= 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1024
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1025
            aHeight = aHeight * (aAspectRatio/imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1026
            aWidth = aWidth * (aAspectRatio/imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1027
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1028
        //If portrait picture aspect ratio is between 0.75 - 1 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1029
        if(imageData->GetAspectRatio() > (1.0 / aAspectRatio) && imageData->GetAspectRatio() < 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1030
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1031
            aHeight = aHeight * (aAspectRatio*imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1032
            aWidth = aWidth * (aAspectRatio*imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1033
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1034
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1035
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1036
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1037
        //Fix aspect ratio
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1038
        aWidth *= aAspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1039
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1040
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1041
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1042
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1043
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1044
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1045
// Draws one by one view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1046
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1047
void CImagicContainerBrowser::GetCurrentFilenameL(TFileName& aFilename, TThumbSize aRes)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1048
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1049
    iIEngine->GetFileNameL(iCurrentIndex, aRes, aFilename);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1050
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1051
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1052
void CImagicContainerBrowser::SetCurrentFaceNro(TInt aNro)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1053
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1054
    iDrawFaceBrowsing->SetCurrentFaceNro(aNro);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1055
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1056
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1057
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1058
/*----------------------------------------------------------------------*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1059
// Gets current screen coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1060
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1061
void CImagicContainerBrowser::ConvertScreenCoords2QvgaCoords(TPoint& aPoint, TRect& aRect)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1062
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1063
    CImageData* imageData = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1064
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1065
    TInt pictureWidth, pictureHeigth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1066
    pictureWidth=320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1067
    pictureHeigth=320;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1068
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1069
    //Calculate coords from alogorith to OpenGL -0.5 - +0.5 coords and fill the array
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1070
    float tmpX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1071
    float tmpY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1072
    if(imageData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1073
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1074
        //Convert from center of screen to corner coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1075
        tmpX = iDrawOneByOne->GetDrawOneByOneXY().iX + 0.5;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1076
        tmpY = iDrawOneByOne->GetDrawOneByOneXY().iY + (0.5/imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1077
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1078
    else//portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1079
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1080
        //Convert from center of screen to corner coords
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1081
        tmpX = iDrawOneByOne->GetDrawOneByOneXY().iX + (0.5*imageData->GetAspectRatio());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1082
        tmpY = iDrawOneByOne->GetDrawOneByOneXY().iY + 0.5;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1083
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1084
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1085
    aPoint.iX = tmpX * pictureWidth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1086
    aPoint.iY = tmpY * pictureHeigth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1087
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1088
    TInt rectWidth = pictureWidth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1089
    TInt rectHeigth = pictureHeigth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1090
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1091
    rectWidth = rectWidth/(iDrawOneByOne->GetDrawOneByOneZoom()*2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1092
    rectHeigth = rectHeigth/(iDrawOneByOne->GetDrawOneByOneZoom()*2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1093
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1094
    aRect.iTl.iX = aPoint.iX-(rectWidth/2); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1095
    aRect.iTl.iY = aPoint.iY-(rectHeigth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1096
    aRect.iBr.iX = aPoint.iX+(rectWidth/2); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1097
    aRect.iBr.iY = aPoint.iY+(rectHeigth/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1098
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1099
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1100
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1101
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1102
void CImagicContainerBrowser::LoadHighResImage(CImageData* imageData, TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1103
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1104
    DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHighResImage++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1105
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1106
    //Make sure that 512 for current image is loaded
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1107
    if(imageData->iGridData.iGlHQ512TextIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1108
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1109
        LoadHQ512Image(imageData, aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1110
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1111
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1112
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1113
#ifdef SUPERZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1114
    //Load "super zoom" image if in zoom or face browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1115
    if(imageData->iGridData.iGlSuperHQTextIndex == 0 && 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1116
       (!IS_NOT_IN_ZOOM_ONEBYONE || iDrawOneByOne->IsMagGlassOn() ))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1117
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1118
        //iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1119
        TRAPD(err, iTextureLoader->LoadL(imageData, EFullSize));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1120
        if( err == KErrNone || err == KErrInUse )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1121
            iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1122
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1123
        /*if(err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1124
            if(err == KErrAlreadyExists || err == KErrInUse)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1125
                iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1126
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1127
                iPreferHighResLoading = EFalse;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1128
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1129
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1130
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1131
    CImageData* imageDataLoad = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1132
    //Here we load 512x512 resolution images, one to both sides of current up to limit
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1133
    for (TInt i = 1; i <= K512TNImageBuffer; i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1134
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1135
        // Check to positive and negative direction from current picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1136
        for (TInt j = 0; j < 2; j++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1137
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1138
            // Calculate image index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1139
            TInt index = iCurrentIndex + (j ?  i : -i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1140
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1141
            if(index >= 0 && index < iIEngine->GetTotalNumOfImages())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1142
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1143
                imageDataLoad = iIEngine->GetImageData(index);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1144
                if(imageDataLoad == NULL)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1145
                    break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1146
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1147
                if(imageDataLoad->iGridData.iGlHQ512TextIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1148
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1149
                    DP1_IMAGIC(_L("CImagicContainerBrowser::LoadHighResImage -------------- Start High res image loading, index: %d"), index);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1150
                    LoadHQ512Image(imageDataLoad, index);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1151
                    return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1152
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1153
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1154
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1155
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1156
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1157
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1158
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1159
    DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHighResImage--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1160
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1161
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1162
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1163
void CImagicContainerBrowser::LoadHQ512Image(CImageData* imageData, TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1164
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1165
    DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHQ512Image++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1166
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1167
    //iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1168
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1169
    if(/*iDrawOneByOne->GetDrawOneByOneZoom() > 0.99 &&*/ imageData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1170
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1171
        TInt error;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1172
        if((imageData->iGridData.iGlLQ128TextIndex == 0) && (iCurrentIndex == aIndex))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1173
            TRAPD(error, iTextureLoader->LoadL(imageData, ESize128x128));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1174
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1175
        if(imageData->iGridData.iGlHQ512TextIndex == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1176
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1177
            //iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1178
            TRAPD(err, iTextureLoader->LoadL(imageData, ESize512x512));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1179
/*            if(err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1180
                if(err == KErrAlreadyExists || err == KErrInUse)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1181
                    iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1182
                else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1183
                    iPreferHighResLoading = EFalse;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1184
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1185
            if( err == KErrNone || err == KErrInUse )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1186
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1187
                DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHQ512Image - set dyn loading off"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1188
                iPreferHighResLoading = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1189
                iDynamicLoadingOn = EFalse; //set to false to be able to get run time for high res loading
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1190
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1191
            else if(err == KErrAlreadyExists)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1192
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1193
                DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHQ512Image - set dyn loading on"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1194
                iDynamicLoadingOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1195
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1196
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1197
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1198
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1199
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1200
    DP0_IMAGIC(_L("CImagicContainerBrowser::LoadHQ512Image--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1201
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1202
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1203
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1204
void CImagicContainerBrowser::ShowMagGlass(const TBool aState)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1205
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1206
    // do nothing if it's already in the state
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1207
    if (/*iMagGlassOn*/ iDrawOneByOne->IsMagGlassOn() == aState || !IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1208
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1209
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1210
    iDrawOneByOne->SetMagGlassPrevStatus(iDrawOneByOne->IsMagGlassOn());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1211
    iDrawOneByOne->SetMagGlassStatus(aState);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1212
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1213
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1214
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1215
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1216
void CImagicContainerBrowser::SetMinMagFilterLinear(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1217
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1218
    if(iDrawFunction == EOneByOne || iDrawFunction == EFaceBrowsing)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1219
        if(IsHwAcceleration())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1220
            iMinMagFilterSetting=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1221
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1222
            iMinMagFilterSetting=aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1223
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1224
        iMinMagFilterSetting=aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1225
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1226
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1227
TBool CImagicContainerBrowser::IsHwAcceleration()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1228
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1229
    return (iGLMaxRes == 2048)? ETrue: EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1230
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1231
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1232
void CImagicContainerBrowser::SetMinMagFilterLinearDo(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1233
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1234
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetMinMagFilterLinear++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1235
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1236
    CImageData* imageData = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1237
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1238
    if(iCurrentBindedIndex == imageData->iGridData.iGlLQ128TextIndex || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1239
       iCurrentBindedIndex == imageData->iGridData.iGlLQ32TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1240
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1241
        DP0_IMAGIC(_L("CImagicContainerBrowser::SetMagFilterLinear - Linear"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1242
        iMagFilterLinear = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1243
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1244
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1245
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1246
    else if(aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1247
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1248
        DP0_IMAGIC(_L("CImagicContainerBrowser::SetMagFilterLinear - Linear"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1249
        iMagFilterLinear = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1250
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1251
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1252
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1253
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1254
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1255
        DP0_IMAGIC(_L("CImagicContainerBrowser::SetMagFilterLinear - Nearest"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1256
        iMagFilterLinear = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1257
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1258
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1259
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1260
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1261
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1262
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1263
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1264
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1265
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetMinMagFilterLinear--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1266
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1267
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1268
void CImagicContainerBrowser::DrawFaceBrowsingIcon()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1269
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1270
#ifdef ICONS_ENABLAD
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1271
    if((!iMagGlassOn && iDrawFunction==EFaceBrowser) || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1272
       (iDrawFunction==EFaceBrowser) && (iIconTextureIndexes.Count() >= 1))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1273
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1274
        iDrawUtility->DrawIcon(Size(), iIconTextureIndexes[0]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1275
        SetMinMagFilterLinearDo(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1276
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1277
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1278
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1279
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1280
void CImagicContainerBrowser::DrawZoomIcon()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1281
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1282
#ifdef ICONS_ENABLAD
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1283
    if((!iMagGlassOn && iDrawFunction==EOneByOne && (iDrawOneByOneZoom-1.0) > 0.01) && 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1284
       (iIconTextureIndexes.Count()>=2))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1285
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1286
        iDrawUtility->DrawIcon(Size(), iIconTextureIndexes[1]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1287
        SetMinMagFilterLinearDo(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1288
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1289
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1290
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1291
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1292
void CImagicContainerBrowser::SetDeleteTextures(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1293
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1294
    DeleteTextures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1295
    iDeleteTextures = aValue;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1296
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1297
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1298
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1299
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1300
//---------------------------------------------------------------------------------	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1301
//DrawCallBack for OpenGL
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1302
TInt CImagicContainerBrowser::DrawCallBackL( TAny* aInstance )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1303
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1304
    //DP0_IMAGIC(_L("CImagicContainerBrowser::DrawCallBack"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1305
	// Get pointer to instance
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1306
    ((CImagicContainerBrowser*) aInstance)->DrawL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1307
    return 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1308
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1309
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1310
void CImagicContainerBrowser::DrawL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1311
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1312
#ifdef ADAPTIVE_FRAMERATE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1313
    // No drawing if timer is not zero
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1314
    if (iWaitDrawTicks != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1315
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1316
        if (iWaitDrawTicks > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1317
            iWaitDrawTicks--;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1318
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1319
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1320
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1321
    iWaitDrawTicks = -1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1322
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1323
    //TInt startTick =
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1324
#endif        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1325
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1326
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1327
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1328
    if(iDeleteTextures)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1329
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1330
        if(iPeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1331
            iPeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1332
        DeleteTextures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1333
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1334
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1335
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1336
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1337
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1338
    TSize size = Size();    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1339
    BeginDrawing();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1340
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1341
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1342
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1343
    if(!iScreenRotateOngoing)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1344
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1345
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1346
        // Call proper draw function
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1347
        switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1348
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1349
            case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1350
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1351
                if(iIEngine->IsScanningFiles())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1352
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1353
                    if(iDrawOnes == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1354
                        iDrawOnes = 1;//make sure we draw screen ones when start application
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1355
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1356
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1357
                if(iDynamicLoadingOn)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1358
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1359
                    DP0_IMAGIC(_L("CImagicContainerBrowser::DrawCallBack - Continue Image Loading"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1360
                    DynamicLoadingL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1361
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1362
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1363
#endif           
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1364
                                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1365
                if(iDrawGrid->IsDrawingNeededGrid() || iDrawOnes == 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1366
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1367
                    drawZoom = 1; inPictureX = 0; inPictureY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1368
                    iDrawGrid->DrawGridL(size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1369
                    EndDrawing();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1370
                    if(iIEngine->GetTotalNumOfImages() > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1371
                        iDrawOnes = -1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1372
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1373
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1374
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1375
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1376
            case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1377
                if(iDrawOneByOne->IsDrawingNeededOneByOne())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1378
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1379
                    iDrawOneByOne->DrawOnebyOneL(size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1380
                    EndDrawing();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1381
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1382
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1383
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1384
            case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1385
                if(iDrawFaceBrowsing->IsDrawingNeededFaceBrowsing())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1386
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1387
                    iDrawFaceBrowsing->DrawFaceBrowsing(size);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1388
                    drawZoom = 1; inPictureX = 0; inPictureY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1389
                    iDrawFaceBrowsing->GetFBZoomAndLocation(drawZoom, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1390
                    EndDrawing();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1391
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1392
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1393
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1394
            default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1395
                // Should never come here
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1396
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1397
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1398
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1399
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1400
#ifdef ADAPTIVE_FRAMERATE    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1401
    iWaitDrawTicks = KWaitTicksAfterDraw;    // wait 20ms
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1402
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1403
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1404
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1405
void CImagicContainerBrowser::BeginDrawing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1406
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1407
    // Calculate used time between two frames
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1408
    iTimeNow = User::NTickCount();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1409
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1410
#ifdef __WINS__
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1411
    // In the emulator the tickcount runs at 200Hz
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1412
    iTimeDiff = (GLfloat)(iTimeNow - iLastTime)/200;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1413
    iLastTime = iTimeNow;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1414
#else    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1415
    // In the HW the tickcount runs at 1000Hz
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1416
    iTimeDiff = (GLfloat)(iTimeNow - iLastTime)/1000;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1417
    iLastTime = iTimeNow;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1418
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1419
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1420
    //Prevent screen draw while rotating screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1421
    //if(!iScreenRotateOngoing)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1422
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1423
        // Get window size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1424
        //aSize = Size();    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1425
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1426
        // Enable client state
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1427
        glEnableClientState(GL_VERTEX_ARRAY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1428
        glEnableClientState(GL_TEXTURE_COORD_ARRAY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1429
        glTexCoordPointer( 2, GL_FIXED, 0, iGlobalTexCoords );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1430
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1431
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1432
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1433
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1434
void CImagicContainerBrowser::EndDrawing()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1435
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1436
#ifdef LOADING_ANIMATION
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1437
    // Handle loading animation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1438
    glColor4f(1,1,1,1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1439
    iDrawUtility->Update();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1440
    iDrawUtility->Draw(Size());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1441
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1442
    TBool tmp = iMagFilterLinear;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1443
    iMagFilterLinear = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1444
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1445
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1446
    DrawFaceBrowsingIcon();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1447
    DrawZoomIcon();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1448
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1449
    iMagFilterLinear = tmp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1450
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1451
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1452
    /*iMenuAlpha-=0.05;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1453
    if(iMenuAlpha < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1454
        iMenuAlpha = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1455
    iDrawUtility->DrawIcon2(Size(), iLoadingTextureIndex, iMenuAlpha);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1456
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1457
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1458
    //Prevent screen draw while rotating screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1459
    //if(!iScreenRotateOngoing)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1460
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1461
        // Disable client state
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1462
        glDisableClientState(GL_VERTEX_ARRAY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1463
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1464
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1465
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1466
        // Call eglSwapBuffers, which blit the graphics to the window
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1467
        if( !eglSwapBuffers( iEglDisplay, iEglSurface ) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1468
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1469
            _LIT(KTextOpenGlError, "ERROR in OpenGL draw: eglSwapBuffers error");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1470
            CAknErrorNote* note = new ( ELeave ) CAknErrorNote(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1471
            TBuf<256> text;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1472
            text.Format(KTextOpenGlError);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1473
            note->ExecuteLD( text );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1474
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1475
            //suspend or some other power event occurred, context lost
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1476
            OpenGLInitL(); /* reinitialize EGL */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1477
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1478
            InitL(); /* reinitialize grid data */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1479
            iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1480
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1481
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1482
        // Check for errors
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1483
        //EGLint err = eglGetError();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1484
        EGLint err = glGetError();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1485
        //err=EGL_CONTEXT_LOST;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1486
        //if(err != EGL_SUCCESS)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1487
        TBool init = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1488
        //while(err != EGL_SUCCESS)GL_NO_ERROR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1489
        while(err != GL_NO_ERROR)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1490
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1491
            /*_LIT(KTextOpenGlError, "ERROR in OpenGL draw: %d");
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1492
            CAknErrorNote* note = new ( ELeave ) CAknErrorNote(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1493
            TBuf<256> text;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1494
            text.Format(KTextOpenGlError, err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1495
            note->ExecuteLD( text );*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1496
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1497
            //suspend or some other power event occurred, context lost
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1498
            /*DeleteTextures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1499
            OpenGLInitL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1500
            InitL();*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1501
            iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1502
            err = glGetError();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1503
            init = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1504
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1505
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1506
        if(init)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1507
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1508
            DeleteTextures();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1509
            OpenGLInitL(); /* reinitialize EGL */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1510
            InitL(); /* reinitialize grid data */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1511
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1512
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1513
        // Clear buffers
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1514
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1515
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1516
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1517
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1518
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1519
// CImagicContainerBrowser::SizeChanged()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1520
// Called by framework when the view size is changed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1521
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1522
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1523
void CImagicContainerBrowser::SizeChanged()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1524
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1525
    DP0_IMAGIC(_L("CImagicContainerBrowser::SizeChanged"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1526
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1527
    iScreenRotateOngoing = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1528
    //TSize size = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1529
    iScreenSize = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1530
    iScreenAspectRatio = (TReal)iScreenSize.iWidth / (TReal)iScreenSize.iHeight;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1531
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1532
    // Reinitialize viewport and projection.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1533
    glViewport( 0, 0, iScreenSize.iWidth, iScreenSize.iHeight );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1534
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1535
    if(iScreenSize.iHeight > iScreenSize.iWidth)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1536
        {//Portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1537
        iDisplayRotation = -90;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1538
        iDisplayRotationTarget = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1539
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1540
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1541
        {//Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1542
        iDisplayRotation = 90;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1543
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1544
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1545
    iScreenRotateOngoing = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1546
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1547
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1548
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1549
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1550
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1551
float CImagicContainerBrowser::GetDisplayRotTargetAngle()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1552
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1553
    return iDisplayRotationTarget;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1554
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1555
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1556
float CImagicContainerBrowser::GetDisplayRotAngle()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1557
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1558
    return iDisplayRotation;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1559
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1560
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1561
void CImagicContainerBrowser::SetDisplayRotAngle(float aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1562
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1563
    iDisplayRotationTarget = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1564
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1565
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1566
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1567
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1568
// CImagicContainerBrowser::CountComponentControls() const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1569
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1570
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1571
TInt CImagicContainerBrowser::CountComponentControls() const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1572
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1573
    return 0; // return nbr of controls inside this container
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1574
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1575
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1576
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1577
// CImagicContainerBrowser::ComponentControl(TInt aIndex) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1578
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1579
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1580
CCoeControl* CImagicContainerBrowser::ComponentControl(TInt /*aIndex*/) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1581
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1582
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1583
    return NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1584
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1585
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1586
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1587
// CImagicContainerBrowser::Draw(const TRect& aRect) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1588
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1589
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1590
void CImagicContainerBrowser::Draw(const TRect& /*aRect*/) const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1591
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1592
    DP0_IMAGIC(_L("CImagicContainerBrowser::Draw"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1593
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1594
    CImagicContainerBrowser* self=const_cast<CImagicContainerBrowser*>(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1595
    self->iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1596
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1597
    /*if(iScreenImmeadetaUpdate)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1598
        self->DrawL();*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1599
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1600
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1601
void CImagicContainerBrowser::SetScreenImmeadetaUpdate(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1602
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1603
    iScreenImmeadetaUpdate = aValue;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1604
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1605
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1606
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1607
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1608
// CImagicContainerBrowser::HandleControlEventL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1609
//     CCoeControl* aControl,TCoeEvent aEventType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1610
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1611
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1612
void CImagicContainerBrowser::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1613
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1614
    // Add your control event handler code here
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1615
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1616
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1617
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1618
// CImagicContainerBrowser::HandlePointerEventL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1619
//     const TPointerEvent& aPointerEvent)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1620
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1621
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1622
void CImagicContainerBrowser::HandlePointerEventL(const TPointerEvent& aPointerEvent)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1623
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1624
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandlePointerEventL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1625
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1626
    EnableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1627
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1628
    //Set normal display draw speed if we were in low draw freq
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1629
#ifdef USE_LOW_DRAW_SPEED_WHILE_LOADING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1630
    SetDrawFreqToNormal(KPowerSavePeriodicDelay);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1631
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1632
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1633
    iUserInputGiven = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1634
    iLastEventFromKeys = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1635
    iOnTheEdge=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1636
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1637
    /* Lets not put this on, othervise does not work in S60 3.2
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1638
    // Do nothing if non-touch
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1639
    if (!AknLayoutUtils::PenEnabled() )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1640
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1641
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1642
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1643
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1644
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1645
#ifdef USE_AVKON_LONGTAP_DETECTOR
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1646
    // Pass the pointer event to Long tap detector component
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1647
    iLongTapDetector->PointerEventL(aPointerEvent);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1648
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1649
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1650
#ifdef USE_AVKON_TACTILE_FEEDBACK
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1651
    if (aPointerEvent.iType == TPointerEvent::EButton1Down)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1652
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1653
            // Give feedback to user (vibration)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1654
            iTouchFeedBack->InstantFeedback(ETouchFeedbackBasic);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1655
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1656
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1657
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1658
    if ( AknLayoutUtils::PenEnabled() )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1659
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1660
        iGesture->PointerEventL(aPointerEvent);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1661
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1662
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1663
    // Call base class HandlePointerEventL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1664
    CCoeControl::HandlePointerEventL(aPointerEvent);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1665
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1666
    SetLastTouchPoint(aPointerEvent.iPosition);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1667
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1668
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandlePointerEventL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1669
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1670
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1671
void CImagicContainerBrowser::SetLastTouchPoint(const TPoint& aPos)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1672
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1673
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1674
    iTouchPointThreshold = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1675
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1676
    if(Abs(aPos.iX-iLastTouchPoint.iX) > 2)//TODO, mika: check correct size
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1677
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1678
        iTouchPointThreshold = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1679
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1680
    if(Abs(aPos.iY-iLastTouchPoint.iY) > 2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1681
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1682
        iTouchPointThreshold = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1683
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1684
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1685
    //Change touch point only if we moved more than 5 pixel
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1686
    //if(changeTouchPoint)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1687
        iLastTouchPoint = aPos;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1688
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1689
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1690
TBool CImagicContainerBrowser::IsTouchPointThresholdExeed()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1691
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1692
    return iTouchPointThreshold;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1693
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1694
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1695
TPoint CImagicContainerBrowser::GetLastTouchPoint(void)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1696
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1697
    return iLastTouchPoint;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1698
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1699
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1700
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1701
// CImagicContainerBrowser::HandleLongTapEventL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1702
//     const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1703
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1704
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1705
void CImagicContainerBrowser::HandleLongTapEventL(const TPoint& /*aPenEventLocation*/, 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1706
                                                  const TPoint& /*aPenEventScreenLocation*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1707
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1708
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleLongTapEventL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1709
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1710
    //THIS FUNCTION IS NOT USED, USE INSTEAD DoLongTap() TO HANDLE LONG TAP EVENTS!!!
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1711
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1712
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleLongTapEventL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1713
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1714
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1715
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1716
// CImagicContainerBrowser::FindImageInScreen(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1717
//     const TPoint aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1718
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1719
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1720
TBool CImagicContainerBrowser::FindImageInScreen(const TPoint aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1721
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1722
    GLfloat modelview[16];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1723
    glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1724
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1725
    GLfloat projection[16];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1726
    glGetFloatv(GL_PROJECTION_MATRIX, projection);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1727
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1728
    int viewport[4];
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1729
    glGetIntegerv(GL_VIEWPORT, viewport);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1730
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1731
    GLfloat x = aPos.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1732
    GLfloat y = this->Size().iHeight - 1 - aPos.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1733
    GLfloat objX[2], objY[2], objZ[2]; // [0] for near, [1] for far
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1734
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1735
    // Get coords in near and far plane. The coords give the ray from near to far plane.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1736
    gluUnProject(x,y,0.0,modelview,projection,viewport,&objX[0],&objY[0],&objZ[0]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1737
    gluUnProject(x,y,1.0,modelview,projection,viewport,&objX[1],&objY[1],&objZ[1]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1738
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1739
    DP3_IMAGIC(_L("####### UnProject(z=0, near):X=%6.4f,Y=%6.4f,Z=%6.4f"), objX[0],objY[0],objZ[0]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1740
    DP3_IMAGIC(_L("####### UnProject(z=1.0,far):X=%6.4f,Y=%6.4f,Z=%6.4f"), objX[1],objY[1],objZ[1]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1741
    DP3_IMAGIC(_L("####### Device (%d):x=%6.3f,y=%6.3f,z=not known"), iCurrentIndex, x,y);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1742
    DP3_IMAGIC(_L("####### Current(%d):x=%6.4f,y=%6.4f"),iCurrentIndex, (iCurrentIndex / CImagicContainerBrowser::KGridSizeY) * KSpacingX, -(iCurrentIndex % CImagicContainerBrowser::KGridSizeY) * KSpacingY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1743
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1744
    GLfloat perspectiveDepth = objZ[0] - objZ[1]; // near value is bigger. depth = near - far.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1745
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1746
    aResultIndex = -1; // gives invalid value if not found
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1747
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1748
    // The ray is linear. Can get xy at a depth by multiply '(a depth)/(near/far depth)'
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1749
    TInt numOfImages = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1750
    for (TInt i = 0; i < numOfImages; ++i)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1751
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1752
        GLfloat itemZ = iIEngine->GetImageData(i)->iGridData.iZ;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1753
        GLfloat itemDepthCoord = -itemZ - iDrawGrid->GetGridZoom(); // -  objZ[0]; // camera shifted by iDrawGridZoom. perspective starts from near.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1754
        GLfloat itemDepth = itemDepthCoord / perspectiveDepth;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1755
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1756
        GLfloat itemX = objX[0] + itemDepth * (objX[1] - objX[0]); // = near + u(far - near)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1757
        GLfloat itemY = objY[0] + itemDepth * (objY[1] - objY[0]); // = near + u(far - near)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1758
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1759
        CImageData* imageData = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1760
        GLfloat itemScale = imageData->iGridData.iScale;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1761
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1762
        GLfloat width  = KSpacingX; // * itemScale; // TODO: check!. No need to consider scaling. Why?
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1763
        GLfloat height = KSpacingY; // * itemScale;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1764
        GLfloat objx = imageData->iGridData.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1765
        GLfloat objy = imageData->iGridData.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1766
        //GLfloat objx =  (i / CImagicContainerBrowser::KGridSizeY) * width;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1767
        //GLfloat objy = -(i % CImagicContainerBrowser::KGridSizeY) * height;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1768
        //TODO: consider aspect ratio
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1769
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1770
        DP3_IMAGIC(_L("####### UnProject: itemX=%f, itemY=%f, itemZ=%f"), itemX, itemY, itemZ);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1771
        DP4_IMAGIC(_L("####### UnProject: itemDepthCoord=%f, perspectiveDepth=%f, itemDepth=%f, itemScale=%f"),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1772
            itemDepthCoord, perspectiveDepth, itemDepth, itemScale);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1773
        DP4_IMAGIC(_L("#######(%d) %6.4f < x(%6.4f) < %6.4f"), i, objx-width/2, itemX, objx+width/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1774
        DP4_IMAGIC(_L("#######(%d) %6.4f < y(%6.4f) < %6.4f"), i, objy-height/2, itemY, objy+height/2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1775
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1776
        if (objx-width/2 <= itemX && itemX < objx + width/2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1777
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1778
            if (objy-height/2 <= itemY && itemY < objy + height/2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1779
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1780
                aResultIndex = i;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1781
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1782
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1783
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1784
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1785
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1786
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1787
    // just trial code. useful for checking unprojection results
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1788
    z = 0.9997; // best reasonable fixed value from experience
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1789
    gluUnProject(x,y,z,modelview,projection,viewport,&objX,&objY,&objZ);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1790
    RDebug::Print(_L("####### UnProject(z=%8.6f):X=%6.4f,Y=%6.4f,Z=%6.4f"), z,objX,objY,objZ);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1791
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1792
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1793
    //DP1_IMAGIC(_L("####### SELECTED =====> %d"), selectedIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1794
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1795
    return (aResultIndex != -1)? ETrue: EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1796
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1797
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1798
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1799
// CImagicContainerBrowser::GetMaxX()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1800
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1801
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1802
TReal CImagicContainerBrowser::GetMaxX() const
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1803
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1804
    TInt images = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1805
    return images > 0 ? iIEngine->GetImageData(images - 1)->iGridData.iX : 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1806
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1807
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1808
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1809
// CImagicContainerBrowser::FindImageInOGl(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1810
//     const FloatCoords aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1811
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1812
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1813
TBool CImagicContainerBrowser::FindNearestImageInOGl(const FloatCoords aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1814
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1815
    float width  = KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1816
    float height = KSpacingY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1817
    float itemX = aPos.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1818
    float itemY = aPos.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1819
    TInt  image_num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1820
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1821
    DP2_IMAGIC(_L("1: itemXY=(%6.4f,%6.4f)"), itemX, itemY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1822
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1823
    itemX = Max(itemX, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1824
    itemX = Min(itemX, GetMaxX()); //image_num / CImagicContainerBrowser::KGridSizeY) * width);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1825
    itemY = Max(itemY, 0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1826
    itemY = Min(itemY, (CImagicContainerBrowser::KGridSizeY - 1) * height);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1827
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1828
    DP2_IMAGIC(_L("2: itemXY=(%6.4f,%6.4f)"), itemX, itemY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1829
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1830
    aResultIndex = -1; // gives invalid value if not found
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1831
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1832
    // The ray is linear. Can get xy at a depth by multiply '(a depth)/(near/far depth)'
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1833
    for (TInt i=0; i<image_num; ++i)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1834
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1835
        CImageData* imageData = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1836
        GLfloat itemZ = imageData->iGridData.iZ;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1837
        GLfloat objx = imageData->iGridData.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1838
        GLfloat objy = -imageData->iGridData.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1839
        //GLfloat objx = (i / iGridSizeY) * width;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1840
        //GLfloat objy = (i % iGridSizeY) * height;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1841
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1842
        if (objx-width/2 <= itemX && itemX < objx + width/2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1843
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1844
            if (objy-height/2 <= itemY && itemY < objy + height/2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1845
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1846
                aResultIndex = i;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1847
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1848
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1849
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1850
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1851
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1852
    return (aResultIndex != -1)? ETrue: EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1853
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1854
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1855
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1856
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1857
// CImagicContainerBrowser::ConvertCoordsFromScreen2OGl(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1858
//     const TPoint aPos, FloatCoords& aCoord)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1859
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1860
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1861
FloatCoords CImagicContainerBrowser::ConvertCoordsFromScreen2OGl(const TPoint aPos)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1862
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1863
    // Calculte OpenGL coords in current image for OneByOne view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1864
    TSize size = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1865
    FloatCoords coord;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1866
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1867
    // OpenGL coord (-0.5 - +0.5) = (relative position in screen) * (coordinate system)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1868
    coord.iX = (((float)aPos.iX / size.iWidth ) - 0.5) * (iDrawOneByOne->GetDrawOneByOneWidth() * 2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1869
    coord.iY = (((float)aPos.iY / size.iHeight) - 0.5) * (iDrawOneByOne->GetDrawOneByOneHeight() * 2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1870
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1871
//    RDebug::Print(_L("ConvertCoordsFromScreen2OGl: aPos(%d,%d)/size(%d,%d)*ortho(%6.4f,%6.4f) = coord(%6.4f,%6.4f)"),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1872
//            aPos.iX, aPos.iY, size.iWidth, size.iHeight, iDrawOnebyOneW, iDrawOnebyOneH, coord.iX, coord.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1873
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1874
    // scale -> translate -> rotate when display
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1875
    // translate -> scale on calculation. TODO: rotate needs to be considered.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1876
    coord.iX = (coord.iX + iDrawOneByOne->GetDrawOneByOneXY().iX) / iDrawOneByOne->GetDrawOneByOneZoom(); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1877
    coord.iY = (coord.iY - iDrawOneByOne->GetDrawOneByOneXY().iY) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1878
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1879
//    RDebug::Print(_L("ConvertCoordsFromScreen2OGl: coord(%6.4f,%6.4f)+trans(%6.4f,%6.4f)*zoom(%6.4f)"),
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1880
//            coord.iX, coord.iY, iDrawOneByOneX, iDrawOneByOneY, iDrawOneByOneZoom);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1881
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1882
    return coord;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1883
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1884
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1885
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1886
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1887
// CImagicContainerBrowser::FindNearestFace(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1888
//     const TPoint aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1889
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1890
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1891
TBool CImagicContainerBrowser::FindNearestFace(const TPoint aPos, TInt& aResultIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1892
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1893
    DP0_IMAGIC(_L("CImagicContainerBrowser::FindNearestFace++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1894
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1895
    // number of faces in current image(iCurrentIndex). iCoordinates must be already set
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1896
    TInt facecount = iDrawFaceBrowsing->GetFaceCount();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1897
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1898
    TBool isCloseEnough = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1899
    TBool found = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1900
    float closestDistance = 0.0;  // this is actully square of distance.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1901
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1902
//    ConvertScreenCoords2QvgaCoords(TPoint& aPoint, TRect& aRect)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1903
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1904
    FloatCoords coord = ConvertCoordsFromScreen2OGl(aPos);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1905
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1906
    if(!GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1907
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1908
        // swap x and y in portrait
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1909
        float temp = coord.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1910
        coord.iX = -coord.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1911
        coord.iY = temp ;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1912
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1913
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1914
    DP4_IMAGIC(_L("CImagicContainerBrowser::FindNearestFace: aPos(%d,%d) => Coord(%6.4f,%6.4f)"),aPos.iX,aPos.iY,coord.iX,coord.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1915
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1916
    for(TInt i=0; i<facecount; ++i)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1917
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1918
        FloatCoords tmp = iDrawFaceBrowsing->ConvertCoordsFromAlgo2OGl(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1919
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1920
        DP3_IMAGIC(_L("CImagicContainerBrowser::FindNearestFace: ====> face %d(%6.4f,%6.4f)"), i, tmp.iX,tmp.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1921
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1922
        float distance;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1923
        float diff_x = Abs(tmp.iX - coord.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1924
        float diff_y = Abs(tmp.iY - coord.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1925
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1926
        distance = diff_x*diff_x + diff_y*diff_y;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1927
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1928
        DP3_IMAGIC(_L("CImagicContainerBrowser::FindNearestFace: diff x=%6.4f, y=%6.4f. distance=%8.5f)"), diff_x, diff_y, distance);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1929
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1930
        if (distance < closestDistance || !found)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1931
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1932
            found = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1933
            aResultIndex = i;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1934
            closestDistance = distance;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1935
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1936
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1937
        if (distance < KFindFaceSearchRange) isCloseEnough = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1938
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1939
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1940
    DP1_IMAGIC(_L("CImagicContainerBrowser::FindNearestFace(%d)--"), isCloseEnough);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1941
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1942
    return isCloseEnough;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1943
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1944
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1945
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1946
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1947
// CImagicContainerBrowser::HandleGestureBeganL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1948
//     const TPoint& aPos)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1949
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1950
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1951
void CImagicContainerBrowser::HandleGestureBeganL(const TPoint& aPos)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1952
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1953
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleGestureBeganL"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1954
    // do nothing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1955
#ifdef SELECT_ON_TOUCHDOWN
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1956
    TInt sel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1957
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1958
    if ((iDrawFunction == EGrid) && FindImageInScreen(aPos, sel)) {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1959
        iCurrentIndex = sel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1960
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1961
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1962
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1963
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1964
#ifdef MOMENTUM_MOVE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1965
    iMomentumMove = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1966
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1967
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1968
#ifdef RD_FACEFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1969
    //iDrawFaceFrame = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1970
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1971
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1972
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1973
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1974
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1975
// CImagicContainerBrowser::HandleGestureMovedL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1976
//     const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1977
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1978
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1979
void CImagicContainerBrowser::HandleGestureMovedL(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1980
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1981
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleGestureMovedL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1982
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1983
    if (IS_GESTURE_TAPnDRAG(aType)) // tap&drag for zoom and rotate
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1984
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1985
        DP0_IMAGIC(_L("IS_GESTURE_TAPnDRAG"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1986
        // Gesture movement and coord movement are opposite. EFalse for no wrap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1987
        DoTapAndDrag(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1988
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1989
    else if (IS_GESTURE_DRAG(aType)) // just a drag. not Tap and Drag
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1990
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1991
        DP0_IMAGIC(_L("IS_GESTURE_DRAG"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1992
        // actions for dragging
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1993
        // This drag event occurs even finger movement is still within tap threshold
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1994
        DoDrag(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1995
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1996
        iHoldSelection = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1997
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1998
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  1999
    else if (IS_GESTURE_CURSORSIMULATION(aType))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2000
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2001
        DP0_IMAGIC(_L("IS_GESTURE_CURSORSIMULATION"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2002
        DoCursorSimulation(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2003
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2004
    else if (IS_GESTURE_LONGTAPPING(aType))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2005
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2006
        DP0_IMAGIC(_L("IS_GESTURE_LONGTAPPING"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2007
        DoLongTapping(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2008
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2009
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2010
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleGestureMovedL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2011
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2012
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2013
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2014
// CImagicContainerBrowser::HandleGestureEndedL(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2015
//     const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2016
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2017
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2018
void CImagicContainerBrowser::HandleGestureEndedL(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2019
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2020
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2021
    // User doesn't touching screen and auto-move can start
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2022
    iHoldSelection = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2023
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2024
#ifdef RD_FACEFRAME
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2025
    //iDrawFaceFrame = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2026
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2027
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2028
// TODO: FIXME: unno temp fix endless cursor movement.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2029
// These need to be set false when key was released. TODO: how to do in dragging in touch... 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2030
    iTouchMoveData.iRight = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2031
    iTouchMoveData.iLeft = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2032
    iTouchMoveData.iUp = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2033
    iTouchMoveData.iDown = EFalse;//*mika*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2034
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2035
    iOnTheEdge=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2036
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2037
    if (IS_GESTURE_SINGLETAP(aType))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2038
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2039
        DoSingleTap(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2040
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2041
    else if (IS_GESTURE_DOUBLETAP(aType))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2042
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2043
        DoDoubleTap(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2044
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2045
    else if (IS_GESTURE_LONGTAP(aType))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2046
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2047
        DoLongTap(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2048
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2049
    else // Then DoFlick if not single/double tap
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2050
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2051
        DoFlick(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2052
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2053
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2054
    // Disable MagGlass when user releases finger 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2055
    ShowMagGlass(EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2056
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2057
    //Set normal display draw speed if we were in low draw freq
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2058
#ifdef USE_LOW_DRAW_SPEED_WHILE_LOADING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2059
    SetDrawFreqToNormal(KTouchDelay);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2060
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2061
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2062
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2063
void CImagicContainerBrowser::DoTapAndDrag(const TPoint& /*aPos*/, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2064
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2065
#ifdef TAP_AND_GESTURE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2066
    // unno experimental code
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2067
    if (aType & EGestureUp)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2068
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2069
        iTouchMoveData.iZoomOut=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2070
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2071
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2072
    if (aType & EGestureDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2073
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2074
        iTouchMoveData.iZoomIn=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2075
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2076
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2077
    if (aType & EGestureLeft)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2078
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2079
        iTouchMoveData.iRotate -= 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2080
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2081
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2082
    if (aType & EGestureRight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2083
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2084
        iTouchMoveData.iRotate += 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2085
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2086
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2087
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2088
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2089
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2090
void CImagicContainerBrowser::DoCursorSimulation(const TPoint& /*aPos*/, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2091
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2092
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoCursorSimulation++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2093
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2094
    TInt x = 0, y = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2095
    TBool wrap = (iDrawFunction == EGrid)? EFalse: ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2096
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2097
    // do nothing if it's in the mode with no cursor simulation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2098
#ifndef CURSORSIMULATION_IN_GRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2099
    if (iDrawFunction == EGrid) return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2100
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2101
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2102
#ifndef CURSORSIMULATION_IN_ONEBYONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2103
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2104
    if (iDrawFunction == EOneByOne) return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2105
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2106
    if (((iDrawFunction == EOneByOne) && (!IS_NOT_IN_ZOOM_ONEBYONE))) return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2107
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2108
    // allow only left&right to move prev/next image. (do nothing if up or down)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2109
    if((iDrawFunction == EOneByOne) && ((aType & EGestureUp) || (aType & EGestureDown))) return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2110
#endif // HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2111
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2112
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2113
    // cursor move for dragging
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2114
    if (aType & EGestureUp)    ++y;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2115
    if (aType & EGestureDown)  --y;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2116
    if (aType & EGestureLeft)  ++x;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2117
    if (aType & EGestureRight) --x;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2118
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2119
    DP3_IMAGIC(_L("CImagicContainerBrowser::DoCursorSimulation : aType=%d, x=%d, y=%d"), aType, x, y);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2120
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2121
    if (x || y) // move index only if x or y are changed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2122
        MoveIndex(x, y, wrap);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2123
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2124
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoCursorSimulation--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2125
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2126
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2127
void CImagicContainerBrowser::DoDrag(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2128
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2129
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoDrag++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2130
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2131
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2132
    ResetKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2133
    ResetTouchData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2134
    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2135
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2136
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2137
    float minX, maxX, minY, maxY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2138
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2139
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2140
#ifndef CURSORSIMULATION_IN_ONEBYONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2141
    TSize size = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2142
    FloatCoords coord;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2143
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2144
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2145
    // do nothing if it's stationally (not beyond tap threshold) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2146
    if (IS_GESTURE_STATIONARY(aType)) return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2147
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2148
    //iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2149
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2150
    switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2151
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2152
        case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2153
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2154
            // Drag to shift view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2155
            coord.iX = (GLfloat)aPos.iX / 120; //160; // TODO: calc right value from z coord & scale
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2156
            coord.iY = (GLfloat)aPos.iY / 90;  //120; // TODO: calc right value from z coord & scale
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2157
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2158
            minX = -KSpacingX/2; // allow to move one-picture-size away from the edge
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2159
            maxX = +KSpacingX/2 + GetMaxX();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2160
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2161
            minY = 0; // don't allow to move away from the edge
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2162
            maxY = (CImagicContainerBrowser::KGridSizeY-1)*KSpacingY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2163
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2164
            if (iDrawGrid->GetGridXY().iX < minX - minX || maxX + minX < iDrawGrid->GetGridXY().iX) coord.iX /= 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2165
            if (iDrawGrid->GetGridXY().iY < minY - minY || maxY + minY < iDrawGrid->GetGridXY().iY) coord.iY /= 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2166
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2167
            TGridXY tmp = iDrawGrid->GetGridXY();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2168
            tmp.iX -= coord.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2169
            tmp.iY -= coord.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2170
            CheckLimits(tmp.iX, minX, maxX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2171
            CheckLimits(tmp.iY, minY, maxY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2172
            iDrawGrid->SetGridXY(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2173
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2174
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2175
        case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2176
#ifndef CURSORSIMULATION_IN_ONEBYONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2177
            if (!IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2178
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2179
                // Drag only in zoomed image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2180
                coord.iX = (((float)aPos.iX / size.iWidth ) * (iDrawOneByOne->GetDrawOneByOneWidth() * 2)) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2181
                coord.iY = (((float)aPos.iY / size.iHeight) * (iDrawOneByOne->GetDrawOneByOneHeight() * 2)) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2182
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2183
                iDrawOneByOne->ChangeDrawOneByOneTargetX(-coord.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2184
                iDrawOneByOne->ChangeDrawOneByOneTargetY(-coord.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2185
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2186
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2187
            else if (!iDrawOneByOne->IsMagGlassOn() /*iMagGlassOn*/) // not in zoom, magglass off
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2188
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2189
                // drag in x coord direction to move prev/next image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2190
                coord.iX = (((float)aPos.iX / size.iWidth ) * (iDrawOneByOne->GetDrawOneByOneWidth() * 2)) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2191
                //iOneByOneFlow += coord.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2192
                float tmp = iDrawOneByOne->GetImgeFlowLocation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2193
                tmp+=coord.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2194
                iDrawOneByOne->SetImgeFlowLocation(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2195
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2196
                iOneByOneSlideByDrag = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2197
                DP1_IMAGIC(_L("Sliding iOneByOneFlow=%6.4f"), iDrawOneByOne->GetImgeFlowLocation());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2198
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2199
#endif // HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2200
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2201
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2202
        case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2203
// TODO: Integrate face browing and dragging!
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2204
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2205
            DP0_IMAGIC(_L("CImagicContainerBrowser::DoDrag - EFaceBrowser"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2206
            //DoFlick(aPos, aType);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2207
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2208
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2209
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2210
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2211
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2212
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2213
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoDrag--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2214
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2215
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2216
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2217
void CImagicContainerBrowser::DoFlick(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2218
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2219
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoFlick++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2220
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2221
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2222
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2223
#ifndef CURSORSIMULATION_IN_ONEBYONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2224
    TSize size = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2225
    FloatCoords coord;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2226
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2227
#ifdef MOMENTUM_MOVE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2228
    float vX, vY, tX, tY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2229
    float minX, maxX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2230
#ifndef FLICK_ONLY_IN_X_IN_GRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2231
    float minY, maxY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2232
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2233
    TInt x, y, absX, absY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2234
    TBool valid_x, valid_y;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2235
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2236
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2237
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2238
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2239
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2240
    switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2241
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2242
        case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2243
            DP0_IMAGIC(_L("CImagicContainerBrowser::DoFlick - EGrid"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2244
#ifdef MOMENTUM_MOVE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2245
            // TODO: FIXME: Good value needed. Not 180. Consider non-liner speed.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2246
            // TODO: 128 should be the size of images in Screen (pixels) at z = 0 (not zoomed)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2247
const TInt FLICKUNIT=128; // movement of 128 px/s = 1 flick unit speed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2248
//const TInt FLICK_2ND_GEAR = 8;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2249
const TInt FLICK_2ND_GEAR = 16;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2250
const TInt FLICK_3ND_GEAR = 8;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2251
            x = aPos.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2252
            y = aPos.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2253
            absX = Abs(x);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2254
            absY = Abs(y);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2255
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2256
            valid_x = (absX && (absX * 5 > absY * 3))? ETrue: EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2257
            valid_y = (absY && (absY * 5 > absX * 4))? ETrue: EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2258
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2259
            if (!valid_x || (absX < FLICKUNIT / 3))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2260
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2261
                vX = tX = 0.0f;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2262
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2263
            else if (absX < FLICKUNIT)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2264
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2265
                vX = ((float)x / absX) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2266
                tX = (       x / absX) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2267
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2268
                if (tX>0 && iDrawGrid->GetGridTargetXY().iX < iDrawGrid->GetGridXY().iX) tX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2269
                if (tX<0 && iDrawGrid->GetGridTargetXY().iX > iDrawGrid->GetGridXY().iX) tX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2270
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2271
            else if (absX < FLICKUNIT * FLICK_2ND_GEAR)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2272
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2273
                vX = ((float)x / FLICKUNIT) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2274
                tX = (       x / FLICKUNIT) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2275
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2276
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2277
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2278
                float u = absX / FLICKUNIT;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2279
                float v = u*u - 2*FLICK_3ND_GEAR*u + FLICK_3ND_GEAR*FLICK_3ND_GEAR + FLICK_3ND_GEAR;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2280
                if (x < 0) v = -v;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2281
                vX = ((float)v) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2282
                tX = (       v) * KSpacingX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2283
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2284
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2285
            vY = (valid_y)? ((float)y / FLICKUNIT) * KSpacingY: 0.0f;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2286
            tY = (valid_y)? (       y / FLICKUNIT) * KSpacingY: 0.0f;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2287
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2288
            DP4_IMAGIC(_L("vX/Y=(%6.4f, %6.4f), tX/Y=(%6.4f,%6.4f)"), vX, vY, tX, tY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2289
            DP2_IMAGIC(_L("aPos.iX/Y=(%d,%d)"), aPos.iX, aPos.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2290
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2291
            iMomentumMove = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2292
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2293
            iMomentumSpeedX = Abs(vX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2294
            //iDrawGridTargetX += (-tX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2295
            TGridXY tmp = iDrawGrid->GetGridTargetXY();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2296
            tmp.iX += (-tX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2297
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2298
            minX = -KSpacingX/2; // allow to move one-picture-size away from the edge
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2299
            maxX = +KSpacingX/2 + GetMaxX();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2300
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2301
            //CheckLimits(iDrawGridTargetX, minX, maxX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2302
            CheckLimits(tmp.iX, minX, maxX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2303
            iDrawGrid->SetGridTargetXY(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2304
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2305
#ifndef FLICK_ONLY_IN_X_IN_GRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2306
            iMomentumSpeedY = Abs(vY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2307
            iDrawGridTargetY += (-tY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2308
            minY = 0; // don't allow to move away from the edge
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2309
            maxY = (iGridSizeY-1)*KSpacingY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2310
            CheckLimits(iDrawGridTargetY, minY, maxY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2311
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2312
            iMomentumSpeedY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2313
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2314
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2315
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2316
        case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2317
            DP0_IMAGIC(_L("CImagicContainerBrowser::DoFlick - EOneByOne"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2318
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2319
#ifndef CURSORSIMULATION_IN_ONEBYONE
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2320
            vX = (float)aPos.iX / 2; // pixels of movement in 0.5 sec
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2321
            vY = (float)aPos.iY / 2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2322
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2323
            coord.iX = ((vX / size.iWidth ) * (iDrawOneByOne->GetDrawOneByOneWidth() * 2)) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2324
            coord.iY = ((vY / size.iHeight) * (iDrawOneByOne->GetDrawOneByOneHeight() * 2)) / iDrawOneByOne->GetDrawOneByOneZoom();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2325
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2326
            iDrawOneByOne->ChangeDrawOneByOneTargetX(-coord.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2327
            iDrawOneByOne->ChangeDrawOneByOneTargetY(-coord.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2328
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2329
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2330
#ifdef HOLD_SELECTION_ONDRAG
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2331
            // Find current index if sliding is done by dragging in OneByOne view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2332
            // iOneByOneSlideByDrag is set EFalse in HandleMovingKeysOneByOne() 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2333
            // Flick is not currently affecting even though this is in DoFlick()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2334
            DP2_IMAGIC(_L("Checking iOneByOneSlideByDrag (%d), iOneByOneFlow=%6.4f"), iOneByOneSlideByDrag, iDrawOneByOne->GetImgeFlowLocation());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2335
            if (iOneByOneSlideByDrag)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2336
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2337
                if (iDrawOneByOne->GetImgeFlowLocation() > +KOneByOneSpacing / 10) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2338
                    MoveIndex(-1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2339
                if (iDrawOneByOne->GetImgeFlowLocation() < -KOneByOneSpacing / 10) 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2340
                    MoveIndex(+1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2341
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2342
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2343
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2344
        case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2345
            DP0_IMAGIC(_L("CImagicContainerBrowser::DoFlick - EFaceBrowser"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2346
            if(GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2347
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2348
                if (aType & EGestureLeft)  MoveIndex( 1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2349
                if (aType & EGestureRight) MoveIndex(-1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2350
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2351
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2352
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2353
                if (aType & EGestureDown)  MoveIndex( 1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2354
                if (aType & EGestureUp)    MoveIndex(-1, 0, ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2355
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2356
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2357
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2358
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2359
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2360
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2361
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2362
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2363
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoFlick--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2364
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2365
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2366
void CImagicContainerBrowser::DoSingleTap(const TPoint& aPos, const TGestureType /*aType*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2367
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2368
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoSingleTap++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2369
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2370
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2371
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2372
    TInt sel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2373
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2374
    switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2375
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2376
        case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2377
            if (FindImageInScreen(aPos, sel))       // do nothing if user touches none
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2378
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2379
                if (iCurrentIndex == sel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2380
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2381
                    SelectIndex();          // Open image if user touches current image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2382
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2383
                else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2384
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2385
                    iCurrentIndex = sel;    // focus touched image if it's not current one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2386
                    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2387
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2388
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2389
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2390
        case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2391
            // TODO: Add face browsing by signle tap, maybe on zoom?
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2392
            DP1_IMAGIC(_L("DoSingleTap:iDrawOneByOneZoom=%6.4f"), iDrawOneByOne->GetDrawOneByOneZoom());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2393
            if (IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2394
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2395
                /*TInt dx = 50 - aPos.iX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2396
                TInt dy = 50 - aPos.iY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2397
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2398
                // start face browing if user taps at top left when face icon is shown 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2399
                if (iFaceExists && (dx*dx + dy*dy < 50*50))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2400
                    iView->HandleCommandL(EImagicCmdViewFaceBrowsing);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2401
                else*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2402
                    SelectIndex(); // exits only when non zoomed.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2403
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2404
#ifdef SINGLETAP_CLOSE_IN_ZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2405
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2406
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2407
                // Stop zooming if it's in zoom
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2408
                //iDrawOneByOne->SetDrawOneByOneTargetZoom(KDoubleTapZoomOneByOne1);//mika, single tap disabled in zzomed in picture
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2409
                iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2410
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2411
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2412
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2413
        case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2414
#ifdef SINGLETAP_CLOSE_IN_ZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2415
            // TODO: FIXME. Temporary hack to start OnebyOne view. Pretend it's grid and do select action 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2416
            //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2417
            //SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2418
            /*SelectIndex();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2419
            SetDrawMode(EOneByOne);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2420
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2421
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2422
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2423
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2424
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2425
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2426
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2427
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoSingleTap--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2428
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2429
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2430
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2431
void CImagicContainerBrowser::DoDoubleTap(const TPoint& aPos, const TGestureType /*aType*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2432
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2433
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoDoubleTap++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2434
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2435
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2436
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2437
#ifdef DOUBLETAP_SELECT_IN_GRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2438
    TInt sel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2439
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2440
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2441
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2442
    switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2443
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2444
#define TOGGLE_VALUE(tgt, val1, val2)  (tgt)=((tgt)!=(val1))?(val1):(val2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2445
        case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2446
#ifdef DOUBLETAP_SELECT_IN_GRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2447
            if (FindImageInScreen(aPos, sel))       // do nothing if user touches none
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2448
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2449
                iCurrentIndex = sel;    // focus touched image if it's not current one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2450
                SelectIndex();          // Open image if user touches current image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2451
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2452
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2453
#ifdef ENABLE_GRID_ZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2454
#ifdef DOUBLETAP_ZOOMGRID
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2455
            TOGGLE_VALUE(iDrawGridTargetZoom, KDoubleTapZoomGrid1, KDoubleTapZoomGrid2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2456
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2457
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2458
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2459
        case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2460
#ifdef DOUBLETAP_FACEBROWSING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2461
            if (IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2462
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2463
                iView->HandleCommandL(EImagicCmdViewFaceBrowsingWithCoordinates);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2464
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2465
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2466
            // toggle zooming on and off if MagGlass is off
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2467
            if(!iDrawOneByOne->IsMagGlassOn()/*iMagGlassOn*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2468
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2469
                //TOGGLE_VALUE(iDrawOneByOneTargetZoom, KDoubleTapZoomOneByOne1, KDoubleTapZoomOneByOne2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2470
                if(iDrawOneByOne->GetDrawOneByOneTargetZoom() == KDoubleTapZoomOneByOne1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2471
                    iDrawOneByOne->SetDrawOneByOneTargetZoom(KDoubleTapZoomOneByOne2);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2472
                else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2473
                    iDrawOneByOne->SetDrawOneByOneTargetZoom(KDoubleTapZoomOneByOne1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2474
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2475
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2476
            if (iDrawOneByOne->GetDrawOneByOneTargetZoom() == KDoubleTapZoomOneByOne2)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2477
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2478
                // if we are zooming in, tapped position is set as center
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2479
                TSize size = this->Size();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2480
                float imageWidth, imageHeight;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2481
                CalculateImageSize(imageWidth, imageHeight, (float)size.iWidth/(float)size.iHeight);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2482
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2483
                /*iDrawOneByOneTargetX = (2*iImageWidth) *(((float)aPos.iX / size.iWidth ) - 0.5);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2484
                iDrawOneByOneTargetY = (2*iImageHeight)*(((float)aPos.iY / size.iHeight) - 0.5);*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2485
                TDrawOneByOneXY tmp; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2486
                tmp.iX = (2*imageWidth) *(((float)aPos.iX / size.iWidth ) - 0.5);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2487
                tmp.iY = (2*imageHeight)*(((float)aPos.iY / size.iHeight) - 0.5);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2488
                iDrawOneByOne->SetDrawOneByOneTargetXY(tmp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2489
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2490
                /*if(!GetScreenOrientation())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2491
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2492
                    float tmp = iDrawOneByOneTargetX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2493
                    iDrawOneByOneTargetX = -iDrawOneByOneTargetY; 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2494
                    iDrawOneByOneTargetY = tmp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2495
                    }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2496
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2497
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2498
        case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2499
#ifdef DOUBLETAP_FACEBROWSING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2500
            // TODO: FIXME. Temporary hack to start OnebyOne view. Pretend it's grid and do select action 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2501
            //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2502
            drawZoom = 1; inPictureX = 0; inPictureY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2503
            iDrawFaceBrowsing->GetFBZoomAndLocation(drawZoom, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2504
            iDrawOneByOne->InitDrawOnebyOne(drawZoom, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2505
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2506
            SelectIndex();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2507
            SetDrawMode(EOneByOne/*EGrid*/);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2508
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2509
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2510
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2511
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2512
    DP0_IMAGIC(_L("CImagicContainerBrowser::DoDoubleTap--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2513
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2514
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2515
void CImagicContainerBrowser::DoLongTapping(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2516
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2517
    DP1_IMAGIC(_L("CImagicContainerBrowser::DoLongTapping aPos.iX: %d"), aPos.iX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2518
    DP1_IMAGIC(_L("CImagicContainerBrowser::DoLongTapping aPos.iY: %d"), aPos.iY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2519
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2520
    //ResetTouchData();//mika to test if "stucking" problem is fixed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2521
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2522
    // touch movement is stationary for enough long time 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2523
    switch (iDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2524
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2525
        case EOneByOne:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2526
            ShowMagGlass(ETrue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2527
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2528
        case EGrid:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2529
            iView->ProcessCommandL(EAknSoftkeyOptions);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2530
            /*TInt sel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2531
            if (FindImageInScreen(aPos, sel))       // do nothing if user touches none
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2532
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2533
                if (iCurrentIndex == sel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2534
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2535
                    iView->ProcessCommandL(EAknSoftkeyOptions);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2536
                    //iView->ProcessCommandL(EImagicCmdViewBrowserShowImageInfo);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2537
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2538
                }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2539
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2540
            /*else if(aPos.iX > 100)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2541
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2542
                iView->ProcessCommandL(EAknSoftkeyOptions);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2543
                }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2544
#if 0
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2545
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2546
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2547
                //iView->ProcessCommandL(EAknSoftkeyOptions);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2548
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2549
#endif           
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2550
            //iView->ProcessCommandL(EAknSoftkeyOptions);//TODO, options should be shown from softkeys 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2551
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2552
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2553
        case EFaceBrowser:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2554
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2555
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2556
            // do nothing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2557
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2558
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2559
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2560
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2561
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2562
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2563
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2564
void CImagicContainerBrowser::DoLongTap(const TPoint& aPos, const TGestureType aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2565
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2566
    // do nothing so far.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2567
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2568
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2569
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2570
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2571
// CImagicContainerBrowser::MoveIndex(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2572
//     TInt aMoveX, TInt aMoveY, TBool aWrap)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2573
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2574
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2575
void CImagicContainerBrowser::MoveIndex(TInt aMoveX, TInt aMoveY, TBool aWrap)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2576
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2577
    DP0_IMAGIC(_L("CImagicContainerBrowser::MoveIndex++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2578
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2579
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2580
    // Reset key data
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2581
    iTouchMoveData.iRight = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2582
    iTouchMoveData.iLeft = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2583
    iTouchMoveData.iUp = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2584
    iTouchMoveData.iDown = EFalse;//*mika*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2585
    iTouchMoveData.iX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2586
    iTouchMoveData.iY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2587
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2588
    if (aMoveX < 0) // left key press
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2589
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2590
        if (aWrap || iCurrentIndex >= CImagicContainerBrowser::KGridSizeY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2591
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2592
            if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2593
                //iFaceNro--; // prev face in face browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2594
                iDrawFaceBrowsing->DecFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2595
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2596
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2597
                iTouchMoveData.iX    = aMoveX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2598
                iTouchMoveData.iLeft = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2599
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2600
            iDrawNow       = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2601
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2602
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2603
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2604
    if (aMoveX > 0) // right key press
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2605
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2606
        if (aWrap || iCurrentIndex < num - CImagicContainerBrowser::KGridSizeY)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2607
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2608
            if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2609
                //iFaceNro++; // next face in face browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2610
                iDrawFaceBrowsing->IncFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2611
            else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2612
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2613
                iTouchMoveData.iX     = aMoveX;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2614
                iTouchMoveData.iRight = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2615
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2616
            iDrawNow        = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2617
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2618
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2619
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2620
    if (aMoveY < 0) // up key press
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2621
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2622
        if (aWrap || iCurrentIndex % CImagicContainerBrowser::KGridSizeY > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2623
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2624
            iTouchMoveData.iY  = aMoveY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2625
            iTouchMoveData.iUp = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2626
            iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2627
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2628
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2629
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2630
    if (aMoveY > 0) // down key press
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2631
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2632
        if ( aWrap || 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2633
            ((iCurrentIndex % CImagicContainerBrowser::KGridSizeY < CImagicContainerBrowser::KGridSizeY - 1) &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2634
             (iCurrentIndex < num - 1)))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2635
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2636
            iTouchMoveData.iY    = aMoveY;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2637
            iTouchMoveData.iDown = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2638
            iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2639
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2640
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2641
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2642
    DP0_IMAGIC(_L("CImagicContainerBrowser::MoveIndex--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2643
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2644
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2645
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2646
// CImagicContainerBrowser::SelectIndex(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2647
//     void)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2648
// ---------------------------------------------------------
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2649
//
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2650
void CImagicContainerBrowser::SelectIndex(void)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2651
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2652
    DP0_IMAGIC(_L("CImagicContainerBrowser::SelectIndex++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2653
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2654
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2655
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2656
    if(iDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2657
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2658
        //Open one by one mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2659
        iDrawOneByOne->InitDrawOnebyOne(KInitDrawZoom/*drawZoom*/, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2660
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2661
        //Set Grid view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2662
        if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2663
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2664
            //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2665
            SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2666
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2667
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2668
        iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2669
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2670
    else if(iDrawFunction == EOneByOne)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2671
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2672
/*#ifdef SUPERZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2673
        //Unload high res textures when going back to Grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2674
        CImageData* aGridData = iIEngine->GetImageData(iCurrentIndex); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2675
        iTextureLoader->ReleaseSuperHResTexture( aGridData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2676
#endif*/  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2677
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2678
        //Return to previous mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2679
        iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2680
        //iDrawFunction = iDrawOneByOnePreviousFunc;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2681
        //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2682
        SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2683
        iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2684
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2685
    else if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2686
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2687
        iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2688
        //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2689
        //SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2690
        SetDrawMode(EOneByOne);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2691
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2692
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2693
    DP0_IMAGIC(_L("CImagicContainerBrowser::SelectIndex--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2694
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2695
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2696
//#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2697
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2698
void CImagicContainerBrowser::SetLoadingOn(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2699
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2700
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetLoadingOn++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2701
	DP1_IMAGIC(_L("CImagicContainerBrowser::SetLoadingOn - value: %d"), aValue);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2702
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2703
    iDynamicLoadingOn = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2704
    //iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2705
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2706
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetLoadingOn--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2707
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2708
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2709
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2710
void CImagicContainerBrowser::ImageLoadedL(TInt aError, CFbsBitmap* aBitmap, TThumbSize aResolution)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2711
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2712
    DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2713
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2714
    //Check do we need to unload or load more images ------>
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2715
    //LoadUnloadImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2716
    DynamicUnLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2717
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2718
    TInt mem = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2719
    TInt ret = HAL::Get(HALData::EMemoryRAMFree, mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2720
    DP1_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - Free RAM: %d"), mem);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2721
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2722
    if(mem <= 16000000){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2723
        DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - buffer size: 1"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2724
        K512TNImageBuffer = 1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2725
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2726
    if(mem <= 20000000){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2727
        DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - buffer size: 2"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2728
        K512TNImageBuffer = 2;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2729
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2730
    if(mem > 24000000){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2731
        DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - buffer size: 3"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2732
        K512TNImageBuffer = 3;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2733
        }  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2734
    if(mem > 28000000){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2735
        DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - buffer size: 4"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2736
        K512TNImageBuffer = 4;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2737
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2738
    if(mem > 32000000){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2739
        DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL - buffer size: 5"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2740
        K512TNImageBuffer = 5;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2741
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2742
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2743
    if(aResolution == ESize512x512 || aResolution == EFullSize)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2744
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2745
        iPreferHighResLoading = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2746
        iDynamicLoadingOn = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2747
        DynamicLoadingL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2748
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2749
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2750
    iTextureLoader->ImageLoadedL(aError, aBitmap, iGLMaxRes);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2751
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2752
    DP0_IMAGIC(_L("CImagicContainerBrowser::ImageLoadedL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2753
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2754
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2755
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2756
//This is correcting the aspact ratio to be correct for OpengGL drawing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2757
void CImagicContainerBrowser::SetPictureVertices(CImageData* aData, GLfixed* aVertices)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2758
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2759
    //DP0_IMAGIC(_L("CImagicContainerBrowser::SetPictureVertices"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2760
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2761
    GLfixed vx, vy;		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2762
   
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2763
    // Use real image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2764
    if(aData->iGridData.iGlLQ128TextIndex != 0 ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2765
       aData->iGridData.iGlLQ32TextIndex != 0 ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2766
       aData->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2767
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2768
        if(aData->GetAspectRatio() > 1)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2769
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2770
			vx = 1<<15;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2771
            vy = (0.5/aData->GetAspectRatio())*(1<<16);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2772
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2773
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2774
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2775
            vx = (0.5*aData->GetAspectRatio())*(1<<16);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2776
			vy = 1<<15;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2777
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2778
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2779
    // Use loading image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2780
	else	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2781
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2782
		vx = 24000;		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2783
    	vy = vx / KLoadingImageAspectRatio;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2784
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2785
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2786
    aVertices[0*2+0] = -vx;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2787
    aVertices[0*2+1] = -vy;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2788
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2789
    aVertices[1*2+0] = vx;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2790
    aVertices[1*2+1] = -vy;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2791
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2792
    aVertices[2*2+0] = -vx;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2793
    aVertices[2*2+1] = vy;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2794
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2795
    aVertices[3*2+0] = vx;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2796
    aVertices[3*2+1] = vy;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2797
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2798
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2799
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2800
void CImagicContainerBrowser::DisplayDeleteQueryDialogL(TInt aResourceId)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2801
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2802
    CAknQueryDialog* dlg;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2803
    dlg = new ( ELeave ) CAknQueryDialog();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2804
    TInt result = dlg->ExecuteLD( aResourceId );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2805
    if(result != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2806
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2807
        //Delete file
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2808
        DeleteImageL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2809
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2810
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2811
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2812
//Delete current image
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2813
void CImagicContainerBrowser::DeleteImageL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2814
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2815
    DP0_IMAGIC(_L("CImagicContainerBrowser::DeleteImageL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2816
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2817
    //Delete image from engine
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2818
    //Delete grid image from OpenGL memory
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2819
    //TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2820
    CImageData* data = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2821
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2822
    if(data->iGridData.iGlLQ128TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2823
        glDeleteTextures( 1, &data->iGridData.iGlLQ128TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2824
    if(data->iGridData.iGlLQ32TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2825
        glDeleteTextures( 1, &data->iGridData.iGlLQ32TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2826
    if(data->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2827
        glDeleteTextures(1, &data->iGridData.iGlHQ512TextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2828
    if(data->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2829
        glDeleteTextures(1, &data->iGridData.iGlSuperHQTextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2830
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2831
    data->iGridData.iGlLQ32TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2832
    data->iGridData.iGlLQ128TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2833
    data->iGridData.iGlHQ512TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2834
    data->iGridData.iGlSuperHQTextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2835
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2836
    //Delete image from engine
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2837
    TInt err = iImagicAppUi->DeleteImage(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2838
    if (err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2839
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2840
        iImagicAppUi->GetImagicUtils()->ExecuteQueryDialog(R_CANNOT_DELETE_DIALOG);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2841
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2842
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2843
    iDrawOneByOne->SetDrawOneByOneTargetZoom(1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2844
    iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2845
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2846
    iDrawGrid->UpdateImageCoordinates(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2847
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2848
    if(iIEngine->GetTotalNumOfImages() <= 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2849
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2850
        iImagicAppUi->GetImagicUtils()->ExecuteQueryDialog(0, R_NO_IMAGES_DIALOG);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2851
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2852
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2853
    DP0_IMAGIC(_L("CImagicContainerBrowser::DeleteImageL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2854
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2855
     
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2856
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2857
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2858
//Returns TRUE if screen is landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2859
TBool CImagicContainerBrowser::GetScreenOrientation()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2860
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2861
    //Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2862
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2863
    //if(iDeviceOrientation == EOrientationDisplayLeftUp)//Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2864
    if(iDeviceOrientation == EOrientationDisplayLeftUp || iDeviceOrientation == EOrientationDisplayRigthUp)//Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2865
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2866
        DP1_IMAGIC(_L("CImagicContainerBrowser::GetScreenOrientation - Landscape: %d"),iDeviceOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2867
        iDeviceOrientationAngle = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2868
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2869
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2870
    else if(iDeviceOrientation == EOrientationDisplayDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2871
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2872
        DP1_IMAGIC(_L("CImagicContainerBrowser::GetScreenOrientation - Portrait: %d"),iDeviceOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2873
        iDeviceOrientationAngle = -90;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2874
        return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2875
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2876
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2877
    if(this->Size().iWidth > this->Size().iHeight)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2878
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2879
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2880
        DP1_IMAGIC(_L("CImagicContainerBrowser::GetScreenOrientation - Landscape: %d"),iDeviceOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2881
        return ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2882
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2883
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2884
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2885
        DP1_IMAGIC(_L("CImagicContainerBrowser::GetScreenOrientation - Portrait: %d"),iDeviceOrientation);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2886
        return EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2887
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2888
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2889
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2890
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2891
//This should be called when reading touch UI events or key events to set draw freq to normal
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2892
void CImagicContainerBrowser::SetDrawFreqToNormal(TInt aTimerDelay)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2893
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2894
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetDrawFreqToNormal++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2895
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2896
    //Set normal display draw speed if we were in power save
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2897
    if(iDisplayDrawFreq == KPowerSaveDisplayDrawFreq)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2898
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2899
        iDisplayDrawFreq = KDisplayDrawFreq;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2900
        DisableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2901
        if(iImagicAppUi->IsAppOnTop())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2902
            EnableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2903
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2904
    //Reset power save timer
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2905
    iPowerSavePeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2906
    //And start it again, but only if we are loading images
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2907
    if(iTextureLoader->IsActiveAndRunning() && iDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2908
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2909
        iPowerSavePeriodic->Start(/*KPowerSavePeriodicDelay*/aTimerDelay, KPowerSavePeriodicInterval, TCallBack( CImagicContainerBrowser::PowerSaveCallBack, this ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2910
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2911
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2912
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetDrawFreqToNormal--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2913
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2914
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2915
void CImagicContainerBrowser::ResetZoomKeys()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2916
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2917
    iKeyData.iZoomInKey=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2918
    iKeyData.iZoomOutKey=EFalse;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2919
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2920
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2921
  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2922
TKeyResponse CImagicContainerBrowser::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2923
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2924
    DP0_IMAGIC(_L("CImagicContainerBrowser::OfferKeyEventL"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2925
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2926
    //Set normal display draw speed if we were in low draw freq
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2927
#ifdef USE_LOW_DRAW_SPEED_WHILE_LOADING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2928
    SetDrawFreqToNormal(KPowerSavePeriodicDelay);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2929
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2930
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2931
    //if(iImagicAppUi->IsAppOnTop())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2932
        EnableDisplayDraw();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2933
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2934
    iUserInputGiven = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2935
    iLastEventFromKeys = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2936
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2937
    TKeyResponse ret = EKeyWasNotConsumed;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2938
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2939
	// Set default values
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2940
	TInt addValue=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2941
	TBool pressValue=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2942
	ResetKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2943
	ResetTouchData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2944
	ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2945
	iDrawOneByOne->ChangeDrawOneByOneTargetX(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2946
    iDrawOneByOne->ChangeDrawOneByOneTargetY(0);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2947
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2948
	// Set button as pressed and add press counter by one
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2949
    if (aType == EEventKey)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2950
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2951
        iDrawGrid->KeyEvent();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2952
        iDrawOneByOne->KeyEvent();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2953
        iDrawFaceBrowsing->KeyEvent();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2954
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2955
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2956
        addValue=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2957
        pressValue=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2958
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2959
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2960
    if (aType == EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2961
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2962
        iDrawGrid->KeyPressed();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2963
        iDrawOneByOne->KeyPressed();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2964
        iDrawFaceBrowsing->KeyPressed();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2965
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2966
        /*if(iDrawFunction == EOneByOne && IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2967
            iDrawOneByOne->InitDrawOnebyOne();*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2968
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2969
        iIntheEndOfGrid = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2970
        iOnTheEdge=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2971
        iKeyPressedDown=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2972
        pressValue=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2973
        ///
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2974
        iDrawNow = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2975
        addValue=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2976
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2977
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2978
    if (aType == EEventKeyUp)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2979
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2980
        iDrawGrid->KeyReleased();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2981
        iDrawOneByOne->KeyReleased();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2982
        iDrawFaceBrowsing->KeyReleased();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2983
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2984
        iOnTheEdge=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2985
        iKeyPressedDown=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2986
        pressValue=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2987
        addValue=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2988
        //iKeyCounter=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2989
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2990
        if(iIntheEndOfGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2991
            iJumpOver = ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2992
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2993
            iJumpOver = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2994
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2995
	    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2996
    CImageData* imageData = iIEngine->GetImageData(iCurrentIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2997
    TInt imageRotation = 0 - (TReal)imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2998
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  2999
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3000
	//if (aType==EEventKey /*|| aType==EEventKeyUp || aType==EEventKeyDown*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3001
//	if(iKeyCounter == 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3002
		{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3003
		// Assume that key will be handled
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3004
		ret = EKeyWasConsumed;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3005
		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3006
		// Check for key
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3007
		switch (aKeyEvent.iScanCode)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3008
			{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3009
			// Vertical movement
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3010
		    case EStdKeyDownArrow:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3011
		        if(iDrawFunction == EOneByOne && IS_NOT_IN_ZOOM_ONEBYONE){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3012
		        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3013
		        else{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3014
		        iKeyData.iY+=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3015
		        iKeyData.iDown=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3016
		        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3017
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3018
		        if((iDeviceOrientation == EOrientationDisplayDown &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3019
                   iDrawFunction == EFaceBrowser && aType == EEventKey))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3020
		            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3021
		            iDrawFaceBrowsing->DecFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3022
		            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3023
		        else if( (iDrawFunction == EFaceBrowser && aType == EEventKey &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3024
                         (imageRotation == -90 || imageRotation == -270)) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3025
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3026
                    if(imageRotation == -90)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3027
                        iDrawFaceBrowsing->DecFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3028
                    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3029
                        iDrawFaceBrowsing->IncFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3030
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3031
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3032
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3033
		        ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3034
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3035
				
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3036
	        case EStdKeyUpArrow:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3037
	            if(iDrawFunction == EOneByOne && IS_NOT_IN_ZOOM_ONEBYONE){
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3038
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3039
	            else{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3040
	            iKeyData.iY-=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3041
	            iKeyData.iUp=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3042
	            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3043
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3044
	            if((iDeviceOrientation == EOrientationDisplayDown &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3045
                   iDrawFunction == EFaceBrowser && aType == EEventKey))
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3046
	                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3047
                   iDrawFaceBrowsing->IncFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3048
	                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3049
	            else if( (iDrawFunction == EFaceBrowser && aType == EEventKey &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3050
                         (imageRotation == -90 || imageRotation == -270)) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3051
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3052
                    if(imageRotation == -90)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3053
                        iDrawFaceBrowsing->IncFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3054
                    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3055
                        iDrawFaceBrowsing->DecFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3056
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3057
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3058
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3059
	            ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3060
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3061
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3062
            //Horisontal movement
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3063
		    case EStdKeyLeftArrow:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3064
			    if(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3065
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3066
			       (iDeviceOrientation == EOrientationDisplayLeftUp &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3067
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3068
			       iDrawFunction == EFaceBrowser && aType == EEventKey) ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3069
			       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3070
			       (iDrawFunction == EFaceBrowser && aType == EEventKey &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3071
                   imageRotation == (imageRotation == -90 || imageRotation == -270)) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3072
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3073
			        iDrawFaceBrowsing->DecFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3074
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3075
			    iKeyData.iX-=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3076
			    iKeyData.iLeft=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3077
                ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3078
			    break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3079
				
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3080
			case EStdKeyRightArrow:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3081
			    if(
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3082
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3083
			       (iDeviceOrientation == EOrientationDisplayLeftUp &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3084
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3085
			       iDrawFunction == EFaceBrowser && aType == EEventKey) ||
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3086
			       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3087
			       (iDrawFunction == EFaceBrowser && aType == EEventKey &&
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3088
                   imageRotation == (imageRotation == -90 || imageRotation == -270)) )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3089
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3090
			       iDrawFaceBrowsing->IncFaceNumber();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3091
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3092
			    iKeyData.iX+=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3093
			    iKeyData.iRight=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3094
                ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3095
			    break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3096
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3097
			// Rotation
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3098
#if 1
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3099
			case '1':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3100
			case 'A':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3101
			case EStdKeyNkp1:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3102
			    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3103
			    if (/*aType==EEventKey *//*|| aType==EEventKeyUp || */aType==EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3104
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3105
                    CImageData* imageData = iIEngine->GetImageData(iImagicAppUi->GetImageIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3106
                    TInt rotAngle = imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3107
                    imageData->SetOrientation((rotAngle + 90)%360);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3108
                    iIEngine->SetImageRotation(iImagicAppUi->GetImageIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3109
                    iIEngine->SetDBChanged(imageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3110
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3111
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3112
				ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3113
				ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3114
			    break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3115
			    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3116
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3117
			case '3':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3118
			case 'S':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3119
			case EStdKeyNkp3:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3120
			    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3121
			    if (/*aType==EEventKey *//*|| aType==EEventKeyUp || */aType==EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3122
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3123
                    CImageData* imageData = iIEngine->GetImageData(iImagicAppUi->GetImageIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3124
                    TInt rotAngle = imageData->GetOrientation();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3125
                    imageData->SetOrientation((rotAngle + 270)%360);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3126
                    iIEngine->SetImageRotation(iImagicAppUi->GetImageIndex());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3127
                    iIEngine->SetDBChanged(imageData);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3128
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3129
			                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3130
				ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3131
				ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3132
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3133
			    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3134
#endif		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3135
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3136
			case EStdKeySpace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3137
			case EKeySpace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3138
			case '0':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3139
			case EStdKeyNkp0:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3140
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3141
			    //Check that accelerometer did not found by engine
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3142
			    DP0_IMAGIC(_L("CImagicContainerBrowser::OfferKeyEvent - rotate pressed"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3143
			    if(!iIEngine->IsAccelerometerExists() && aType == EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3144
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3145
			        if(iIEngine->GetDeviceOrientation() == EOrientationDisplayLeftUp)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3146
                        iIEngine->SetDeviceOrientation(EOrientationDisplayDown);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3147
                    else if(iIEngine->GetDeviceOrientation() == EOrientationDisplayDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3148
                        iIEngine->SetDeviceOrientation(EOrientationDisplayLeftUp);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3149
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3150
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3151
			    ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3152
			    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3153
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3154
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3155
				
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3156
			//case EStdKeySpace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3157
            //case EKeySpace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3158
			case 'M':	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3159
			    if(aType == EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3160
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3161
                    iView->ProcessCommandL(EAknSoftkeyOptions);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3162
                    ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3163
                    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3164
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3165
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3166
				
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3167
			// Zooming
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3168
			case 'Q':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3169
			case EStdKeyNkpAsterisk:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3170
			case '*':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3171
			case EStdKeyIncVolume:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3172
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3173
			    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3174
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3175
			    if(iDrawFunction == EOneByOne)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3176
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3177
			        //iKeyData.iZoom+=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3178
			        //iKeyData.iZoomIn=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3179
			        iKeyData.iZoomInKey=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3180
			        iKeyData.iZoomOutKey=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3181
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3182
			    if(iDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3183
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3184
			        //Open one by one mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3185
			        iDrawOneByOne->InitDrawOnebyOne(KInitDrawZoom/*drawZoom*/, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3186
                    //Set Grid view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3187
                    if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3188
                        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3189
                        //iDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3190
                        SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3191
                        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3192
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3193
                    iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3194
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3195
			    //ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3196
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3197
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3198
            case 'W':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3199
            case EStdKeyHash:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3200
			case '#':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3201
			case EStdKeyDecVolume:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3202
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3203
			    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3204
			    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3205
			    if(iDrawFunction == EOneByOne)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3206
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3207
			        //iKeyData.iZoom-=addValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3208
			        //iKeyData.iZoomOut=pressValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3209
			        iKeyData.iZoomInKey=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3210
			        iKeyData.iZoomOutKey=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3211
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3212
			        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3213
			    if(iDrawFunction == EOneByOne && IS_NOT_IN_ZOOM_ONEBYONE && aType == EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3214
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3215
/*#ifdef SUPERZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3216
                    iIEngine->CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3217
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3218
                    //Unload high res textures when going back to Grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3219
                    CImageData* aGridData = iIEngine->GetImageData(iCurrentIndex); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3220
                    iTextureLoader->ReleaseSuperHResTexture( aGridData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3221
#endif*/  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3222
                    //Return to previous mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3223
                    iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3224
                    SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3225
                    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3226
                    iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3227
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3228
			    //ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3229
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3230
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3231
			/*case 'F':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3232
				iView->HandleCommandL(EImagicCmdViewFaceBrowsing);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3233
				break;*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3234
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3235
			case EKeyBackspace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3236
			case EStdKeyBackspace:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3237
                iView->HandleCommandL(EImagicCmdViewBrowserDelete);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3238
                ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3239
                ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3240
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3241
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3242
			case 'I':
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3243
			    if(aType == EEventKeyDown)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3244
			        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3245
                    iView->HandleCommandL(EImagicCmdViewBrowserShowImageInfo);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3246
                    ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3247
                    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3248
			        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3249
                break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3250
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3251
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3252
			// Selection
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3253
            case EStdKeyEnter:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3254
			case EKeyEnter:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3255
			case EStdKeyDevice3: //rocker selection key
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3256
                if (aType == EEventKey)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3257
                    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3258
                    HandleDrawingModeSwitch(iDrawFunction);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3259
                    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3260
                ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3261
                ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3262
			break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3263
			
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3264
			default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3265
				// Unknown key, it was not consumed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3266
				ret = EKeyWasNotConsumed;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3267
				ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3268
				ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3269
				break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3270
			}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3271
		}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3272
		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3273
    DrawNow();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3274
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3275
    return ret;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3276
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3277
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3278
void CImagicContainerBrowser::HandleDrawingModeSwitch(TDrawFunction& aDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3279
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3280
    //EGrid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3281
    if(aDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3282
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3283
        //Open one by one mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3284
        iDrawOneByOne->InitDrawOnebyOne(KInitDrawZoom/*drawZoom*/, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3285
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3286
        //Set Grid view
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3287
        if(aDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3288
            SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3289
            //aDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3290
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3291
        iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3292
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3293
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3294
    //EOneByOne
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3295
    else if(aDrawFunction == EOneByOne)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3296
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3297
        if(IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3298
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3299
            //Return to previous mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3300
            iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3301
            //aDrawFunction = EGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3302
            SetDrawMode(EGrid);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3303
            iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3304
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3305
        else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3306
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3307
            iDrawOneByOne->SetDrawOneByOneTargetZoom(1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3308
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3309
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3310
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3311
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3312
    //EFaceBrowser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3313
    else if(aDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3314
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3315
        SetDrawMode(EOneByOne);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3316
        //aDrawFunction = EOneByOne;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3317
        iDrawOneByOne->InitDrawOnebyOne(/*KInitDrawZoom*/drawZoom, inPictureX, inPictureY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3318
        iView->SetFaceBrowsingMode(EFaceBrowserNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3319
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3320
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3321
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3322
void CImagicContainerBrowser::SetFullScreen()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3323
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3324
    SetExtentToWholeScreen();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3325
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3326
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3327
void CImagicContainerBrowser::HandleRotation(float& aRotationAngle, float& aTargetRotationAngle)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3328
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3329
	// Force target to be in steps of 90
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3330
	aTargetRotationAngle=((int)(aTargetRotationAngle/90))*90;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3331
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3332
	// Force both angles to be between 0-360
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3333
	while (aRotationAngle<0)			aRotationAngle+=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3334
	while (aRotationAngle>360)			aRotationAngle-=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3335
	while (aTargetRotationAngle<0)		aTargetRotationAngle+=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3336
	while (aTargetRotationAngle>360)	aTargetRotationAngle-=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3337
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3338
	// Calculate difference between angles
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3339
	float diff=aTargetRotationAngle-aRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3340
	// Limit difference to be between [-180:180]
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3341
	while (diff<-180)		diff+=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3342
	while (diff>180)		diff-=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3343
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3344
	// Copy paste from Interpolate, just uses diff calculated above
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3345
	float aStep=0.26;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3346
	float timediff = Min(0.1f, iTimeDiff); // so max value of timediff is 100tick (100ms)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3347
	aRotationAngle += diff * aStep * timediff * 30;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3348
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3349
	// Calculate new difference
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3350
	float newDiff=aTargetRotationAngle-aRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3351
	while (newDiff<-180)	newDiff+=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3352
	while (newDiff>180)		newDiff-=360;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3353
	// If difference-angles have different signs, then we went past the target angle
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3354
	if (diff*newDiff < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3355
		aRotationAngle = aTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3356
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3357
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3358
TBool CImagicContainerBrowser::IsOpenGLInit()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3359
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3360
    return iOpenGlInitialized;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3361
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3362
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3363
//Disables display drawing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3364
void CImagicContainerBrowser::EnableDisplayDraw()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3365
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3366
    DP0_IMAGIC(_L("CImagicContainerBrowser::EnableDisplayDraw++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3367
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3368
    if(!iPeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3369
        iPeriodic->Start( 1, iDisplayDrawFreq, TCallBack( CImagicContainerBrowser::DrawCallBackL, this ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3370
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3371
    DP0_IMAGIC(_L("CImagicContainerBrowser::EnableDisplayDraw--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3372
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3373
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3374
//Enables display drawing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3375
void CImagicContainerBrowser::DisableDisplayDraw()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3376
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3377
    DP0_IMAGIC(_L("CImagicContainerBrowser::DisableDisplayDraw++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3378
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3379
    if(iPeriodic)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3380
        if(iPeriodic->IsActive())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3381
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3382
            iPeriodic->Cancel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3383
            //Clear buffers
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3384
            //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3385
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3386
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3387
    DP0_IMAGIC(_L("CImagicContainerBrowser::DisableDisplayDraw--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3388
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3389
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3390
void CImagicContainerBrowser::SetDrawMode(TDrawFunction aDrawFunction)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3391
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3392
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetDrawMode++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3393
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3394
    ResetZoomKeys();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3395
    ResetDirKeyData();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3396
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3397
    if(/*aDrawFunction == EOneByOne && */!IS_NOT_IN_ZOOM_ONEBYONE)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3398
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3399
        iDrawOneByOne->SetDrawOneByOneTargetZoom(1);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3400
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3401
    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3402
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3403
        iDrawFunction = aDrawFunction;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3404
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3405
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3406
    if(aDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3407
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3408
        iPreferHighResLoading = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3409
#ifdef SUPERZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3410
        iIEngine->CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3411
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3412
        //Unload high res textures when going back to Grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3413
        CImageData* aGridData = iIEngine->GetImageData(iCurrentIndex); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3414
        iTextureLoader->ReleaseSuperHResTexture( aGridData );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3415
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3416
        iDrawGrid->InitDrawGrid();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3417
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3418
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3419
    DrawNow();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3420
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3421
    DP0_IMAGIC(_L("CImagicContainerBrowser::SetDrawMode--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3422
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3423
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3424
CImagicContainerBrowser::TDrawFunction CImagicContainerBrowser::GetDrawMode()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3425
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3426
    return iDrawFunction;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3427
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3428
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3429
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3430
void CImagicContainerBrowser::SetBGPSStatus(TBool aValue)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3431
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3432
    //False = BGPS is running
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3433
    //True = BGPS is completed
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3434
    iTNCreationComplete = aValue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3435
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3436
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3437
CTextureLoader* CImagicContainerBrowser::GetTextureLoader()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3438
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3439
    return iTextureLoader;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3440
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3441
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3442
float CImagicContainerBrowser::GetAspectRatio(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3443
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3444
    return iIEngine->GetImageData(aIndex)->GetAspectRatio();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3445
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3446
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3447
void CImagicContainerBrowser::SetFaceCoords(RArray<TRect>& aCoordinates)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3448
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3449
    iDrawFaceBrowsing->SetFaceCoords(aCoordinates);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3450
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3451
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3452
void CImagicContainerBrowser::ClearFaceArray()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3453
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3454
    iDrawFaceBrowsing->ClearFaceArray();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3455
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3456
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3457
void CImagicContainerBrowser::SetTextIndex(GLuint aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3458
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3459
    iCurrentBindedIndex = aIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3460
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3461
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3462
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3463
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3464
TImagicDeviceOrientation CImagicContainerBrowser::GetDeviceOrientation()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3465
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3466
    return iDeviceOrientation;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3467
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3468
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3469
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3470
void CImagicContainerBrowser::PhoneRotated(TImagicDeviceOrientation aDeviceOrientation)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3471
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3472
    /*if(iDeviceOrientation == aDeviceOrientation)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3473
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3474
        return;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3475
        }*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3476
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3477
    iDeviceOrientation = aDeviceOrientation;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3478
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3479
    //iDrawGridZoom = KZoomOutMaxGrid;//Set initial zooming value when draving Grid
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3480
#ifdef ENABLE_GRID_ZOOM
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3481
#ifdef ZOOM_WHILE_ROTATING
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3482
    if(iDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3483
        iDrawGridTargetZoom = KZoomOutMaxGrid;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3484
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3485
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3486
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3487
    if(iDrawFunction == EOneByOne)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3488
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3489
        //Set currect rotation angle immeadetly to target, except for current image index
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3490
        TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3491
        for(TInt i=0; i < num; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3492
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3493
            if(i != iCurrentIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3494
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3495
                CImageData* data = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3496
                data->iGridData.iRotationAngle = data->iGridData.iTargetRotationAngle;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3497
                }  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3498
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3499
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3500
    else if(iDrawFunction == EFaceBrowser)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3501
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3502
        //Do nothing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3503
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3504
    else if(iDrawFunction == EGrid)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3505
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3506
        //Do nothing
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3507
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3508
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3509
    //DrawScreen();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3510
    DrawNow();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3511
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3512
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3513
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3514
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3515
void CImagicContainerBrowser::IconTexturesLoaded(RArray<GLuint> aIconTextureIndexes)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3516
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3517
    for(TInt i=0; i<aIconTextureIndexes.Count(); i++)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3518
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3519
        iIconTextureIndexes.Append(aIconTextureIndexes[i]);        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3520
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3521
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3522
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3523
void CImagicContainerBrowser::HandleSend2BackgroundEvent()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3524
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3525
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleSend2BackgroundEvent++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3526
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3527
    //Cancel SuperZoom image loading, if it was started
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3528
    iIEngine->CancelFullSizeLoading();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3529
    /*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3530
    //Delete OpenGL memory allocations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3531
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3532
    for(TInt i=0; i < num; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3533
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3534
        CImageData* data = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3535
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3536
        if(data->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3537
            glDeleteTextures(1, &data->iGridData.iGlHQ512TextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3538
        if(data->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3539
            glDeleteTextures(1, &data->iGridData.iGlSuperHQTextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3540
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3541
        data->iGridData.iGlHQ512TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3542
        data->iGridData.iGlSuperHQTextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3543
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3544
    */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3545
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3546
    //Delete OpenGL memory allocations
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3547
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3548
    for(TInt i=0; i < num; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3549
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3550
        CImageData* data = iIEngine->GetImageData(i);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3551
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3552
        if(data->iGridData.iGlLQ128TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3553
            glDeleteTextures( 1, &data->iGridData.iGlLQ128TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3554
        if(data->iGridData.iGlLQ32TextIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3555
            glDeleteTextures( 1, &data->iGridData.iGlLQ32TextIndex );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3556
        if(data->iGridData.iGlHQ512TextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3557
            glDeleteTextures(1, &data->iGridData.iGlHQ512TextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3558
        if(data->iGridData.iGlSuperHQTextIndex != 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3559
            glDeleteTextures(1, &data->iGridData.iGlSuperHQTextIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3560
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3561
        data->iGridData.iGlLQ32TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3562
        data->iGridData.iGlLQ128TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3563
        data->iGridData.iGlHQ512TextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3564
        data->iGridData.iGlSuperHQTextIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3565
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3566
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3567
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3568
    DP0_IMAGIC(_L("CImagicContainerBrowser::HandleSend2BackgroundEvent--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3569
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3570
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3571
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3572
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3573
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3574
void CImagicContainerBrowser::MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3575
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3576
    TBool pressValue=EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3577
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3578
    switch(aOperationId)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3579
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3580
        case ERemConCoreApiVolumeDown: 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3581
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3582
            //do your own stuff
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3583
            iKeyData.iZoom-=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3584
            iKeyData.iZoomOut=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3585
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3586
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3587
        case ERemConCoreApiVolumeUp:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3588
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3589
            //do your own stuff
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3590
            iKeyData.iZoom+=1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3591
            iKeyData.iZoomIn=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3592
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3593
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3594
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3595
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3596
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3597
    */
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3598
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3599
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3600
TBool CImagicContainerBrowser::GetSlideByDragValue()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3601
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3602
    return iOneByOneSlideByDrag;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3603
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3604
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3605
TInt CImagicContainerBrowser::GetCurrentIndex()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3606
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3607
    return iCurrentIndex;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3608
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3609
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3610
TInt CImagicContainerBrowser::GetPrevIndex()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3611
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3612
    return iPreviousIndex;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3613
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3614
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3615
void CImagicContainerBrowser::SetCurrentIndex(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3616
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3617
    CheckIndexLimits(aIndex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3618
    iCurrentIndex = aIndex;    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3619
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3620
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3621
void CImagicContainerBrowser::CheckIndexLimits(TInt &aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3622
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3623
    //Check that current index is in grid area
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3624
    TInt num = iIEngine->GetTotalNumOfImages();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3625
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3626
    if(!iJumpOver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3627
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3628
        if(aIndex >= num)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3629
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3630
            aIndex = num-1;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3631
            iIntheEndOfGrid=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3632
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3633
        if(aIndex < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3634
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3635
            aIndex = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3636
            iIntheEndOfGrid=ETrue;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3637
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3638
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3639
    else//if(iJumpOver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3640
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3641
        if (num)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3642
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3643
            aIndex %= num;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3644
            if (aIndex < 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3645
                aIndex = num + aIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3646
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3647
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3648
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3649
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3650
void CImagicContainerBrowser::SetPrevIndex(TInt aIndex)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3651
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3652
    iPreviousIndex = aIndex;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3653
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3654
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3655
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3656
CKeyData& CImagicContainerBrowser::GetKeyData()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3657
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3658
    return iKeyData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3659
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3660
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3661
void CImagicContainerBrowser::SetKeyData(CKeyData aData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3662
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3663
    iKeyData = aData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3664
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3665
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3666
void CImagicContainerBrowser::ResetKeyData()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3667
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3668
    iKeyData.iRotate=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3669
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3670
    iKeyData.iX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3671
    iKeyData.iY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3672
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3673
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3674
void CImagicContainerBrowser::ResetDirKeyData()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3675
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3676
    iKeyData.iUp=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3677
    iKeyData.iDown=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3678
    iKeyData.iLeft=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3679
    iKeyData.iRight=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3680
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3681
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3682
CKeyData& CImagicContainerBrowser::GetTouchData()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3683
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3684
    return iTouchMoveData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3685
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3686
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3687
void CImagicContainerBrowser::SetTouchData(CKeyData aData)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3688
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3689
    iTouchMoveData = aData;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3690
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3691
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3692
void CImagicContainerBrowser::ResetTouchData()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3693
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3694
    iTouchMoveData.iRotate=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3695
    iTouchMoveData.iX=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3696
    iTouchMoveData.iY=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3697
    iTouchMoveData.iZoomInKey=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3698
    iTouchMoveData.iZoomOutKey=0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3699
    iTouchMoveData.iRight = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3700
    iTouchMoveData.iLeft = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3701
    iTouchMoveData.iUp = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3702
    iTouchMoveData.iDown = EFalse;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3703
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3704
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3705
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3706
TInt CImagicContainerBrowser::GetGleMaxRes()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3707
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3708
    return iGLMaxRes;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3709
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3710
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3711
TBool CImagicContainerBrowser::IsUserInputGiven()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3712
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3713
    return iUserInputGiven;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3714
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3715
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3716
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3717
TSize CImagicContainerBrowser::GetScreenSize()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3718
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3719
    return iScreenSize;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3720
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3721
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3722
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
  3723
// End of File