uifw/AvKon/aknphysics/src/aknphysicsparameterprovider.cpp
changeset 0 2f259fa3e83a
equal deleted inserted replaced
-1:000000000000 0:2f259fa3e83a
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ODE parameter provider
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <centralrepository.h>
       
    20 #include <e32debug.h>
       
    21 #include <AknUtils.h>
       
    22 
       
    23 #include "aknphysicsparameterprovider.h"
       
    24 #include <aknphysicscrkeys.h>
       
    25 
       
    26 const TInt KParamNotSet( -1 );
       
    27 const TInt KDefaultMass( 10 );
       
    28 const TInt KDefaultGravity( 10 );
       
    29 const TInt KDefaultSurfaceErp( 20 );
       
    30 const TInt KDefaultSurfaceCfm( 20 );
       
    31 const TInt KDefaultHighlightTimeout( 20 );
       
    32 const TInt KDefaultDragThreshold( 200 );
       
    33 const TInt KDefaultFrameDelay( 17 );
       
    34 const TInt KDefaultMinFrameInterval( 60 );
       
    35 const TBool KDefaultFeatureEnabled( ETrue );
       
    36 const TInt KDefaultShortListEmptySpace( 33 );
       
    37 const TInt KDefaultLongListEmptySpace( 33 );
       
    38 const TBool KDefaultFpsLoggingEnabled( EFalse );
       
    39 
       
    40 // ======== MEMBER FUNCTIONS ========
       
    41 
       
    42 // ---------------------------------------------------------------------------
       
    43 // CAknPhysicsParameterProvider::NewL
       
    44 // ---------------------------------------------------------------------------
       
    45 //
       
    46 CAknPhysicsParameterProvider* CAknPhysicsParameterProvider::NewL()
       
    47     {
       
    48     CAknPhysicsParameterProvider* self = CAknPhysicsParameterProvider::NewLC();
       
    49     CleanupStack::Pop( self );
       
    50     return self;
       
    51     }
       
    52 
       
    53 
       
    54 // ---------------------------------------------------------------------------
       
    55 // CAknPhysicsParameterProvider::NewLC
       
    56 // ---------------------------------------------------------------------------
       
    57 //
       
    58 CAknPhysicsParameterProvider* CAknPhysicsParameterProvider::NewLC()
       
    59     {
       
    60     CAknPhysicsParameterProvider* self 
       
    61         = new ( ELeave ) CAknPhysicsParameterProvider();
       
    62     CleanupStack::PushL( self );
       
    63     self->ConstructL();
       
    64     return self;
       
    65     }
       
    66 
       
    67 
       
    68 // ---------------------------------------------------------------------------
       
    69 // CAknPhysicsParameterProvider::~CAknPhysicsParameterProvider
       
    70 // ---------------------------------------------------------------------------
       
    71 //
       
    72 CAknPhysicsParameterProvider::~CAknPhysicsParameterProvider()
       
    73     {
       
    74     delete iListener;
       
    75     delete iCenRep;
       
    76     }
       
    77 
       
    78 
       
    79 // ---------------------------------------------------------------------------
       
    80 // CAknPhysicsParameterProvider::ViewMass
       
    81 // ---------------------------------------------------------------------------
       
    82 //
       
    83 TInt CAknPhysicsParameterProvider::ViewMass() const
       
    84     {
       
    85     return iViewMass;
       
    86     }
       
    87 
       
    88 
       
    89 // ---------------------------------------------------------------------------
       
    90 // CAknPhysicsParameterProvider::Gravity
       
    91 // ---------------------------------------------------------------------------
       
    92 //
       
    93 TInt CAknPhysicsParameterProvider::Gravity() const
       
    94     {
       
    95     return iGravity;
       
    96     }
       
    97 
       
    98 
       
    99 // ---------------------------------------------------------------------------
       
   100 // CAknPhysicsParameterProvider::SurfaceErp
       
   101 // ---------------------------------------------------------------------------
       
   102 //
       
   103 TInt CAknPhysicsParameterProvider::SurfaceErp() const
       
   104     {
       
   105     return iSurfaceErp;
       
   106     }
       
   107 
       
   108 
       
   109 // ---------------------------------------------------------------------------
       
   110 // CAknPhysicsParameterProvider::SurfaceCfm
       
   111 // ---------------------------------------------------------------------------
       
   112 //
       
   113 TInt CAknPhysicsParameterProvider::SurfaceCfm() const
       
   114     {
       
   115     return iSurfaceCfm;
       
   116     }
       
   117 
       
   118 
       
   119 // ---------------------------------------------------------------------------
       
   120 // CAknPhysicsParameterProvider::HighlightTimeout
       
   121 // ---------------------------------------------------------------------------
       
   122 //
       
   123 TInt CAknPhysicsParameterProvider::HighlightTimeout() const
       
   124     {
       
   125     return iHighlightTimeout;
       
   126     }
       
   127 
       
   128 
       
   129 // ---------------------------------------------------------------------------
       
   130 // CAknPhysicsParameterProvider::DragTreshold
       
   131 // ---------------------------------------------------------------------------
       
   132 //
       
   133 TInt CAknPhysicsParameterProvider::DragThreshold() const
       
   134     {
       
   135     return iDragThreshold;
       
   136     }
       
   137 
       
   138 // ---------------------------------------------------------------------------
       
   139 // CAknPhysicsParameterProvider::FrameDelay
       
   140 // ---------------------------------------------------------------------------
       
   141 //
       
   142 TInt CAknPhysicsParameterProvider::FrameDelay() const
       
   143     {
       
   144     return iFrameDelay;
       
   145     }
       
   146 
       
   147 // ---------------------------------------------------------------------------
       
   148 // CAknPhysicsParameterProvider::MinFrameInterval
       
   149 // ---------------------------------------------------------------------------
       
   150 //
       
   151 TInt CAknPhysicsParameterProvider::MinFrameInterval() const
       
   152     {
       
   153     return iMinFrameInterval;
       
   154     }
       
   155 
       
   156 // ---------------------------------------------------------------------------
       
   157 // CAknPhysicsParameterProvider::FeatureEnabled
       
   158 // ---------------------------------------------------------------------------
       
   159 //
       
   160 TBool CAknPhysicsParameterProvider::FeatureEnabled()
       
   161     {
       
   162 	if ( AknLayoutUtils::PenEnabled() )
       
   163 		{
       
   164 	    CRepository* cenRep = NULL;
       
   165     	TRAPD( err, cenRep = CRepository::NewL( KCRUidAknPhysicsSettings ) )
       
   166 	    if( err || !cenRep )
       
   167     	    {
       
   168         	return KDefaultFeatureEnabled;
       
   169 	        }
       
   170     	TBool featureEnabled( KDefaultFeatureEnabled );
       
   171     	cenRep->Get( KFeatureEnabled, featureEnabled );
       
   172     	delete cenRep;
       
   173     	return featureEnabled;
       
   174 		}
       
   175 	else
       
   176 		{
       
   177 		return EFalse;
       
   178 		}
       
   179     }
       
   180 
       
   181 
       
   182 // ---------------------------------------------------------------------------
       
   183 // CAknPhysicsParameterProvider::ShortListEmptySpace
       
   184 // ---------------------------------------------------------------------------
       
   185 //
       
   186 TInt CAknPhysicsParameterProvider::ShortListEmptySpace() const
       
   187     {
       
   188     return iShortListEmptySpace;
       
   189     }
       
   190 
       
   191 
       
   192 // ---------------------------------------------------------------------------
       
   193 // CAknPhysicsParameterProvider::LongListEmptySpace
       
   194 // ---------------------------------------------------------------------------
       
   195 //
       
   196 TInt CAknPhysicsParameterProvider::LongListEmptySpace() const
       
   197     {
       
   198     return iLongListEmptySpace;
       
   199     }
       
   200 
       
   201 
       
   202 // ---------------------------------------------------------------------------
       
   203 // CAknPhysicsParameterProvider::FpsLoggingEnabled
       
   204 // ---------------------------------------------------------------------------
       
   205 //
       
   206 TBool CAknPhysicsParameterProvider::FpsLoggingEnabled() const
       
   207     {
       
   208     return iFpsLoggingEnabled;
       
   209     }
       
   210 
       
   211 
       
   212 // ---------------------------------------------------------------------------
       
   213 // CAknPhysicsParameterProvider::CenRepValueChanged
       
   214 // ---------------------------------------------------------------------------
       
   215 //
       
   216 void CAknPhysicsParameterProvider::CenRepValueChanged( const TInt& aKey )
       
   217     {
       
   218     if ( !iCenRep )
       
   219         {
       
   220         return;
       
   221         }
       
   222     switch ( aKey )
       
   223         {
       
   224         case KViewMass:
       
   225             iCenRep->Get( KViewMass, iViewMass );
       
   226             break;
       
   227         case KGravity:
       
   228             iCenRep->Get( KGravity, iGravity );
       
   229             break;
       
   230         case KSurfaceErp:
       
   231             iCenRep->Get( KSurfaceErp, iSurfaceErp );
       
   232             break;
       
   233         case KSurfaceCfm:
       
   234             iCenRep->Get( KSurfaceCfm, iSurfaceCfm );
       
   235             break;
       
   236         case KHighlightTimeout:
       
   237             iCenRep->Get( KHighlightTimeout, iHighlightTimeout );
       
   238             break;
       
   239         case KDragTreshold:
       
   240             iCenRep->Get( KDragTreshold, iDragThreshold );
       
   241             break;
       
   242         case KFrameDelay:
       
   243             iCenRep->Get( KFrameDelay, iFrameDelay );
       
   244             break;    
       
   245 		case KMinFrameInterval:
       
   246             iCenRep->Get( KMinFrameInterval, iMinFrameInterval );
       
   247             break;	
       
   248         case KShortListEmptySpace:
       
   249             iCenRep->Get( KShortListEmptySpace, iShortListEmptySpace );
       
   250             break;
       
   251         case KLongListEmptySpace:
       
   252             iCenRep->Get( KLongListEmptySpace, iLongListEmptySpace );
       
   253             break;
       
   254         case KFpsLoggingEnabled:
       
   255             iCenRep->Get( KFpsLoggingEnabled, iFpsLoggingEnabled );
       
   256             break;
       
   257         default:
       
   258             break;
       
   259         }
       
   260     }
       
   261 
       
   262 
       
   263 // ---------------------------------------------------------------------------
       
   264 // CAknPhysicsParameterProvider::CAknPhysicsParameterProvider
       
   265 // ---------------------------------------------------------------------------
       
   266 //
       
   267 CAknPhysicsParameterProvider::CAknPhysicsParameterProvider()
       
   268     : 
       
   269     iViewMass( KParamNotSet ),
       
   270     iGravity( KParamNotSet ),
       
   271     iSurfaceErp( KParamNotSet ),
       
   272     iSurfaceCfm( KParamNotSet ),
       
   273     iHighlightTimeout( KParamNotSet ),
       
   274     iDragThreshold( KParamNotSet ),
       
   275     iFrameDelay( KParamNotSet ),
       
   276 	iMinFrameInterval( KParamNotSet ),
       
   277     iShortListEmptySpace( KParamNotSet ),
       
   278     iLongListEmptySpace( KParamNotSet ),
       
   279     iFpsLoggingEnabled( EFalse ),
       
   280     iListener( NULL )
       
   281     {
       
   282     }
       
   283 
       
   284 
       
   285 // ---------------------------------------------------------------------------
       
   286 // CAknPhysicsParameterProvider::ConstructL
       
   287 // ---------------------------------------------------------------------------
       
   288 //
       
   289 void CAknPhysicsParameterProvider::ConstructL()
       
   290     {
       
   291     if ( !iCenRep )
       
   292         {
       
   293         TRAPD( err, iCenRep = CRepository::NewL( KCRUidAknPhysicsSettings ) );
       
   294         if( err )
       
   295             {
       
   296             SetDefaultValues( EFalse );
       
   297             return;
       
   298             }
       
   299         }
       
   300     iListener = CAknPhysicsCenRepListener::NewL( iCenRep, this );
       
   301     ReadValuesFromCenRepL();
       
   302     if ( !ValuesAreSet() )
       
   303         {
       
   304         SetDefaultValues( ETrue );
       
   305         }
       
   306     }
       
   307 
       
   308 
       
   309 // ---------------------------------------------------------------------------
       
   310 // CAknPhysicsParameterProvider::ReadValuesFromCenRepL
       
   311 // ---------------------------------------------------------------------------
       
   312 //
       
   313 void CAknPhysicsParameterProvider::ReadValuesFromCenRepL()
       
   314     {
       
   315     iCenRep->Get( KViewMass, iViewMass );
       
   316     iCenRep->Get( KGravity, iGravity );
       
   317     iCenRep->Get( KSurfaceErp, iSurfaceErp );
       
   318     iCenRep->Get( KSurfaceCfm, iSurfaceCfm );
       
   319     iCenRep->Get( KHighlightTimeout, iHighlightTimeout );
       
   320     iCenRep->Get( KDragTreshold, iDragThreshold );
       
   321     iCenRep->Get( KFrameDelay, iFrameDelay );
       
   322 	iCenRep->Get( KMinFrameInterval, iMinFrameInterval );
       
   323     iCenRep->Get( KShortListEmptySpace, iShortListEmptySpace );
       
   324     iCenRep->Get( KLongListEmptySpace, iLongListEmptySpace );
       
   325     iCenRep->Get( KFpsLoggingEnabled, iFpsLoggingEnabled );
       
   326     }
       
   327 
       
   328 
       
   329 // ---------------------------------------------------------------------------
       
   330 // CAknPhysicsParameterProvider::SetDefaultValues
       
   331 // ---------------------------------------------------------------------------
       
   332 //
       
   333 void CAknPhysicsParameterProvider::SetDefaultValues( TBool aWriteToCenRep )
       
   334     {
       
   335     iViewMass = KDefaultMass;
       
   336     iGravity = KDefaultGravity;
       
   337     iSurfaceErp = KDefaultSurfaceErp;
       
   338     iSurfaceCfm = KDefaultSurfaceCfm;
       
   339     iHighlightTimeout = KDefaultHighlightTimeout;
       
   340     iDragThreshold = KDefaultDragThreshold;
       
   341     iFrameDelay = KDefaultFrameDelay; 
       
   342 	iMinFrameInterval = KDefaultMinFrameInterval;
       
   343 	iFpsLoggingEnabled = EFalse;
       
   344 	
       
   345     if ( aWriteToCenRep )
       
   346         {
       
   347         if ( !iCenRep )
       
   348             {
       
   349             TRAPD( err, 
       
   350                 iCenRep = CRepository::NewL( KCRUidAknPhysicsSettings ) );
       
   351             if ( err )
       
   352                 {
       
   353                 return;
       
   354                 }
       
   355             }
       
   356         iCenRep->Set( KViewMass, KDefaultMass );
       
   357         iCenRep->Set( KGravity, KDefaultGravity );
       
   358         iCenRep->Set( KSurfaceErp, KDefaultSurfaceErp );
       
   359         iCenRep->Set( KSurfaceCfm, KDefaultSurfaceCfm );
       
   360         iCenRep->Set( KHighlightTimeout, KDefaultHighlightTimeout );
       
   361         iCenRep->Set( KDragTreshold, KDefaultDragThreshold );
       
   362         iCenRep->Set( KFrameDelay, KDefaultFrameDelay );
       
   363 		iCenRep->Set( KMinFrameInterval, KDefaultMinFrameInterval );
       
   364         iCenRep->Set( KFeatureEnabled, KDefaultFeatureEnabled );
       
   365         iCenRep->Set( KShortListEmptySpace, KDefaultShortListEmptySpace );
       
   366         iCenRep->Set( KLongListEmptySpace, KDefaultLongListEmptySpace );
       
   367         iCenRep->Set( KFpsLoggingEnabled, KDefaultFpsLoggingEnabled );
       
   368         }
       
   369     }
       
   370 
       
   371 
       
   372 // ---------------------------------------------------------------------------
       
   373 // CAknPhysicsParameterProvider::ValuesAreSet
       
   374 // ---------------------------------------------------------------------------
       
   375 //
       
   376 TBool CAknPhysicsParameterProvider::ValuesAreSet()
       
   377     {
       
   378     if ( iViewMass == KParamNotSet
       
   379         || iGravity == KParamNotSet
       
   380         || iSurfaceErp == KParamNotSet
       
   381         || iSurfaceCfm == KParamNotSet
       
   382         || iHighlightTimeout == KParamNotSet
       
   383         || iDragThreshold == KParamNotSet
       
   384         || iShortListEmptySpace == KParamNotSet
       
   385         || iLongListEmptySpace == KParamNotSet
       
   386 		|| iFrameDelay == KParamNotSet 
       
   387         || iMinFrameInterval == KParamNotSet )
       
   388         {
       
   389         return EFalse;
       
   390         }
       
   391     return ETrue;
       
   392     }