hwrmhaptics/examples/hapticstestapp/src/hapticstesteffectdatahandler.cpp
author hgs
Fri, 08 Oct 2010 14:33:25 +0300
changeset 76 cb32bcc88bad
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
76
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Symbian Foundation License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Active object listening waiting for async haptics completion.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#include <eikmenup.h> 
hgs
parents:
diff changeset
    20
#include <eikon.hrh>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include "hapticstest.hrh"
hgs
parents:
diff changeset
    23
#include "hapticstesteffectdatahandler.h"
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
_LIT( KManualEffectName, "manual" );
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
const TInt KEffectModificationInterval = 50000; // microseconds
hgs
parents:
diff changeset
    29
const TInt KMaxEffectHistorySize = 25;
hgs
parents:
diff changeset
    30
const TInt KDefaultNonInfiniteDuration = 1000; // milliseconds
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// default values for manual effects
hgs
parents:
diff changeset
    33
const TInt KDefaultEffectMagnitude = KHWRMHapticsMaxMagnitude;
hgs
parents:
diff changeset
    34
const TInt KDefaultEffectAttackLevel = KHWRMHapticsMaxMagnitude * 0.5;
hgs
parents:
diff changeset
    35
const TInt KDefaultEffectFadeLevel = KHWRMHapticsMaxMagnitude * 0.5;
hgs
parents:
diff changeset
    36
const TInt KDefaultEffectAttackTime = 200; // milliseconds
hgs
parents:
diff changeset
    37
const TInt KDefaultEffectFadeTime = 200; // milliseconds
hgs
parents:
diff changeset
    38
const TInt KDefaultEffectPeriod = 300; // milliseconds
hgs
parents:
diff changeset
    39
const CHWRMHaptics::THWRMHapticsEffectStyles KDefaultEffectStyle = CHWRMHaptics::EHWRMHapticsStyleStrong;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// Symbian two-phased constructor.
hgs
parents:
diff changeset
    44
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
//
hgs
parents:
diff changeset
    46
CHapticsTestEffectDataHandler* CHapticsTestEffectDataHandler::NewL()
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    CHapticsTestEffectDataHandler* self = 
hgs
parents:
diff changeset
    49
        CHapticsTestEffectDataHandler::NewLC();
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
    return self;
hgs
parents:
diff changeset
    54
    }
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    57
// Symbian two-phased constructor.
hgs
parents:
diff changeset
    58
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
//
hgs
parents:
diff changeset
    60
CHapticsTestEffectDataHandler* CHapticsTestEffectDataHandler::NewLC()
hgs
parents:
diff changeset
    61
    {
hgs
parents:
diff changeset
    62
    CHapticsTestEffectDataHandler* self =
hgs
parents:
diff changeset
    63
         new ( ELeave ) CHapticsTestEffectDataHandler();
hgs
parents:
diff changeset
    64
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    65
    
hgs
parents:
diff changeset
    66
    self->ConstructL();
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
    return self;
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
// Destructor.
hgs
parents:
diff changeset
    73
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    74
//
hgs
parents:
diff changeset
    75
CHapticsTestEffectDataHandler::~CHapticsTestEffectDataHandler()
hgs
parents:
diff changeset
    76
    {
hgs
parents:
diff changeset
    77
    ResetModifiableEffectTimer();
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    if ( iModifyEffect )
hgs
parents:
diff changeset
    80
        {
hgs
parents:
diff changeset
    81
        delete iModifyEffect;
hgs
parents:
diff changeset
    82
        iModifyEffect = NULL;
hgs
parents:
diff changeset
    83
        }
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    iPlayedEffectArray.Close();
hgs
parents:
diff changeset
    86
    }
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    89
// Adds effect data to effect history array.
hgs
parents:
diff changeset
    90
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    91
//
hgs
parents:
diff changeset
    92
void CHapticsTestEffectDataHandler::AddEffectInfo( TInt aEffectHandle, 
hgs
parents:
diff changeset
    93
                                                   TInt aFileHandle,
hgs
parents:
diff changeset
    94
                                                   TInt aIndex )
hgs
parents:
diff changeset
    95
    {
hgs
parents:
diff changeset
    96
    TPlayedEffect newEffect;
hgs
parents:
diff changeset
    97
    newEffect.iEffectHandle = aEffectHandle;
hgs
parents:
diff changeset
    98
    newEffect.iFileHandle = aFileHandle;
hgs
parents:
diff changeset
    99
    newEffect.iEffectIndex = aIndex;
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    // add item to the beginning of the array, ignore possible error
hgs
parents:
diff changeset
   102
    iPlayedEffectArray.Insert( newEffect, 0 );
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    // if there are too many items, remove the last one
hgs
parents:
diff changeset
   105
    TInt count = iPlayedEffectArray.Count();
hgs
parents:
diff changeset
   106
    if ( count > KMaxEffectHistorySize )
hgs
parents:
diff changeset
   107
        {
hgs
parents:
diff changeset
   108
        iPlayedEffectArray.Remove( count - 1 );
hgs
parents:
diff changeset
   109
        }
hgs
parents:
diff changeset
   110
    }
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   113
// Deletest all effect info items from the list that have
hgs
parents:
diff changeset
   114
// the given filehandle in their data.
hgs
parents:
diff changeset
   115
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   116
//
hgs
parents:
diff changeset
   117
void CHapticsTestEffectDataHandler::DeleteEffectInfo( TInt aFileHandle )
hgs
parents:
diff changeset
   118
    {
hgs
parents:
diff changeset
   119
    for ( TInt i = iPlayedEffectArray.Count() - 1; i >= 0 ; --i )
hgs
parents:
diff changeset
   120
        {
hgs
parents:
diff changeset
   121
        if ( iPlayedEffectArray[i].iFileHandle == aFileHandle )
hgs
parents:
diff changeset
   122
            {
hgs
parents:
diff changeset
   123
            iPlayedEffectArray.Remove( i );
hgs
parents:
diff changeset
   124
            }
hgs
parents:
diff changeset
   125
        }
hgs
parents:
diff changeset
   126
    }
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   129
// Returns the amount of effect data stored in the history data array.
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   131
//
hgs
parents:
diff changeset
   132
TInt CHapticsTestEffectDataHandler::Count() const
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
    return iPlayedEffectArray.Count();
hgs
parents:
diff changeset
   135
    }
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   138
// Returns the effect handle of the given effect data item.
hgs
parents:
diff changeset
   139
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   140
//
hgs
parents:
diff changeset
   141
TInt CHapticsTestEffectDataHandler::EffectHandle( TInt aIndex ) const
hgs
parents:
diff changeset
   142
    {
hgs
parents:
diff changeset
   143
    return iPlayedEffectArray[aIndex].iEffectHandle;
hgs
parents:
diff changeset
   144
    }
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   147
// Returns the file handle of the given effect data item.
hgs
parents:
diff changeset
   148
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   149
//
hgs
parents:
diff changeset
   150
TInt CHapticsTestEffectDataHandler::FileHandle( TInt aIndex ) const
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
    return iPlayedEffectArray[aIndex].iFileHandle;
hgs
parents:
diff changeset
   153
    }
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   156
// Returns the effect index of the given effect data item.
hgs
parents:
diff changeset
   157
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   158
//
hgs
parents:
diff changeset
   159
TInt CHapticsTestEffectDataHandler::EffectIndex( TInt aIndex ) const
hgs
parents:
diff changeset
   160
    {
hgs
parents:
diff changeset
   161
    return iPlayedEffectArray[aIndex].iEffectIndex;
hgs
parents:
diff changeset
   162
    }
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   165
// Resets the modifiable effect data with the data received in the
hgs
parents:
diff changeset
   166
// given magsweep effect.
hgs
parents:
diff changeset
   167
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   168
//
hgs
parents:
diff changeset
   169
void CHapticsTestEffectDataHandler::ResetModifiableMagSweepEffectL( 
hgs
parents:
diff changeset
   170
                const CHWRMHaptics::THWRMHapticsMagSweepEffect& aMagSweep,
hgs
parents:
diff changeset
   171
                TInt aEffectHandle, CHWRMHaptics* aHaptics )
hgs
parents:
diff changeset
   172
    {
hgs
parents:
diff changeset
   173
    // reset effect data
hgs
parents:
diff changeset
   174
    if ( iModifyEffect )
hgs
parents:
diff changeset
   175
        {
hgs
parents:
diff changeset
   176
        delete iModifyEffect;
hgs
parents:
diff changeset
   177
        iModifyEffect = NULL;
hgs
parents:
diff changeset
   178
        }
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
    // create new effect data
hgs
parents:
diff changeset
   181
    iModifyEffect = new (ELeave) TModifyEffect();
hgs
parents:
diff changeset
   182
    iModifyEffect->iHaptics = aHaptics;
hgs
parents:
diff changeset
   183
    iModifyEffect->iEffectType = CHWRMHaptics::EHWRMHapticsTypeMagSweep;
hgs
parents:
diff changeset
   184
    iModifyEffect->iEffectHandle = aEffectHandle;
hgs
parents:
diff changeset
   185
    iModifyEffect->iModifyCount = 0;
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
    // store default effect values
hgs
parents:
diff changeset
   188
    iModifyEffect->iDuration = aMagSweep.iDuration;
hgs
parents:
diff changeset
   189
    iModifyEffect->iMagnitude = aMagSweep.iMagnitude;
hgs
parents:
diff changeset
   190
    iModifyEffect->iStyle = aMagSweep.iStyle;
hgs
parents:
diff changeset
   191
    iModifyEffect->iAttackLevel = aMagSweep.iAttackLevel;
hgs
parents:
diff changeset
   192
    iModifyEffect->iFadeLevel = aMagSweep.iFadeLevel;
hgs
parents:
diff changeset
   193
    iModifyEffect->iAttackTime = aMagSweep.iAttackTime;
hgs
parents:
diff changeset
   194
    iModifyEffect->iFadeTime = aMagSweep.iFadeTime;
hgs
parents:
diff changeset
   195
    
hgs
parents:
diff changeset
   196
    // no period for magsweep, use default value
hgs
parents:
diff changeset
   197
    iModifyEffect->iPeriod = KDefaultEffectPeriod;
hgs
parents:
diff changeset
   198
    }
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   201
// Resets the modifiable effect data with the data received in the
hgs
parents:
diff changeset
   202
// given periodic effect.
hgs
parents:
diff changeset
   203
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   204
//
hgs
parents:
diff changeset
   205
void CHapticsTestEffectDataHandler::ResetModifiablePeriodicEffectL( 
hgs
parents:
diff changeset
   206
                const CHWRMHaptics::THWRMHapticsPeriodicEffect& aPeriodic,
hgs
parents:
diff changeset
   207
                TInt aEffectHandle, CHWRMHaptics* aHaptics )
hgs
parents:
diff changeset
   208
    {
hgs
parents:
diff changeset
   209
    // reset effect data
hgs
parents:
diff changeset
   210
    if ( iModifyEffect )
hgs
parents:
diff changeset
   211
        {
hgs
parents:
diff changeset
   212
        delete iModifyEffect;
hgs
parents:
diff changeset
   213
        iModifyEffect = NULL;
hgs
parents:
diff changeset
   214
        }
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
    // create new effect data
hgs
parents:
diff changeset
   217
    iModifyEffect = new (ELeave) TModifyEffect();
hgs
parents:
diff changeset
   218
    iModifyEffect->iHaptics = aHaptics;
hgs
parents:
diff changeset
   219
    iModifyEffect->iEffectType = CHWRMHaptics::EHWRMHapticsTypePeriodic;
hgs
parents:
diff changeset
   220
    iModifyEffect->iEffectHandle = aEffectHandle;
hgs
parents:
diff changeset
   221
    iModifyEffect->iModifyCount = 0;
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
    // store default effect values
hgs
parents:
diff changeset
   224
    iModifyEffect->iDuration = aPeriodic.iDuration;
hgs
parents:
diff changeset
   225
    iModifyEffect->iMagnitude = aPeriodic.iMagnitude;
hgs
parents:
diff changeset
   226
    iModifyEffect->iStyle = aPeriodic.iStyle;
hgs
parents:
diff changeset
   227
    iModifyEffect->iAttackLevel = aPeriodic.iAttackLevel;
hgs
parents:
diff changeset
   228
    iModifyEffect->iFadeLevel = aPeriodic.iFadeLevel;
hgs
parents:
diff changeset
   229
    iModifyEffect->iAttackTime = aPeriodic.iAttackTime;
hgs
parents:
diff changeset
   230
    iModifyEffect->iFadeTime = aPeriodic.iFadeTime;
hgs
parents:
diff changeset
   231
    iModifyEffect->iPeriod = aPeriodic.iPeriod;
hgs
parents:
diff changeset
   232
    }
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   235
// Starts the timer for constantly modifying an effect.
hgs
parents:
diff changeset
   236
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
//
hgs
parents:
diff changeset
   238
void CHapticsTestEffectDataHandler::StartModifiableEffectTimerL( TInt (*aFunction)(TAny* aPtr) )
hgs
parents:
diff changeset
   239
    {
hgs
parents:
diff changeset
   240
    ResetModifiableEffectTimer();
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
    // create and start periodic timer
hgs
parents:
diff changeset
   243
    iModifyTimer = CPeriodic::NewL( CActive::EPriorityStandard );
hgs
parents:
diff changeset
   244
    iModifyTimer->Start( KEffectModificationInterval,
hgs
parents:
diff changeset
   245
                         KEffectModificationInterval,
hgs
parents:
diff changeset
   246
                         TCallBack( aFunction, this ) );
hgs
parents:
diff changeset
   247
    }
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   250
// Cancels and deletes the timer.
hgs
parents:
diff changeset
   251
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   252
//
hgs
parents:
diff changeset
   253
void CHapticsTestEffectDataHandler::ResetModifiableEffectTimer()
hgs
parents:
diff changeset
   254
    {
hgs
parents:
diff changeset
   255
    // reset timer
hgs
parents:
diff changeset
   256
    if ( iModifyTimer )
hgs
parents:
diff changeset
   257
        {
hgs
parents:
diff changeset
   258
        iModifyTimer->Cancel();
hgs
parents:
diff changeset
   259
        delete iModifyTimer;
hgs
parents:
diff changeset
   260
        iModifyTimer = NULL;
hgs
parents:
diff changeset
   261
        }
hgs
parents:
diff changeset
   262
    }
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   265
// Returns whether or not a modifiable effect exists.
hgs
parents:
diff changeset
   266
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   267
//
hgs
parents:
diff changeset
   268
TBool CHapticsTestEffectDataHandler::ModifiableEffectExists() const
hgs
parents:
diff changeset
   269
    {
hgs
parents:
diff changeset
   270
    return iModifyEffect ? ETrue : EFalse;
hgs
parents:
diff changeset
   271
    }
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   274
// Returns whether or not the currently stored effect is a magsweep effect.
hgs
parents:
diff changeset
   275
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   276
//
hgs
parents:
diff changeset
   277
TBool CHapticsTestEffectDataHandler::ModifiableEffectIsMagSweep() const
hgs
parents:
diff changeset
   278
    {
hgs
parents:
diff changeset
   279
    return ( iModifyEffect->iEffectType == CHWRMHaptics::EHWRMHapticsTypeMagSweep );
hgs
parents:
diff changeset
   280
    }
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   283
// Returns whether or not the currently stored effect is a periodic effect.
hgs
parents:
diff changeset
   284
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   285
//
hgs
parents:
diff changeset
   286
TBool CHapticsTestEffectDataHandler::ModifiableEffectIsPeriodic() const
hgs
parents:
diff changeset
   287
    {
hgs
parents:
diff changeset
   288
    return ( iModifyEffect->iEffectType == CHWRMHaptics::EHWRMHapticsTypePeriodic );
hgs
parents:
diff changeset
   289
    }
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   292
// Returns the effect handle of the modifiable effect.
hgs
parents:
diff changeset
   293
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   294
//
hgs
parents:
diff changeset
   295
TInt CHapticsTestEffectDataHandler::ModifiableEffectHandle() const
hgs
parents:
diff changeset
   296
    {
hgs
parents:
diff changeset
   297
    return iModifyEffect->iEffectHandle;
hgs
parents:
diff changeset
   298
    }
hgs
parents:
diff changeset
   299
hgs
parents:
diff changeset
   300
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   301
// Returns the amount of times the current modifiable effect
hgs
parents:
diff changeset
   302
// has been modified already.
hgs
parents:
diff changeset
   303
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   304
//
hgs
parents:
diff changeset
   305
TInt CHapticsTestEffectDataHandler::ModifyCount() const
hgs
parents:
diff changeset
   306
    {
hgs
parents:
diff changeset
   307
    return iModifyEffect->iModifyCount;
hgs
parents:
diff changeset
   308
    }
hgs
parents:
diff changeset
   309
hgs
parents:
diff changeset
   310
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   311
// Returns the pointer to the haptics client instance, which
hgs
parents:
diff changeset
   312
// has been set to the effect modification data.
hgs
parents:
diff changeset
   313
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   314
//
hgs
parents:
diff changeset
   315
CHWRMHaptics* CHapticsTestEffectDataHandler::Haptics() const
hgs
parents:
diff changeset
   316
    {
hgs
parents:
diff changeset
   317
    return iModifyEffect->iHaptics;
hgs
parents:
diff changeset
   318
    }
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   321
// Fills in default magsweep effect data into the given structure.
hgs
parents:
diff changeset
   322
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   323
//
hgs
parents:
diff changeset
   324
void CHapticsTestEffectDataHandler::FillDefaultMagSweepData( 
hgs
parents:
diff changeset
   325
                    CHWRMHaptics::THWRMHapticsMagSweepEffect& aMagSweep,
hgs
parents:
diff changeset
   326
                    TBool aInfinite, TBool aAutoModifiable,
hgs
parents:
diff changeset
   327
                    CHWRMHaptics* aHaptics ) const
hgs
parents:
diff changeset
   328
    {
hgs
parents:
diff changeset
   329
    if ( aInfinite )
hgs
parents:
diff changeset
   330
        {
hgs
parents:
diff changeset
   331
        aMagSweep.iDuration = aHaptics->InfiniteDuration();
hgs
parents:
diff changeset
   332
        }
hgs
parents:
diff changeset
   333
    else
hgs
parents:
diff changeset
   334
        {
hgs
parents:
diff changeset
   335
        aMagSweep.iDuration = KDefaultNonInfiniteDuration;
hgs
parents:
diff changeset
   336
        }
hgs
parents:
diff changeset
   337
    
hgs
parents:
diff changeset
   338
    if ( aAutoModifiable )
hgs
parents:
diff changeset
   339
        {
hgs
parents:
diff changeset
   340
        // start modifiable effect from minimum magnitude
hgs
parents:
diff changeset
   341
        aMagSweep.iMagnitude = KHWRMHapticsMinMagnitude;
hgs
parents:
diff changeset
   342
        aMagSweep.iAttackLevel = KHWRMHapticsMinMagnitude;
hgs
parents:
diff changeset
   343
        aMagSweep.iFadeLevel = KHWRMHapticsMinMagnitude;
hgs
parents:
diff changeset
   344
        }
hgs
parents:
diff changeset
   345
    else
hgs
parents:
diff changeset
   346
        {
hgs
parents:
diff changeset
   347
        // non-modifiable effect
hgs
parents:
diff changeset
   348
        aMagSweep.iMagnitude = KDefaultEffectMagnitude;
hgs
parents:
diff changeset
   349
        aMagSweep.iAttackLevel = KDefaultEffectAttackLevel;
hgs
parents:
diff changeset
   350
        aMagSweep.iFadeLevel = KDefaultEffectFadeLevel;
hgs
parents:
diff changeset
   351
        }
hgs
parents:
diff changeset
   352
hgs
parents:
diff changeset
   353
    aMagSweep.iStyle = KDefaultEffectStyle;
hgs
parents:
diff changeset
   354
    aMagSweep.iAttackTime = KDefaultEffectAttackTime;
hgs
parents:
diff changeset
   355
    aMagSweep.iFadeTime = KDefaultEffectFadeTime;
hgs
parents:
diff changeset
   356
    }
hgs
parents:
diff changeset
   357
hgs
parents:
diff changeset
   358
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   359
// Fills in default periodic effect data into the given structure.
hgs
parents:
diff changeset
   360
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   361
//
hgs
parents:
diff changeset
   362
void CHapticsTestEffectDataHandler::FillDefaultPeriodicData( 
hgs
parents:
diff changeset
   363
                    CHWRMHaptics::THWRMHapticsPeriodicEffect& aPeriodic,
hgs
parents:
diff changeset
   364
                    TBool aInfinite, TBool /*aAutoModifiable*/,
hgs
parents:
diff changeset
   365
                    CHWRMHaptics* aHaptics ) const
hgs
parents:
diff changeset
   366
    {
hgs
parents:
diff changeset
   367
    if ( aInfinite )
hgs
parents:
diff changeset
   368
        {
hgs
parents:
diff changeset
   369
        aPeriodic.iDuration = aHaptics->InfiniteDuration();
hgs
parents:
diff changeset
   370
        }
hgs
parents:
diff changeset
   371
    else
hgs
parents:
diff changeset
   372
        {
hgs
parents:
diff changeset
   373
        aPeriodic.iDuration = KDefaultNonInfiniteDuration;
hgs
parents:
diff changeset
   374
        }
hgs
parents:
diff changeset
   375
    
hgs
parents:
diff changeset
   376
    aPeriodic.iMagnitude = KDefaultEffectMagnitude;
hgs
parents:
diff changeset
   377
    aPeriodic.iAttackLevel = KDefaultEffectAttackLevel;
hgs
parents:
diff changeset
   378
    aPeriodic.iFadeLevel = KDefaultEffectFadeLevel;
hgs
parents:
diff changeset
   379
hgs
parents:
diff changeset
   380
    aPeriodic.iPeriod = KDefaultEffectPeriod;
hgs
parents:
diff changeset
   381
    aPeriodic.iStyle = KDefaultEffectStyle;
hgs
parents:
diff changeset
   382
    aPeriodic.iAttackTime = KDefaultEffectAttackTime;
hgs
parents:
diff changeset
   383
    aPeriodic.iFadeTime = KDefaultEffectFadeTime;
hgs
parents:
diff changeset
   384
    }
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   387
// Fills in the modifiable effect data into the given magsweep structure.
hgs
parents:
diff changeset
   388
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   389
//
hgs
parents:
diff changeset
   390
void CHapticsTestEffectDataHandler::FillModifiableMagSweepData(
hgs
parents:
diff changeset
   391
            CHWRMHaptics::THWRMHapticsMagSweepEffect& aMagSweep ) const
hgs
parents:
diff changeset
   392
    {
hgs
parents:
diff changeset
   393
    aMagSweep.iDuration = iModifyEffect->iDuration;
hgs
parents:
diff changeset
   394
    aMagSweep.iStyle = iModifyEffect->iStyle;
hgs
parents:
diff changeset
   395
    aMagSweep.iAttackTime = iModifyEffect->iAttackTime;
hgs
parents:
diff changeset
   396
    aMagSweep.iFadeTime = iModifyEffect->iFadeTime;
hgs
parents:
diff changeset
   397
    aMagSweep.iMagnitude = iModifyEffect->iMagnitude;
hgs
parents:
diff changeset
   398
    aMagSweep.iAttackLevel = iModifyEffect->iAttackLevel;
hgs
parents:
diff changeset
   399
    aMagSweep.iFadeLevel = iModifyEffect->iFadeLevel;
hgs
parents:
diff changeset
   400
    }
hgs
parents:
diff changeset
   401
hgs
parents:
diff changeset
   402
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   403
// Fills in the modifiable effect data into the given periodic structure.
hgs
parents:
diff changeset
   404
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   405
//
hgs
parents:
diff changeset
   406
void CHapticsTestEffectDataHandler::FillModifiablePeriodicData( 
hgs
parents:
diff changeset
   407
            CHWRMHaptics::THWRMHapticsPeriodicEffect& aPeriodic ) const
hgs
parents:
diff changeset
   408
    {
hgs
parents:
diff changeset
   409
    aPeriodic.iDuration = iModifyEffect->iDuration;
hgs
parents:
diff changeset
   410
    aPeriodic.iStyle = iModifyEffect->iStyle;
hgs
parents:
diff changeset
   411
    aPeriodic.iAttackTime = iModifyEffect->iAttackTime;
hgs
parents:
diff changeset
   412
    aPeriodic.iFadeTime = iModifyEffect->iFadeTime;
hgs
parents:
diff changeset
   413
    aPeriodic.iMagnitude = iModifyEffect->iMagnitude;
hgs
parents:
diff changeset
   414
    aPeriodic.iAttackLevel = iModifyEffect->iAttackLevel;
hgs
parents:
diff changeset
   415
    aPeriodic.iFadeLevel = iModifyEffect->iFadeLevel;
hgs
parents:
diff changeset
   416
    aPeriodic.iPeriod = iModifyEffect->iPeriod;
hgs
parents:
diff changeset
   417
    }
hgs
parents:
diff changeset
   418
hgs
parents:
diff changeset
   419
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   420
// Sets the modifiable effect's modify count.
hgs
parents:
diff changeset
   421
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   422
//
hgs
parents:
diff changeset
   423
void CHapticsTestEffectDataHandler::SetModifyCount( TInt aModifyCount )
hgs
parents:
diff changeset
   424
    {
hgs
parents:
diff changeset
   425
    iModifyEffect->iModifyCount = aModifyCount;
hgs
parents:
diff changeset
   426
    }
hgs
parents:
diff changeset
   427
hgs
parents:
diff changeset
   428
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   429
// Sets the modifiable effect's duration value.
hgs
parents:
diff changeset
   430
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   431
//
hgs
parents:
diff changeset
   432
void CHapticsTestEffectDataHandler::SetDuration( TInt aDuration )
hgs
parents:
diff changeset
   433
    {
hgs
parents:
diff changeset
   434
    iModifyEffect->iDuration = aDuration;
hgs
parents:
diff changeset
   435
    }
hgs
parents:
diff changeset
   436
hgs
parents:
diff changeset
   437
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   438
// Sets the modifiable effect's magnitude value.
hgs
parents:
diff changeset
   439
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   440
//
hgs
parents:
diff changeset
   441
void CHapticsTestEffectDataHandler::SetMagnitude( TInt aMagnitude )
hgs
parents:
diff changeset
   442
    {
hgs
parents:
diff changeset
   443
    iModifyEffect->iMagnitude = aMagnitude;
hgs
parents:
diff changeset
   444
    }
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   447
// Sets the modifiable effect's style value.
hgs
parents:
diff changeset
   448
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   449
//
hgs
parents:
diff changeset
   450
void CHapticsTestEffectDataHandler::SetStyle( 
hgs
parents:
diff changeset
   451
                        CHWRMHaptics::THWRMHapticsEffectStyles aStyle )
hgs
parents:
diff changeset
   452
    {
hgs
parents:
diff changeset
   453
    iModifyEffect->iStyle = aStyle;
hgs
parents:
diff changeset
   454
    }
hgs
parents:
diff changeset
   455
hgs
parents:
diff changeset
   456
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   457
// Sets the modifiable effect's attack level value.
hgs
parents:
diff changeset
   458
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   459
//
hgs
parents:
diff changeset
   460
void CHapticsTestEffectDataHandler::SetAttackLevel( TInt aAttackLevel )
hgs
parents:
diff changeset
   461
    {
hgs
parents:
diff changeset
   462
    iModifyEffect->iAttackLevel = aAttackLevel;
hgs
parents:
diff changeset
   463
    }
hgs
parents:
diff changeset
   464
hgs
parents:
diff changeset
   465
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   466
// Sets the modifiable effect's fade level value.
hgs
parents:
diff changeset
   467
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   468
//
hgs
parents:
diff changeset
   469
void CHapticsTestEffectDataHandler::SetFadeLevel( TInt aFadeLevel )
hgs
parents:
diff changeset
   470
    {
hgs
parents:
diff changeset
   471
    iModifyEffect->iFadeLevel = aFadeLevel;
hgs
parents:
diff changeset
   472
    }
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   475
// Sets the modifiable effect's attack time value.
hgs
parents:
diff changeset
   476
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   477
//
hgs
parents:
diff changeset
   478
void CHapticsTestEffectDataHandler::SetAttackTime( TInt aAttackTime )
hgs
parents:
diff changeset
   479
    {
hgs
parents:
diff changeset
   480
    iModifyEffect->iAttackTime = aAttackTime;
hgs
parents:
diff changeset
   481
    }
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   484
// Sets the modifiable effect's fade time value.
hgs
parents:
diff changeset
   485
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   486
//
hgs
parents:
diff changeset
   487
void CHapticsTestEffectDataHandler::SetFadeTime( TInt aFadeTime )
hgs
parents:
diff changeset
   488
    {
hgs
parents:
diff changeset
   489
    iModifyEffect->iFadeTime = aFadeTime;
hgs
parents:
diff changeset
   490
    }
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   493
// Sets the modifiable effect's period value.
hgs
parents:
diff changeset
   494
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   495
//
hgs
parents:
diff changeset
   496
void CHapticsTestEffectDataHandler::SetPeriod( TInt aPeriod )
hgs
parents:
diff changeset
   497
    {
hgs
parents:
diff changeset
   498
    iModifyEffect->iPeriod = aPeriod;
hgs
parents:
diff changeset
   499
    }
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   502
// Creates all submenu items for a change effect state submenu.
hgs
parents:
diff changeset
   503
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   504
//
hgs
parents:
diff changeset
   505
void CHapticsTestEffectDataHandler::DynInitChangeEffectStateSubmenuL( 
hgs
parents:
diff changeset
   506
                                                CEikMenuPane* aMenuPane, 
hgs
parents:
diff changeset
   507
                                                TInt aCommandId,
hgs
parents:
diff changeset
   508
                                                CHWRMHaptics* aHaptics )
hgs
parents:
diff changeset
   509
    {
hgs
parents:
diff changeset
   510
    // get effect count
hgs
parents:
diff changeset
   511
    TInt effectCount = iPlayedEffectArray.Count();
hgs
parents:
diff changeset
   512
    
hgs
parents:
diff changeset
   513
    // fill effect history data to submenu, if any data available
hgs
parents:
diff changeset
   514
    if ( effectCount )
hgs
parents:
diff changeset
   515
        {
hgs
parents:
diff changeset
   516
        // there is data, hide "none found"
hgs
parents:
diff changeset
   517
        aMenuPane->SetItemDimmed( EHapticsTestChangeStateNoneFound, ETrue );
hgs
parents:
diff changeset
   518
        
hgs
parents:
diff changeset
   519
        // make played effects visible in the submenu
hgs
parents:
diff changeset
   520
        CEikMenuPaneItem::SData data;
hgs
parents:
diff changeset
   521
        for ( TInt i = 0; i < effectCount; ++i )
hgs
parents:
diff changeset
   522
            {
hgs
parents:
diff changeset
   523
            // buffer for effect name
hgs
parents:
diff changeset
   524
            HBufC8* effectName = HBufC8::NewL( aHaptics->MaxEffectNameLength() );
hgs
parents:
diff changeset
   525
            TPtr8 namePtr = effectName->Des();
hgs
parents:
diff changeset
   526
            
hgs
parents:
diff changeset
   527
            // effect name
hgs
parents:
diff changeset
   528
            if ( iPlayedEffectArray[i].iFileHandle > 0 &&
hgs
parents:
diff changeset
   529
                 iPlayedEffectArray[i].iEffectIndex > 0 )
hgs
parents:
diff changeset
   530
                {
hgs
parents:
diff changeset
   531
                aHaptics->GetEffectName( iPlayedEffectArray[i].iFileHandle,
hgs
parents:
diff changeset
   532
                                         iPlayedEffectArray[i].iEffectIndex,
hgs
parents:
diff changeset
   533
                                         namePtr );
hgs
parents:
diff changeset
   534
                }
hgs
parents:
diff changeset
   535
            else
hgs
parents:
diff changeset
   536
                {
hgs
parents:
diff changeset
   537
                namePtr.Append( KManualEffectName );
hgs
parents:
diff changeset
   538
                }
hgs
parents:
diff changeset
   539
hgs
parents:
diff changeset
   540
            // insert data to submenu item
hgs
parents:
diff changeset
   541
            data.iText.Copy( *effectName );
hgs
parents:
diff changeset
   542
            data.iCommandId = aCommandId;
hgs
parents:
diff changeset
   543
            data.iCascadeId = 0;
hgs
parents:
diff changeset
   544
            data.iFlags = 0;
hgs
parents:
diff changeset
   545
            data.iExtraText = KNullDesC;
hgs
parents:
diff changeset
   546
            
hgs
parents:
diff changeset
   547
            delete effectName;
hgs
parents:
diff changeset
   548
            
hgs
parents:
diff changeset
   549
            aMenuPane->AddMenuItemL( data );
hgs
parents:
diff changeset
   550
            }
hgs
parents:
diff changeset
   551
        }
hgs
parents:
diff changeset
   552
    }
hgs
parents:
diff changeset
   553
hgs
parents:
diff changeset
   554
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   555
// Creates the checkmark to the duration, which is currently in use
hgs
parents:
diff changeset
   556
// in the duration modification submenu.
hgs
parents:
diff changeset
   557
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   558
//
hgs
parents:
diff changeset
   559
void CHapticsTestEffectDataHandler::DynInitDurationSubmenu( 
hgs
parents:
diff changeset
   560
                                        CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   561
    {
hgs
parents:
diff changeset
   562
    // set check mark to correct duration value
hgs
parents:
diff changeset
   563
    if ( iModifyEffect->iDuration == KEffectDuration1 )
hgs
parents:
diff changeset
   564
        {
hgs
parents:
diff changeset
   565
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   566
                   EHapticsTestModifyEffectDuration1,
hgs
parents:
diff changeset
   567
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   568
        }
hgs
parents:
diff changeset
   569
    else if ( iModifyEffect->iDuration == KEffectDuration5 )
hgs
parents:
diff changeset
   570
        {
hgs
parents:
diff changeset
   571
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   572
                   EHapticsTestModifyEffectDuration5,
hgs
parents:
diff changeset
   573
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   574
        }
hgs
parents:
diff changeset
   575
    else if ( iModifyEffect->iDuration == KEffectDuration10 )
hgs
parents:
diff changeset
   576
        {
hgs
parents:
diff changeset
   577
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   578
                   EHapticsTestModifyEffectDuration10,
hgs
parents:
diff changeset
   579
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   580
        }
hgs
parents:
diff changeset
   581
    else if ( iModifyEffect->iDuration == KEffectDuration30 )
hgs
parents:
diff changeset
   582
        {
hgs
parents:
diff changeset
   583
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   584
                   EHapticsTestModifyEffectDuration30,
hgs
parents:
diff changeset
   585
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   586
        }
hgs
parents:
diff changeset
   587
    else if ( iModifyEffect->iDuration == KEffectDuration60 )
hgs
parents:
diff changeset
   588
        {
hgs
parents:
diff changeset
   589
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   590
                   EHapticsTestModifyEffectDuration60,
hgs
parents:
diff changeset
   591
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   592
        }
hgs
parents:
diff changeset
   593
    }
hgs
parents:
diff changeset
   594
hgs
parents:
diff changeset
   595
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   596
// Creates the checkmark to the magnitude, which is currently in use
hgs
parents:
diff changeset
   597
// in the magnitude modification submenu.
hgs
parents:
diff changeset
   598
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   599
//
hgs
parents:
diff changeset
   600
void CHapticsTestEffectDataHandler::DynInitMagnitudeSubmenu( 
hgs
parents:
diff changeset
   601
                                            CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   602
    {
hgs
parents:
diff changeset
   603
    // set check mark to correct magnitude value
hgs
parents:
diff changeset
   604
    if ( iModifyEffect->iMagnitude == KHWRMHapticsMinMagnitude )
hgs
parents:
diff changeset
   605
        {
hgs
parents:
diff changeset
   606
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   607
                   EHapticsTestModifyEffectMagnitudeMin,
hgs
parents:
diff changeset
   608
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   609
        }
hgs
parents:
diff changeset
   610
    else if ( iModifyEffect->iMagnitude == KEffectMagnitude25 )
hgs
parents:
diff changeset
   611
        {
hgs
parents:
diff changeset
   612
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   613
                   EHapticsTestModifyEffectMagnitude25,
hgs
parents:
diff changeset
   614
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   615
        }
hgs
parents:
diff changeset
   616
    else if ( iModifyEffect->iMagnitude == KEffectMagnitude50 )
hgs
parents:
diff changeset
   617
        {
hgs
parents:
diff changeset
   618
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   619
                   EHapticsTestModifyEffectMagnitude50,
hgs
parents:
diff changeset
   620
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   621
        }
hgs
parents:
diff changeset
   622
    else if ( iModifyEffect->iMagnitude == KEffectMagnitude75 )
hgs
parents:
diff changeset
   623
        {
hgs
parents:
diff changeset
   624
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   625
                   EHapticsTestModifyEffectMagnitude75,
hgs
parents:
diff changeset
   626
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   627
        }
hgs
parents:
diff changeset
   628
    else if ( iModifyEffect->iMagnitude == KHWRMHapticsMaxMagnitude )
hgs
parents:
diff changeset
   629
        {
hgs
parents:
diff changeset
   630
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   631
                   EHapticsTestModifyEffectMagnitudeMax,
hgs
parents:
diff changeset
   632
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   633
        }
hgs
parents:
diff changeset
   634
    }
hgs
parents:
diff changeset
   635
hgs
parents:
diff changeset
   636
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   637
// Creates the checkmark to the style, which is currently in use
hgs
parents:
diff changeset
   638
// in the style modification submenu.
hgs
parents:
diff changeset
   639
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   640
//
hgs
parents:
diff changeset
   641
void CHapticsTestEffectDataHandler::DynInitStyleSubmenu( 
hgs
parents:
diff changeset
   642
                                            CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   643
    {
hgs
parents:
diff changeset
   644
    // set check mark to correct style value
hgs
parents:
diff changeset
   645
    if ( iModifyEffect->iStyle == CHWRMHaptics::EHWRMHapticsStyleSmooth )
hgs
parents:
diff changeset
   646
        {
hgs
parents:
diff changeset
   647
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   648
                   EHapticsTestModifyEffectStyleSmooth,
hgs
parents:
diff changeset
   649
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   650
        }
hgs
parents:
diff changeset
   651
    else if ( iModifyEffect->iStyle == CHWRMHaptics::EHWRMHapticsStyleStrong )
hgs
parents:
diff changeset
   652
        {
hgs
parents:
diff changeset
   653
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   654
                   EHapticsTestModifyEffectStyleStrong,
hgs
parents:
diff changeset
   655
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   656
        }
hgs
parents:
diff changeset
   657
    else if ( iModifyEffect->iStyle == CHWRMHaptics::EHWRMHapticsStyleSharp )
hgs
parents:
diff changeset
   658
        {
hgs
parents:
diff changeset
   659
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   660
                   EHapticsTestModifyEffectStyleSharp,
hgs
parents:
diff changeset
   661
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   662
        }
hgs
parents:
diff changeset
   663
    }
hgs
parents:
diff changeset
   664
hgs
parents:
diff changeset
   665
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   666
// Creates the checkmark to the attack level, which is currently in use
hgs
parents:
diff changeset
   667
// in the attack level modification submenu.
hgs
parents:
diff changeset
   668
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   669
//
hgs
parents:
diff changeset
   670
void CHapticsTestEffectDataHandler::DynInitAttackLevelSubmenu( 
hgs
parents:
diff changeset
   671
                                        CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   672
    {
hgs
parents:
diff changeset
   673
    // set check mark to correct attack level value
hgs
parents:
diff changeset
   674
    if ( iModifyEffect->iAttackLevel == KHWRMHapticsMinMagnitude )
hgs
parents:
diff changeset
   675
        {
hgs
parents:
diff changeset
   676
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   677
                   EHapticsTestModifyEffectAttackMin,
hgs
parents:
diff changeset
   678
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   679
        }
hgs
parents:
diff changeset
   680
    else if ( iModifyEffect->iAttackLevel == KEffectMagnitude25 )
hgs
parents:
diff changeset
   681
        {
hgs
parents:
diff changeset
   682
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   683
                   EHapticsTestModifyEffectAttack25,
hgs
parents:
diff changeset
   684
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   685
        }
hgs
parents:
diff changeset
   686
    else if ( iModifyEffect->iAttackLevel == KEffectMagnitude50 )
hgs
parents:
diff changeset
   687
        {
hgs
parents:
diff changeset
   688
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   689
                   EHapticsTestModifyEffectAttack50,
hgs
parents:
diff changeset
   690
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   691
        }
hgs
parents:
diff changeset
   692
    else if ( iModifyEffect->iAttackLevel == KEffectMagnitude75 )
hgs
parents:
diff changeset
   693
        {
hgs
parents:
diff changeset
   694
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   695
                   EHapticsTestModifyEffectAttack75,
hgs
parents:
diff changeset
   696
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   697
        }
hgs
parents:
diff changeset
   698
    else if ( iModifyEffect->iAttackLevel == KHWRMHapticsMaxMagnitude )
hgs
parents:
diff changeset
   699
        {
hgs
parents:
diff changeset
   700
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   701
                   EHapticsTestModifyEffectAttackMax,
hgs
parents:
diff changeset
   702
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   703
        }
hgs
parents:
diff changeset
   704
    }
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   707
// Creates the checkmark to the fade level, which is currently in use
hgs
parents:
diff changeset
   708
// in the fade level modification submenu.
hgs
parents:
diff changeset
   709
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   710
//
hgs
parents:
diff changeset
   711
void CHapticsTestEffectDataHandler::DynInitFadeLevelSubmenu( 
hgs
parents:
diff changeset
   712
                                        CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   713
    {
hgs
parents:
diff changeset
   714
    // set check mark to correct fade level value
hgs
parents:
diff changeset
   715
    if ( iModifyEffect->iFadeLevel == KHWRMHapticsMinMagnitude )
hgs
parents:
diff changeset
   716
        {
hgs
parents:
diff changeset
   717
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   718
                   EHapticsTestModifyEffectFadeMin,
hgs
parents:
diff changeset
   719
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   720
        }
hgs
parents:
diff changeset
   721
    else if ( iModifyEffect->iFadeLevel == KEffectMagnitude25 )
hgs
parents:
diff changeset
   722
        {
hgs
parents:
diff changeset
   723
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   724
                   EHapticsTestModifyEffectFade25,
hgs
parents:
diff changeset
   725
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   726
        }
hgs
parents:
diff changeset
   727
    else if ( iModifyEffect->iFadeLevel == KEffectMagnitude50 )
hgs
parents:
diff changeset
   728
        {
hgs
parents:
diff changeset
   729
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   730
                   EHapticsTestModifyEffectFade50,
hgs
parents:
diff changeset
   731
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   732
        }
hgs
parents:
diff changeset
   733
    else if ( iModifyEffect->iFadeLevel == KEffectMagnitude75 )
hgs
parents:
diff changeset
   734
        {
hgs
parents:
diff changeset
   735
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   736
                   EHapticsTestModifyEffectFade75,
hgs
parents:
diff changeset
   737
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   738
        }
hgs
parents:
diff changeset
   739
    else if ( iModifyEffect->iFadeLevel == KHWRMHapticsMaxMagnitude )
hgs
parents:
diff changeset
   740
        {
hgs
parents:
diff changeset
   741
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   742
                   EHapticsTestModifyEffectFadeMax,
hgs
parents:
diff changeset
   743
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   744
        }
hgs
parents:
diff changeset
   745
    }
hgs
parents:
diff changeset
   746
hgs
parents:
diff changeset
   747
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   748
// Creates the checkmark to the attack time, which is currently in use
hgs
parents:
diff changeset
   749
// in the attack time modification submenu.
hgs
parents:
diff changeset
   750
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   751
//
hgs
parents:
diff changeset
   752
void CHapticsTestEffectDataHandler::DynInitAttackTimeSubmenu( 
hgs
parents:
diff changeset
   753
                                            CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   754
    {
hgs
parents:
diff changeset
   755
    // set check mark to correct attack time value
hgs
parents:
diff changeset
   756
    if ( iModifyEffect->iAttackTime == KEffectAttackTime02 )
hgs
parents:
diff changeset
   757
        {
hgs
parents:
diff changeset
   758
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   759
                   EHapticsTestModifyEffectAttackTime02,
hgs
parents:
diff changeset
   760
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   761
        }
hgs
parents:
diff changeset
   762
    else if ( iModifyEffect->iAttackTime == KEffectAttackTime1 )
hgs
parents:
diff changeset
   763
        {
hgs
parents:
diff changeset
   764
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   765
                   EHapticsTestModifyEffectAttackTime1,
hgs
parents:
diff changeset
   766
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   767
        }
hgs
parents:
diff changeset
   768
    else if ( iModifyEffect->iAttackTime == KEffectAttackTime5 )
hgs
parents:
diff changeset
   769
        {
hgs
parents:
diff changeset
   770
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   771
                   EHapticsTestModifyEffectAttackTime5,
hgs
parents:
diff changeset
   772
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   773
        }
hgs
parents:
diff changeset
   774
    else if ( iModifyEffect->iAttackTime == KEffectAttackTime10 )
hgs
parents:
diff changeset
   775
        {
hgs
parents:
diff changeset
   776
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   777
                   EHapticsTestModifyEffectAttackTime10,
hgs
parents:
diff changeset
   778
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   779
        }
hgs
parents:
diff changeset
   780
    else if ( iModifyEffect->iAttackTime == KEffectAttackTime30 )
hgs
parents:
diff changeset
   781
        {
hgs
parents:
diff changeset
   782
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   783
                   EHapticsTestModifyEffectAttackTime30,
hgs
parents:
diff changeset
   784
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   785
        }
hgs
parents:
diff changeset
   786
    else if ( iModifyEffect->iAttackTime == KEffectAttackTime60 )
hgs
parents:
diff changeset
   787
        {
hgs
parents:
diff changeset
   788
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   789
                   EHapticsTestModifyEffectAttackTime60,
hgs
parents:
diff changeset
   790
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   791
        }
hgs
parents:
diff changeset
   792
    }
hgs
parents:
diff changeset
   793
hgs
parents:
diff changeset
   794
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   795
// Creates the checkmark to the fade time, which is currently in use
hgs
parents:
diff changeset
   796
// in the fade time modification submenu.
hgs
parents:
diff changeset
   797
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   798
//
hgs
parents:
diff changeset
   799
void CHapticsTestEffectDataHandler::DynInitFadeTimeSubmenu( 
hgs
parents:
diff changeset
   800
                                            CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   801
    {
hgs
parents:
diff changeset
   802
    // set check mark to correct fade time value
hgs
parents:
diff changeset
   803
    if ( iModifyEffect->iFadeTime == KEffectFadeTime02 )
hgs
parents:
diff changeset
   804
        {
hgs
parents:
diff changeset
   805
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   806
                   EHapticsTestModifyEffectFadeTime02,
hgs
parents:
diff changeset
   807
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   808
        }
hgs
parents:
diff changeset
   809
    else if ( iModifyEffect->iFadeTime == KEffectFadeTime1 )
hgs
parents:
diff changeset
   810
        {
hgs
parents:
diff changeset
   811
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   812
                   EHapticsTestModifyEffectFadeTime1,
hgs
parents:
diff changeset
   813
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   814
        }
hgs
parents:
diff changeset
   815
    else if ( iModifyEffect->iFadeTime == KEffectFadeTime5 )
hgs
parents:
diff changeset
   816
        {
hgs
parents:
diff changeset
   817
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   818
                   EHapticsTestModifyEffectFadeTime5,
hgs
parents:
diff changeset
   819
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   820
        }
hgs
parents:
diff changeset
   821
    else if ( iModifyEffect->iFadeTime == KEffectFadeTime10 )
hgs
parents:
diff changeset
   822
        {
hgs
parents:
diff changeset
   823
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   824
                   EHapticsTestModifyEffectFadeTime10,
hgs
parents:
diff changeset
   825
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   826
        }
hgs
parents:
diff changeset
   827
    else if ( iModifyEffect->iFadeTime == KEffectFadeTime30 )
hgs
parents:
diff changeset
   828
        {
hgs
parents:
diff changeset
   829
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   830
                   EHapticsTestModifyEffectFadeTime30,
hgs
parents:
diff changeset
   831
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   832
        }
hgs
parents:
diff changeset
   833
    else if ( iModifyEffect->iFadeTime == KEffectFadeTime60 )
hgs
parents:
diff changeset
   834
        {
hgs
parents:
diff changeset
   835
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   836
                   EHapticsTestModifyEffectFadeTime60,
hgs
parents:
diff changeset
   837
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   838
        }
hgs
parents:
diff changeset
   839
    }
hgs
parents:
diff changeset
   840
hgs
parents:
diff changeset
   841
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   842
// Creates the checkmark to the period, which is currently in use
hgs
parents:
diff changeset
   843
// in the period modification submenu.
hgs
parents:
diff changeset
   844
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   845
//
hgs
parents:
diff changeset
   846
void CHapticsTestEffectDataHandler::DynInitPeriodSubmenu( 
hgs
parents:
diff changeset
   847
                                            CEikMenuPane* aMenuPane ) const
hgs
parents:
diff changeset
   848
    {
hgs
parents:
diff changeset
   849
    // set check mark to correct period value
hgs
parents:
diff changeset
   850
    if ( iModifyEffect->iPeriod == KEffectPeriod50 )
hgs
parents:
diff changeset
   851
        {
hgs
parents:
diff changeset
   852
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   853
                   EHapticsTestModifyEffectPeriod50,
hgs
parents:
diff changeset
   854
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   855
        }
hgs
parents:
diff changeset
   856
    else if ( iModifyEffect->iPeriod == KEffectPeriod100 )
hgs
parents:
diff changeset
   857
        {
hgs
parents:
diff changeset
   858
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   859
                   EHapticsTestModifyEffectPeriod100,
hgs
parents:
diff changeset
   860
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   861
        }
hgs
parents:
diff changeset
   862
    else if ( iModifyEffect->iPeriod == KEffectPeriod300 )
hgs
parents:
diff changeset
   863
        {
hgs
parents:
diff changeset
   864
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   865
                   EHapticsTestModifyEffectPeriod300,
hgs
parents:
diff changeset
   866
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   867
        }
hgs
parents:
diff changeset
   868
    else if ( iModifyEffect->iPeriod == KEffectPeriod600 )
hgs
parents:
diff changeset
   869
        {
hgs
parents:
diff changeset
   870
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   871
                   EHapticsTestModifyEffectPeriod600,
hgs
parents:
diff changeset
   872
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   873
        }
hgs
parents:
diff changeset
   874
    else if ( iModifyEffect->iPeriod == KEffectPeriod1000 )
hgs
parents:
diff changeset
   875
        {
hgs
parents:
diff changeset
   876
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   877
                   EHapticsTestModifyEffectPeriod1000,
hgs
parents:
diff changeset
   878
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   879
        }
hgs
parents:
diff changeset
   880
    else if ( iModifyEffect->iPeriod == KEffectPeriod3000 )
hgs
parents:
diff changeset
   881
        {
hgs
parents:
diff changeset
   882
        aMenuPane->SetItemButtonState( 
hgs
parents:
diff changeset
   883
                   EHapticsTestModifyEffectPeriod3000,
hgs
parents:
diff changeset
   884
                   EEikMenuItemSymbolOn );
hgs
parents:
diff changeset
   885
        }
hgs
parents:
diff changeset
   886
    }
hgs
parents:
diff changeset
   887
hgs
parents:
diff changeset
   888
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   889
// C++ constructor
hgs
parents:
diff changeset
   890
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   891
//
hgs
parents:
diff changeset
   892
CHapticsTestEffectDataHandler::CHapticsTestEffectDataHandler() 
hgs
parents:
diff changeset
   893
    {
hgs
parents:
diff changeset
   894
    }
hgs
parents:
diff changeset
   895
    
hgs
parents:
diff changeset
   896
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   897
// Second phase construction.
hgs
parents:
diff changeset
   898
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   899
//
hgs
parents:
diff changeset
   900
void CHapticsTestEffectDataHandler::ConstructL()
hgs
parents:
diff changeset
   901
    {
hgs
parents:
diff changeset
   902
    }
hgs
parents:
diff changeset
   903
hgs
parents:
diff changeset
   904
// End of file