hwrmhaptics/examples/hapticstestapp/src/hapticstestappui.cpp
author hgs
Tue, 02 Nov 2010 13:09:35 +0200
changeset 84 db3d1bc2aa9c
parent 76 cb32bcc88bad
permissions -rw-r--r--
201043_01
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:  AppUi class implementation.
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 <avkon.hrh>
hgs
parents:
diff changeset
    20
#include <e32math.h>
hgs
parents:
diff changeset
    21
#include <eikmenup.h>
hgs
parents:
diff changeset
    22
#include <aknlistquerydialog.h>
hgs
parents:
diff changeset
    23
#include <hapticstest.rsg>
hgs
parents:
diff changeset
    24
#include <utf.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "hapticstest.pan"
hgs
parents:
diff changeset
    27
#include "hapticstestappui.h"
hgs
parents:
diff changeset
    28
#include "hapticstestappview.h"
hgs
parents:
diff changeset
    29
#include "hapticstesteffectdatahandler.h"
hgs
parents:
diff changeset
    30
#include "hapticstest.hrh"
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
_LIT( KSessionPathMem, "C:\\Data\\Others\\" );
hgs
parents:
diff changeset
    33
_LIT( KSessionPathCrd, "E:\\Others\\" );
hgs
parents:
diff changeset
    34
_LIT( KIVTFileType, "*.ivt" );
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
const TInt KSampleCount = 8;
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
static const TUint8 KStreamArray[KSampleCount][10] =
hgs
parents:
diff changeset
    39
    {
hgs
parents:
diff changeset
    40
    0x00, 0x00, 0x20, 0x13, 0x00, 0x00, 0x7f, 0x01, 0x5d, 0x41,
hgs
parents:
diff changeset
    41
    0x29, 0x00, 0x20, 0x08, 0x00, 0x00, 0x7f, 0xc1, 0x4d, 0x42,           
hgs
parents:
diff changeset
    42
    0x51, 0x00, 0x20, 0x08, 0x00, 0x00, 0x7f, 0x01, 0x5d, 0xc1,
hgs
parents:
diff changeset
    43
    0x65, 0x00, 0x20, 0x07, 0x00, 0x00, 0x7f, 0x01, 0x5d, 0xd1,
hgs
parents:
diff changeset
    44
    0x7a, 0x00, 0x20, 0x08, 0x00, 0x00, 0x7f, 0xc1, 0x4d, 0x42,
hgs
parents:
diff changeset
    45
    0x8e, 0x00, 0x20, 0x16, 0x00, 0x00, 0x7f, 0x01, 0x5d, 0x01,
hgs
parents:
diff changeset
    46
    0xa2, 0x00, 0x20, 0x08, 0x00, 0x00, 0x7f, 0xc1, 0x4d, 0x42,
hgs
parents:
diff changeset
    47
    0x06, 0x00, 0x20, 0x08, 0x00, 0x00, 0x7f, 0xc1, 0x4d, 0x42    
hgs
parents:
diff changeset
    48
    };
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
// ---------------------------------------------------------
hgs
parents:
diff changeset
    54
// ConstructL is called by the application framework
hgs
parents:
diff changeset
    55
// ---------------------------------------------------------
hgs
parents:
diff changeset
    56
//
hgs
parents:
diff changeset
    57
void CHapticsTestAppUi::ConstructL()
hgs
parents:
diff changeset
    58
    {
hgs
parents:
diff changeset
    59
    BaseConstructL();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    // create appview
hgs
parents:
diff changeset
    62
    iAppView = CHapticsTestAppView::NewL( ClientRect() );    
hgs
parents:
diff changeset
    63
    AddToStackL( iAppView );
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
    // create effect data handler
hgs
parents:
diff changeset
    66
    iEffectData = CHapticsTestEffectDataHandler::NewL();
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    // create async play sender
hgs
parents:
diff changeset
    69
    iAsyncPlaySender = new ( ELeave ) CHapticsTestAsyncPlaySender( this );
hgs
parents:
diff changeset
    70
    
hgs
parents:
diff changeset
    71
    FindIVTFiles();
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
    iAppView->InsertOutput( _L("Haptics usage from options menu.") );
hgs
parents:
diff changeset
    74
    }
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
// ---------------------------------------------------------
hgs
parents:
diff changeset
    77
// Constructor.
hgs
parents:
diff changeset
    78
// ---------------------------------------------------------
hgs
parents:
diff changeset
    79
//
hgs
parents:
diff changeset
    80
CHapticsTestAppUi::CHapticsTestAppUi()
hgs
parents:
diff changeset
    81
    : iSynchronous( ETrue ), iUseHandle( EFalse ), iUsesMemCard( EFalse )
hgs
parents:
diff changeset
    82
    {
hgs
parents:
diff changeset
    83
    // no implementation required
hgs
parents:
diff changeset
    84
    }
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
// ---------------------------------------------------------
hgs
parents:
diff changeset
    87
// Destructor.
hgs
parents:
diff changeset
    88
// ---------------------------------------------------------
hgs
parents:
diff changeset
    89
//
hgs
parents:
diff changeset
    90
CHapticsTestAppUi::~CHapticsTestAppUi()
hgs
parents:
diff changeset
    91
    {
hgs
parents:
diff changeset
    92
    if (iAppView)
hgs
parents:
diff changeset
    93
        {
hgs
parents:
diff changeset
    94
        RemoveFromStack( iAppView );
hgs
parents:
diff changeset
    95
        delete iAppView;
hgs
parents:
diff changeset
    96
        iAppView = NULL;
hgs
parents:
diff changeset
    97
        }
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
    if( iHaptics )
hgs
parents:
diff changeset
   100
        {
hgs
parents:
diff changeset
   101
        delete iHaptics;
hgs
parents:
diff changeset
   102
        iHaptics = NULL;
hgs
parents:
diff changeset
   103
        }
hgs
parents:
diff changeset
   104
    
hgs
parents:
diff changeset
   105
    if ( iTempHaptics )
hgs
parents:
diff changeset
   106
        {
hgs
parents:
diff changeset
   107
        delete iTempHaptics;
hgs
parents:
diff changeset
   108
        iTempHaptics = NULL;
hgs
parents:
diff changeset
   109
        }
hgs
parents:
diff changeset
   110
    
hgs
parents:
diff changeset
   111
    delete iEffectData;
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    iIVTFileArray.Close();
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    while ( iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
   116
        {
hgs
parents:
diff changeset
   117
        delete iLoadedIVTFileArray[0].iDataBuffer;
hgs
parents:
diff changeset
   118
        iLoadedIVTFileArray.Remove( 0 );
hgs
parents:
diff changeset
   119
        }
hgs
parents:
diff changeset
   120
    
hgs
parents:
diff changeset
   121
    iLoadedIVTFileArray.Close();
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
    if ( iAsyncPlaySender )
hgs
parents:
diff changeset
   124
        {
hgs
parents:
diff changeset
   125
        iAsyncPlaySender->Cancel();
hgs
parents:
diff changeset
   126
        delete iAsyncPlaySender;
hgs
parents:
diff changeset
   127
        iAsyncPlaySender = NULL;
hgs
parents:
diff changeset
   128
        }
hgs
parents:
diff changeset
   129
    }
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
// ---------------------------------------------------------
hgs
parents:
diff changeset
   132
// handle any menu commands
hgs
parents:
diff changeset
   133
// ---------------------------------------------------------
hgs
parents:
diff changeset
   134
//
hgs
parents:
diff changeset
   135
void CHapticsTestAppUi::HandleCommandL( TInt aCommand )
hgs
parents:
diff changeset
   136
    {
hgs
parents:
diff changeset
   137
    switch( aCommand )
hgs
parents:
diff changeset
   138
        {
hgs
parents:
diff changeset
   139
        case EEikCmdExit:
hgs
parents:
diff changeset
   140
        case EAknSoftkeyExit:
hgs
parents:
diff changeset
   141
            Exit();
hgs
parents:
diff changeset
   142
            break;
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
        case EHapticsTestOpenHaptics:
hgs
parents:
diff changeset
   145
            {
hgs
parents:
diff changeset
   146
            OpenHapticsL();
hgs
parents:
diff changeset
   147
            }
hgs
parents:
diff changeset
   148
            break;
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
        case EHapticsTestAutoInit:
hgs
parents:
diff changeset
   151
            {
hgs
parents:
diff changeset
   152
            // automatically create haptics instance, fetch supported
hgs
parents:
diff changeset
   153
            // actuators, and open Any-actuator
hgs
parents:
diff changeset
   154
            OpenHapticsL();
hgs
parents:
diff changeset
   155
            FetchSupportedActuators();
hgs
parents:
diff changeset
   156
            OpenActuator( EHWRMLogicalActuatorAny );
hgs
parents:
diff changeset
   157
            }
hgs
parents:
diff changeset
   158
            break;
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
        case EHapticsTestSupportedActuators:
hgs
parents:
diff changeset
   161
            {
hgs
parents:
diff changeset
   162
            FetchSupportedActuators();
hgs
parents:
diff changeset
   163
            }
hgs
parents:
diff changeset
   164
            break;
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
        case EHapticsTestOpenActuator:
hgs
parents:
diff changeset
   167
        case EHapticsTestOpenActuatorAny:
hgs
parents:
diff changeset
   168
            {
hgs
parents:
diff changeset
   169
            OpenActuator( EHWRMLogicalActuatorAny );
hgs
parents:
diff changeset
   170
            }
hgs
parents:
diff changeset
   171
            break;
hgs
parents:
diff changeset
   172
        case EHapticsTestOpenActuatorDevice:
hgs
parents:
diff changeset
   173
            {
hgs
parents:
diff changeset
   174
            OpenActuator( EHWRMLogicalActuatorDevice );
hgs
parents:
diff changeset
   175
            }
hgs
parents:
diff changeset
   176
            break;
hgs
parents:
diff changeset
   177
        case EHapticsTestOpenActuatorPrimaryDisplay:
hgs
parents:
diff changeset
   178
            {
hgs
parents:
diff changeset
   179
            OpenActuator( EHWRMLogicalActuatorPrimaryDisplay );
hgs
parents:
diff changeset
   180
            }
hgs
parents:
diff changeset
   181
            break;
hgs
parents:
diff changeset
   182
        case EHapticsTestOpenActuatorSecondaryDisplay:
hgs
parents:
diff changeset
   183
            {
hgs
parents:
diff changeset
   184
            OpenActuator( EHWRMLogicalActuatorSecondaryDisplay );
hgs
parents:
diff changeset
   185
            }
hgs
parents:
diff changeset
   186
            break;
hgs
parents:
diff changeset
   187
        case EHapticsTestOpenActuatorGame:
hgs
parents:
diff changeset
   188
            {
hgs
parents:
diff changeset
   189
            OpenActuator( EHWRMLogicalActuatorGame );
hgs
parents:
diff changeset
   190
            }
hgs
parents:
diff changeset
   191
            break;
hgs
parents:
diff changeset
   192
        case EHapticsTestOpenActuatorGameLeft:
hgs
parents:
diff changeset
   193
            {
hgs
parents:
diff changeset
   194
            OpenActuator( EHWRMLogicalActuatorGameLeft );
hgs
parents:
diff changeset
   195
            }
hgs
parents:
diff changeset
   196
            break;
hgs
parents:
diff changeset
   197
        case EHapticsTestOpenActuatorGameRight:
hgs
parents:
diff changeset
   198
            {
hgs
parents:
diff changeset
   199
            OpenActuator( EHWRMLogicalActuatorGameRight );
hgs
parents:
diff changeset
   200
            }
hgs
parents:
diff changeset
   201
            break;
hgs
parents:
diff changeset
   202
        case EHapticsTestOpenActuatorExternalVibra:
hgs
parents:
diff changeset
   203
            {
hgs
parents:
diff changeset
   204
            OpenActuator( EHWRMLogicalActuatorExternalVibra );
hgs
parents:
diff changeset
   205
            }
hgs
parents:
diff changeset
   206
            break;
hgs
parents:
diff changeset
   207
        
hgs
parents:
diff changeset
   208
        case EHapticsTestLoadIVTFile:
hgs
parents:
diff changeset
   209
        case EHapticsTestLoadIVTFileNoneFound:
hgs
parents:
diff changeset
   210
            {
hgs
parents:
diff changeset
   211
            // nothing to do
hgs
parents:
diff changeset
   212
            }
hgs
parents:
diff changeset
   213
            break;
hgs
parents:
diff changeset
   214
        case EHapticsTestLoadIVTFileSelected:
hgs
parents:
diff changeset
   215
            {
hgs
parents:
diff changeset
   216
            // open selected file
hgs
parents:
diff changeset
   217
            TInt index = iMenuPane->SelectedItem();
hgs
parents:
diff changeset
   218
            LoadIVTDataL( iIVTFileArray[index] );
hgs
parents:
diff changeset
   219
            }
hgs
parents:
diff changeset
   220
            break;
hgs
parents:
diff changeset
   221
        
hgs
parents:
diff changeset
   222
        case EHapticsTestPlayEffect:
hgs
parents:
diff changeset
   223
        case EHapticsTestPlayEffectNoneFound:
hgs
parents:
diff changeset
   224
            {
hgs
parents:
diff changeset
   225
            // nothing to do
hgs
parents:
diff changeset
   226
            }
hgs
parents:
diff changeset
   227
            break;
hgs
parents:
diff changeset
   228
        case EHapticsTestPlayEffectSelected:
hgs
parents:
diff changeset
   229
            {
hgs
parents:
diff changeset
   230
            // play selected effect
hgs
parents:
diff changeset
   231
            TInt index = CountFileHandleAndEffectIndex( iMenuPane->SelectedItem() );
hgs
parents:
diff changeset
   232
            PlayEffect( index );
hgs
parents:
diff changeset
   233
            PrintEffectInfo( index );
hgs
parents:
diff changeset
   234
            }
hgs
parents:
diff changeset
   235
            break;
hgs
parents:
diff changeset
   236
        case EHapticsTestPlayEffectRepeat:
hgs
parents:
diff changeset
   237
        case EHapticsTestPlayEffectRepeatNoneFound:
hgs
parents:
diff changeset
   238
            {
hgs
parents:
diff changeset
   239
            // nothing to do
hgs
parents:
diff changeset
   240
            }
hgs
parents:
diff changeset
   241
            break;        
hgs
parents:
diff changeset
   242
        case EHapticsTestPlayEffectRepeatSelected:
hgs
parents:
diff changeset
   243
            {
hgs
parents:
diff changeset
   244
            // play selected effect repeatedly
hgs
parents:
diff changeset
   245
            TInt index = CountFileHandleAndEffectIndex( iMenuPane->SelectedItem() );
hgs
parents:
diff changeset
   246
            RepeatEffect( index, GetNumberOfRepeats() );
hgs
parents:
diff changeset
   247
            PrintEffectInfo( index );
hgs
parents:
diff changeset
   248
            }
hgs
parents:
diff changeset
   249
            break;
hgs
parents:
diff changeset
   250
    
hgs
parents:
diff changeset
   251
        case EHapticsTestPlayEffectManual:
hgs
parents:
diff changeset
   252
            {
hgs
parents:
diff changeset
   253
            // nothing to do
hgs
parents:
diff changeset
   254
            }
hgs
parents:
diff changeset
   255
            break;
hgs
parents:
diff changeset
   256
        case EHapticsTestPlayEffectManualMagSweep:
hgs
parents:
diff changeset
   257
            {
hgs
parents:
diff changeset
   258
            PlayMagSweepL();
hgs
parents:
diff changeset
   259
            }
hgs
parents:
diff changeset
   260
            break;
hgs
parents:
diff changeset
   261
        case EHapticsTestPlayEffectManualMagSweepInf:
hgs
parents:
diff changeset
   262
            {
hgs
parents:
diff changeset
   263
            PlayMagSweepL( ETrue );
hgs
parents:
diff changeset
   264
            }
hgs
parents:
diff changeset
   265
            break;
hgs
parents:
diff changeset
   266
        case EHapticsTestPlayEffectManualMagSweepInfMod:
hgs
parents:
diff changeset
   267
            {
hgs
parents:
diff changeset
   268
            PlayMagSweepL( ETrue, ETrue );
hgs
parents:
diff changeset
   269
            }
hgs
parents:
diff changeset
   270
            break;
hgs
parents:
diff changeset
   271
        case EHapticsTestPlayEffectManualPeriodic:
hgs
parents:
diff changeset
   272
            {
hgs
parents:
diff changeset
   273
            PlayPeriodicL();
hgs
parents:
diff changeset
   274
            }
hgs
parents:
diff changeset
   275
            break;
hgs
parents:
diff changeset
   276
        case EHapticsTestPlayEffectManualPeriodicInf:
hgs
parents:
diff changeset
   277
            {
hgs
parents:
diff changeset
   278
            PlayPeriodicL( ETrue );
hgs
parents:
diff changeset
   279
            }
hgs
parents:
diff changeset
   280
            break;
hgs
parents:
diff changeset
   281
        case EHapticsTestPlayEffectManualPeriodicInfMod:
hgs
parents:
diff changeset
   282
            {
hgs
parents:
diff changeset
   283
            PlayPeriodicL( ETrue, ETrue );
hgs
parents:
diff changeset
   284
            }
hgs
parents:
diff changeset
   285
            break;
hgs
parents:
diff changeset
   286
        case EHapticsTestPlayEffectManualRepeat:
hgs
parents:
diff changeset
   287
            {
hgs
parents:
diff changeset
   288
            PlayRepeatL( GetNumberOfRepeats() );
hgs
parents:
diff changeset
   289
            }
hgs
parents:
diff changeset
   290
            break;
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
        case EHapticsTestChangeState:
hgs
parents:
diff changeset
   293
        case EHapticsTestChangeStateNoneFound:
hgs
parents:
diff changeset
   294
            {
hgs
parents:
diff changeset
   295
            // nothing to do
hgs
parents:
diff changeset
   296
            }
hgs
parents:
diff changeset
   297
            break;
hgs
parents:
diff changeset
   298
hgs
parents:
diff changeset
   299
        case EHapticsTestChangeStatePause:
hgs
parents:
diff changeset
   300
            {
hgs
parents:
diff changeset
   301
            // get itemindex and pause effect
hgs
parents:
diff changeset
   302
            TInt itemIndex = iMenuPane->SelectedItem();
hgs
parents:
diff changeset
   303
            PauseEffect( itemIndex );
hgs
parents:
diff changeset
   304
            }
hgs
parents:
diff changeset
   305
            break;
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
        case EHapticsTestChangeStateResume:
hgs
parents:
diff changeset
   308
            {
hgs
parents:
diff changeset
   309
            // get itemindex and resume effect
hgs
parents:
diff changeset
   310
            TInt itemIndex = iMenuPane->SelectedItem();
hgs
parents:
diff changeset
   311
            ResumeEffect( itemIndex );
hgs
parents:
diff changeset
   312
            }
hgs
parents:
diff changeset
   313
            break;
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
        case EHapticsTestChangeStateStop:
hgs
parents:
diff changeset
   316
            {
hgs
parents:
diff changeset
   317
            // get itemindex and stop effect
hgs
parents:
diff changeset
   318
            TInt itemIndex = iMenuPane->SelectedItem();
hgs
parents:
diff changeset
   319
            StopEffect( itemIndex );
hgs
parents:
diff changeset
   320
            }
hgs
parents:
diff changeset
   321
            break;
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
        case EHapticsTestChangeStateStopAll:
hgs
parents:
diff changeset
   324
            {
hgs
parents:
diff changeset
   325
            TInt err = iHaptics->StopAllPlayingEffects();
hgs
parents:
diff changeset
   326
            if ( err )
hgs
parents:
diff changeset
   327
                {
hgs
parents:
diff changeset
   328
                TBuf<8> errBuf;
hgs
parents:
diff changeset
   329
                errBuf.AppendNum( err );
hgs
parents:
diff changeset
   330
                iAppView->InsertOutput( _L("Stopping all effects failed, err = "), EFalse );
hgs
parents:
diff changeset
   331
                iAppView->InsertOutput( errBuf );
hgs
parents:
diff changeset
   332
                }
hgs
parents:
diff changeset
   333
            else
hgs
parents:
diff changeset
   334
                {
hgs
parents:
diff changeset
   335
                iAppView->InsertOutput( _L("Stopping all effects succeeded.") );
hgs
parents:
diff changeset
   336
                
hgs
parents:
diff changeset
   337
                // reset the auto-modification
hgs
parents:
diff changeset
   338
                iEffectData->ResetModifiableEffectTimer();
hgs
parents:
diff changeset
   339
                }
hgs
parents:
diff changeset
   340
            }
hgs
parents:
diff changeset
   341
            break;
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
        case EHapticsTestModifyEffect:
hgs
parents:
diff changeset
   344
            {
hgs
parents:
diff changeset
   345
            // nothing to do
hgs
parents:
diff changeset
   346
            }
hgs
parents:
diff changeset
   347
            break;
hgs
parents:
diff changeset
   348
        case EHapticsTestModifyEffectDuration1:
hgs
parents:
diff changeset
   349
            {
hgs
parents:
diff changeset
   350
            iEffectData->SetDuration( KEffectDuration1 );
hgs
parents:
diff changeset
   351
            ModifyEffect();
hgs
parents:
diff changeset
   352
            }
hgs
parents:
diff changeset
   353
            break;
hgs
parents:
diff changeset
   354
        case EHapticsTestModifyEffectDuration5:
hgs
parents:
diff changeset
   355
            {
hgs
parents:
diff changeset
   356
            iEffectData->SetDuration( KEffectDuration5 );
hgs
parents:
diff changeset
   357
            ModifyEffect();
hgs
parents:
diff changeset
   358
            }
hgs
parents:
diff changeset
   359
            break;
hgs
parents:
diff changeset
   360
        case EHapticsTestModifyEffectDuration10:
hgs
parents:
diff changeset
   361
            {
hgs
parents:
diff changeset
   362
            iEffectData->SetDuration( KEffectDuration10 );
hgs
parents:
diff changeset
   363
            ModifyEffect();
hgs
parents:
diff changeset
   364
            }
hgs
parents:
diff changeset
   365
            break;
hgs
parents:
diff changeset
   366
        case EHapticsTestModifyEffectDuration30:
hgs
parents:
diff changeset
   367
            {
hgs
parents:
diff changeset
   368
            iEffectData->SetDuration( KEffectDuration30 );
hgs
parents:
diff changeset
   369
            ModifyEffect();
hgs
parents:
diff changeset
   370
            }
hgs
parents:
diff changeset
   371
            break;
hgs
parents:
diff changeset
   372
        case EHapticsTestModifyEffectDuration60:
hgs
parents:
diff changeset
   373
            {
hgs
parents:
diff changeset
   374
            iEffectData->SetDuration( KEffectDuration60 );
hgs
parents:
diff changeset
   375
            ModifyEffect();
hgs
parents:
diff changeset
   376
            }
hgs
parents:
diff changeset
   377
            break;
hgs
parents:
diff changeset
   378
        case EHapticsTestModifyEffectMagnitudeMin:
hgs
parents:
diff changeset
   379
            {
hgs
parents:
diff changeset
   380
            iEffectData->SetMagnitude( KHWRMHapticsMinMagnitude );
hgs
parents:
diff changeset
   381
            ModifyEffect();
hgs
parents:
diff changeset
   382
            }
hgs
parents:
diff changeset
   383
            break;
hgs
parents:
diff changeset
   384
        case EHapticsTestModifyEffectMagnitude25:
hgs
parents:
diff changeset
   385
            {
hgs
parents:
diff changeset
   386
            iEffectData->SetMagnitude( KEffectMagnitude25 );
hgs
parents:
diff changeset
   387
            ModifyEffect();
hgs
parents:
diff changeset
   388
            }
hgs
parents:
diff changeset
   389
            break;
hgs
parents:
diff changeset
   390
        case EHapticsTestModifyEffectMagnitude50:
hgs
parents:
diff changeset
   391
            {
hgs
parents:
diff changeset
   392
            iEffectData->SetMagnitude( KEffectMagnitude50 );
hgs
parents:
diff changeset
   393
            ModifyEffect();
hgs
parents:
diff changeset
   394
            }
hgs
parents:
diff changeset
   395
            break;
hgs
parents:
diff changeset
   396
        case EHapticsTestModifyEffectMagnitude75:
hgs
parents:
diff changeset
   397
            {
hgs
parents:
diff changeset
   398
            iEffectData->SetMagnitude( KEffectMagnitude75 );
hgs
parents:
diff changeset
   399
            ModifyEffect();
hgs
parents:
diff changeset
   400
            }
hgs
parents:
diff changeset
   401
            break;
hgs
parents:
diff changeset
   402
        case EHapticsTestModifyEffectMagnitudeMax:
hgs
parents:
diff changeset
   403
            {
hgs
parents:
diff changeset
   404
            iEffectData->SetMagnitude( KHWRMHapticsMaxMagnitude );
hgs
parents:
diff changeset
   405
            ModifyEffect();
hgs
parents:
diff changeset
   406
            }
hgs
parents:
diff changeset
   407
            break;
hgs
parents:
diff changeset
   408
        case EHapticsTestModifyEffectStyleSmooth:
hgs
parents:
diff changeset
   409
            {
hgs
parents:
diff changeset
   410
            iEffectData->SetStyle( CHWRMHaptics::EHWRMHapticsStyleSmooth );
hgs
parents:
diff changeset
   411
            ModifyEffect();
hgs
parents:
diff changeset
   412
            }
hgs
parents:
diff changeset
   413
            break;
hgs
parents:
diff changeset
   414
        case EHapticsTestModifyEffectStyleStrong:
hgs
parents:
diff changeset
   415
            {
hgs
parents:
diff changeset
   416
            iEffectData->SetStyle( CHWRMHaptics::EHWRMHapticsStyleStrong );
hgs
parents:
diff changeset
   417
            ModifyEffect();
hgs
parents:
diff changeset
   418
            }
hgs
parents:
diff changeset
   419
            break;
hgs
parents:
diff changeset
   420
        case EHapticsTestModifyEffectStyleSharp:
hgs
parents:
diff changeset
   421
            {
hgs
parents:
diff changeset
   422
            iEffectData->SetStyle( CHWRMHaptics::EHWRMHapticsStyleSharp );
hgs
parents:
diff changeset
   423
            ModifyEffect();
hgs
parents:
diff changeset
   424
            }
hgs
parents:
diff changeset
   425
            break;
hgs
parents:
diff changeset
   426
        case EHapticsTestModifyEffectAttackMin:
hgs
parents:
diff changeset
   427
            {
hgs
parents:
diff changeset
   428
            iEffectData->SetAttackLevel( KHWRMHapticsMinMagnitude );
hgs
parents:
diff changeset
   429
            ModifyEffect();
hgs
parents:
diff changeset
   430
            }
hgs
parents:
diff changeset
   431
            break;
hgs
parents:
diff changeset
   432
        case EHapticsTestModifyEffectAttack25:
hgs
parents:
diff changeset
   433
            {
hgs
parents:
diff changeset
   434
            iEffectData->SetAttackLevel( KEffectMagnitude25 );
hgs
parents:
diff changeset
   435
            ModifyEffect();
hgs
parents:
diff changeset
   436
            }
hgs
parents:
diff changeset
   437
            break;
hgs
parents:
diff changeset
   438
        case EHapticsTestModifyEffectAttack50:
hgs
parents:
diff changeset
   439
            {
hgs
parents:
diff changeset
   440
            iEffectData->SetAttackLevel( KEffectMagnitude50 );
hgs
parents:
diff changeset
   441
            ModifyEffect();
hgs
parents:
diff changeset
   442
            }
hgs
parents:
diff changeset
   443
            break;
hgs
parents:
diff changeset
   444
        case EHapticsTestModifyEffectAttack75:
hgs
parents:
diff changeset
   445
            {
hgs
parents:
diff changeset
   446
            iEffectData->SetAttackLevel( KEffectMagnitude75 );
hgs
parents:
diff changeset
   447
            ModifyEffect();
hgs
parents:
diff changeset
   448
            }
hgs
parents:
diff changeset
   449
            break;
hgs
parents:
diff changeset
   450
        case EHapticsTestModifyEffectAttackMax:
hgs
parents:
diff changeset
   451
            {
hgs
parents:
diff changeset
   452
            iEffectData->SetAttackLevel( KHWRMHapticsMaxMagnitude );
hgs
parents:
diff changeset
   453
            ModifyEffect();
hgs
parents:
diff changeset
   454
            }
hgs
parents:
diff changeset
   455
            break;
hgs
parents:
diff changeset
   456
        case EHapticsTestModifyEffectFadeMin:
hgs
parents:
diff changeset
   457
            {
hgs
parents:
diff changeset
   458
            iEffectData->SetFadeLevel( KHWRMHapticsMinMagnitude );
hgs
parents:
diff changeset
   459
            ModifyEffect();
hgs
parents:
diff changeset
   460
            }
hgs
parents:
diff changeset
   461
            break;
hgs
parents:
diff changeset
   462
        case EHapticsTestModifyEffectFade25:
hgs
parents:
diff changeset
   463
            {
hgs
parents:
diff changeset
   464
            iEffectData->SetFadeLevel( KEffectMagnitude25 );
hgs
parents:
diff changeset
   465
            ModifyEffect();
hgs
parents:
diff changeset
   466
            }
hgs
parents:
diff changeset
   467
            break;
hgs
parents:
diff changeset
   468
        case EHapticsTestModifyEffectFade50:
hgs
parents:
diff changeset
   469
            {
hgs
parents:
diff changeset
   470
            iEffectData->SetFadeLevel( KEffectMagnitude50 );
hgs
parents:
diff changeset
   471
            ModifyEffect();
hgs
parents:
diff changeset
   472
            }
hgs
parents:
diff changeset
   473
            break;
hgs
parents:
diff changeset
   474
        case EHapticsTestModifyEffectFade75:
hgs
parents:
diff changeset
   475
            {
hgs
parents:
diff changeset
   476
            iEffectData->SetFadeLevel( KEffectMagnitude75 );
hgs
parents:
diff changeset
   477
            ModifyEffect();
hgs
parents:
diff changeset
   478
            }
hgs
parents:
diff changeset
   479
            break;
hgs
parents:
diff changeset
   480
        case EHapticsTestModifyEffectFadeMax:
hgs
parents:
diff changeset
   481
            {
hgs
parents:
diff changeset
   482
            iEffectData->SetFadeLevel( KHWRMHapticsMaxMagnitude );
hgs
parents:
diff changeset
   483
            ModifyEffect();
hgs
parents:
diff changeset
   484
            }
hgs
parents:
diff changeset
   485
            break;
hgs
parents:
diff changeset
   486
        case EHapticsTestModifyEffectAttackTime02:
hgs
parents:
diff changeset
   487
            {
hgs
parents:
diff changeset
   488
            iEffectData->SetAttackTime( KEffectAttackTime02 );
hgs
parents:
diff changeset
   489
            ModifyEffect();
hgs
parents:
diff changeset
   490
            }
hgs
parents:
diff changeset
   491
            break;
hgs
parents:
diff changeset
   492
        case EHapticsTestModifyEffectAttackTime1:
hgs
parents:
diff changeset
   493
            {
hgs
parents:
diff changeset
   494
            iEffectData->SetAttackTime( KEffectAttackTime1 );
hgs
parents:
diff changeset
   495
            ModifyEffect();
hgs
parents:
diff changeset
   496
            }
hgs
parents:
diff changeset
   497
            break;
hgs
parents:
diff changeset
   498
        case EHapticsTestModifyEffectAttackTime5:
hgs
parents:
diff changeset
   499
            {
hgs
parents:
diff changeset
   500
            iEffectData->SetAttackTime( KEffectAttackTime5 );
hgs
parents:
diff changeset
   501
            ModifyEffect();
hgs
parents:
diff changeset
   502
            }
hgs
parents:
diff changeset
   503
            break;
hgs
parents:
diff changeset
   504
        case EHapticsTestModifyEffectAttackTime10:
hgs
parents:
diff changeset
   505
            {
hgs
parents:
diff changeset
   506
            iEffectData->SetAttackTime( KEffectAttackTime10 );
hgs
parents:
diff changeset
   507
            ModifyEffect();
hgs
parents:
diff changeset
   508
            }
hgs
parents:
diff changeset
   509
            break;
hgs
parents:
diff changeset
   510
        case EHapticsTestModifyEffectAttackTime30:
hgs
parents:
diff changeset
   511
            {
hgs
parents:
diff changeset
   512
            iEffectData->SetAttackTime( KEffectAttackTime30 );
hgs
parents:
diff changeset
   513
            ModifyEffect();
hgs
parents:
diff changeset
   514
            }
hgs
parents:
diff changeset
   515
            break;
hgs
parents:
diff changeset
   516
        case EHapticsTestModifyEffectAttackTime60:
hgs
parents:
diff changeset
   517
            {
hgs
parents:
diff changeset
   518
            iEffectData->SetAttackTime( KEffectAttackTime60 );
hgs
parents:
diff changeset
   519
            ModifyEffect();
hgs
parents:
diff changeset
   520
            }
hgs
parents:
diff changeset
   521
            break;
hgs
parents:
diff changeset
   522
        case EHapticsTestModifyEffectFadeTime02:
hgs
parents:
diff changeset
   523
            {
hgs
parents:
diff changeset
   524
            iEffectData->SetFadeTime( KEffectFadeTime02 );
hgs
parents:
diff changeset
   525
            ModifyEffect();
hgs
parents:
diff changeset
   526
            }
hgs
parents:
diff changeset
   527
            break;
hgs
parents:
diff changeset
   528
        case EHapticsTestModifyEffectFadeTime1:
hgs
parents:
diff changeset
   529
            {
hgs
parents:
diff changeset
   530
            iEffectData->SetFadeTime( KEffectFadeTime1 );
hgs
parents:
diff changeset
   531
            ModifyEffect();
hgs
parents:
diff changeset
   532
            }
hgs
parents:
diff changeset
   533
            break;
hgs
parents:
diff changeset
   534
        case EHapticsTestModifyEffectFadeTime5:
hgs
parents:
diff changeset
   535
            {
hgs
parents:
diff changeset
   536
            iEffectData->SetFadeTime( KEffectFadeTime5 );
hgs
parents:
diff changeset
   537
            ModifyEffect();
hgs
parents:
diff changeset
   538
            }
hgs
parents:
diff changeset
   539
            break;
hgs
parents:
diff changeset
   540
        case EHapticsTestModifyEffectFadeTime10:
hgs
parents:
diff changeset
   541
            {
hgs
parents:
diff changeset
   542
            iEffectData->SetFadeTime( KEffectFadeTime10 );
hgs
parents:
diff changeset
   543
            ModifyEffect();
hgs
parents:
diff changeset
   544
            }
hgs
parents:
diff changeset
   545
            break;
hgs
parents:
diff changeset
   546
        case EHapticsTestModifyEffectFadeTime30:
hgs
parents:
diff changeset
   547
            {
hgs
parents:
diff changeset
   548
            iEffectData->SetFadeTime( KEffectFadeTime30 );
hgs
parents:
diff changeset
   549
            ModifyEffect();
hgs
parents:
diff changeset
   550
            }
hgs
parents:
diff changeset
   551
            break;
hgs
parents:
diff changeset
   552
        case EHapticsTestModifyEffectFadeTime60:
hgs
parents:
diff changeset
   553
            {
hgs
parents:
diff changeset
   554
            iEffectData->SetFadeTime( KEffectFadeTime60 );
hgs
parents:
diff changeset
   555
            ModifyEffect();
hgs
parents:
diff changeset
   556
            }
hgs
parents:
diff changeset
   557
            break;
hgs
parents:
diff changeset
   558
        case EHapticsTestModifyEffectPeriod50:
hgs
parents:
diff changeset
   559
            {
hgs
parents:
diff changeset
   560
            iEffectData->SetPeriod( KEffectPeriod50 );
hgs
parents:
diff changeset
   561
            ModifyEffect();
hgs
parents:
diff changeset
   562
            }
hgs
parents:
diff changeset
   563
            break;
hgs
parents:
diff changeset
   564
        case EHapticsTestModifyEffectPeriod100:
hgs
parents:
diff changeset
   565
            {
hgs
parents:
diff changeset
   566
            iEffectData->SetPeriod( KEffectPeriod100 );
hgs
parents:
diff changeset
   567
            ModifyEffect();
hgs
parents:
diff changeset
   568
            }
hgs
parents:
diff changeset
   569
            break;
hgs
parents:
diff changeset
   570
        case EHapticsTestModifyEffectPeriod300:
hgs
parents:
diff changeset
   571
            {
hgs
parents:
diff changeset
   572
            iEffectData->SetPeriod( KEffectPeriod300 );
hgs
parents:
diff changeset
   573
            ModifyEffect();
hgs
parents:
diff changeset
   574
            }
hgs
parents:
diff changeset
   575
            break;
hgs
parents:
diff changeset
   576
        case EHapticsTestModifyEffectPeriod600:
hgs
parents:
diff changeset
   577
            {
hgs
parents:
diff changeset
   578
            iEffectData->SetPeriod( KEffectPeriod600 );
hgs
parents:
diff changeset
   579
            ModifyEffect();
hgs
parents:
diff changeset
   580
            }
hgs
parents:
diff changeset
   581
            break;
hgs
parents:
diff changeset
   582
        case EHapticsTestModifyEffectPeriod1000:
hgs
parents:
diff changeset
   583
            {
hgs
parents:
diff changeset
   584
            iEffectData->SetPeriod( KEffectPeriod1000 );
hgs
parents:
diff changeset
   585
            ModifyEffect();
hgs
parents:
diff changeset
   586
            }
hgs
parents:
diff changeset
   587
            break;
hgs
parents:
diff changeset
   588
        case EHapticsTestModifyEffectPeriod3000:
hgs
parents:
diff changeset
   589
            {
hgs
parents:
diff changeset
   590
            iEffectData->SetPeriod( KEffectPeriod3000 );
hgs
parents:
diff changeset
   591
            ModifyEffect();
hgs
parents:
diff changeset
   592
            }
hgs
parents:
diff changeset
   593
            break;
hgs
parents:
diff changeset
   594
        
hgs
parents:
diff changeset
   595
        case EHapticsTestCloseHaptics:
hgs
parents:
diff changeset
   596
            {
hgs
parents:
diff changeset
   597
            CloseHaptics();
hgs
parents:
diff changeset
   598
            }
hgs
parents:
diff changeset
   599
            break;
hgs
parents:
diff changeset
   600
hgs
parents:
diff changeset
   601
        case EHapticsTestSynchronousCalls:
hgs
parents:
diff changeset
   602
            {
hgs
parents:
diff changeset
   603
            iSynchronous = ETrue;
hgs
parents:
diff changeset
   604
            iAppView->InsertOutput( _L("Using synchronous methods.") );
hgs
parents:
diff changeset
   605
            }
hgs
parents:
diff changeset
   606
            break;
hgs
parents:
diff changeset
   607
hgs
parents:
diff changeset
   608
        case EHapticsTestAsynchronousCalls:
hgs
parents:
diff changeset
   609
            {
hgs
parents:
diff changeset
   610
            iSynchronous = EFalse;
hgs
parents:
diff changeset
   611
            iAppView->InsertOutput( _L("Using asynchronous methods.") );
hgs
parents:
diff changeset
   612
            }
hgs
parents:
diff changeset
   613
            break;
hgs
parents:
diff changeset
   614
hgs
parents:
diff changeset
   615
        case EHapticsTestUsingFileHandle:
hgs
parents:
diff changeset
   616
            {
hgs
parents:
diff changeset
   617
            iUseHandle = ETrue;
hgs
parents:
diff changeset
   618
            iAppView->InsertOutput( _L("Using file handle in play methods.") );
hgs
parents:
diff changeset
   619
            }
hgs
parents:
diff changeset
   620
            break;
hgs
parents:
diff changeset
   621
hgs
parents:
diff changeset
   622
        case EHapticsTestNotUsingFileHandle:
hgs
parents:
diff changeset
   623
            {
hgs
parents:
diff changeset
   624
            iUseHandle = EFalse;
hgs
parents:
diff changeset
   625
            iAppView->InsertOutput( _L("Using data buffer in play methods.") );
hgs
parents:
diff changeset
   626
            }
hgs
parents:
diff changeset
   627
            break;
hgs
parents:
diff changeset
   628
hgs
parents:
diff changeset
   629
        case EHapticsTestShowEffectInfo:
hgs
parents:
diff changeset
   630
            {
hgs
parents:
diff changeset
   631
            iShowEffectInfo = ETrue;
hgs
parents:
diff changeset
   632
            iAppView->InsertOutput( _L("Shows information of played effect.") );
hgs
parents:
diff changeset
   633
            }
hgs
parents:
diff changeset
   634
            break;
hgs
parents:
diff changeset
   635
hgs
parents:
diff changeset
   636
        case EHapticsTestHideEffectInfo:
hgs
parents:
diff changeset
   637
            {
hgs
parents:
diff changeset
   638
            iShowEffectInfo = EFalse;
hgs
parents:
diff changeset
   639
            iAppView->InsertOutput( _L("Stops showing information of played effect.") );
hgs
parents:
diff changeset
   640
            }
hgs
parents:
diff changeset
   641
            break;
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
        case EHapticsTestDeleteIVTData:
hgs
parents:
diff changeset
   644
        case EHapticsTestDeleteIVTDataNoneFound:
hgs
parents:
diff changeset
   645
            {
hgs
parents:
diff changeset
   646
            // nothing to do    
hgs
parents:
diff changeset
   647
            }
hgs
parents:
diff changeset
   648
            break;
hgs
parents:
diff changeset
   649
hgs
parents:
diff changeset
   650
        case EHapticsTestDeleteIVTDataSelected:
hgs
parents:
diff changeset
   651
            {
hgs
parents:
diff changeset
   652
            // delete selected loaded IVT file
hgs
parents:
diff changeset
   653
            TInt index = iMenuPane->SelectedItem();
hgs
parents:
diff changeset
   654
            DeleteLoadedIVTData( index );
hgs
parents:
diff changeset
   655
            }
hgs
parents:
diff changeset
   656
            break;
hgs
parents:
diff changeset
   657
            
hgs
parents:
diff changeset
   658
        case EHapticsTestDeleteAllIVTData:
hgs
parents:
diff changeset
   659
            {
hgs
parents:
diff changeset
   660
            // delete all loaded IVT files
hgs
parents:
diff changeset
   661
            DeleteAllLoadedIVTData();    
hgs
parents:
diff changeset
   662
            }
hgs
parents:
diff changeset
   663
            break;
hgs
parents:
diff changeset
   664
hgs
parents:
diff changeset
   665
        case EHapticsTestReserve:
hgs
parents:
diff changeset
   666
            {
hgs
parents:
diff changeset
   667
            // nothing to do
hgs
parents:
diff changeset
   668
            }
hgs
parents:
diff changeset
   669
        case EHapticsTestReserveNotTrusted:
hgs
parents:
diff changeset
   670
            {
hgs
parents:
diff changeset
   671
            ReserveHaptics( iHaptics, EFalse );
hgs
parents:
diff changeset
   672
            }
hgs
parents:
diff changeset
   673
            break;
hgs
parents:
diff changeset
   674
        case EHapticsTestReserveTrusted:
hgs
parents:
diff changeset
   675
            {
hgs
parents:
diff changeset
   676
            ReserveHaptics( iHaptics, ETrue );
hgs
parents:
diff changeset
   677
            }
hgs
parents:
diff changeset
   678
            break;
hgs
parents:
diff changeset
   679
        case EHapticsTestReserveNotTrustedTemp:
hgs
parents:
diff changeset
   680
            {
hgs
parents:
diff changeset
   681
            // create the temp haptics client, if it does not exist
hgs
parents:
diff changeset
   682
            if ( !iTempHaptics )
hgs
parents:
diff changeset
   683
                {
hgs
parents:
diff changeset
   684
                iTempHaptics = CHWRMHaptics::NewL( NULL, NULL );
hgs
parents:
diff changeset
   685
                }
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
            ReserveHaptics( iTempHaptics, EFalse );
hgs
parents:
diff changeset
   688
            }
hgs
parents:
diff changeset
   689
            break;
hgs
parents:
diff changeset
   690
        case EHapticsTestRelease:
hgs
parents:
diff changeset
   691
            {
hgs
parents:
diff changeset
   692
            iHaptics->ReleaseHaptics();
hgs
parents:
diff changeset
   693
            iAppView->InsertOutput( _L("Reservation released.") );
hgs
parents:
diff changeset
   694
            }
hgs
parents:
diff changeset
   695
            break;
hgs
parents:
diff changeset
   696
        case EHapticsTestReleaseTemp:
hgs
parents:
diff changeset
   697
            {
hgs
parents:
diff changeset
   698
            if ( iTempHaptics )
hgs
parents:
diff changeset
   699
                {
hgs
parents:
diff changeset
   700
                iTempHaptics->ReleaseHaptics();
hgs
parents:
diff changeset
   701
                iAppView->InsertOutput( _L("Temp client's reservation released.") );
hgs
parents:
diff changeset
   702
                
hgs
parents:
diff changeset
   703
                delete iTempHaptics;
hgs
parents:
diff changeset
   704
                iTempHaptics = NULL;
hgs
parents:
diff changeset
   705
                }
hgs
parents:
diff changeset
   706
            else
hgs
parents:
diff changeset
   707
                {
hgs
parents:
diff changeset
   708
                iAppView->InsertOutput( _L("Temp client not created/reserved.") );
hgs
parents:
diff changeset
   709
                }
hgs
parents:
diff changeset
   710
            }
hgs
parents:
diff changeset
   711
            break;
hgs
parents:
diff changeset
   712
hgs
parents:
diff changeset
   713
        case EHapticsTestConstGetters:
hgs
parents:
diff changeset
   714
            {
hgs
parents:
diff changeset
   715
            ConstGetters();
hgs
parents:
diff changeset
   716
            }
hgs
parents:
diff changeset
   717
            break;
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
        case EHapticsTestGetStatus:
hgs
parents:
diff changeset
   720
            {
hgs
parents:
diff changeset
   721
            // fetch haptics status, and print it
hgs
parents:
diff changeset
   722
            MHWRMHapticsObserver::THWRMHapticsStatus status = 
hgs
parents:
diff changeset
   723
                iHaptics->HapticsStatus();
hgs
parents:
diff changeset
   724
            
hgs
parents:
diff changeset
   725
            if ( iTempHaptics )
hgs
parents:
diff changeset
   726
                {
hgs
parents:
diff changeset
   727
                iAppView->InsertOutput( _L("[Haptics client] - "), EFalse );
hgs
parents:
diff changeset
   728
                PrintStatusInfo( status );
hgs
parents:
diff changeset
   729
                
hgs
parents:
diff changeset
   730
                status = iTempHaptics->HapticsStatus();
hgs
parents:
diff changeset
   731
                iAppView->InsertOutput( _L("[Temporary client] - "), EFalse );
hgs
parents:
diff changeset
   732
                PrintStatusInfo( status );
hgs
parents:
diff changeset
   733
                }
hgs
parents:
diff changeset
   734
            else
hgs
parents:
diff changeset
   735
                {
hgs
parents:
diff changeset
   736
                PrintStatusInfo( status );
hgs
parents:
diff changeset
   737
                }
hgs
parents:
diff changeset
   738
            
hgs
parents:
diff changeset
   739
            }
hgs
parents:
diff changeset
   740
            break;
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
        case EHapticsTestSetPropertyPriorityMin:
hgs
parents:
diff changeset
   743
            {
hgs
parents:
diff changeset
   744
            SetPropertyPriorityMin();    
hgs
parents:
diff changeset
   745
            }
hgs
parents:
diff changeset
   746
            break;
hgs
parents:
diff changeset
   747
hgs
parents:
diff changeset
   748
        case EHapticsTestSetPropertyPriorityDefault:
hgs
parents:
diff changeset
   749
            {
hgs
parents:
diff changeset
   750
            SetPropertyPriorityDefault();    
hgs
parents:
diff changeset
   751
            }
hgs
parents:
diff changeset
   752
            break;
hgs
parents:
diff changeset
   753
hgs
parents:
diff changeset
   754
        case EHapticsTestSetPropertyPriorityMax:
hgs
parents:
diff changeset
   755
            {
hgs
parents:
diff changeset
   756
            SetPropertyPriorityMax();
hgs
parents:
diff changeset
   757
            }
hgs
parents:
diff changeset
   758
            break;
hgs
parents:
diff changeset
   759
hgs
parents:
diff changeset
   760
        case EHapticsTestSetPropertyDisableEffectsTrue:
hgs
parents:
diff changeset
   761
            {
hgs
parents:
diff changeset
   762
            SetPropertyDisableEffectsTrue();    
hgs
parents:
diff changeset
   763
            }
hgs
parents:
diff changeset
   764
            break;
hgs
parents:
diff changeset
   765
hgs
parents:
diff changeset
   766
        case EHapticsTestSetPropertyDisableEffectsFalse:
hgs
parents:
diff changeset
   767
            {
hgs
parents:
diff changeset
   768
            SetPropertyDisableEffectsFalse();    
hgs
parents:
diff changeset
   769
            }
hgs
parents:
diff changeset
   770
            break;
hgs
parents:
diff changeset
   771
hgs
parents:
diff changeset
   772
        case EHapticsTestSetPropertyStrengthMute:
hgs
parents:
diff changeset
   773
            {
hgs
parents:
diff changeset
   774
            SetPropertyStrengthMin();    
hgs
parents:
diff changeset
   775
            }
hgs
parents:
diff changeset
   776
            break;
hgs
parents:
diff changeset
   777
hgs
parents:
diff changeset
   778
        case EHapticsTestSetPropertyStrengthHalf:
hgs
parents:
diff changeset
   779
            {
hgs
parents:
diff changeset
   780
            SetPropertyStrengthMiddle();    
hgs
parents:
diff changeset
   781
            }
hgs
parents:
diff changeset
   782
            break;
hgs
parents:
diff changeset
   783
hgs
parents:
diff changeset
   784
        case EHapticsTestSetPropertyStrengthFull:
hgs
parents:
diff changeset
   785
            {
hgs
parents:
diff changeset
   786
            SetPropertyStrengthMax();    
hgs
parents:
diff changeset
   787
            }
hgs
parents:
diff changeset
   788
            break;
hgs
parents:
diff changeset
   789
hgs
parents:
diff changeset
   790
        case EHapticsTestGetPropertyPriority:
hgs
parents:
diff changeset
   791
            {
hgs
parents:
diff changeset
   792
            GetPropertyPriority();    
hgs
parents:
diff changeset
   793
            }
hgs
parents:
diff changeset
   794
            break;
hgs
parents:
diff changeset
   795
hgs
parents:
diff changeset
   796
        case EHapticsTestGetPropertyDisableEffects:
hgs
parents:
diff changeset
   797
            {
hgs
parents:
diff changeset
   798
            GetPropertyDisableEffects();    
hgs
parents:
diff changeset
   799
            }
hgs
parents:
diff changeset
   800
            break;
hgs
parents:
diff changeset
   801
hgs
parents:
diff changeset
   802
        case EHapticsTestGetPropertyStrength:
hgs
parents:
diff changeset
   803
            {
hgs
parents:
diff changeset
   804
            GetPropertyStrength();    
hgs
parents:
diff changeset
   805
            }
hgs
parents:
diff changeset
   806
            break;
hgs
parents:
diff changeset
   807
hgs
parents:
diff changeset
   808
hgs
parents:
diff changeset
   809
        case EHapticsTestGetCapabilityDeviceCategory:
hgs
parents:
diff changeset
   810
            {
hgs
parents:
diff changeset
   811
            GetCapabilityDeviceCategory();    
hgs
parents:
diff changeset
   812
            }
hgs
parents:
diff changeset
   813
            break;
hgs
parents:
diff changeset
   814
hgs
parents:
diff changeset
   815
        case EHapticsTestGetCapabilityMaxNestedRepeats:
hgs
parents:
diff changeset
   816
            {
hgs
parents:
diff changeset
   817
            GetCapabilityMaxNestedRepeats();    
hgs
parents:
diff changeset
   818
            }
hgs
parents:
diff changeset
   819
            break;
hgs
parents:
diff changeset
   820
hgs
parents:
diff changeset
   821
hgs
parents:
diff changeset
   822
        case EHapticsTestGetCapabilityNumActuators:
hgs
parents:
diff changeset
   823
            {
hgs
parents:
diff changeset
   824
            GetCapabilityNumActuators();    
hgs
parents:
diff changeset
   825
            }
hgs
parents:
diff changeset
   826
            break;
hgs
parents:
diff changeset
   827
hgs
parents:
diff changeset
   828
hgs
parents:
diff changeset
   829
        case EHapticsTestGetCapabilityActuatorType:
hgs
parents:
diff changeset
   830
            {
hgs
parents:
diff changeset
   831
            GetCapabilityActuatorType();    
hgs
parents:
diff changeset
   832
            }
hgs
parents:
diff changeset
   833
            break;
hgs
parents:
diff changeset
   834
hgs
parents:
diff changeset
   835
hgs
parents:
diff changeset
   836
        case EHapticsTestGetCapabilityNumEffectSlots:
hgs
parents:
diff changeset
   837
            {
hgs
parents:
diff changeset
   838
            GetCapabilityNumEffectSlots();    
hgs
parents:
diff changeset
   839
            }
hgs
parents:
diff changeset
   840
            break;
hgs
parents:
diff changeset
   841
hgs
parents:
diff changeset
   842
        case EHapticsTestGetCapabilityNumEffectStyles:
hgs
parents:
diff changeset
   843
            {
hgs
parents:
diff changeset
   844
            GetCapabilityNumEffectStyles();    
hgs
parents:
diff changeset
   845
            }
hgs
parents:
diff changeset
   846
            break;
hgs
parents:
diff changeset
   847
hgs
parents:
diff changeset
   848
        case EHapticsTestGetCapabilityMinPeriod:
hgs
parents:
diff changeset
   849
            {
hgs
parents:
diff changeset
   850
            GetCapabilityMinPeriod();    
hgs
parents:
diff changeset
   851
            }
hgs
parents:
diff changeset
   852
            break;
hgs
parents:
diff changeset
   853
hgs
parents:
diff changeset
   854
        case EHapticsTestGetCapabilityMaxPeriod:
hgs
parents:
diff changeset
   855
            {
hgs
parents:
diff changeset
   856
            GetCapabilityMaxPeriod();    
hgs
parents:
diff changeset
   857
            }
hgs
parents:
diff changeset
   858
            break;
hgs
parents:
diff changeset
   859
hgs
parents:
diff changeset
   860
        case EHapticsTestGetCapabilityMaxEffectDuration:
hgs
parents:
diff changeset
   861
            {
hgs
parents:
diff changeset
   862
            GetCapabilityMaxEffectDuration();    
hgs
parents:
diff changeset
   863
            }
hgs
parents:
diff changeset
   864
            break;
hgs
parents:
diff changeset
   865
hgs
parents:
diff changeset
   866
        case EHapticsTestGetCapabilitySupportedEffects:
hgs
parents:
diff changeset
   867
            {
hgs
parents:
diff changeset
   868
            GetCapabilitySupportedEffects();    
hgs
parents:
diff changeset
   869
            }
hgs
parents:
diff changeset
   870
            break;
hgs
parents:
diff changeset
   871
hgs
parents:
diff changeset
   872
        case EHapticsTestGetCapabilityDeviceName:
hgs
parents:
diff changeset
   873
            {
hgs
parents:
diff changeset
   874
            GetCapabilityDeviceName();    
hgs
parents:
diff changeset
   875
            }
hgs
parents:
diff changeset
   876
            break;
hgs
parents:
diff changeset
   877
hgs
parents:
diff changeset
   878
        case EHapticsTestGetCapabilityMaxEnvelopeTime:
hgs
parents:
diff changeset
   879
            {
hgs
parents:
diff changeset
   880
            GetCapabilityMaxEnvelopeTime();    
hgs
parents:
diff changeset
   881
            }
hgs
parents:
diff changeset
   882
            break;
hgs
parents:
diff changeset
   883
hgs
parents:
diff changeset
   884
        case EHapticsTestGetCapabilityAPIVersionNumber:
hgs
parents:
diff changeset
   885
            {
hgs
parents:
diff changeset
   886
            GetCapabilityAPIVersionNumber();    
hgs
parents:
diff changeset
   887
            }
hgs
parents:
diff changeset
   888
            break;
hgs
parents:
diff changeset
   889
hgs
parents:
diff changeset
   890
        case EHapticsTestGetCapabilityMaxIVTSize:
hgs
parents:
diff changeset
   891
            {
hgs
parents:
diff changeset
   892
            GetCapabilityMaxIVTSize();    
hgs
parents:
diff changeset
   893
            }
hgs
parents:
diff changeset
   894
            break;
hgs
parents:
diff changeset
   895
hgs
parents:
diff changeset
   896
        case EHapticsTestClearOutput:
hgs
parents:
diff changeset
   897
            {
hgs
parents:
diff changeset
   898
            iAppView->ClearOutput();
hgs
parents:
diff changeset
   899
            }
hgs
parents:
diff changeset
   900
            break;
hgs
parents:
diff changeset
   901
hgs
parents:
diff changeset
   902
        case EHapticsTestStreaming:
hgs
parents:
diff changeset
   903
            {
hgs
parents:
diff changeset
   904
            StartStreaming();
hgs
parents:
diff changeset
   905
            }
hgs
parents:
diff changeset
   906
            break;
hgs
parents:
diff changeset
   907
hgs
parents:
diff changeset
   908
        case EHapticsTestPlayStreamSample:
hgs
parents:
diff changeset
   909
        case EHapticsTestNextStreamSample:
hgs
parents:
diff changeset
   910
            {
hgs
parents:
diff changeset
   911
            PlayStreamingSample( iCurrentSample );
hgs
parents:
diff changeset
   912
            iCurrentSample >= KSampleCount ? iCurrentSample = 0 : iCurrentSample++;
hgs
parents:
diff changeset
   913
            }
hgs
parents:
diff changeset
   914
            break;
hgs
parents:
diff changeset
   915
hgs
parents:
diff changeset
   916
        case EHapticsTestPlayAllSamples:
hgs
parents:
diff changeset
   917
            {
hgs
parents:
diff changeset
   918
            for ( TInt n = 0; n < 8; n++ )
hgs
parents:
diff changeset
   919
                {
hgs
parents:
diff changeset
   920
                PlayStreamingSample( n );                
hgs
parents:
diff changeset
   921
                User::After( 300000 );
hgs
parents:
diff changeset
   922
                }
hgs
parents:
diff changeset
   923
            }
hgs
parents:
diff changeset
   924
            break;
hgs
parents:
diff changeset
   925
hgs
parents:
diff changeset
   926
        case EHapticsTestStopStreaming:
hgs
parents:
diff changeset
   927
            {
hgs
parents:
diff changeset
   928
            StopStreaming();
hgs
parents:
diff changeset
   929
            }
hgs
parents:
diff changeset
   930
            break;
hgs
parents:
diff changeset
   931
hgs
parents:
diff changeset
   932
        case EHapticsTestPanic:
hgs
parents:
diff changeset
   933
        default:
hgs
parents:
diff changeset
   934
            Panic( EHapticsTestBasicUi );
hgs
parents:
diff changeset
   935
            break;
hgs
parents:
diff changeset
   936
        }
hgs
parents:
diff changeset
   937
    }
hgs
parents:
diff changeset
   938
hgs
parents:
diff changeset
   939
// ---------------------------------------------------------
hgs
parents:
diff changeset
   940
// Manages the options menu contents based on user actions and data.
hgs
parents:
diff changeset
   941
// ---------------------------------------------------------
hgs
parents:
diff changeset
   942
//
hgs
parents:
diff changeset
   943
void CHapticsTestAppUi::DynInitMenuPaneL( TInt aResourceId, 
hgs
parents:
diff changeset
   944
                                          CEikMenuPane* aMenuPane )
hgs
parents:
diff changeset
   945
    {
hgs
parents:
diff changeset
   946
    CAknAppUi::DynInitMenuPaneL( aResourceId, aMenuPane );
hgs
parents:
diff changeset
   947
hgs
parents:
diff changeset
   948
    // store menupane to be used in HandleCommandL()
hgs
parents:
diff changeset
   949
    iMenuPane = aMenuPane;
hgs
parents:
diff changeset
   950
hgs
parents:
diff changeset
   951
    if ( aResourceId == R_HAPTICSTEST_MENU )
hgs
parents:
diff changeset
   952
        {
hgs
parents:
diff changeset
   953
        if ( !iHaptics )
hgs
parents:
diff changeset
   954
            {
hgs
parents:
diff changeset
   955
            // haptics client not created, hide commands using it
hgs
parents:
diff changeset
   956
            aMenuPane->SetItemDimmed( EHapticsTestReserve, ETrue );
hgs
parents:
diff changeset
   957
            aMenuPane->SetItemDimmed( EHapticsTestConstGetters, ETrue );
hgs
parents:
diff changeset
   958
            aMenuPane->SetItemDimmed( EHapticsTestGetStatus, ETrue );
hgs
parents:
diff changeset
   959
            }
hgs
parents:
diff changeset
   960
        if ( !iActuatorOpened )
hgs
parents:
diff changeset
   961
            {
hgs
parents:
diff changeset
   962
            // Actuator has not been opened yet, hide ivt-file loading
hgs
parents:
diff changeset
   963
            // submenu and general play-submenu
hgs
parents:
diff changeset
   964
            aMenuPane->SetItemDimmed( EHapticsTestGeneralPlayEffect, ETrue );
hgs
parents:
diff changeset
   965
            aMenuPane->SetItemDimmed( EHapticsTestLoadIVTFile, ETrue );
hgs
parents:
diff changeset
   966
            aMenuPane->SetItemDimmed( EHapticsTestPropertiesSubmenu, ETrue );
hgs
parents:
diff changeset
   967
            aMenuPane->SetItemDimmed( EHapticsTestCapabilitiesSubmenu, ETrue );
hgs
parents:
diff changeset
   968
            aMenuPane->SetItemDimmed( EHapticsTestStreaming, ETrue );
hgs
parents:
diff changeset
   969
            }
hgs
parents:
diff changeset
   970
        if ( 0 == iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
   971
            {
hgs
parents:
diff changeset
   972
            // also hide the deleteIVT data related menu items
hgs
parents:
diff changeset
   973
            aMenuPane->SetItemDimmed( EHapticsTestDeleteIVTData, ETrue );
hgs
parents:
diff changeset
   974
            aMenuPane->SetItemDimmed( EHapticsTestDeleteAllIVTData, ETrue );
hgs
parents:
diff changeset
   975
            }
hgs
parents:
diff changeset
   976
        if ( !iEffectData->Count() )
hgs
parents:
diff changeset
   977
            {
hgs
parents:
diff changeset
   978
            // hide the pause/resume/stop submenu
hgs
parents:
diff changeset
   979
            aMenuPane->SetItemDimmed( EHapticsTestChangeState, ETrue );
hgs
parents:
diff changeset
   980
            }
hgs
parents:
diff changeset
   981
        if ( !iEffectData->ModifiableEffectExists() )
hgs
parents:
diff changeset
   982
            {
hgs
parents:
diff changeset
   983
            aMenuPane->SetItemDimmed( EHapticsTestModifyEffect, ETrue );
hgs
parents:
diff changeset
   984
            }
hgs
parents:
diff changeset
   985
        if ( iStreaming )
hgs
parents:
diff changeset
   986
            {
hgs
parents:
diff changeset
   987
            aMenuPane->SetItemDimmed( EHapticsTestStreaming, ETrue );
hgs
parents:
diff changeset
   988
            aMenuPane->SetItemDimmed( EHapticsTestReserve, ETrue );
hgs
parents:
diff changeset
   989
            aMenuPane->SetItemDimmed( EHapticsTestLoadIVTFile, ETrue );
hgs
parents:
diff changeset
   990
            aMenuPane->SetItemDimmed( EHapticsTestGeneralPlayEffect, ETrue );
hgs
parents:
diff changeset
   991
            aMenuPane->SetItemDimmed( EHapticsTestChangeState, ETrue );
hgs
parents:
diff changeset
   992
            aMenuPane->SetItemDimmed( EHapticsTestModifyEffect, ETrue );
hgs
parents:
diff changeset
   993
            aMenuPane->SetItemDimmed( EHapticsTestDeleteIVTData, ETrue );
hgs
parents:
diff changeset
   994
            aMenuPane->SetItemDimmed( EHapticsTestPropertiesSubmenu, ETrue );
hgs
parents:
diff changeset
   995
            aMenuPane->SetItemDimmed( EHapticsTestCapabilitiesSubmenu, ETrue );
hgs
parents:
diff changeset
   996
            aMenuPane->SetItemDimmed( EHapticsTestDeleteAllIVTData, ETrue );
hgs
parents:
diff changeset
   997
            aMenuPane->SetItemDimmed( EHapticsTestGetStatus, ETrue );
hgs
parents:
diff changeset
   998
            aMenuPane->SetItemDimmed( EHapticsTestConstGetters, ETrue );
hgs
parents:
diff changeset
   999
            aMenuPane->SetItemDimmed( EHapticsTestClearOutput, ETrue );
hgs
parents:
diff changeset
  1000
            aMenuPane->SetItemDimmed( EHapticsTestPanic, ETrue );
hgs
parents:
diff changeset
  1001
            aMenuPane->SetItemDimmed( EHapticsTestInit, ETrue );
hgs
parents:
diff changeset
  1002
            aMenuPane->SetItemDimmed( EHapticsToggle, ETrue );
hgs
parents:
diff changeset
  1003
            aMenuPane->SetItemDimmed( EAknSoftkeyExit, ETrue );
hgs
parents:
diff changeset
  1004
            aMenuPane->SetItemDimmed( EHapticsTestPlayStreamSample, iCurrentSample );
hgs
parents:
diff changeset
  1005
            aMenuPane->SetItemDimmed( EHapticsTestNextStreamSample, !iCurrentSample );
hgs
parents:
diff changeset
  1006
            }
hgs
parents:
diff changeset
  1007
        else
hgs
parents:
diff changeset
  1008
            {
hgs
parents:
diff changeset
  1009
            aMenuPane->SetItemDimmed( EHapticsTestPlayAllSamples, ETrue );
hgs
parents:
diff changeset
  1010
            aMenuPane->SetItemDimmed( EHapticsTestPlayStreamSample, ETrue );
hgs
parents:
diff changeset
  1011
            aMenuPane->SetItemDimmed( EHapticsTestNextStreamSample, ETrue );
hgs
parents:
diff changeset
  1012
            aMenuPane->SetItemDimmed( EHapticsTestStopStreaming, ETrue );
hgs
parents:
diff changeset
  1013
            }
hgs
parents:
diff changeset
  1014
        }
hgs
parents:
diff changeset
  1015
    else if ( aResourceId == R_HAPTICSTEST_INIT_SUBMENU )
hgs
parents:
diff changeset
  1016
        {
hgs
parents:
diff changeset
  1017
        if ( !iHaptics )
hgs
parents:
diff changeset
  1018
            {
hgs
parents:
diff changeset
  1019
            // haptics client not created, hide commands using it
hgs
parents:
diff changeset
  1020
            aMenuPane->SetItemDimmed( EHapticsTestSupportedActuators, ETrue );
hgs
parents:
diff changeset
  1021
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuator, ETrue );
hgs
parents:
diff changeset
  1022
            }
hgs
parents:
diff changeset
  1023
        if ( !iSupportedActuators )
hgs
parents:
diff changeset
  1024
            {
hgs
parents:
diff changeset
  1025
            // either there are no supported actuators, or they have not
hgs
parents:
diff changeset
  1026
            // been fethed yet --> hide actuator opening submenu
hgs
parents:
diff changeset
  1027
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuator, ETrue );
hgs
parents:
diff changeset
  1028
            }
hgs
parents:
diff changeset
  1029
        }
hgs
parents:
diff changeset
  1030
    else if ( aResourceId == R_HAPTICSTEST_GENERALPLAY_SUBMENU )
hgs
parents:
diff changeset
  1031
        {
hgs
parents:
diff changeset
  1032
        if ( !iActuatorOpened )
hgs
parents:
diff changeset
  1033
            {
hgs
parents:
diff changeset
  1034
            // Actuator has not been opened yet, hide the manual effect
hgs
parents:
diff changeset
  1035
            // play submenu
hgs
parents:
diff changeset
  1036
            aMenuPane->SetItemDimmed( EHapticsTestPlayEffectManual, ETrue );
hgs
parents:
diff changeset
  1037
            }
hgs
parents:
diff changeset
  1038
        if ( 0 == iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
  1039
            {
hgs
parents:
diff changeset
  1040
            // IVT-data has not been loaded, hide the effect submenu
hgs
parents:
diff changeset
  1041
            aMenuPane->SetItemDimmed( EHapticsTestPlayEffect, ETrue );
hgs
parents:
diff changeset
  1042
            aMenuPane->SetItemDimmed( EHapticsTestPlayEffectRepeat, ETrue );
hgs
parents:
diff changeset
  1043
            }
hgs
parents:
diff changeset
  1044
        }
hgs
parents:
diff changeset
  1045
    else if ( aResourceId == R_HAPTICSTEST_TOGGLE_SUBMENU )
hgs
parents:
diff changeset
  1046
        {
hgs
parents:
diff changeset
  1047
        if ( iSynchronous )
hgs
parents:
diff changeset
  1048
            {
hgs
parents:
diff changeset
  1049
            // synchronous calls in ON, hide synchronous call selection
hgs
parents:
diff changeset
  1050
            aMenuPane->SetItemDimmed( EHapticsTestSynchronousCalls, ETrue );
hgs
parents:
diff changeset
  1051
            }
hgs
parents:
diff changeset
  1052
        else
hgs
parents:
diff changeset
  1053
            {
hgs
parents:
diff changeset
  1054
            // asynchronous calls in ON, hide asynchronous call selection
hgs
parents:
diff changeset
  1055
            aMenuPane->SetItemDimmed( EHapticsTestAsynchronousCalls, ETrue );
hgs
parents:
diff changeset
  1056
            }
hgs
parents:
diff changeset
  1057
        if ( iUseHandle )
hgs
parents:
diff changeset
  1058
            {
hgs
parents:
diff changeset
  1059
            aMenuPane->SetItemDimmed( EHapticsTestUsingFileHandle, ETrue );
hgs
parents:
diff changeset
  1060
            if ( iShowEffectInfo )
hgs
parents:
diff changeset
  1061
                {
hgs
parents:
diff changeset
  1062
                aMenuPane->SetItemDimmed( EHapticsTestShowEffectInfo, ETrue );
hgs
parents:
diff changeset
  1063
                }
hgs
parents:
diff changeset
  1064
            else
hgs
parents:
diff changeset
  1065
                {
hgs
parents:
diff changeset
  1066
                aMenuPane->SetItemDimmed( EHapticsTestHideEffectInfo, ETrue );
hgs
parents:
diff changeset
  1067
                }
hgs
parents:
diff changeset
  1068
            }
hgs
parents:
diff changeset
  1069
        else
hgs
parents:
diff changeset
  1070
            {
hgs
parents:
diff changeset
  1071
            aMenuPane->SetItemDimmed( EHapticsTestNotUsingFileHandle, ETrue );
hgs
parents:
diff changeset
  1072
            aMenuPane->SetItemDimmed( EHapticsTestShowEffectInfo, ETrue );
hgs
parents:
diff changeset
  1073
            aMenuPane->SetItemDimmed( EHapticsTestHideEffectInfo, ETrue );
hgs
parents:
diff changeset
  1074
            }    
hgs
parents:
diff changeset
  1075
        }
hgs
parents:
diff changeset
  1076
    else if ( aResourceId == R_HAPTICSTEST_ACTUATORS_SUBMENU )
hgs
parents:
diff changeset
  1077
        {
hgs
parents:
diff changeset
  1078
        if ( !(EHWRMLogicalActuatorAny & iSupportedActuators) )
hgs
parents:
diff changeset
  1079
            {
hgs
parents:
diff changeset
  1080
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorAny, ETrue );
hgs
parents:
diff changeset
  1081
            }
hgs
parents:
diff changeset
  1082
        if ( !(EHWRMLogicalActuatorDevice & iSupportedActuators) )
hgs
parents:
diff changeset
  1083
            {
hgs
parents:
diff changeset
  1084
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorDevice, ETrue );
hgs
parents:
diff changeset
  1085
            }
hgs
parents:
diff changeset
  1086
        if ( !(EHWRMLogicalActuatorPrimaryDisplay & iSupportedActuators) )
hgs
parents:
diff changeset
  1087
            {
hgs
parents:
diff changeset
  1088
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorPrimaryDisplay, ETrue );
hgs
parents:
diff changeset
  1089
            }
hgs
parents:
diff changeset
  1090
        if ( !(EHWRMLogicalActuatorSecondaryDisplay & iSupportedActuators) )
hgs
parents:
diff changeset
  1091
            {
hgs
parents:
diff changeset
  1092
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorSecondaryDisplay, ETrue );
hgs
parents:
diff changeset
  1093
            }
hgs
parents:
diff changeset
  1094
        if ( !(EHWRMLogicalActuatorGame & iSupportedActuators) )
hgs
parents:
diff changeset
  1095
            {
hgs
parents:
diff changeset
  1096
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorGame, ETrue );
hgs
parents:
diff changeset
  1097
            }
hgs
parents:
diff changeset
  1098
        if ( !(EHWRMLogicalActuatorGameLeft & iSupportedActuators) )
hgs
parents:
diff changeset
  1099
            {
hgs
parents:
diff changeset
  1100
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorGameLeft, ETrue );
hgs
parents:
diff changeset
  1101
            }
hgs
parents:
diff changeset
  1102
        if ( !(EHWRMLogicalActuatorGameRight & iSupportedActuators) )
hgs
parents:
diff changeset
  1103
            {
hgs
parents:
diff changeset
  1104
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorGameRight, ETrue );
hgs
parents:
diff changeset
  1105
            }
hgs
parents:
diff changeset
  1106
        if ( !(EHWRMLogicalActuatorExternalVibra & iSupportedActuators) )
hgs
parents:
diff changeset
  1107
            {
hgs
parents:
diff changeset
  1108
            aMenuPane->SetItemDimmed( EHapticsTestOpenActuatorExternalVibra, ETrue );
hgs
parents:
diff changeset
  1109
            }
hgs
parents:
diff changeset
  1110
        }
hgs
parents:
diff changeset
  1111
    else if ( aResourceId == R_HAPTICSTEST_IVTFILES_SUBMENU )
hgs
parents:
diff changeset
  1112
        {
hgs
parents:
diff changeset
  1113
        if ( iIVTFileArray.Count() )
hgs
parents:
diff changeset
  1114
            {
hgs
parents:
diff changeset
  1115
            // ivt-files present, hide the "no files" -item
hgs
parents:
diff changeset
  1116
            aMenuPane->SetItemDimmed( EHapticsTestLoadIVTFileNoneFound, ETrue );
hgs
parents:
diff changeset
  1117
            
hgs
parents:
diff changeset
  1118
            // make file names visible in the submenu
hgs
parents:
diff changeset
  1119
            CEikMenuPaneItem::SData data;
hgs
parents:
diff changeset
  1120
            for ( TInt i = 0; i < iIVTFileArray.Count(); ++i )
hgs
parents:
diff changeset
  1121
                {
hgs
parents:
diff changeset
  1122
                data.iText.Copy( iIVTFileArray[i] );
hgs
parents:
diff changeset
  1123
                data.iCommandId = EHapticsTestLoadIVTFileSelected;
hgs
parents:
diff changeset
  1124
                data.iCascadeId = 0;
hgs
parents:
diff changeset
  1125
                data.iFlags = 0;
hgs
parents:
diff changeset
  1126
                data.iExtraText = KNullDesC;
hgs
parents:
diff changeset
  1127
                
hgs
parents:
diff changeset
  1128
                aMenuPane->AddMenuItemL( data );
hgs
parents:
diff changeset
  1129
                }
hgs
parents:
diff changeset
  1130
            }
hgs
parents:
diff changeset
  1131
        }
hgs
parents:
diff changeset
  1132
    else if ( aResourceId == R_HAPTICSTEST_PLAYEFFECT_SUBMENU )
hgs
parents:
diff changeset
  1133
        {
hgs
parents:
diff changeset
  1134
        CreatePlayEffectSubmenuL( aMenuPane, 
hgs
parents:
diff changeset
  1135
                                  EHapticsTestPlayEffectSelected,
hgs
parents:
diff changeset
  1136
                                  EHapticsTestPlayEffectNoneFound );
hgs
parents:
diff changeset
  1137
        }
hgs
parents:
diff changeset
  1138
    else if ( aResourceId == R_HAPTICSTEST_PLAYEFFECTREPEAT_SUBMENU )
hgs
parents:
diff changeset
  1139
        {
hgs
parents:
diff changeset
  1140
        CreatePlayEffectSubmenuL( aMenuPane, 
hgs
parents:
diff changeset
  1141
                                  EHapticsTestPlayEffectRepeatSelected,
hgs
parents:
diff changeset
  1142
                                  EHapticsTestPlayEffectRepeatNoneFound );
hgs
parents:
diff changeset
  1143
        }
hgs
parents:
diff changeset
  1144
    else if ( aResourceId == R_HAPTICSTEST_DELETEIVTDATA_SUBMENU )
hgs
parents:
diff changeset
  1145
        {
hgs
parents:
diff changeset
  1146
        if ( iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
  1147
            {
hgs
parents:
diff changeset
  1148
            // loaded ivt-files present, hide the "no files" -item
hgs
parents:
diff changeset
  1149
            aMenuPane->SetItemDimmed( EHapticsTestDeleteIVTDataNoneFound, ETrue );
hgs
parents:
diff changeset
  1150
            
hgs
parents:
diff changeset
  1151
            // make loaded ivt-files visible in the submenu
hgs
parents:
diff changeset
  1152
            CEikMenuPaneItem::SData data;
hgs
parents:
diff changeset
  1153
            for ( TInt i = 0; i < iLoadedIVTFileArray.Count(); ++i )
hgs
parents:
diff changeset
  1154
                {
hgs
parents:
diff changeset
  1155
                data.iText.Copy( iLoadedIVTFileArray[i].iFileName );
hgs
parents:
diff changeset
  1156
                data.iCommandId = EHapticsTestDeleteIVTDataSelected;
hgs
parents:
diff changeset
  1157
                data.iCascadeId = 0;
hgs
parents:
diff changeset
  1158
                data.iFlags = 0;
hgs
parents:
diff changeset
  1159
                data.iExtraText = KNullDesC;
hgs
parents:
diff changeset
  1160
                
hgs
parents:
diff changeset
  1161
                aMenuPane->AddMenuItemL( data );
hgs
parents:
diff changeset
  1162
                }
hgs
parents:
diff changeset
  1163
            }
hgs
parents:
diff changeset
  1164
        }
hgs
parents:
diff changeset
  1165
    else if ( aResourceId == R_HAPTICSTEST_PAUSE_SUBMENU )
hgs
parents:
diff changeset
  1166
        {
hgs
parents:
diff changeset
  1167
        // fill effect history data to pause submenu
hgs
parents:
diff changeset
  1168
        iEffectData->DynInitChangeEffectStateSubmenuL( 
hgs
parents:
diff changeset
  1169
                        aMenuPane, EHapticsTestChangeStatePause, iHaptics );
hgs
parents:
diff changeset
  1170
        }
hgs
parents:
diff changeset
  1171
    else if ( aResourceId == R_HAPTICSTEST_RESUME_SUBMENU )
hgs
parents:
diff changeset
  1172
        {
hgs
parents:
diff changeset
  1173
        // fill effect history data to resume submenu
hgs
parents:
diff changeset
  1174
        iEffectData->DynInitChangeEffectStateSubmenuL( 
hgs
parents:
diff changeset
  1175
                        aMenuPane, EHapticsTestChangeStateResume, iHaptics );
hgs
parents:
diff changeset
  1176
        }
hgs
parents:
diff changeset
  1177
    else if ( aResourceId == R_HAPTICSTEST_STOP_SUBMENU )
hgs
parents:
diff changeset
  1178
        {
hgs
parents:
diff changeset
  1179
        // fill effect history data to stop submenu
hgs
parents:
diff changeset
  1180
        iEffectData->DynInitChangeEffectStateSubmenuL(
hgs
parents:
diff changeset
  1181
                        aMenuPane, EHapticsTestChangeStateStop, iHaptics );
hgs
parents:
diff changeset
  1182
        }
hgs
parents:
diff changeset
  1183
    else if ( aResourceId == R_HAPTICSTEST_MODIFYDURATION_SUBMENU )
hgs
parents:
diff changeset
  1184
        {
hgs
parents:
diff changeset
  1185
        iEffectData->DynInitDurationSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1186
        }
hgs
parents:
diff changeset
  1187
    else if ( aResourceId == R_HAPTICSTEST_MODIFYMAGNITUDE_SUBMENU )
hgs
parents:
diff changeset
  1188
        {
hgs
parents:
diff changeset
  1189
        iEffectData->DynInitMagnitudeSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1190
        }
hgs
parents:
diff changeset
  1191
    else if ( aResourceId == R_HAPTICSTEST_MODIFYSTYLE_SUBMENU )
hgs
parents:
diff changeset
  1192
        {
hgs
parents:
diff changeset
  1193
        iEffectData->DynInitStyleSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1194
        }
hgs
parents:
diff changeset
  1195
    else if ( aResourceId == R_HAPTICSTEST_MODIFYATTACK_SUBMENU )
hgs
parents:
diff changeset
  1196
        {
hgs
parents:
diff changeset
  1197
        iEffectData->DynInitAttackLevelSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1198
        }
hgs
parents:
diff changeset
  1199
    else if ( aResourceId == R_HAPTICSTEST_MODIFYFADE_SUBMENU )
hgs
parents:
diff changeset
  1200
        {
hgs
parents:
diff changeset
  1201
        iEffectData->DynInitFadeLevelSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1202
        }
hgs
parents:
diff changeset
  1203
    else if ( aResourceId == R_HAPTICSTEST_MODIFYATTACKTIME_SUBMENU )
hgs
parents:
diff changeset
  1204
        {
hgs
parents:
diff changeset
  1205
        iEffectData->DynInitAttackTimeSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1206
        }
hgs
parents:
diff changeset
  1207
    else if ( aResourceId == R_HAPTICSTEST_MODIFYFADETIME_SUBMENU )
hgs
parents:
diff changeset
  1208
        {
hgs
parents:
diff changeset
  1209
        iEffectData->DynInitFadeTimeSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1210
        }
hgs
parents:
diff changeset
  1211
    else if ( aResourceId == R_HAPTICSTEST_MODIFYPERIOD_SUBMENU )
hgs
parents:
diff changeset
  1212
        {
hgs
parents:
diff changeset
  1213
        iEffectData->DynInitPeriodSubmenu( aMenuPane );
hgs
parents:
diff changeset
  1214
        }
hgs
parents:
diff changeset
  1215
    }
hgs
parents:
diff changeset
  1216
hgs
parents:
diff changeset
  1217
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1218
// 
hgs
parents:
diff changeset
  1219
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1220
//
hgs
parents:
diff changeset
  1221
void CHapticsTestAppUi::HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination)
hgs
parents:
diff changeset
  1222
        {
hgs
parents:
diff changeset
  1223
    CAknAppUi::HandleWsEventL(aEvent, aDestination);
hgs
parents:
diff changeset
  1224
    
hgs
parents:
diff changeset
  1225
    TInt eventType = aEvent.Type();
hgs
parents:
diff changeset
  1226
    if (eventType == EEventKeyUp)
hgs
parents:
diff changeset
  1227
        {
hgs
parents:
diff changeset
  1228
        TKeyEvent key = *(aEvent.Key());
hgs
parents:
diff changeset
  1229
        GetAliasKeyCodeL(key.iCode, key, EEventKey);
hgs
parents:
diff changeset
  1230
        TUint code = key.iScanCode;
hgs
parents:
diff changeset
  1231
        
hgs
parents:
diff changeset
  1232
        if (code == '5' && !iActuatorOpened )
hgs
parents:
diff changeset
  1233
            {
hgs
parents:
diff changeset
  1234
            HandleCommandL(EHapticsTestOpenHaptics); // open client
hgs
parents:
diff changeset
  1235
            HandleCommandL(EHapticsTestSupportedActuators); // ask supported actuators
hgs
parents:
diff changeset
  1236
            HandleCommandL(EHapticsTestOpenActuatorAny); // open any actuator
hgs
parents:
diff changeset
  1237
hgs
parents:
diff changeset
  1238
            HandleCommandL(EHapticsTestGetCapabilityDeviceName);
hgs
parents:
diff changeset
  1239
            }
hgs
parents:
diff changeset
  1240
        }
hgs
parents:
diff changeset
  1241
    }
hgs
parents:
diff changeset
  1242
hgs
parents:
diff changeset
  1243
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1244
// Prints received haptics status notifications onto
hgs
parents:
diff changeset
  1245
// the screen.
hgs
parents:
diff changeset
  1246
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1247
//
hgs
parents:
diff changeset
  1248
void CHapticsTestAppUi::HapticsStatusChangedL( THWRMHapticsStatus aStatus )
hgs
parents:
diff changeset
  1249
    {
hgs
parents:
diff changeset
  1250
    PrintStatusInfo( aStatus );
hgs
parents:
diff changeset
  1251
    }
hgs
parents:
diff changeset
  1252
hgs
parents:
diff changeset
  1253
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1254
// Empty implementation.
hgs
parents:
diff changeset
  1255
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1256
//
hgs
parents:
diff changeset
  1257
void CHapticsTestAppUi::EffectCompletedL( TInt /*aError*/, 
hgs
parents:
diff changeset
  1258
                                          TInt /*aEffectHandle*/ )
hgs
parents:
diff changeset
  1259
    {
hgs
parents:
diff changeset
  1260
    }
hgs
parents:
diff changeset
  1261
hgs
parents:
diff changeset
  1262
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1263
// Outputs received actuator events onto the screen.
hgs
parents:
diff changeset
  1264
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1265
//
hgs
parents:
diff changeset
  1266
void CHapticsTestAppUi::ActuatorEventL( THWRMActuatorEvents aEvent, 
hgs
parents:
diff changeset
  1267
                                        THWRMLogicalActuators aActuator )
hgs
parents:
diff changeset
  1268
    {
hgs
parents:
diff changeset
  1269
    // actuator name
hgs
parents:
diff changeset
  1270
    TBuf<64> actuator;
hgs
parents:
diff changeset
  1271
    switch( aActuator )
hgs
parents:
diff changeset
  1272
        {
hgs
parents:
diff changeset
  1273
        case EHWRMLogicalActuatorAny:
hgs
parents:
diff changeset
  1274
            actuator.Append( _L("Any") );
hgs
parents:
diff changeset
  1275
            break;
hgs
parents:
diff changeset
  1276
        case EHWRMLogicalActuatorDevice:
hgs
parents:
diff changeset
  1277
            actuator.Append( _L("Device") );
hgs
parents:
diff changeset
  1278
            break;
hgs
parents:
diff changeset
  1279
        case EHWRMLogicalActuatorPrimaryDisplay:
hgs
parents:
diff changeset
  1280
            actuator.Append( _L("PrimaryDisplay") );
hgs
parents:
diff changeset
  1281
            break;
hgs
parents:
diff changeset
  1282
        case EHWRMLogicalActuatorSecondaryDisplay:
hgs
parents:
diff changeset
  1283
            actuator.Append( _L("SecondaryDisplay") );
hgs
parents:
diff changeset
  1284
            break;
hgs
parents:
diff changeset
  1285
        case EHWRMLogicalActuatorGame:
hgs
parents:
diff changeset
  1286
            actuator.Append( _L("Game") );
hgs
parents:
diff changeset
  1287
            break;
hgs
parents:
diff changeset
  1288
        case EHWRMLogicalActuatorGameLeft:
hgs
parents:
diff changeset
  1289
            actuator.Append( _L("GameLeft") );
hgs
parents:
diff changeset
  1290
            break;
hgs
parents:
diff changeset
  1291
        case EHWRMLogicalActuatorGameRight:
hgs
parents:
diff changeset
  1292
            actuator.Append( _L("GameRight") );
hgs
parents:
diff changeset
  1293
            break;
hgs
parents:
diff changeset
  1294
        case EHWRMLogicalActuatorExternalVibra:
hgs
parents:
diff changeset
  1295
            actuator.Append( _L("ExternalVibra") );
hgs
parents:
diff changeset
  1296
            break;
hgs
parents:
diff changeset
  1297
        default:
hgs
parents:
diff changeset
  1298
            actuator.Append( _L("<unknown>") );
hgs
parents:
diff changeset
  1299
            break;
hgs
parents:
diff changeset
  1300
        }
hgs
parents:
diff changeset
  1301
hgs
parents:
diff changeset
  1302
    iAppView->InsertOutput( _L("Received actuator event: "), EFalse );
hgs
parents:
diff changeset
  1303
    iAppView->InsertOutput( actuator, EFalse );
hgs
parents:
diff changeset
  1304
    
hgs
parents:
diff changeset
  1305
    switch( aEvent )
hgs
parents:
diff changeset
  1306
        {
hgs
parents:
diff changeset
  1307
        case MHWRMHapticsActuatorObserver::EHWRMActuatorAttached:
hgs
parents:
diff changeset
  1308
            {
hgs
parents:
diff changeset
  1309
            iAppView->InsertOutput( _L(" Attached.") );
hgs
parents:
diff changeset
  1310
            break;
hgs
parents:
diff changeset
  1311
            }
hgs
parents:
diff changeset
  1312
        case MHWRMHapticsActuatorObserver::EHWRMActuatorDetached:
hgs
parents:
diff changeset
  1313
            {
hgs
parents:
diff changeset
  1314
            iAppView->InsertOutput( _L(" Deattached.") );
hgs
parents:
diff changeset
  1315
            break;
hgs
parents:
diff changeset
  1316
            }
hgs
parents:
diff changeset
  1317
        case MHWRMHapticsActuatorObserver::EHWRMActuatorEnabled:
hgs
parents:
diff changeset
  1318
            {
hgs
parents:
diff changeset
  1319
            iAppView->InsertOutput( _L(" Enabled.") );
hgs
parents:
diff changeset
  1320
            break;
hgs
parents:
diff changeset
  1321
            }
hgs
parents:
diff changeset
  1322
        case MHWRMHapticsActuatorObserver::EHWRMActuatorDisabled:
hgs
parents:
diff changeset
  1323
            {
hgs
parents:
diff changeset
  1324
            iAppView->InsertOutput( _L(" Disabled.") );
hgs
parents:
diff changeset
  1325
            break;
hgs
parents:
diff changeset
  1326
            }
hgs
parents:
diff changeset
  1327
        default:
hgs
parents:
diff changeset
  1328
            {
hgs
parents:
diff changeset
  1329
            iAppView->InsertOutput( _L(" <unknown status>") );
hgs
parents:
diff changeset
  1330
            break;
hgs
parents:
diff changeset
  1331
            }
hgs
parents:
diff changeset
  1332
        }
hgs
parents:
diff changeset
  1333
    }
hgs
parents:
diff changeset
  1334
hgs
parents:
diff changeset
  1335
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1336
// Creates haptics client instance.
hgs
parents:
diff changeset
  1337
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1338
//
hgs
parents:
diff changeset
  1339
void CHapticsTestAppUi::OpenHapticsL()
hgs
parents:
diff changeset
  1340
    {
hgs
parents:
diff changeset
  1341
    if ( iHaptics )
hgs
parents:
diff changeset
  1342
        {
hgs
parents:
diff changeset
  1343
        iAppView->InsertOutput( _L("Already created.") );
hgs
parents:
diff changeset
  1344
        }
hgs
parents:
diff changeset
  1345
    else
hgs
parents:
diff changeset
  1346
        {
hgs
parents:
diff changeset
  1347
        // Create haptics client
hgs
parents:
diff changeset
  1348
        if ( iSynchronous )
hgs
parents:
diff changeset
  1349
            {
hgs
parents:
diff changeset
  1350
            iHaptics = CHWRMHaptics::NewL( this, this );
hgs
parents:
diff changeset
  1351
            }
hgs
parents:
diff changeset
  1352
        else
hgs
parents:
diff changeset
  1353
            {
hgs
parents:
diff changeset
  1354
            // asynchronous creation
hgs
parents:
diff changeset
  1355
            TRequestStatus status;
hgs
parents:
diff changeset
  1356
            iHaptics = CHWRMHaptics::NewL( this, this, status );
hgs
parents:
diff changeset
  1357
            User::WaitForRequest( status );
hgs
parents:
diff changeset
  1358
            User::LeaveIfError( status.Int() );
hgs
parents:
diff changeset
  1359
            }
hgs
parents:
diff changeset
  1360
hgs
parents:
diff changeset
  1361
        if ( iHaptics )
hgs
parents:
diff changeset
  1362
            {
hgs
parents:
diff changeset
  1363
            iAppView->InsertOutput( _L("Haptics client created.") );
hgs
parents:
diff changeset
  1364
            }
hgs
parents:
diff changeset
  1365
        else
hgs
parents:
diff changeset
  1366
            {
hgs
parents:
diff changeset
  1367
            iAppView->InsertOutput( _L("Error: Creation failed.") );
hgs
parents:
diff changeset
  1368
            }
hgs
parents:
diff changeset
  1369
        }
hgs
parents:
diff changeset
  1370
    }
hgs
parents:
diff changeset
  1371
hgs
parents:
diff changeset
  1372
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1373
// Deletes haptics client instance, and resets member variables
hgs
parents:
diff changeset
  1374
// so that options-menu is updated accordingly.
hgs
parents:
diff changeset
  1375
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1376
//
hgs
parents:
diff changeset
  1377
void CHapticsTestAppUi::CloseHaptics()
hgs
parents:
diff changeset
  1378
    {
hgs
parents:
diff changeset
  1379
    if( iHaptics )
hgs
parents:
diff changeset
  1380
        {
hgs
parents:
diff changeset
  1381
        delete iHaptics;
hgs
parents:
diff changeset
  1382
        iHaptics = NULL;
hgs
parents:
diff changeset
  1383
        iAppView->InsertOutput( _L("Haptics client deleted.") );
hgs
parents:
diff changeset
  1384
hgs
parents:
diff changeset
  1385
        // uninit members
hgs
parents:
diff changeset
  1386
        iSupportedActuators = 0;
hgs
parents:
diff changeset
  1387
        iActuatorOpened = EFalse;
hgs
parents:
diff changeset
  1388
        iIVTFileHandle = 0;
hgs
parents:
diff changeset
  1389
        
hgs
parents:
diff changeset
  1390
        while ( iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
  1391
            {
hgs
parents:
diff changeset
  1392
            if ( iLoadedIVTFileArray[0].iDataBuffer )
hgs
parents:
diff changeset
  1393
                {
hgs
parents:
diff changeset
  1394
                delete iLoadedIVTFileArray[0].iDataBuffer;
hgs
parents:
diff changeset
  1395
                iLoadedIVTFileArray[0].iDataBuffer = NULL;
hgs
parents:
diff changeset
  1396
                }
hgs
parents:
diff changeset
  1397
            iLoadedIVTFileArray.Remove( 0 );
hgs
parents:
diff changeset
  1398
            }
hgs
parents:
diff changeset
  1399
        
hgs
parents:
diff changeset
  1400
        iIVTDataBuffer = NULL;
hgs
parents:
diff changeset
  1401
        }
hgs
parents:
diff changeset
  1402
    else
hgs
parents:
diff changeset
  1403
        {
hgs
parents:
diff changeset
  1404
        iAppView->InsertOutput( _L("Error: Haptics client doesn\'t exist.") );
hgs
parents:
diff changeset
  1405
        }             
hgs
parents:
diff changeset
  1406
    }
hgs
parents:
diff changeset
  1407
hgs
parents:
diff changeset
  1408
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1409
// Fetches the supported actuators from haptics server, 
hgs
parents:
diff changeset
  1410
// and stores the mask to iSupportedActuators.
hgs
parents:
diff changeset
  1411
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1412
//
hgs
parents:
diff changeset
  1413
void CHapticsTestAppUi::FetchSupportedActuators()
hgs
parents:
diff changeset
  1414
    {
hgs
parents:
diff changeset
  1415
    TInt err = iHaptics->SupportedActuators( iSupportedActuators );
hgs
parents:
diff changeset
  1416
hgs
parents:
diff changeset
  1417
    if ( err )
hgs
parents:
diff changeset
  1418
        {
hgs
parents:
diff changeset
  1419
        iAppView->InsertOutput( _L("Error: Getting supported actuators failed.") );
hgs
parents:
diff changeset
  1420
        }
hgs
parents:
diff changeset
  1421
    else
hgs
parents:
diff changeset
  1422
        {
hgs
parents:
diff changeset
  1423
        PrintSupportedActuators();
hgs
parents:
diff changeset
  1424
        }
hgs
parents:
diff changeset
  1425
    }
hgs
parents:
diff changeset
  1426
hgs
parents:
diff changeset
  1427
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1428
// Prints the given supported actuators to the UI.
hgs
parents:
diff changeset
  1429
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1430
//
hgs
parents:
diff changeset
  1431
void CHapticsTestAppUi::PrintSupportedActuators()
hgs
parents:
diff changeset
  1432
    {
hgs
parents:
diff changeset
  1433
    iAppView->InsertOutput( _L("Supported actuators:") );
hgs
parents:
diff changeset
  1434
    
hgs
parents:
diff changeset
  1435
    if( EHWRMLogicalActuatorAny & iSupportedActuators )
hgs
parents:
diff changeset
  1436
        {
hgs
parents:
diff changeset
  1437
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorAny") );
hgs
parents:
diff changeset
  1438
        }
hgs
parents:
diff changeset
  1439
    if( EHWRMLogicalActuatorDevice & iSupportedActuators )
hgs
parents:
diff changeset
  1440
        {
hgs
parents:
diff changeset
  1441
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorDevice") );
hgs
parents:
diff changeset
  1442
        }
hgs
parents:
diff changeset
  1443
    if( EHWRMLogicalActuatorPrimaryDisplay & iSupportedActuators )
hgs
parents:
diff changeset
  1444
        {
hgs
parents:
diff changeset
  1445
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorPrimaryDisplay") );
hgs
parents:
diff changeset
  1446
        }
hgs
parents:
diff changeset
  1447
    if( EHWRMLogicalActuatorSecondaryDisplay & iSupportedActuators )
hgs
parents:
diff changeset
  1448
        {
hgs
parents:
diff changeset
  1449
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorSecondaryDisplay") );
hgs
parents:
diff changeset
  1450
        }
hgs
parents:
diff changeset
  1451
    if( EHWRMLogicalActuatorGame & iSupportedActuators )
hgs
parents:
diff changeset
  1452
        {
hgs
parents:
diff changeset
  1453
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorGame") );
hgs
parents:
diff changeset
  1454
        }
hgs
parents:
diff changeset
  1455
    if( EHWRMLogicalActuatorGameLeft & iSupportedActuators )
hgs
parents:
diff changeset
  1456
        {
hgs
parents:
diff changeset
  1457
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorGameLeft") );
hgs
parents:
diff changeset
  1458
        }
hgs
parents:
diff changeset
  1459
    if( EHWRMLogicalActuatorGameRight & iSupportedActuators )
hgs
parents:
diff changeset
  1460
        {
hgs
parents:
diff changeset
  1461
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorGameRight") );
hgs
parents:
diff changeset
  1462
        }
hgs
parents:
diff changeset
  1463
    if( EHWRMLogicalActuatorExternalVibra & iSupportedActuators )
hgs
parents:
diff changeset
  1464
        {
hgs
parents:
diff changeset
  1465
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorExternalVibra") );
hgs
parents:
diff changeset
  1466
        }
hgs
parents:
diff changeset
  1467
    if( EHWRMLogicalActuatorLast & iSupportedActuators )
hgs
parents:
diff changeset
  1468
        {
hgs
parents:
diff changeset
  1469
        // ?????
hgs
parents:
diff changeset
  1470
        iAppView->InsertOutput( _L("    EHWRMLogicalActuatorLast") );
hgs
parents:
diff changeset
  1471
        }
hgs
parents:
diff changeset
  1472
    }
hgs
parents:
diff changeset
  1473
hgs
parents:
diff changeset
  1474
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1475
// Attemps to open the given actuator. Prints the result
hgs
parents:
diff changeset
  1476
// of the attemp to the UI.
hgs
parents:
diff changeset
  1477
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1478
//
hgs
parents:
diff changeset
  1479
void CHapticsTestAppUi::OpenActuator( THWRMLogicalActuators aActuator )
hgs
parents:
diff changeset
  1480
    {
hgs
parents:
diff changeset
  1481
    TRAPD( err, iHaptics->OpenActuatorL( aActuator ) );
hgs
parents:
diff changeset
  1482
    TBuf<100> buf;
hgs
parents:
diff changeset
  1483
    if ( err )
hgs
parents:
diff changeset
  1484
        {
hgs
parents:
diff changeset
  1485
        buf.Append( _L("Error: Opening actuator failed; ") );
hgs
parents:
diff changeset
  1486
        buf.AppendNum( err );
hgs
parents:
diff changeset
  1487
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  1488
        
hgs
parents:
diff changeset
  1489
        iActuatorOpened = EFalse;
hgs
parents:
diff changeset
  1490
        }
hgs
parents:
diff changeset
  1491
    else
hgs
parents:
diff changeset
  1492
        {
hgs
parents:
diff changeset
  1493
        iAppView->InsertOutput( _L("Actuator opened successfully.") );
hgs
parents:
diff changeset
  1494
        
hgs
parents:
diff changeset
  1495
        iActuatorOpened = ETrue;
hgs
parents:
diff changeset
  1496
hgs
parents:
diff changeset
  1497
        TInt err = iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsLicensekey,
hgs
parents:
diff changeset
  1498
                                                KNullDesC8() );
hgs
parents:
diff changeset
  1499
        if (err)                                        
hgs
parents:
diff changeset
  1500
            {
hgs
parents:
diff changeset
  1501
            buf.Append( _L("Error: Setting licensefailed: ") );
hgs
parents:
diff changeset
  1502
            buf.AppendNum( err );
hgs
parents:
diff changeset
  1503
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  1504
        
hgs
parents:
diff changeset
  1505
            iActuatorOpened = EFalse;
hgs
parents:
diff changeset
  1506
            return;
hgs
parents:
diff changeset
  1507
            }
hgs
parents:
diff changeset
  1508
        iAppView->InsertOutput( _L("License is set.") );
hgs
parents:
diff changeset
  1509
hgs
parents:
diff changeset
  1510
        err = iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsPriority, 
hgs
parents:
diff changeset
  1511
                                           KHWRMHapticsMaxDevicePriority );
hgs
parents:
diff changeset
  1512
hgs
parents:
diff changeset
  1513
        }
hgs
parents:
diff changeset
  1514
    }
hgs
parents:
diff changeset
  1515
hgs
parents:
diff changeset
  1516
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1517
// Reserves haptics for this application.
hgs
parents:
diff changeset
  1518
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1519
//
hgs
parents:
diff changeset
  1520
void CHapticsTestAppUi::ReserveHaptics( CHWRMHaptics* aHaptics, 
hgs
parents:
diff changeset
  1521
                                        TBool aForceNoCoe )
hgs
parents:
diff changeset
  1522
    {
hgs
parents:
diff changeset
  1523
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1524
    TBuf<24> forceNoCoe;
hgs
parents:
diff changeset
  1525
    
hgs
parents:
diff changeset
  1526
    if ( aForceNoCoe )
hgs
parents:
diff changeset
  1527
        {
hgs
parents:
diff changeset
  1528
        forceNoCoe.Append( _L("(trusted).") );
hgs
parents:
diff changeset
  1529
        TRAP( err, aHaptics->ReserveHapticsL( ETrue ) );
hgs
parents:
diff changeset
  1530
        }
hgs
parents:
diff changeset
  1531
    else
hgs
parents:
diff changeset
  1532
        {
hgs
parents:
diff changeset
  1533
        forceNoCoe.Append( _L("(not trusted).") );
hgs
parents:
diff changeset
  1534
        TRAP( err, aHaptics->ReserveHapticsL() );
hgs
parents:
diff changeset
  1535
        }
hgs
parents:
diff changeset
  1536
    
hgs
parents:
diff changeset
  1537
    if ( err )
hgs
parents:
diff changeset
  1538
        {
hgs
parents:
diff changeset
  1539
        TBuf<8> errorCode;
hgs
parents:
diff changeset
  1540
        errorCode.AppendNum( err );
hgs
parents:
diff changeset
  1541
hgs
parents:
diff changeset
  1542
        iAppView->InsertOutput( _L("Reserving haptics failed err = "), EFalse );
hgs
parents:
diff changeset
  1543
        iAppView->InsertOutput( errorCode );
hgs
parents:
diff changeset
  1544
        }
hgs
parents:
diff changeset
  1545
    else
hgs
parents:
diff changeset
  1546
        {
hgs
parents:
diff changeset
  1547
        iAppView->InsertOutput( _L("Reserved haptics "), EFalse );
hgs
parents:
diff changeset
  1548
        iAppView->InsertOutput( forceNoCoe );
hgs
parents:
diff changeset
  1549
        }
hgs
parents:
diff changeset
  1550
    }
hgs
parents:
diff changeset
  1551
hgs
parents:
diff changeset
  1552
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1553
// Searches for IVT-files in the filesystem, and writes
hgs
parents:
diff changeset
  1554
// them to iIVTFileArray.
hgs
parents:
diff changeset
  1555
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1556
//
hgs
parents:
diff changeset
  1557
void CHapticsTestAppUi::FindIVTFiles()
hgs
parents:
diff changeset
  1558
    {
hgs
parents:
diff changeset
  1559
    iAppView->InsertOutput( _L("Searching IVT-files...") );
hgs
parents:
diff changeset
  1560
hgs
parents:
diff changeset
  1561
    // open file server session
hgs
parents:
diff changeset
  1562
    RFs rfs;
hgs
parents:
diff changeset
  1563
    TInt err = rfs.Connect();
hgs
parents:
diff changeset
  1564
    
hgs
parents:
diff changeset
  1565
    if ( err )
hgs
parents:
diff changeset
  1566
        {
hgs
parents:
diff changeset
  1567
        iAppView->InsertOutput( _L("Error occured while opening fileserver session!") );
hgs
parents:
diff changeset
  1568
        return;
hgs
parents:
diff changeset
  1569
        }
hgs
parents:
diff changeset
  1570
hgs
parents:
diff changeset
  1571
    // set path where to search files
hgs
parents:
diff changeset
  1572
    CDir* dirList = 0;    
hgs
parents:
diff changeset
  1573
    TInt memCrdUsageErr = KErrNone;
hgs
parents:
diff changeset
  1574
    
hgs
parents:
diff changeset
  1575
#ifdef __MARM_ARMV5__
hgs
parents:
diff changeset
  1576
    // first, try to use mem card.. (in ARMV5 builds)
hgs
parents:
diff changeset
  1577
    memCrdUsageErr = rfs.SetSessionPath( KSessionPathCrd );
hgs
parents:
diff changeset
  1578
hgs
parents:
diff changeset
  1579
    if ( !memCrdUsageErr )
hgs
parents:
diff changeset
  1580
        {
hgs
parents:
diff changeset
  1581
        memCrdUsageErr = rfs.GetDir( KIVTFileType, KEntryAttMaskSupported,
hgs
parents:
diff changeset
  1582
                                     ESortByName, dirList );
hgs
parents:
diff changeset
  1583
        }
hgs
parents:
diff changeset
  1584
    if ( !memCrdUsageErr && dirList )
hgs
parents:
diff changeset
  1585
        {
hgs
parents:
diff changeset
  1586
        iUsesMemCard = ETrue;
hgs
parents:
diff changeset
  1587
        }
hgs
parents:
diff changeset
  1588
#endif
hgs
parents:
diff changeset
  1589
hgs
parents:
diff changeset
  1590
    if ( !iUsesMemCard )
hgs
parents:
diff changeset
  1591
        {
hgs
parents:
diff changeset
  1592
        // secondly, try to use phone mem.. (actually first in non-ARMV5 builds)
hgs
parents:
diff changeset
  1593
        err = rfs.SetSessionPath( KSessionPathMem );
hgs
parents:
diff changeset
  1594
hgs
parents:
diff changeset
  1595
        if ( err )
hgs
parents:
diff changeset
  1596
            {
hgs
parents:
diff changeset
  1597
            iAppView->InsertOutput( _L("Setting path for fileserver failed!") );
hgs
parents:
diff changeset
  1598
            return;
hgs
parents:
diff changeset
  1599
            }
hgs
parents:
diff changeset
  1600
hgs
parents:
diff changeset
  1601
        // get directory file listing of IVT-files
hgs
parents:
diff changeset
  1602
        err = rfs.GetDir( KIVTFileType, KEntryAttMaskSupported,
hgs
parents:
diff changeset
  1603
                          ESortByName, dirList );
hgs
parents:
diff changeset
  1604
    
hgs
parents:
diff changeset
  1605
        if ( err || !dirList )
hgs
parents:
diff changeset
  1606
            {
hgs
parents:
diff changeset
  1607
            iAppView->InsertOutput( _L("Fetching folder content failed!") );
hgs
parents:
diff changeset
  1608
            return;
hgs
parents:
diff changeset
  1609
            }
hgs
parents:
diff changeset
  1610
        }
hgs
parents:
diff changeset
  1611
hgs
parents:
diff changeset
  1612
    // file server session not needed anymore, close it
hgs
parents:
diff changeset
  1613
    rfs.Close();
hgs
parents:
diff changeset
  1614
hgs
parents:
diff changeset
  1615
    // go through all found ivt-files and read directory 
hgs
parents:
diff changeset
  1616
    // entries to filenamearray
hgs
parents:
diff changeset
  1617
    for( TInt i = 0; i < dirList->Count(); i++ )
hgs
parents:
diff changeset
  1618
        {
hgs
parents:
diff changeset
  1619
        iIVTFileArray.Append( (*dirList)[i].iName );
hgs
parents:
diff changeset
  1620
hgs
parents:
diff changeset
  1621
        // print findings to the UI
hgs
parents:
diff changeset
  1622
        iAppView->InsertOutput( _L("    "), EFalse );
hgs
parents:
diff changeset
  1623
        iAppView->InsertOutput( (*dirList)[i].iName );
hgs
parents:
diff changeset
  1624
        }
hgs
parents:
diff changeset
  1625
    
hgs
parents:
diff changeset
  1626
    delete dirList;
hgs
parents:
diff changeset
  1627
    dirList = NULL;
hgs
parents:
diff changeset
  1628
    }
hgs
parents:
diff changeset
  1629
hgs
parents:
diff changeset
  1630
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1631
// Loads IVT data from the given file to haptics.
hgs
parents:
diff changeset
  1632
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1633
//
hgs
parents:
diff changeset
  1634
void CHapticsTestAppUi::LoadIVTDataL( TFileName& aFile )
hgs
parents:
diff changeset
  1635
    {
hgs
parents:
diff changeset
  1636
    // open file server session
hgs
parents:
diff changeset
  1637
    RFs rfs;
hgs
parents:
diff changeset
  1638
    if ( rfs.Connect() )
hgs
parents:
diff changeset
  1639
        {
hgs
parents:
diff changeset
  1640
        iAppView->InsertOutput( _L("Error occured while opening fileserver session!") );
hgs
parents:
diff changeset
  1641
        return;
hgs
parents:
diff changeset
  1642
        }
hgs
parents:
diff changeset
  1643
hgs
parents:
diff changeset
  1644
    // set path where to search files
hgs
parents:
diff changeset
  1645
#ifdef __MARM_ARMV5__
hgs
parents:
diff changeset
  1646
    if ( iUsesMemCard )
hgs
parents:
diff changeset
  1647
        {
hgs
parents:
diff changeset
  1648
        rfs.SetSessionPath( KSessionPathCrd );
hgs
parents:
diff changeset
  1649
        }
hgs
parents:
diff changeset
  1650
    else    
hgs
parents:
diff changeset
  1651
        {
hgs
parents:
diff changeset
  1652
#endif
hgs
parents:
diff changeset
  1653
hgs
parents:
diff changeset
  1654
        rfs.SetSessionPath( KSessionPathMem );
hgs
parents:
diff changeset
  1655
hgs
parents:
diff changeset
  1656
#ifdef __MARM_ARMV5__
hgs
parents:
diff changeset
  1657
        }
hgs
parents:
diff changeset
  1658
#endif
hgs
parents:
diff changeset
  1659
        
hgs
parents:
diff changeset
  1660
    RFile effectFile;
hgs
parents:
diff changeset
  1661
    TInt fileSize( 0 );
hgs
parents:
diff changeset
  1662
hgs
parents:
diff changeset
  1663
    User::LeaveIfError( effectFile.Open( rfs, aFile, EFileRead ) );
hgs
parents:
diff changeset
  1664
hgs
parents:
diff changeset
  1665
    effectFile.Size( fileSize );
hgs
parents:
diff changeset
  1666
hgs
parents:
diff changeset
  1667
    // create buffer for the IVT-data
hgs
parents:
diff changeset
  1668
    HBufC8* IVTDataBuffer = HBufC8::NewLC( fileSize );
hgs
parents:
diff changeset
  1669
    TPtr8 dataBufPtr = IVTDataBuffer->Des();
hgs
parents:
diff changeset
  1670
hgs
parents:
diff changeset
  1671
    // read the data from file to buffer
hgs
parents:
diff changeset
  1672
    effectFile.Read( dataBufPtr );
hgs
parents:
diff changeset
  1673
hgs
parents:
diff changeset
  1674
    // close file handle and file server session
hgs
parents:
diff changeset
  1675
    effectFile.Close();
hgs
parents:
diff changeset
  1676
    rfs.Close();
hgs
parents:
diff changeset
  1677
hgs
parents:
diff changeset
  1678
    // load data to haptics
hgs
parents:
diff changeset
  1679
    TInt IVTFileHandle = 0;
hgs
parents:
diff changeset
  1680
    TInt err = iHaptics->LoadEffectData( *IVTDataBuffer, IVTFileHandle );
hgs
parents:
diff changeset
  1681
hgs
parents:
diff changeset
  1682
    if ( err )
hgs
parents:
diff changeset
  1683
        {
hgs
parents:
diff changeset
  1684
        CleanupStack::PopAndDestroy( IVTDataBuffer ); 
hgs
parents:
diff changeset
  1685
        
hgs
parents:
diff changeset
  1686
        if ( err == KErrAlreadyExists )
hgs
parents:
diff changeset
  1687
            {
hgs
parents:
diff changeset
  1688
            iAppView->InsertOutput( _L("IVT-data already loaded!") );
hgs
parents:
diff changeset
  1689
            }
hgs
parents:
diff changeset
  1690
        else
hgs
parents:
diff changeset
  1691
            {
hgs
parents:
diff changeset
  1692
            iAppView->InsertOutput( _L("Error loading IVT-data!") );
hgs
parents:
diff changeset
  1693
            }
hgs
parents:
diff changeset
  1694
        }
hgs
parents:
diff changeset
  1695
    else
hgs
parents:
diff changeset
  1696
        {
hgs
parents:
diff changeset
  1697
        TInt count;
hgs
parents:
diff changeset
  1698
        iHaptics->GetEffectCount( IVTFileHandle, count );
hgs
parents:
diff changeset
  1699
hgs
parents:
diff changeset
  1700
        TLoadedIVTFileItem newItem;
hgs
parents:
diff changeset
  1701
        newItem.iFileName.Copy( aFile );
hgs
parents:
diff changeset
  1702
        newItem.iFileHandle = IVTFileHandle;
hgs
parents:
diff changeset
  1703
        newItem.iDataBuffer = IVTDataBuffer;
hgs
parents:
diff changeset
  1704
        if ( KErrNotFound == iLoadedIVTFileArray.Find( newItem, TIdentityRelation<TLoadedIVTFileItem>( TLoadedIVTFileItem::Match ) ) )
hgs
parents:
diff changeset
  1705
            {
hgs
parents:
diff changeset
  1706
            iLoadedIVTFileArray.AppendL( newItem );
hgs
parents:
diff changeset
  1707
            CleanupStack::Pop( IVTDataBuffer ); // ownership now in the array
hgs
parents:
diff changeset
  1708
            TBuf<24> handleBuf;
hgs
parents:
diff changeset
  1709
            handleBuf.AppendNum( IVTFileHandle );
hgs
parents:
diff changeset
  1710
            iAppView->InsertOutput( _L("IVT-data loaded succesfully!") );
hgs
parents:
diff changeset
  1711
            iAppView->InsertOutput( _L("    File: "), EFalse );
hgs
parents:
diff changeset
  1712
            iAppView->InsertOutput( aFile );
hgs
parents:
diff changeset
  1713
            iAppView->InsertOutput( _L("    FileHandle: "), EFalse );
hgs
parents:
diff changeset
  1714
            iAppView->InsertOutput( handleBuf, EFalse );
hgs
parents:
diff changeset
  1715
            }
hgs
parents:
diff changeset
  1716
        else
hgs
parents:
diff changeset
  1717
            {
hgs
parents:
diff changeset
  1718
            CleanupStack::PopAndDestroy( IVTDataBuffer ); 
hgs
parents:
diff changeset
  1719
            iAppView->InsertOutput( _L("IVT-data already loaded!") );
hgs
parents:
diff changeset
  1720
            iAppView->InsertOutput( _L("    File: "), EFalse );
hgs
parents:
diff changeset
  1721
            iAppView->InsertOutput( aFile ); 
hgs
parents:
diff changeset
  1722
            }    
hgs
parents:
diff changeset
  1723
        iAppView->InsertOutput( _L("    Effect count: "), EFalse );
hgs
parents:
diff changeset
  1724
        TBuf<5> countBuf;
hgs
parents:
diff changeset
  1725
        countBuf.AppendNum( count );
hgs
parents:
diff changeset
  1726
        iAppView->InsertOutput( countBuf );
hgs
parents:
diff changeset
  1727
        }
hgs
parents:
diff changeset
  1728
    }
hgs
parents:
diff changeset
  1729
hgs
parents:
diff changeset
  1730
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1731
// Plays the effect of the given index in the currently
hgs
parents:
diff changeset
  1732
// loaded IVT-file.
hgs
parents:
diff changeset
  1733
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1734
//
hgs
parents:
diff changeset
  1735
void CHapticsTestAppUi::PlayEffect( TInt aIndex )
hgs
parents:
diff changeset
  1736
    {
hgs
parents:
diff changeset
  1737
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1738
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  1739
    TBool usingAsyncSender( EFalse );
hgs
parents:
diff changeset
  1740
    
hgs
parents:
diff changeset
  1741
    if ( iSynchronous )
hgs
parents:
diff changeset
  1742
        {
hgs
parents:
diff changeset
  1743
        iAppView->InsertOutput( _L("Playing effect synchronously...") );
hgs
parents:
diff changeset
  1744
        if ( iUseHandle )
hgs
parents:
diff changeset
  1745
            {
hgs
parents:
diff changeset
  1746
            err = iHaptics->PlayEffect( iIVTFileHandle,
hgs
parents:
diff changeset
  1747
                                        aIndex, iEffectHandle );
hgs
parents:
diff changeset
  1748
            }
hgs
parents:
diff changeset
  1749
        else
hgs
parents:
diff changeset
  1750
            {
hgs
parents:
diff changeset
  1751
            err = iHaptics->PlayEffect( *iIVTDataBuffer,
hgs
parents:
diff changeset
  1752
                                        aIndex, iEffectHandle );
hgs
parents:
diff changeset
  1753
            }
hgs
parents:
diff changeset
  1754
        }
hgs
parents:
diff changeset
  1755
    else
hgs
parents:
diff changeset
  1756
        {
hgs
parents:
diff changeset
  1757
        iAppView->InsertOutput( _L("Playing effect asynchronously...") );
hgs
parents:
diff changeset
  1758
        
hgs
parents:
diff changeset
  1759
        if ( iUseHandle )
hgs
parents:
diff changeset
  1760
            {
hgs
parents:
diff changeset
  1761
            usingAsyncSender = ETrue;
hgs
parents:
diff changeset
  1762
            iAsyncPlaySender->Play( iHaptics, iIVTFileHandle, 
hgs
parents:
diff changeset
  1763
                                    aIndex, iEffectHandle );
hgs
parents:
diff changeset
  1764
            }
hgs
parents:
diff changeset
  1765
        else
hgs
parents:
diff changeset
  1766
            {
hgs
parents:
diff changeset
  1767
            TRequestStatus status;
hgs
parents:
diff changeset
  1768
            iHaptics->PlayEffect( *iIVTDataBuffer,
hgs
parents:
diff changeset
  1769
                                  aIndex, iEffectHandle, status );
hgs
parents:
diff changeset
  1770
            User::WaitForRequest( status );
hgs
parents:
diff changeset
  1771
            err = status.Int();                      
hgs
parents:
diff changeset
  1772
            }    
hgs
parents:
diff changeset
  1773
        }
hgs
parents:
diff changeset
  1774
        
hgs
parents:
diff changeset
  1775
    if ( !usingAsyncSender )
hgs
parents:
diff changeset
  1776
        {
hgs
parents:
diff changeset
  1777
        // print error/success
hgs
parents:
diff changeset
  1778
        PrintPlayEffectStatus( err );
hgs
parents:
diff changeset
  1779
        GetCurrentEffectState();
hgs
parents:
diff changeset
  1780
hgs
parents:
diff changeset
  1781
        // if effect played successfully, add history data
hgs
parents:
diff changeset
  1782
        if ( !err )
hgs
parents:
diff changeset
  1783
            {
hgs
parents:
diff changeset
  1784
            iEffectData->AddEffectInfo( iEffectHandle, iIVTFileHandle, aIndex );
hgs
parents:
diff changeset
  1785
            }
hgs
parents:
diff changeset
  1786
        }
hgs
parents:
diff changeset
  1787
    }
hgs
parents:
diff changeset
  1788
hgs
parents:
diff changeset
  1789
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1790
// Plays the effect of the given index in the currently
hgs
parents:
diff changeset
  1791
// loaded IVT-file repeatedly
hgs
parents:
diff changeset
  1792
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1793
//
hgs
parents:
diff changeset
  1794
void CHapticsTestAppUi::RepeatEffect( TInt aIndex, TInt aRepeats )
hgs
parents:
diff changeset
  1795
    {
hgs
parents:
diff changeset
  1796
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1797
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  1798
    TBool usingAsyncSender( EFalse );
hgs
parents:
diff changeset
  1799
    
hgs
parents:
diff changeset
  1800
    if ( iSynchronous )
hgs
parents:
diff changeset
  1801
        {
hgs
parents:
diff changeset
  1802
        _LIT( KInsertedText, "Playing Repeat %d times synchronously..." );
hgs
parents:
diff changeset
  1803
        TBuf<50> buf;
hgs
parents:
diff changeset
  1804
        buf.Format( KInsertedText, aRepeats );
hgs
parents:
diff changeset
  1805
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  1806
        
hgs
parents:
diff changeset
  1807
        if ( iUseHandle )
hgs
parents:
diff changeset
  1808
            {
hgs
parents:
diff changeset
  1809
            err = iHaptics->PlayEffectRepeat( iIVTFileHandle,
hgs
parents:
diff changeset
  1810
                                              aIndex, aRepeats, iEffectHandle );
hgs
parents:
diff changeset
  1811
            }
hgs
parents:
diff changeset
  1812
        else
hgs
parents:
diff changeset
  1813
            {
hgs
parents:
diff changeset
  1814
            err = iHaptics->PlayEffectRepeat( *iIVTDataBuffer,
hgs
parents:
diff changeset
  1815
                                              aIndex, aRepeats, iEffectHandle );
hgs
parents:
diff changeset
  1816
            }
hgs
parents:
diff changeset
  1817
        }
hgs
parents:
diff changeset
  1818
    else
hgs
parents:
diff changeset
  1819
        {
hgs
parents:
diff changeset
  1820
        _LIT( KInsertedText, "Playing Repeat %d times asynchronously..." );
hgs
parents:
diff changeset
  1821
        TBuf<50> buf;
hgs
parents:
diff changeset
  1822
        buf.Format( KInsertedText, aRepeats );
hgs
parents:
diff changeset
  1823
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  1824
hgs
parents:
diff changeset
  1825
        if ( iUseHandle )
hgs
parents:
diff changeset
  1826
            {            
hgs
parents:
diff changeset
  1827
            usingAsyncSender = ETrue;
hgs
parents:
diff changeset
  1828
            iAsyncPlaySender->PlayRepeat( iHaptics,
hgs
parents:
diff changeset
  1829
                                          iIVTFileHandle,
hgs
parents:
diff changeset
  1830
                                          aIndex, 
hgs
parents:
diff changeset
  1831
                                          aRepeats, 
hgs
parents:
diff changeset
  1832
                                          iEffectHandle );
hgs
parents:
diff changeset
  1833
            }
hgs
parents:
diff changeset
  1834
        else
hgs
parents:
diff changeset
  1835
            {
hgs
parents:
diff changeset
  1836
            TRequestStatus status;
hgs
parents:
diff changeset
  1837
            iHaptics->PlayEffectRepeat( *iIVTDataBuffer,
hgs
parents:
diff changeset
  1838
                                        aIndex, aRepeats, iEffectHandle, status );
hgs
parents:
diff changeset
  1839
            User::WaitForRequest( status );
hgs
parents:
diff changeset
  1840
            err = status.Int();             
hgs
parents:
diff changeset
  1841
            }    
hgs
parents:
diff changeset
  1842
        }    
hgs
parents:
diff changeset
  1843
hgs
parents:
diff changeset
  1844
    if ( !usingAsyncSender )
hgs
parents:
diff changeset
  1845
        {
hgs
parents:
diff changeset
  1846
        // print error/success
hgs
parents:
diff changeset
  1847
        PrintPlayEffectStatus( err );
hgs
parents:
diff changeset
  1848
        GetCurrentEffectState();
hgs
parents:
diff changeset
  1849
hgs
parents:
diff changeset
  1850
        // if effect played successfully, add history data
hgs
parents:
diff changeset
  1851
        if ( !err )
hgs
parents:
diff changeset
  1852
            {
hgs
parents:
diff changeset
  1853
            iEffectData->AddEffectInfo( iEffectHandle, iIVTFileHandle, aIndex );
hgs
parents:
diff changeset
  1854
            }
hgs
parents:
diff changeset
  1855
        }
hgs
parents:
diff changeset
  1856
    }
hgs
parents:
diff changeset
  1857
hgs
parents:
diff changeset
  1858
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1859
// Plays a magsweep effect using manual definition.
hgs
parents:
diff changeset
  1860
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1861
//
hgs
parents:
diff changeset
  1862
void CHapticsTestAppUi::PlayMagSweepL( TBool aInfinite, TBool aModifiable )
hgs
parents:
diff changeset
  1863
    {
hgs
parents:
diff changeset
  1864
    // construct default magsweep data
hgs
parents:
diff changeset
  1865
    CHWRMHaptics::THWRMHapticsMagSweepEffect magsweep;
hgs
parents:
diff changeset
  1866
    iEffectData->FillDefaultMagSweepData( magsweep, aInfinite, 
hgs
parents:
diff changeset
  1867
                                          aModifiable, iHaptics );
hgs
parents:
diff changeset
  1868
    
hgs
parents:
diff changeset
  1869
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1870
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  1871
    
hgs
parents:
diff changeset
  1872
    if ( iSynchronous )
hgs
parents:
diff changeset
  1873
        {
hgs
parents:
diff changeset
  1874
        iAppView->InsertOutput( _L("Playing MagSweep synchronously...") );
hgs
parents:
diff changeset
  1875
hgs
parents:
diff changeset
  1876
        // synchronous call
hgs
parents:
diff changeset
  1877
        err = iHaptics->PlayMagSweepEffect( magsweep, iEffectHandle );
hgs
parents:
diff changeset
  1878
        }
hgs
parents:
diff changeset
  1879
    else
hgs
parents:
diff changeset
  1880
        {
hgs
parents:
diff changeset
  1881
        iAppView->InsertOutput( _L("Playing MagSweep asynchronously...") );
hgs
parents:
diff changeset
  1882
hgs
parents:
diff changeset
  1883
        // asynchronous call
hgs
parents:
diff changeset
  1884
        TRequestStatus status;
hgs
parents:
diff changeset
  1885
        iHaptics->PlayMagSweepEffect( magsweep, iEffectHandle,
hgs
parents:
diff changeset
  1886
                                      status );
hgs
parents:
diff changeset
  1887
        User::WaitForRequest( status );
hgs
parents:
diff changeset
  1888
        err = status.Int();
hgs
parents:
diff changeset
  1889
        }
hgs
parents:
diff changeset
  1890
hgs
parents:
diff changeset
  1891
    // print error/success
hgs
parents:
diff changeset
  1892
    PrintPlayEffectStatus( err );
hgs
parents:
diff changeset
  1893
    GetCurrentEffectState();
hgs
parents:
diff changeset
  1894
hgs
parents:
diff changeset
  1895
    // if effect played successfully, add history data
hgs
parents:
diff changeset
  1896
    if ( !err )
hgs
parents:
diff changeset
  1897
        {
hgs
parents:
diff changeset
  1898
        iEffectData->AddEffectInfo( iEffectHandle );
hgs
parents:
diff changeset
  1899
        iEffectData->ResetModifiableMagSweepEffectL( magsweep, iEffectHandle,
hgs
parents:
diff changeset
  1900
                                                     iHaptics );
hgs
parents:
diff changeset
  1901
hgs
parents:
diff changeset
  1902
        // if this effect should be auto-modifiable, reset modification timer
hgs
parents:
diff changeset
  1903
        if ( aModifiable )
hgs
parents:
diff changeset
  1904
            {
hgs
parents:
diff changeset
  1905
            iEffectData->StartModifiableEffectTimerL( ModifyPlayingEffect );
hgs
parents:
diff changeset
  1906
            }
hgs
parents:
diff changeset
  1907
        }
hgs
parents:
diff changeset
  1908
    }
hgs
parents:
diff changeset
  1909
hgs
parents:
diff changeset
  1910
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1911
// Plays a periodic effect using manual definition.
hgs
parents:
diff changeset
  1912
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1913
//
hgs
parents:
diff changeset
  1914
void CHapticsTestAppUi::PlayPeriodicL( TBool aInfinite, TBool aModifiable )
hgs
parents:
diff changeset
  1915
    {
hgs
parents:
diff changeset
  1916
    // construct default periodic data
hgs
parents:
diff changeset
  1917
    CHWRMHaptics::THWRMHapticsPeriodicEffect periodic;
hgs
parents:
diff changeset
  1918
    iEffectData->FillDefaultPeriodicData( periodic, aInfinite, 
hgs
parents:
diff changeset
  1919
                                          aModifiable, iHaptics );
hgs
parents:
diff changeset
  1920
hgs
parents:
diff changeset
  1921
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1922
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  1923
    
hgs
parents:
diff changeset
  1924
    if ( iSynchronous )
hgs
parents:
diff changeset
  1925
        {
hgs
parents:
diff changeset
  1926
        iAppView->InsertOutput( _L("Playing Periodic synchronously...") );
hgs
parents:
diff changeset
  1927
hgs
parents:
diff changeset
  1928
        // synchronous call
hgs
parents:
diff changeset
  1929
        err = iHaptics->PlayPeriodicEffect( periodic, iEffectHandle );
hgs
parents:
diff changeset
  1930
        }
hgs
parents:
diff changeset
  1931
    else
hgs
parents:
diff changeset
  1932
        {
hgs
parents:
diff changeset
  1933
        iAppView->InsertOutput( _L("Playing Periodic asynchronously...") );
hgs
parents:
diff changeset
  1934
hgs
parents:
diff changeset
  1935
        // asynchronous call
hgs
parents:
diff changeset
  1936
        TRequestStatus status;
hgs
parents:
diff changeset
  1937
        iHaptics->PlayPeriodicEffect( periodic, iEffectHandle,
hgs
parents:
diff changeset
  1938
                                      status );
hgs
parents:
diff changeset
  1939
        User::WaitForRequest( status );
hgs
parents:
diff changeset
  1940
        err = status.Int();
hgs
parents:
diff changeset
  1941
        }
hgs
parents:
diff changeset
  1942
hgs
parents:
diff changeset
  1943
    // print error/success
hgs
parents:
diff changeset
  1944
    PrintPlayEffectStatus( err );
hgs
parents:
diff changeset
  1945
    GetCurrentEffectState();
hgs
parents:
diff changeset
  1946
hgs
parents:
diff changeset
  1947
    // if effect played successfully, add history data
hgs
parents:
diff changeset
  1948
    if ( !err )
hgs
parents:
diff changeset
  1949
        {
hgs
parents:
diff changeset
  1950
        iEffectData->AddEffectInfo( iEffectHandle );
hgs
parents:
diff changeset
  1951
        iEffectData->ResetModifiablePeriodicEffectL( periodic, iEffectHandle,
hgs
parents:
diff changeset
  1952
                                                     iHaptics );
hgs
parents:
diff changeset
  1953
        
hgs
parents:
diff changeset
  1954
        // if this effect should be auto-modifiable, reset modification timer
hgs
parents:
diff changeset
  1955
        if ( aModifiable )
hgs
parents:
diff changeset
  1956
            {
hgs
parents:
diff changeset
  1957
            iEffectData->StartModifiableEffectTimerL( ModifyPlayingEffect );
hgs
parents:
diff changeset
  1958
            }
hgs
parents:
diff changeset
  1959
        }
hgs
parents:
diff changeset
  1960
    }
hgs
parents:
diff changeset
  1961
hgs
parents:
diff changeset
  1962
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1963
// Plays repeatedly a timeline effect using manual definition.
hgs
parents:
diff changeset
  1964
// ---------------------------------------------------------
hgs
parents:
diff changeset
  1965
//
hgs
parents:
diff changeset
  1966
void CHapticsTestAppUi::PlayRepeatL( TInt aRepeats )
hgs
parents:
diff changeset
  1967
    {
hgs
parents:
diff changeset
  1968
    TInt err = KErrNone;
hgs
parents:
diff changeset
  1969
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  1970
    
hgs
parents:
diff changeset
  1971
    // This is a simple effect (just plays magsweep type thingie for a second)
hgs
parents:
diff changeset
  1972
    // produced from VibeStudio (export to C-file functionality there..)
hgs
parents:
diff changeset
  1973
    static const TUint8 simpleTimelineEffect[] = 
hgs
parents:
diff changeset
  1974
        {  
hgs
parents:
diff changeset
  1975
        0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x28, 0x00, 0x00, 0x00, 
hgs
parents:
diff changeset
  1976
        0x07, 0x00, 0xf1, 0xe0, 0x01, 0xe2, 0x00, 0x00, 0xff, 0x30, 
hgs
parents:
diff changeset
  1977
        0xc8, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x00, 
hgs
parents:
diff changeset
  1978
        0x00, 0x5f, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x12, 0x00, 
hgs
parents:
diff changeset
  1979
        0x54, 0x00, 0x69, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x6c, 0x00, 
hgs
parents:
diff changeset
  1980
        0x69, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4d, 0x00, 
hgs
parents:
diff changeset
  1981
        0x61, 0x00, 0x67, 0x00, 0x53, 0x00, 0x77, 0x00, 0x65, 0x00, 
hgs
parents:
diff changeset
  1982
        0x65, 0x00, 0x70, 0x00, 0x00, 0x00
hgs
parents:
diff changeset
  1983
        };
hgs
parents:
diff changeset
  1984
        
hgs
parents:
diff changeset
  1985
    RBuf8 effectBuffer;
hgs
parents:
diff changeset
  1986
    CleanupClosePushL( effectBuffer );
hgs
parents:
diff changeset
  1987
    effectBuffer.ReAlloc( sizeof( simpleTimelineEffect ) );
hgs
parents:
diff changeset
  1988
    TUint8* tmpPtr = const_cast<TUint8*>( effectBuffer.Ptr() );
hgs
parents:
diff changeset
  1989
    memcpy( tmpPtr, simpleTimelineEffect, sizeof ( simpleTimelineEffect ) );
hgs
parents:
diff changeset
  1990
    effectBuffer.SetLength( sizeof ( simpleTimelineEffect ) );
hgs
parents:
diff changeset
  1991
    
hgs
parents:
diff changeset
  1992
    if ( iSynchronous )
hgs
parents:
diff changeset
  1993
        {
hgs
parents:
diff changeset
  1994
        _LIT( KInsertedText, "Playing Repeat %d times synchronously..." );
hgs
parents:
diff changeset
  1995
        TBuf<50> buf;
hgs
parents:
diff changeset
  1996
        buf.Format( KInsertedText, aRepeats );
hgs
parents:
diff changeset
  1997
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  1998
    
hgs
parents:
diff changeset
  1999
        err = iHaptics->PlayEffectRepeat( effectBuffer, 0, aRepeats, iEffectHandle );
hgs
parents:
diff changeset
  2000
        }
hgs
parents:
diff changeset
  2001
    else
hgs
parents:
diff changeset
  2002
        {
hgs
parents:
diff changeset
  2003
        _LIT( KInsertedText, "Playing Repeat %d times asynchronously..." );
hgs
parents:
diff changeset
  2004
        TBuf<50> buf;
hgs
parents:
diff changeset
  2005
        buf.Format( KInsertedText, aRepeats );
hgs
parents:
diff changeset
  2006
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2007
hgs
parents:
diff changeset
  2008
        TRequestStatus status;
hgs
parents:
diff changeset
  2009
        iHaptics->PlayEffectRepeat( effectBuffer, 0, aRepeats, iEffectHandle, status );
hgs
parents:
diff changeset
  2010
        User::WaitForRequest( status );
hgs
parents:
diff changeset
  2011
        err = status.Int();
hgs
parents:
diff changeset
  2012
        }
hgs
parents:
diff changeset
  2013
hgs
parents:
diff changeset
  2014
    CleanupStack::PopAndDestroy(); // effectBuffer (closed here..)
hgs
parents:
diff changeset
  2015
    
hgs
parents:
diff changeset
  2016
    // print error/success
hgs
parents:
diff changeset
  2017
    PrintPlayEffectStatus( err );
hgs
parents:
diff changeset
  2018
    GetCurrentEffectState();
hgs
parents:
diff changeset
  2019
hgs
parents:
diff changeset
  2020
    // if effect played successfully, add history data
hgs
parents:
diff changeset
  2021
    if ( !err )
hgs
parents:
diff changeset
  2022
        {
hgs
parents:
diff changeset
  2023
        iEffectData->AddEffectInfo( iEffectHandle );
hgs
parents:
diff changeset
  2024
        }
hgs
parents:
diff changeset
  2025
    }
hgs
parents:
diff changeset
  2026
hgs
parents:
diff changeset
  2027
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2028
// Pauses the effect of the given index in the effect
hgs
parents:
diff changeset
  2029
// history data.
hgs
parents:
diff changeset
  2030
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2031
//
hgs
parents:
diff changeset
  2032
void CHapticsTestAppUi::PauseEffect( TInt aIndex )
hgs
parents:
diff changeset
  2033
    {
hgs
parents:
diff changeset
  2034
    // get effect handle
hgs
parents:
diff changeset
  2035
    TInt effectHandle = iEffectData->EffectHandle(aIndex);
hgs
parents:
diff changeset
  2036
hgs
parents:
diff changeset
  2037
    // pause effect
hgs
parents:
diff changeset
  2038
    TInt err = iHaptics->PausePlayingEffect( effectHandle );
hgs
parents:
diff changeset
  2039
hgs
parents:
diff changeset
  2040
    if ( err )
hgs
parents:
diff changeset
  2041
        {
hgs
parents:
diff changeset
  2042
        TBuf<8> errBuf;
hgs
parents:
diff changeset
  2043
        errBuf.AppendNum( err );
hgs
parents:
diff changeset
  2044
        iAppView->InsertOutput( _L("Pausing effect failed, err = "), EFalse );
hgs
parents:
diff changeset
  2045
        iAppView->InsertOutput( errBuf );
hgs
parents:
diff changeset
  2046
        }
hgs
parents:
diff changeset
  2047
    else
hgs
parents:
diff changeset
  2048
        {
hgs
parents:
diff changeset
  2049
        iAppView->InsertOutput( _L("Pausing effect succeeded.") );
hgs
parents:
diff changeset
  2050
        }
hgs
parents:
diff changeset
  2051
    }
hgs
parents:
diff changeset
  2052
hgs
parents:
diff changeset
  2053
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2054
// Resumes the effect of the given index in the effect
hgs
parents:
diff changeset
  2055
// history data.
hgs
parents:
diff changeset
  2056
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2057
//
hgs
parents:
diff changeset
  2058
void CHapticsTestAppUi::ResumeEffect( TInt aIndex )
hgs
parents:
diff changeset
  2059
    {
hgs
parents:
diff changeset
  2060
    // get effect handle
hgs
parents:
diff changeset
  2061
    TInt effectHandle = iEffectData->EffectHandle(aIndex);
hgs
parents:
diff changeset
  2062
hgs
parents:
diff changeset
  2063
    // resume effect
hgs
parents:
diff changeset
  2064
    TInt err = iHaptics->ResumePausedEffect( effectHandle );
hgs
parents:
diff changeset
  2065
hgs
parents:
diff changeset
  2066
    if ( err )
hgs
parents:
diff changeset
  2067
        {
hgs
parents:
diff changeset
  2068
        TBuf<8> errBuf;
hgs
parents:
diff changeset
  2069
        errBuf.AppendNum( err );
hgs
parents:
diff changeset
  2070
        iAppView->InsertOutput( _L("Resuming effect failed, err = "), EFalse );
hgs
parents:
diff changeset
  2071
        iAppView->InsertOutput( errBuf );
hgs
parents:
diff changeset
  2072
        }
hgs
parents:
diff changeset
  2073
    else
hgs
parents:
diff changeset
  2074
        {
hgs
parents:
diff changeset
  2075
        iAppView->InsertOutput( _L("Resuming effect succeeded.") );
hgs
parents:
diff changeset
  2076
        }
hgs
parents:
diff changeset
  2077
    }
hgs
parents:
diff changeset
  2078
hgs
parents:
diff changeset
  2079
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2080
// Stops the effect of the given index in the effect
hgs
parents:
diff changeset
  2081
// history data.
hgs
parents:
diff changeset
  2082
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2083
//
hgs
parents:
diff changeset
  2084
void CHapticsTestAppUi::StopEffect( TInt aIndex )
hgs
parents:
diff changeset
  2085
    {
hgs
parents:
diff changeset
  2086
    // get effect handle
hgs
parents:
diff changeset
  2087
    TInt effectHandle = iEffectData->EffectHandle(aIndex);
hgs
parents:
diff changeset
  2088
hgs
parents:
diff changeset
  2089
    // stop effect
hgs
parents:
diff changeset
  2090
    TInt err = iHaptics->StopPlayingEffect( effectHandle );
hgs
parents:
diff changeset
  2091
hgs
parents:
diff changeset
  2092
    if ( err )
hgs
parents:
diff changeset
  2093
        {
hgs
parents:
diff changeset
  2094
        TBuf<8> errBuf;
hgs
parents:
diff changeset
  2095
        errBuf.AppendNum( err );
hgs
parents:
diff changeset
  2096
        iAppView->InsertOutput( _L("Stopping effect failed, err = "), EFalse );
hgs
parents:
diff changeset
  2097
        iAppView->InsertOutput( errBuf );
hgs
parents:
diff changeset
  2098
        }
hgs
parents:
diff changeset
  2099
    else
hgs
parents:
diff changeset
  2100
        {
hgs
parents:
diff changeset
  2101
        iAppView->InsertOutput( _L("Stopping effect succeeded.") );
hgs
parents:
diff changeset
  2102
        }
hgs
parents:
diff changeset
  2103
    
hgs
parents:
diff changeset
  2104
    // stop auto-modify effect, if it is on
hgs
parents:
diff changeset
  2105
    iEffectData->ResetModifiableEffectTimer();
hgs
parents:
diff changeset
  2106
    }
hgs
parents:
diff changeset
  2107
hgs
parents:
diff changeset
  2108
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2109
// Deletes loaded IVT data
hgs
parents:
diff changeset
  2110
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2111
//
hgs
parents:
diff changeset
  2112
void CHapticsTestAppUi::DeleteLoadedIVTData( TInt aIndex )
hgs
parents:
diff changeset
  2113
    {
hgs
parents:
diff changeset
  2114
    if ( 0 > aIndex || aIndex >= iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
  2115
        {
hgs
parents:
diff changeset
  2116
        iAppView->InsertOutput( _L("Error: Delete index mismatch!") );
hgs
parents:
diff changeset
  2117
        return; 
hgs
parents:
diff changeset
  2118
        }
hgs
parents:
diff changeset
  2119
    
hgs
parents:
diff changeset
  2120
    TInt err = iHaptics->DeleteEffectData( iLoadedIVTFileArray[aIndex].iFileHandle );
hgs
parents:
diff changeset
  2121
    if ( KErrNone == err )
hgs
parents:
diff changeset
  2122
        {
hgs
parents:
diff changeset
  2123
        // delete effect history
hgs
parents:
diff changeset
  2124
        iEffectData->DeleteEffectInfo( iLoadedIVTFileArray[aIndex].iFileHandle );
hgs
parents:
diff changeset
  2125
        
hgs
parents:
diff changeset
  2126
        // delete ivt-data item
hgs
parents:
diff changeset
  2127
        if ( iLoadedIVTFileArray[aIndex].iDataBuffer )
hgs
parents:
diff changeset
  2128
            {
hgs
parents:
diff changeset
  2129
            delete iLoadedIVTFileArray[aIndex].iDataBuffer;
hgs
parents:
diff changeset
  2130
            }
hgs
parents:
diff changeset
  2131
hgs
parents:
diff changeset
  2132
        iLoadedIVTFileArray.Remove( aIndex );    
hgs
parents:
diff changeset
  2133
        
hgs
parents:
diff changeset
  2134
        iAppView->InsertOutput( _L("IVT data deletion succeeded") );
hgs
parents:
diff changeset
  2135
        }
hgs
parents:
diff changeset
  2136
    else
hgs
parents:
diff changeset
  2137
        {
hgs
parents:
diff changeset
  2138
        _LIT( KInsertedText, "IVT data deletion failed: %d" );
hgs
parents:
diff changeset
  2139
        TBuf<80> buf;
hgs
parents:
diff changeset
  2140
        buf.Format( KInsertedText, err );
hgs
parents:
diff changeset
  2141
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2142
        }
hgs
parents:
diff changeset
  2143
    }
hgs
parents:
diff changeset
  2144
hgs
parents:
diff changeset
  2145
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2146
// Deletes all loaded IVT datas
hgs
parents:
diff changeset
  2147
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2148
//
hgs
parents:
diff changeset
  2149
void CHapticsTestAppUi::DeleteAllLoadedIVTData()
hgs
parents:
diff changeset
  2150
    {
hgs
parents:
diff changeset
  2151
    iAppView->InsertOutput( _L("Deleting all loaded IVT datas.") );
hgs
parents:
diff changeset
  2152
    
hgs
parents:
diff changeset
  2153
    TInt err = iHaptics->DeleteAllEffectData();
hgs
parents:
diff changeset
  2154
    
hgs
parents:
diff changeset
  2155
    if ( KErrNone == err )
hgs
parents:
diff changeset
  2156
        {
hgs
parents:
diff changeset
  2157
        iAppView->InsertOutput( _L("All IVT data deletion succeeded") );
hgs
parents:
diff changeset
  2158
        
hgs
parents:
diff changeset
  2159
        while ( iLoadedIVTFileArray.Count() )
hgs
parents:
diff changeset
  2160
            {
hgs
parents:
diff changeset
  2161
            // delete effect history
hgs
parents:
diff changeset
  2162
            iEffectData->DeleteEffectInfo( iLoadedIVTFileArray[0].iFileHandle );
hgs
parents:
diff changeset
  2163
hgs
parents:
diff changeset
  2164
            // delete ivt-data item
hgs
parents:
diff changeset
  2165
            if ( iLoadedIVTFileArray[0].iDataBuffer )
hgs
parents:
diff changeset
  2166
                {
hgs
parents:
diff changeset
  2167
                delete iLoadedIVTFileArray[0].iDataBuffer;
hgs
parents:
diff changeset
  2168
                }
hgs
parents:
diff changeset
  2169
            
hgs
parents:
diff changeset
  2170
            iLoadedIVTFileArray.Remove( 0 );
hgs
parents:
diff changeset
  2171
            }
hgs
parents:
diff changeset
  2172
        }
hgs
parents:
diff changeset
  2173
    else
hgs
parents:
diff changeset
  2174
        {
hgs
parents:
diff changeset
  2175
        _LIT( KInsertedText, "All IVT data deletion failed: %d" );
hgs
parents:
diff changeset
  2176
        TBuf<80> buf;
hgs
parents:
diff changeset
  2177
        buf.Format( KInsertedText, err );
hgs
parents:
diff changeset
  2178
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2179
        }
hgs
parents:
diff changeset
  2180
    }
hgs
parents:
diff changeset
  2181
hgs
parents:
diff changeset
  2182
hgs
parents:
diff changeset
  2183
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2184
// Fetches the current state of the last played effect 
hgs
parents:
diff changeset
  2185
// (iEffectHandle), and prints the result to the UI.
hgs
parents:
diff changeset
  2186
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2187
//
hgs
parents:
diff changeset
  2188
void CHapticsTestAppUi::GetCurrentEffectState()
hgs
parents:
diff changeset
  2189
    {
hgs
parents:
diff changeset
  2190
    TInt effectState = KErrNotFound;
hgs
parents:
diff changeset
  2191
    TInt err = iHaptics->GetEffectState( iEffectHandle, effectState );
hgs
parents:
diff changeset
  2192
hgs
parents:
diff changeset
  2193
    if ( err )
hgs
parents:
diff changeset
  2194
        {
hgs
parents:
diff changeset
  2195
        TBuf<16> errCode;
hgs
parents:
diff changeset
  2196
        errCode.AppendNum( err );
hgs
parents:
diff changeset
  2197
        iAppView->InsertOutput( _L("    Fetching effect state failed! Err: "), EFalse );
hgs
parents:
diff changeset
  2198
        iAppView->InsertOutput( errCode );
hgs
parents:
diff changeset
  2199
        }
hgs
parents:
diff changeset
  2200
    else
hgs
parents:
diff changeset
  2201
        {
hgs
parents:
diff changeset
  2202
        TBuf<16> stateBuf;
hgs
parents:
diff changeset
  2203
        
hgs
parents:
diff changeset
  2204
        switch ( effectState )
hgs
parents:
diff changeset
  2205
            {
hgs
parents:
diff changeset
  2206
            case CHWRMHaptics::EHWRMHapticsEffectNotPlaying:
hgs
parents:
diff changeset
  2207
                stateBuf.Append( _L("Not playing.") );
hgs
parents:
diff changeset
  2208
                break;
hgs
parents:
diff changeset
  2209
            case CHWRMHaptics::EHWRMHapticsEffectPlaying:
hgs
parents:
diff changeset
  2210
                stateBuf.Append( _L("Playing.") );
hgs
parents:
diff changeset
  2211
                break;
hgs
parents:
diff changeset
  2212
            case CHWRMHaptics::EHWRMHapticsEffectPaused:
hgs
parents:
diff changeset
  2213
                stateBuf.Append( _L("Paused.") );
hgs
parents:
diff changeset
  2214
                break;
hgs
parents:
diff changeset
  2215
            default:
hgs
parents:
diff changeset
  2216
                stateBuf.Append( _L("Unknown!") );
hgs
parents:
diff changeset
  2217
                break;
hgs
parents:
diff changeset
  2218
            }
hgs
parents:
diff changeset
  2219
        
hgs
parents:
diff changeset
  2220
        iAppView->InsertOutput( _L("    Effect state: "), EFalse );
hgs
parents:
diff changeset
  2221
        iAppView->InsertOutput( stateBuf );
hgs
parents:
diff changeset
  2222
        }
hgs
parents:
diff changeset
  2223
    }
hgs
parents:
diff changeset
  2224
hgs
parents:
diff changeset
  2225
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2226
// Prints the status of a "play effect".
hgs
parents:
diff changeset
  2227
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2228
//
hgs
parents:
diff changeset
  2229
void CHapticsTestAppUi::PrintPlayEffectStatus( TInt aErrorCode ) const
hgs
parents:
diff changeset
  2230
    {
hgs
parents:
diff changeset
  2231
    if ( aErrorCode )
hgs
parents:
diff changeset
  2232
        {
hgs
parents:
diff changeset
  2233
        TBuf<16> errCode;
hgs
parents:
diff changeset
  2234
        errCode.AppendNum( aErrorCode );
hgs
parents:
diff changeset
  2235
        iAppView->InsertOutput( _L("Playing effect failed! Err: "), EFalse );
hgs
parents:
diff changeset
  2236
        iAppView->InsertOutput( errCode );
hgs
parents:
diff changeset
  2237
        }
hgs
parents:
diff changeset
  2238
    else
hgs
parents:
diff changeset
  2239
        {
hgs
parents:
diff changeset
  2240
        TBuf<16> handleBuf;
hgs
parents:
diff changeset
  2241
        handleBuf.AppendNum( iEffectHandle );
hgs
parents:
diff changeset
  2242
        iAppView->InsertOutput( _L("Played effect successfully!") );
hgs
parents:
diff changeset
  2243
        iAppView->InsertOutput( _L("    Effect handle: "), EFalse );
hgs
parents:
diff changeset
  2244
        iAppView->InsertOutput( handleBuf );
hgs
parents:
diff changeset
  2245
        }
hgs
parents:
diff changeset
  2246
    }
hgs
parents:
diff changeset
  2247
hgs
parents:
diff changeset
  2248
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2249
// Queries user how many repeats to have in case of playing
hgs
parents:
diff changeset
  2250
// some effect repeatedly.
hgs
parents:
diff changeset
  2251
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2252
// 
hgs
parents:
diff changeset
  2253
TInt CHapticsTestAppUi::GetNumberOfRepeats()
hgs
parents:
diff changeset
  2254
    {
hgs
parents:
diff changeset
  2255
    TInt repeatsIndex;
hgs
parents:
diff changeset
  2256
    TInt retVal = 2; // default is 2 repeats
hgs
parents:
diff changeset
  2257
    
hgs
parents:
diff changeset
  2258
    // Uses non-leavable new for CAknListQueryDialog construction
hgs
parents:
diff changeset
  2259
    CAknListQueryDialog* query = new CAknListQueryDialog( &repeatsIndex );
hgs
parents:
diff changeset
  2260
hgs
parents:
diff changeset
  2261
    if ( query )
hgs
parents:
diff changeset
  2262
        {
hgs
parents:
diff changeset
  2263
        query->PrepareLC( R_HAPTICS_REPEATEFFECT_REPEATS_QUERY );
hgs
parents:
diff changeset
  2264
    
hgs
parents:
diff changeset
  2265
        if ( query->RunLD() )
hgs
parents:
diff changeset
  2266
            {
hgs
parents:
diff changeset
  2267
            switch ( repeatsIndex )
hgs
parents:
diff changeset
  2268
                {
hgs
parents:
diff changeset
  2269
                case 0:
hgs
parents:
diff changeset
  2270
                    retVal = 0;   
hgs
parents:
diff changeset
  2271
                    break;
hgs
parents:
diff changeset
  2272
                case 1:
hgs
parents:
diff changeset
  2273
                    retVal = 1;   
hgs
parents:
diff changeset
  2274
                    break;
hgs
parents:
diff changeset
  2275
                case 2:
hgs
parents:
diff changeset
  2276
                    retVal = 2;   
hgs
parents:
diff changeset
  2277
                    break;
hgs
parents:
diff changeset
  2278
                case 3:
hgs
parents:
diff changeset
  2279
                    retVal = 3;   
hgs
parents:
diff changeset
  2280
                    break;
hgs
parents:
diff changeset
  2281
                case 4:
hgs
parents:
diff changeset
  2282
                    retVal = 7;   
hgs
parents:
diff changeset
  2283
                    break;
hgs
parents:
diff changeset
  2284
                case 5:
hgs
parents:
diff changeset
  2285
                    retVal = iHaptics->InfiniteRepeat();
hgs
parents:
diff changeset
  2286
                    break;
hgs
parents:
diff changeset
  2287
                default:
hgs
parents:
diff changeset
  2288
                    break; // uses default (2) as return value
hgs
parents:
diff changeset
  2289
                };
hgs
parents:
diff changeset
  2290
            }
hgs
parents:
diff changeset
  2291
        }
hgs
parents:
diff changeset
  2292
    return retVal;    
hgs
parents:
diff changeset
  2293
    }
hgs
parents:
diff changeset
  2294
hgs
parents:
diff changeset
  2295
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2296
// Calculates the effect index from the submenu index.
hgs
parents:
diff changeset
  2297
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2298
// 
hgs
parents:
diff changeset
  2299
TInt CHapticsTestAppUi::CountFileHandleAndEffectIndex(TInt aSubmenuIndex)
hgs
parents:
diff changeset
  2300
    {
hgs
parents:
diff changeset
  2301
    TInt effectFileCount = iLoadedIVTFileArray.Count();
hgs
parents:
diff changeset
  2302
    TInt retVal = 0xFFFFFFFF;
hgs
parents:
diff changeset
  2303
    TInt totalRunningEffectCount = 0;
hgs
parents:
diff changeset
  2304
    TInt effectCountAfterPreviousFile = 0;
hgs
parents:
diff changeset
  2305
    
hgs
parents:
diff changeset
  2306
    for ( TInt i = 0; i < effectFileCount; ++i )
hgs
parents:
diff changeset
  2307
        {
hgs
parents:
diff changeset
  2308
        TInt effectsInThisFile = 0;
hgs
parents:
diff changeset
  2309
        iHaptics->GetEffectCount( iLoadedIVTFileArray[i].iFileHandle, effectsInThisFile );
hgs
parents:
diff changeset
  2310
        effectCountAfterPreviousFile = totalRunningEffectCount;
hgs
parents:
diff changeset
  2311
        totalRunningEffectCount += effectsInThisFile;
hgs
parents:
diff changeset
  2312
        if ( aSubmenuIndex < totalRunningEffectCount )
hgs
parents:
diff changeset
  2313
            {
hgs
parents:
diff changeset
  2314
            iIVTFileHandle = iLoadedIVTFileArray[i].iFileHandle;
hgs
parents:
diff changeset
  2315
            iIVTDataBuffer = iLoadedIVTFileArray[i].iDataBuffer;
hgs
parents:
diff changeset
  2316
            retVal = aSubmenuIndex - effectCountAfterPreviousFile;
hgs
parents:
diff changeset
  2317
            break;
hgs
parents:
diff changeset
  2318
            }
hgs
parents:
diff changeset
  2319
        }
hgs
parents:
diff changeset
  2320
    return retVal;    
hgs
parents:
diff changeset
  2321
    }
hgs
parents:
diff changeset
  2322
hgs
parents:
diff changeset
  2323
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2324
// Creates all submenu items for a play effect submenu.
hgs
parents:
diff changeset
  2325
// Fetches all the names of the effects from currently 
hgs
parents:
diff changeset
  2326
// loaded IVT-data.
hgs
parents:
diff changeset
  2327
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2328
//
hgs
parents:
diff changeset
  2329
void CHapticsTestAppUi::CreatePlayEffectSubmenuL( CEikMenuPane* aMenuPane, 
hgs
parents:
diff changeset
  2330
                                                  TInt aCommandId,
hgs
parents:
diff changeset
  2331
                                                  TInt aDimCommandId )
hgs
parents:
diff changeset
  2332
    {
hgs
parents:
diff changeset
  2333
    TInt loadedIVTFileCount = iLoadedIVTFileArray.Count();
hgs
parents:
diff changeset
  2334
    TBool dimmingNeeded = EFalse;
hgs
parents:
diff changeset
  2335
            
hgs
parents:
diff changeset
  2336
    if ( loadedIVTFileCount )
hgs
parents:
diff changeset
  2337
        {
hgs
parents:
diff changeset
  2338
        // make all effect names (in all loaded files) visible in the submenu
hgs
parents:
diff changeset
  2339
        CEikMenuPaneItem::SData data;
hgs
parents:
diff changeset
  2340
        for ( TInt j = 0; j < loadedIVTFileCount; ++j)
hgs
parents:
diff changeset
  2341
            {
hgs
parents:
diff changeset
  2342
            if ( iLoadedIVTFileArray[j].iDataBuffer )
hgs
parents:
diff changeset
  2343
                {
hgs
parents:
diff changeset
  2344
                TInt effectCount = 0;
hgs
parents:
diff changeset
  2345
                iHaptics->GetEffectCount( iLoadedIVTFileArray[j].iFileHandle, effectCount );
hgs
parents:
diff changeset
  2346
                HBufC8* tempBuf8 = HBufC8::New( iHaptics->MaxEffectNameLength() );
hgs
parents:
diff changeset
  2347
                TPtr8 effectName = tempBuf8->Des();
hgs
parents:
diff changeset
  2348
                for ( TInt i = 0; i < effectCount; ++i )
hgs
parents:
diff changeset
  2349
                    {
hgs
parents:
diff changeset
  2350
                    // fetch effect name
hgs
parents:
diff changeset
  2351
                    iHaptics->GetEffectName( iLoadedIVTFileArray[j].iFileHandle, i, effectName );
hgs
parents:
diff changeset
  2352
                
hgs
parents:
diff changeset
  2353
                    data.iText.Copy( effectName );
hgs
parents:
diff changeset
  2354
                    data.iCommandId = aCommandId;
hgs
parents:
diff changeset
  2355
                    data.iCascadeId = 0;
hgs
parents:
diff changeset
  2356
                    data.iFlags = 0;
hgs
parents:
diff changeset
  2357
                    data.iExtraText = KNullDesC;
hgs
parents:
diff changeset
  2358
                
hgs
parents:
diff changeset
  2359
                    aMenuPane->AddMenuItemL( data );
hgs
parents:
diff changeset
  2360
                    dimmingNeeded = ETrue;
hgs
parents:
diff changeset
  2361
                    }
hgs
parents:
diff changeset
  2362
                delete tempBuf8;
hgs
parents:
diff changeset
  2363
                }
hgs
parents:
diff changeset
  2364
            }
hgs
parents:
diff changeset
  2365
        }
hgs
parents:
diff changeset
  2366
    if ( dimmingNeeded )
hgs
parents:
diff changeset
  2367
        {
hgs
parents:
diff changeset
  2368
        // effects found in IVT-data, hide the "no effects" -item
hgs
parents:
diff changeset
  2369
        aMenuPane->SetItemDimmed( aDimCommandId, ETrue );
hgs
parents:
diff changeset
  2370
        }
hgs
parents:
diff changeset
  2371
    }
hgs
parents:
diff changeset
  2372
hgs
parents:
diff changeset
  2373
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2374
// Prints effect information got from getter functions
hgs
parents:
diff changeset
  2375
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2376
//
hgs
parents:
diff changeset
  2377
void CHapticsTestAppUi::PrintEffectInfo( TInt aIndex )
hgs
parents:
diff changeset
  2378
    {
hgs
parents:
diff changeset
  2379
    if ( iUseHandle && iShowEffectInfo )
hgs
parents:
diff changeset
  2380
        {
hgs
parents:
diff changeset
  2381
        TInt duration;
hgs
parents:
diff changeset
  2382
        iHaptics->GetEffectDuration( iIVTFileHandle,
hgs
parents:
diff changeset
  2383
                                                   aIndex,
hgs
parents:
diff changeset
  2384
                                                   duration );
hgs
parents:
diff changeset
  2385
hgs
parents:
diff changeset
  2386
        HBufC8* tempBuf8 = HBufC8::New( iHaptics->MaxEffectNameLength() );
hgs
parents:
diff changeset
  2387
        TPtr8 effectName = tempBuf8->Des();
hgs
parents:
diff changeset
  2388
hgs
parents:
diff changeset
  2389
        iHaptics->GetEffectName( iIVTFileHandle, aIndex, effectName );
hgs
parents:
diff changeset
  2390
        
hgs
parents:
diff changeset
  2391
        TInt effectIndex;
hgs
parents:
diff changeset
  2392
        iHaptics->GetEffectIndexFromName( iIVTFileHandle,
hgs
parents:
diff changeset
  2393
                                          effectName, 
hgs
parents:
diff changeset
  2394
                                          effectIndex );
hgs
parents:
diff changeset
  2395
hgs
parents:
diff changeset
  2396
        TInt type;
hgs
parents:
diff changeset
  2397
        iHaptics->GetEffectType( iIVTFileHandle, aIndex, type );
hgs
parents:
diff changeset
  2398
hgs
parents:
diff changeset
  2399
hgs
parents:
diff changeset
  2400
        HBufC* tempBuf16 = HBufC::New( iHaptics->MaxEffectNameLength() );
hgs
parents:
diff changeset
  2401
        TPtr buf = tempBuf16->Des();
hgs
parents:
diff changeset
  2402
        
hgs
parents:
diff changeset
  2403
        iAppView->InsertOutput( _L("    Effect name: "), EFalse );
hgs
parents:
diff changeset
  2404
        buf.Copy( effectName );
hgs
parents:
diff changeset
  2405
        iAppView->InsertOutput( buf, EFalse );
hgs
parents:
diff changeset
  2406
hgs
parents:
diff changeset
  2407
        buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2408
        buf.AppendNum( effectIndex );
hgs
parents:
diff changeset
  2409
        iAppView->InsertOutput( _L("    Idx: "), EFalse );
hgs
parents:
diff changeset
  2410
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2411
hgs
parents:
diff changeset
  2412
        buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2413
        buf.AppendNum( duration );
hgs
parents:
diff changeset
  2414
        iAppView->InsertOutput( _L("    Effect duration: "), EFalse );
hgs
parents:
diff changeset
  2415
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2416
hgs
parents:
diff changeset
  2417
        buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2418
        buf.AppendNum( type );
hgs
parents:
diff changeset
  2419
        iAppView->InsertOutput( _L("    Effect type: "), EFalse );
hgs
parents:
diff changeset
  2420
        iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2421
hgs
parents:
diff changeset
  2422
        if ( type == CHWRMHaptics::EHWRMHapticsTypeMagSweep )
hgs
parents:
diff changeset
  2423
            {
hgs
parents:
diff changeset
  2424
            CHWRMHaptics::THWRMHapticsMagSweepEffect def;
hgs
parents:
diff changeset
  2425
            iHaptics->GetMagSweepEffectDefinition( iIVTFileHandle,
hgs
parents:
diff changeset
  2426
                                                   aIndex,
hgs
parents:
diff changeset
  2427
                                                   def );
hgs
parents:
diff changeset
  2428
            iAppView->InsertOutput( _L("    MagSweep definition -> Duration:"), EFalse );
hgs
parents:
diff changeset
  2429
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2430
            buf.AppendNum( def.iDuration );
hgs
parents:
diff changeset
  2431
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2432
            iAppView->InsertOutput( _L("    MagSweep definition -> Magnitude: "), EFalse );
hgs
parents:
diff changeset
  2433
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2434
            buf.AppendNum( def.iMagnitude );
hgs
parents:
diff changeset
  2435
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2436
            iAppView->InsertOutput( _L("    MagSweep definition -> Style: "), EFalse );
hgs
parents:
diff changeset
  2437
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2438
            buf.AppendNum( def.iStyle );
hgs
parents:
diff changeset
  2439
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2440
            iAppView->InsertOutput( _L("    MagSweep definition -> Attack time: "), EFalse );
hgs
parents:
diff changeset
  2441
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2442
            buf.AppendNum( def.iAttackTime );
hgs
parents:
diff changeset
  2443
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2444
            iAppView->InsertOutput( _L("    MagSweep definition -> Attack level: "), EFalse );
hgs
parents:
diff changeset
  2445
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2446
            buf.AppendNum( def.iAttackLevel );
hgs
parents:
diff changeset
  2447
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2448
            iAppView->InsertOutput( _L("    MagSweep definition -> Fade time: "), EFalse );
hgs
parents:
diff changeset
  2449
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2450
            buf.AppendNum( def.iFadeTime );
hgs
parents:
diff changeset
  2451
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2452
            iAppView->InsertOutput( _L("    MagSweep definition -> Fade level: "), EFalse );
hgs
parents:
diff changeset
  2453
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2454
            buf.AppendNum( def.iFadeLevel );
hgs
parents:
diff changeset
  2455
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2456
            }
hgs
parents:
diff changeset
  2457
        else if ( type == CHWRMHaptics::EHWRMHapticsTypePeriodic )
hgs
parents:
diff changeset
  2458
            {
hgs
parents:
diff changeset
  2459
            CHWRMHaptics::THWRMHapticsPeriodicEffect def;
hgs
parents:
diff changeset
  2460
            iHaptics->GetPeriodicEffectDefinition( iIVTFileHandle,
hgs
parents:
diff changeset
  2461
                                                   aIndex,
hgs
parents:
diff changeset
  2462
                                                   def );
hgs
parents:
diff changeset
  2463
            iAppView->InsertOutput( _L("    Periodic definition -> Duration: "), EFalse );
hgs
parents:
diff changeset
  2464
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2465
            buf.AppendNum( def.iDuration );
hgs
parents:
diff changeset
  2466
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2467
            iAppView->InsertOutput( _L("    Periodic definition -> Magnitude: "), EFalse );
hgs
parents:
diff changeset
  2468
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2469
            buf.AppendNum( def.iMagnitude );
hgs
parents:
diff changeset
  2470
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2471
            iAppView->InsertOutput( _L("    Periodic definition -> Period: "), EFalse );
hgs
parents:
diff changeset
  2472
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2473
            buf.AppendNum( def.iPeriod );
hgs
parents:
diff changeset
  2474
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2475
            iAppView->InsertOutput( _L("    Periodic definition -> Style: "), EFalse );
hgs
parents:
diff changeset
  2476
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2477
            buf.AppendNum( def.iStyle );
hgs
parents:
diff changeset
  2478
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2479
            iAppView->InsertOutput( _L("    Periodic definition -> Attack time: "), EFalse );
hgs
parents:
diff changeset
  2480
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2481
            buf.AppendNum( def.iAttackTime );
hgs
parents:
diff changeset
  2482
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2483
            iAppView->InsertOutput( _L("    Periodic definition -> Attack level: "), EFalse );
hgs
parents:
diff changeset
  2484
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2485
            buf.AppendNum( def.iAttackLevel );
hgs
parents:
diff changeset
  2486
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2487
            iAppView->InsertOutput( _L("    Periodic definition -> Fade time: "), EFalse );
hgs
parents:
diff changeset
  2488
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2489
            buf.AppendNum( def.iFadeTime );
hgs
parents:
diff changeset
  2490
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2491
            iAppView->InsertOutput( _L("    Periodic definition -> Attack level: "), EFalse );
hgs
parents:
diff changeset
  2492
            buf.Delete( 0, buf.MaxLength() );
hgs
parents:
diff changeset
  2493
            buf.AppendNum( def.iFadeLevel );
hgs
parents:
diff changeset
  2494
            iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2495
            }
hgs
parents:
diff changeset
  2496
        delete tempBuf8;
hgs
parents:
diff changeset
  2497
        delete tempBuf16;
hgs
parents:
diff changeset
  2498
        }
hgs
parents:
diff changeset
  2499
    }
hgs
parents:
diff changeset
  2500
hgs
parents:
diff changeset
  2501
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2502
// Prints the given status onto the screen.
hgs
parents:
diff changeset
  2503
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2504
//
hgs
parents:
diff changeset
  2505
void CHapticsTestAppUi::PrintStatusInfo( 
hgs
parents:
diff changeset
  2506
    MHWRMHapticsObserver::THWRMHapticsStatus aStatus ) const
hgs
parents:
diff changeset
  2507
    {
hgs
parents:
diff changeset
  2508
    iAppView->InsertOutput( _L("Received status: "), EFalse );
hgs
parents:
diff changeset
  2509
    
hgs
parents:
diff changeset
  2510
    switch( aStatus )
hgs
parents:
diff changeset
  2511
        {
hgs
parents:
diff changeset
  2512
        case MHWRMHapticsObserver::EHWRMHapticsStatusAvailable:
hgs
parents:
diff changeset
  2513
            {
hgs
parents:
diff changeset
  2514
            iAppView->InsertOutput( _L("Available.") );
hgs
parents:
diff changeset
  2515
            break;
hgs
parents:
diff changeset
  2516
            }
hgs
parents:
diff changeset
  2517
        case MHWRMHapticsObserver::EHWRMHapticsStatusReserved:
hgs
parents:
diff changeset
  2518
            {
hgs
parents:
diff changeset
  2519
            iAppView->InsertOutput( _L("Reserved.") );
hgs
parents:
diff changeset
  2520
            break;
hgs
parents:
diff changeset
  2521
            }
hgs
parents:
diff changeset
  2522
        case MHWRMHapticsObserver::EHWRMHapticsStatusSuspended:
hgs
parents:
diff changeset
  2523
            {
hgs
parents:
diff changeset
  2524
            iAppView->InsertOutput( _L("Suspended.") );
hgs
parents:
diff changeset
  2525
            break;
hgs
parents:
diff changeset
  2526
            }
hgs
parents:
diff changeset
  2527
        default:
hgs
parents:
diff changeset
  2528
            {
hgs
parents:
diff changeset
  2529
            iAppView->InsertOutput( _L("<unknown status>") );
hgs
parents:
diff changeset
  2530
            break;
hgs
parents:
diff changeset
  2531
            }
hgs
parents:
diff changeset
  2532
        }
hgs
parents:
diff changeset
  2533
    }
hgs
parents:
diff changeset
  2534
hgs
parents:
diff changeset
  2535
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2536
// Calls the getter methods for system constants
hgs
parents:
diff changeset
  2537
// and prints out the results.
hgs
parents:
diff changeset
  2538
// ---------------------------------------------------------
hgs
parents:
diff changeset
  2539
//
hgs
parents:
diff changeset
  2540
void CHapticsTestAppUi::ConstGetters() const
hgs
parents:
diff changeset
  2541
    {
hgs
parents:
diff changeset
  2542
    _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2543
    TBuf<50> buf;
hgs
parents:
diff changeset
  2544
    iAppView->InsertOutput( _L("    Infinite repeats: "), EFalse );
hgs
parents:
diff changeset
  2545
    buf.Format( KNumFormat, iHaptics->InfiniteRepeat() );
hgs
parents:
diff changeset
  2546
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2547
    iAppView->InsertOutput( _L("    Infinite duration: "), EFalse );
hgs
parents:
diff changeset
  2548
    buf.Format( KNumFormat, iHaptics->InfiniteDuration() );
hgs
parents:
diff changeset
  2549
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2550
    iAppView->InsertOutput( _L("    Max effect name length: "), EFalse );
hgs
parents:
diff changeset
  2551
    buf.Format( KNumFormat, iHaptics->MaxEffectNameLength() );
hgs
parents:
diff changeset
  2552
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2553
    iAppView->InsertOutput( _L("    Max device name length: "), EFalse );
hgs
parents:
diff changeset
  2554
    buf.Format( KNumFormat, iHaptics->MaxDeviceNameLength() );
hgs
parents:
diff changeset
  2555
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2556
    iAppView->InsertOutput( _L("    Max capability string length: "), EFalse );
hgs
parents:
diff changeset
  2557
    buf.Format( KNumFormat, iHaptics->MaxCapabilityStringLength() );
hgs
parents:
diff changeset
  2558
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2559
    iAppView->InsertOutput( _L("    Max property string length: "), EFalse );
hgs
parents:
diff changeset
  2560
    buf.Format( KNumFormat, iHaptics->MaxPropertyStringLength() );
hgs
parents:
diff changeset
  2561
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2562
    iAppView->InsertOutput( _L("    Max streaming sample size: "), EFalse );
hgs
parents:
diff changeset
  2563
    buf.Format( KNumFormat, iHaptics->MaxStreamingSampleSize() );
hgs
parents:
diff changeset
  2564
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2565
    iAppView->InsertOutput( _L("    Default device priority: "), EFalse );
hgs
parents:
diff changeset
  2566
    buf.Format( KNumFormat, iHaptics->DefaultDevicePriority() );
hgs
parents:
diff changeset
  2567
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2568
    }
hgs
parents:
diff changeset
  2569
hgs
parents:
diff changeset
  2570
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2571
// Modifies an effect using the values set for iModifyEffect.
hgs
parents:
diff changeset
  2572
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2573
//
hgs
parents:
diff changeset
  2574
void CHapticsTestAppUi::ModifyEffect()
hgs
parents:
diff changeset
  2575
    {
hgs
parents:
diff changeset
  2576
    if ( !iEffectData->ModifiableEffectExists() )
hgs
parents:
diff changeset
  2577
        {
hgs
parents:
diff changeset
  2578
        return;
hgs
parents:
diff changeset
  2579
        }
hgs
parents:
diff changeset
  2580
hgs
parents:
diff changeset
  2581
    TInt err = KErrNone;
hgs
parents:
diff changeset
  2582
    TInt effectHandle = iEffectData->ModifiableEffectHandle();
hgs
parents:
diff changeset
  2583
    
hgs
parents:
diff changeset
  2584
    if ( iEffectData->ModifiableEffectIsMagSweep() )
hgs
parents:
diff changeset
  2585
        {
hgs
parents:
diff changeset
  2586
        // fill magsweep data
hgs
parents:
diff changeset
  2587
        CHWRMHaptics::THWRMHapticsMagSweepEffect magsweep;
hgs
parents:
diff changeset
  2588
        iEffectData->FillModifiableMagSweepData( magsweep );
hgs
parents:
diff changeset
  2589
hgs
parents:
diff changeset
  2590
        // execute modification
hgs
parents:
diff changeset
  2591
        if ( iSynchronous )
hgs
parents:
diff changeset
  2592
            {
hgs
parents:
diff changeset
  2593
            err = iHaptics->ModifyPlayingMagSweepEffect( effectHandle, magsweep );
hgs
parents:
diff changeset
  2594
            }
hgs
parents:
diff changeset
  2595
        else
hgs
parents:
diff changeset
  2596
            {
hgs
parents:
diff changeset
  2597
            TRequestStatus status;
hgs
parents:
diff changeset
  2598
            iHaptics->ModifyPlayingMagSweepEffect( effectHandle, magsweep, status );
hgs
parents:
diff changeset
  2599
            User::WaitForRequest( status );
hgs
parents:
diff changeset
  2600
            err = status.Int();
hgs
parents:
diff changeset
  2601
            }
hgs
parents:
diff changeset
  2602
        }
hgs
parents:
diff changeset
  2603
    else if ( iEffectData->ModifiableEffectIsPeriodic() )
hgs
parents:
diff changeset
  2604
        {
hgs
parents:
diff changeset
  2605
        // fill periodic data
hgs
parents:
diff changeset
  2606
        CHWRMHaptics::THWRMHapticsPeriodicEffect periodic;
hgs
parents:
diff changeset
  2607
        iEffectData->FillModifiablePeriodicData( periodic );
hgs
parents:
diff changeset
  2608
hgs
parents:
diff changeset
  2609
        // execute modification
hgs
parents:
diff changeset
  2610
        if ( iSynchronous )
hgs
parents:
diff changeset
  2611
            {
hgs
parents:
diff changeset
  2612
            err = iHaptics->ModifyPlayingPeriodicEffect( effectHandle, periodic );
hgs
parents:
diff changeset
  2613
            }
hgs
parents:
diff changeset
  2614
        else
hgs
parents:
diff changeset
  2615
            {
hgs
parents:
diff changeset
  2616
            TRequestStatus status;
hgs
parents:
diff changeset
  2617
            iHaptics->ModifyPlayingPeriodicEffect( effectHandle, periodic, status );
hgs
parents:
diff changeset
  2618
            User::WaitForRequest( status );
hgs
parents:
diff changeset
  2619
            err = status.Int();
hgs
parents:
diff changeset
  2620
            }
hgs
parents:
diff changeset
  2621
        }
hgs
parents:
diff changeset
  2622
    
hgs
parents:
diff changeset
  2623
    if ( err )
hgs
parents:
diff changeset
  2624
        {
hgs
parents:
diff changeset
  2625
        TBuf<8> errBuf;
hgs
parents:
diff changeset
  2626
        errBuf.AppendNum( err );
hgs
parents:
diff changeset
  2627
        iAppView->InsertOutput( _L("Modifying effect failed, err = "), EFalse );
hgs
parents:
diff changeset
  2628
        iAppView->InsertOutput( errBuf );
hgs
parents:
diff changeset
  2629
        }
hgs
parents:
diff changeset
  2630
    else
hgs
parents:
diff changeset
  2631
        {
hgs
parents:
diff changeset
  2632
        iAppView->InsertOutput( _L("Modifying effect succeeded.") );
hgs
parents:
diff changeset
  2633
        }
hgs
parents:
diff changeset
  2634
    }
hgs
parents:
diff changeset
  2635
hgs
parents:
diff changeset
  2636
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2637
// Static callback method from a periodic timer used for
hgs
parents:
diff changeset
  2638
// continuous effect modification (magnitude/period).
hgs
parents:
diff changeset
  2639
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2640
//
hgs
parents:
diff changeset
  2641
TInt CHapticsTestAppUi::ModifyPlayingEffect( TAny* aPtr )
hgs
parents:
diff changeset
  2642
    {
hgs
parents:
diff changeset
  2643
    CHapticsTestEffectDataHandler* effectData = 
hgs
parents:
diff changeset
  2644
        static_cast<CHapticsTestEffectDataHandler*>( aPtr );
hgs
parents:
diff changeset
  2645
hgs
parents:
diff changeset
  2646
    // hundred modifications to get to KPi (up and down with magnitude)
hgs
parents:
diff changeset
  2647
    TReal stepLengthRad = KPi/100 * effectData->ModifyCount();
hgs
parents:
diff changeset
  2648
hgs
parents:
diff changeset
  2649
    // calculate absolute sin value
hgs
parents:
diff changeset
  2650
    TReal sinValue = 0;
hgs
parents:
diff changeset
  2651
    TInt errSin = Math::Sin( sinValue, stepLengthRad );
hgs
parents:
diff changeset
  2652
    sinValue = Abs( sinValue );
hgs
parents:
diff changeset
  2653
hgs
parents:
diff changeset
  2654
    // increase the amount of modifications done
hgs
parents:
diff changeset
  2655
    effectData->SetModifyCount( effectData->ModifyCount() + 1 );
hgs
parents:
diff changeset
  2656
    
hgs
parents:
diff changeset
  2657
    TInt err = KErrNone;
hgs
parents:
diff changeset
  2658
    TInt effectHandle = effectData->ModifiableEffectHandle();
hgs
parents:
diff changeset
  2659
    
hgs
parents:
diff changeset
  2660
    if ( effectData->ModifiableEffectIsMagSweep() )
hgs
parents:
diff changeset
  2661
        {
hgs
parents:
diff changeset
  2662
        // modify magsweep effect
hgs
parents:
diff changeset
  2663
        CHWRMHaptics::THWRMHapticsMagSweepEffect magsweep;
hgs
parents:
diff changeset
  2664
        effectData->FillModifiableMagSweepData( magsweep );
hgs
parents:
diff changeset
  2665
hgs
parents:
diff changeset
  2666
        // new magnitude value according to sin value        
hgs
parents:
diff changeset
  2667
        magsweep.iMagnitude = KHWRMHapticsMaxMagnitude * sinValue;
hgs
parents:
diff changeset
  2668
        
hgs
parents:
diff changeset
  2669
        // modify effect
hgs
parents:
diff changeset
  2670
        err = effectData->Haptics()->ModifyPlayingMagSweepEffect( 
hgs
parents:
diff changeset
  2671
              effectHandle, magsweep );
hgs
parents:
diff changeset
  2672
        }
hgs
parents:
diff changeset
  2673
    else if ( effectData->ModifiableEffectIsPeriodic() )
hgs
parents:
diff changeset
  2674
        {
hgs
parents:
diff changeset
  2675
        // modify periodic effect
hgs
parents:
diff changeset
  2676
        CHWRMHaptics::THWRMHapticsPeriodicEffect periodic;
hgs
parents:
diff changeset
  2677
        effectData->FillModifiablePeriodicData( periodic );
hgs
parents:
diff changeset
  2678
hgs
parents:
diff changeset
  2679
        // period getting smaller when magnitude getting higher
hgs
parents:
diff changeset
  2680
        periodic.iPeriod = 20 + (1-sinValue)*200;
hgs
parents:
diff changeset
  2681
hgs
parents:
diff changeset
  2682
        // modify effect
hgs
parents:
diff changeset
  2683
        err = effectData->Haptics()->ModifyPlayingPeriodicEffect(
hgs
parents:
diff changeset
  2684
              effectHandle, periodic );
hgs
parents:
diff changeset
  2685
        }
hgs
parents:
diff changeset
  2686
    
hgs
parents:
diff changeset
  2687
    if ( err )
hgs
parents:
diff changeset
  2688
        {
hgs
parents:
diff changeset
  2689
        CEikonEnv::Static()->InfoMsg( _L("Modify failed!") );
hgs
parents:
diff changeset
  2690
        }
hgs
parents:
diff changeset
  2691
hgs
parents:
diff changeset
  2692
    return KErrNone;
hgs
parents:
diff changeset
  2693
    }
hgs
parents:
diff changeset
  2694
    
hgs
parents:
diff changeset
  2695
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2696
// 
hgs
parents:
diff changeset
  2697
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2698
//
hgs
parents:
diff changeset
  2699
void CHapticsTestAppUi::GetCapabilityDeviceCategory()
hgs
parents:
diff changeset
  2700
    {
hgs
parents:
diff changeset
  2701
    TBuf<50> buf;
hgs
parents:
diff changeset
  2702
    iAppView->InsertOutput( _L("    Device category: "), EFalse );
hgs
parents:
diff changeset
  2703
    TInt retValue( CHWRMHaptics::EHWRMHapticsEmbedded );
hgs
parents:
diff changeset
  2704
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2705
        CHWRMHaptics::EHWRMHapticsDeviceCategory, retValue ) );
hgs
parents:
diff changeset
  2706
hgs
parents:
diff changeset
  2707
    if ( err )
hgs
parents:
diff changeset
  2708
        {
hgs
parents:
diff changeset
  2709
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2710
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2711
        }
hgs
parents:
diff changeset
  2712
    else
hgs
parents:
diff changeset
  2713
        {
hgs
parents:
diff changeset
  2714
        switch ( retValue )
hgs
parents:
diff changeset
  2715
            {
hgs
parents:
diff changeset
  2716
            case CHWRMHaptics::EHWRMHapticsVirtual: 
hgs
parents:
diff changeset
  2717
                buf.Append( _L("Virtual") );
hgs
parents:
diff changeset
  2718
                break;
hgs
parents:
diff changeset
  2719
            case CHWRMHaptics::EHWRMHapticsEmbedded: 
hgs
parents:
diff changeset
  2720
                buf.Append( _L("Embedded") );
hgs
parents:
diff changeset
  2721
                break;
hgs
parents:
diff changeset
  2722
            default:
hgs
parents:
diff changeset
  2723
                buf.Append( _L("Unknown") );
hgs
parents:
diff changeset
  2724
                break;
hgs
parents:
diff changeset
  2725
            }
hgs
parents:
diff changeset
  2726
        }
hgs
parents:
diff changeset
  2727
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2728
    }
hgs
parents:
diff changeset
  2729
hgs
parents:
diff changeset
  2730
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2731
// 
hgs
parents:
diff changeset
  2732
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2733
//
hgs
parents:
diff changeset
  2734
void CHapticsTestAppUi::GetCapabilityMaxNestedRepeats()
hgs
parents:
diff changeset
  2735
    {
hgs
parents:
diff changeset
  2736
    TBuf<50> buf;
hgs
parents:
diff changeset
  2737
    iAppView->InsertOutput( _L("    Max nested repeats: "), EFalse );
hgs
parents:
diff changeset
  2738
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2739
    TInt err( iHaptics->GetDeviceCapability( 
hgs
parents:
diff changeset
  2740
        CHWRMHaptics::EHWRMHapticsMaxNestedRepeats, retValue ) );
hgs
parents:
diff changeset
  2741
hgs
parents:
diff changeset
  2742
    if ( err )
hgs
parents:
diff changeset
  2743
        {
hgs
parents:
diff changeset
  2744
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2745
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2746
        }
hgs
parents:
diff changeset
  2747
    else
hgs
parents:
diff changeset
  2748
        {
hgs
parents:
diff changeset
  2749
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2750
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2751
        }
hgs
parents:
diff changeset
  2752
hgs
parents:
diff changeset
  2753
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2754
    }
hgs
parents:
diff changeset
  2755
    
hgs
parents:
diff changeset
  2756
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2757
// 
hgs
parents:
diff changeset
  2758
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2759
//
hgs
parents:
diff changeset
  2760
void CHapticsTestAppUi::GetCapabilityNumActuators()
hgs
parents:
diff changeset
  2761
    {
hgs
parents:
diff changeset
  2762
    TBuf<50> buf;
hgs
parents:
diff changeset
  2763
    iAppView->InsertOutput( _L("    Number of actuators: "), EFalse );
hgs
parents:
diff changeset
  2764
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2765
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2766
        CHWRMHaptics::EHWRMHapticsNumActuators, retValue ) );
hgs
parents:
diff changeset
  2767
hgs
parents:
diff changeset
  2768
    if ( err )
hgs
parents:
diff changeset
  2769
        {
hgs
parents:
diff changeset
  2770
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2771
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2772
        }
hgs
parents:
diff changeset
  2773
    else
hgs
parents:
diff changeset
  2774
        {
hgs
parents:
diff changeset
  2775
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2776
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2777
        }
hgs
parents:
diff changeset
  2778
hgs
parents:
diff changeset
  2779
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2780
    }
hgs
parents:
diff changeset
  2781
    
hgs
parents:
diff changeset
  2782
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2783
// 
hgs
parents:
diff changeset
  2784
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2785
//
hgs
parents:
diff changeset
  2786
void CHapticsTestAppUi::GetCapabilityActuatorType() 
hgs
parents:
diff changeset
  2787
    {
hgs
parents:
diff changeset
  2788
    TBuf<50> buf;
hgs
parents:
diff changeset
  2789
    iAppView->InsertOutput( _L("    Actuator type: "), EFalse );
hgs
parents:
diff changeset
  2790
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2791
    TInt err( iHaptics->GetDeviceCapability( 
hgs
parents:
diff changeset
  2792
        CHWRMHaptics::EHWRMHapticsActuatorType, retValue ) );
hgs
parents:
diff changeset
  2793
        
hgs
parents:
diff changeset
  2794
    if ( err )
hgs
parents:
diff changeset
  2795
        {
hgs
parents:
diff changeset
  2796
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2797
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2798
        }
hgs
parents:
diff changeset
  2799
    else
hgs
parents:
diff changeset
  2800
        {
hgs
parents:
diff changeset
  2801
        switch (retValue)
hgs
parents:
diff changeset
  2802
            {
hgs
parents:
diff changeset
  2803
            case CHWRMHaptics::EHWRMHapticsTypeERM: 
hgs
parents:
diff changeset
  2804
                buf.Append( _L("EHWRMHapticsTypeERM") );
hgs
parents:
diff changeset
  2805
                break;
hgs
parents:
diff changeset
  2806
            case CHWRMHaptics::EHWRMHapticsTypeLRA: 
hgs
parents:
diff changeset
  2807
                buf.Append( _L("EHWRMHapticsTypeLRA") );
hgs
parents:
diff changeset
  2808
                break;
hgs
parents:
diff changeset
  2809
            default:
hgs
parents:
diff changeset
  2810
                buf.Append( _L("Unknown") );
hgs
parents:
diff changeset
  2811
                break;
hgs
parents:
diff changeset
  2812
            }
hgs
parents:
diff changeset
  2813
        }
hgs
parents:
diff changeset
  2814
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2815
    }
hgs
parents:
diff changeset
  2816
hgs
parents:
diff changeset
  2817
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2818
// 
hgs
parents:
diff changeset
  2819
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2820
//
hgs
parents:
diff changeset
  2821
void CHapticsTestAppUi::GetCapabilityNumEffectSlots()
hgs
parents:
diff changeset
  2822
    {
hgs
parents:
diff changeset
  2823
    TBuf<50> buf;
hgs
parents:
diff changeset
  2824
    iAppView->InsertOutput( _L("    Number of effect slots: "), EFalse );
hgs
parents:
diff changeset
  2825
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2826
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2827
        CHWRMHaptics::EHWRMHapticsNumEffectSlots, retValue ) );
hgs
parents:
diff changeset
  2828
hgs
parents:
diff changeset
  2829
    if ( err )
hgs
parents:
diff changeset
  2830
        {
hgs
parents:
diff changeset
  2831
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2832
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2833
        }
hgs
parents:
diff changeset
  2834
    else
hgs
parents:
diff changeset
  2835
        {
hgs
parents:
diff changeset
  2836
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2837
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2838
        }
hgs
parents:
diff changeset
  2839
hgs
parents:
diff changeset
  2840
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2841
    }
hgs
parents:
diff changeset
  2842
    
hgs
parents:
diff changeset
  2843
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2844
// 
hgs
parents:
diff changeset
  2845
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2846
//
hgs
parents:
diff changeset
  2847
void CHapticsTestAppUi::GetCapabilityNumEffectStyles()
hgs
parents:
diff changeset
  2848
    {
hgs
parents:
diff changeset
  2849
    TBuf<150> buf;
hgs
parents:
diff changeset
  2850
    iAppView->InsertOutput( _L("    Effect styles: "), EFalse );
hgs
parents:
diff changeset
  2851
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2852
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2853
        CHWRMHaptics::EHWRMHapticsSupportedStyles, retValue ) );
hgs
parents:
diff changeset
  2854
hgs
parents:
diff changeset
  2855
    if ( err )
hgs
parents:
diff changeset
  2856
        {
hgs
parents:
diff changeset
  2857
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2858
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2859
        }
hgs
parents:
diff changeset
  2860
    else
hgs
parents:
diff changeset
  2861
        {
hgs
parents:
diff changeset
  2862
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportSmooth )
hgs
parents:
diff changeset
  2863
            {
hgs
parents:
diff changeset
  2864
            buf.Append( _L(" EHWRMHapticsSupportSmooth") );
hgs
parents:
diff changeset
  2865
            }
hgs
parents:
diff changeset
  2866
hgs
parents:
diff changeset
  2867
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportStrong )
hgs
parents:
diff changeset
  2868
            {
hgs
parents:
diff changeset
  2869
            buf.Append( _L(" EHWRMHapticsSupportStrong") );
hgs
parents:
diff changeset
  2870
            }
hgs
parents:
diff changeset
  2871
hgs
parents:
diff changeset
  2872
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportSharp )
hgs
parents:
diff changeset
  2873
            {
hgs
parents:
diff changeset
  2874
            buf.Append( _L(" EHWRMHapticsSupportSharp") );
hgs
parents:
diff changeset
  2875
            }
hgs
parents:
diff changeset
  2876
        }
hgs
parents:
diff changeset
  2877
    iAppView->InsertOutput( buf );    
hgs
parents:
diff changeset
  2878
    }
hgs
parents:
diff changeset
  2879
    
hgs
parents:
diff changeset
  2880
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2881
// 
hgs
parents:
diff changeset
  2882
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2883
//
hgs
parents:
diff changeset
  2884
void CHapticsTestAppUi::GetCapabilityMinPeriod()
hgs
parents:
diff changeset
  2885
    {
hgs
parents:
diff changeset
  2886
    TBuf<50> buf;
hgs
parents:
diff changeset
  2887
    iAppView->InsertOutput( _L("    Minimum period for periodic effects: "), EFalse );
hgs
parents:
diff changeset
  2888
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2889
    TInt err( iHaptics->GetDeviceCapability( 
hgs
parents:
diff changeset
  2890
        CHWRMHaptics::EHWRMHapticsMinPeriod, retValue ) );
hgs
parents:
diff changeset
  2891
hgs
parents:
diff changeset
  2892
    if ( err )
hgs
parents:
diff changeset
  2893
        {
hgs
parents:
diff changeset
  2894
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2895
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2896
        }
hgs
parents:
diff changeset
  2897
    else
hgs
parents:
diff changeset
  2898
        {
hgs
parents:
diff changeset
  2899
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2900
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2901
        }
hgs
parents:
diff changeset
  2902
hgs
parents:
diff changeset
  2903
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2904
    }
hgs
parents:
diff changeset
  2905
    
hgs
parents:
diff changeset
  2906
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2907
// 
hgs
parents:
diff changeset
  2908
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2909
//
hgs
parents:
diff changeset
  2910
void CHapticsTestAppUi::GetCapabilityMaxPeriod()
hgs
parents:
diff changeset
  2911
    {
hgs
parents:
diff changeset
  2912
    TBuf<50> buf;
hgs
parents:
diff changeset
  2913
    iAppView->InsertOutput( _L("    Maximum period for periodic effects: "), EFalse );
hgs
parents:
diff changeset
  2914
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2915
    TInt err( iHaptics->GetDeviceCapability( 
hgs
parents:
diff changeset
  2916
        CHWRMHaptics::EHWRMHapticsMaxPeriod, retValue ) );
hgs
parents:
diff changeset
  2917
hgs
parents:
diff changeset
  2918
    if ( err )
hgs
parents:
diff changeset
  2919
        {
hgs
parents:
diff changeset
  2920
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2921
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2922
        }
hgs
parents:
diff changeset
  2923
    else
hgs
parents:
diff changeset
  2924
        {
hgs
parents:
diff changeset
  2925
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2926
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2927
        }
hgs
parents:
diff changeset
  2928
hgs
parents:
diff changeset
  2929
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2930
    }
hgs
parents:
diff changeset
  2931
    
hgs
parents:
diff changeset
  2932
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2933
// 
hgs
parents:
diff changeset
  2934
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2935
//
hgs
parents:
diff changeset
  2936
void CHapticsTestAppUi::GetCapabilityMaxEffectDuration()
hgs
parents:
diff changeset
  2937
    {
hgs
parents:
diff changeset
  2938
    TBuf<50> buf;
hgs
parents:
diff changeset
  2939
    iAppView->InsertOutput( _L("    Maximum effect duration: "), EFalse );
hgs
parents:
diff changeset
  2940
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2941
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2942
        CHWRMHaptics::EHWRMHapticsMaxEffectDuration, retValue ) );
hgs
parents:
diff changeset
  2943
hgs
parents:
diff changeset
  2944
    if ( err )
hgs
parents:
diff changeset
  2945
        {
hgs
parents:
diff changeset
  2946
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2947
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2948
        }
hgs
parents:
diff changeset
  2949
    else
hgs
parents:
diff changeset
  2950
        {
hgs
parents:
diff changeset
  2951
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  2952
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  2953
        }
hgs
parents:
diff changeset
  2954
hgs
parents:
diff changeset
  2955
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  2956
    }
hgs
parents:
diff changeset
  2957
    
hgs
parents:
diff changeset
  2958
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2959
// 
hgs
parents:
diff changeset
  2960
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  2961
//
hgs
parents:
diff changeset
  2962
void CHapticsTestAppUi::GetCapabilitySupportedEffects()
hgs
parents:
diff changeset
  2963
    {
hgs
parents:
diff changeset
  2964
    TBuf<150> buf;
hgs
parents:
diff changeset
  2965
    iAppView->InsertOutput( _L("    Supported effect types: "), EFalse );
hgs
parents:
diff changeset
  2966
    TInt retValue( 0 );
hgs
parents:
diff changeset
  2967
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  2968
        CHWRMHaptics::EHWRMHapticsSupportedEffects, retValue ) );
hgs
parents:
diff changeset
  2969
        
hgs
parents:
diff changeset
  2970
    if ( err )
hgs
parents:
diff changeset
  2971
        {
hgs
parents:
diff changeset
  2972
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  2973
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  2974
        }
hgs
parents:
diff changeset
  2975
    else
hgs
parents:
diff changeset
  2976
        {
hgs
parents:
diff changeset
  2977
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportPeriodic )
hgs
parents:
diff changeset
  2978
            {
hgs
parents:
diff changeset
  2979
            buf.Append( _L(" EHWRMHapticsSupportPeriodic") );
hgs
parents:
diff changeset
  2980
            }
hgs
parents:
diff changeset
  2981
hgs
parents:
diff changeset
  2982
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportMagSweep )
hgs
parents:
diff changeset
  2983
            {
hgs
parents:
diff changeset
  2984
            buf.Append( _L(" EHWRMHapticsSupportMagSweep") );
hgs
parents:
diff changeset
  2985
            }
hgs
parents:
diff changeset
  2986
hgs
parents:
diff changeset
  2987
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportTimeline )
hgs
parents:
diff changeset
  2988
            {
hgs
parents:
diff changeset
  2989
            buf.Append( _L(" EHWRMHapticsSupportTimeline") );
hgs
parents:
diff changeset
  2990
            }
hgs
parents:
diff changeset
  2991
hgs
parents:
diff changeset
  2992
        if ( retValue & CHWRMHaptics::EHWRMHapticsSupportStreaming )
hgs
parents:
diff changeset
  2993
            {
hgs
parents:
diff changeset
  2994
            buf.Append( _L(" EHWRMHapticsSupportStreaming") );
hgs
parents:
diff changeset
  2995
            }
hgs
parents:
diff changeset
  2996
        }
hgs
parents:
diff changeset
  2997
    iAppView->InsertOutput( buf );    
hgs
parents:
diff changeset
  2998
    }
hgs
parents:
diff changeset
  2999
    
hgs
parents:
diff changeset
  3000
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3001
// 
hgs
parents:
diff changeset
  3002
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3003
//
hgs
parents:
diff changeset
  3004
void CHapticsTestAppUi::GetCapabilityDeviceName()
hgs
parents:
diff changeset
  3005
    {
hgs
parents:
diff changeset
  3006
    TBuf<100> buf;
hgs
parents:
diff changeset
  3007
    iAppView->InsertOutput( _L("    Device name: "), EFalse );
hgs
parents:
diff changeset
  3008
    TBuf8<100> retValue;
hgs
parents:
diff changeset
  3009
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  3010
        CHWRMHaptics::EHWRMHapticsDeviceName, retValue ) );
hgs
parents:
diff changeset
  3011
    if ( err )
hgs
parents:
diff changeset
  3012
        {
hgs
parents:
diff changeset
  3013
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  3014
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  3015
        }
hgs
parents:
diff changeset
  3016
    else
hgs
parents:
diff changeset
  3017
        {
hgs
parents:
diff changeset
  3018
        CnvUtfConverter::ConvertToUnicodeFromUtf8( buf, retValue );
hgs
parents:
diff changeset
  3019
        }
hgs
parents:
diff changeset
  3020
        
hgs
parents:
diff changeset
  3021
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  3022
    }
hgs
parents:
diff changeset
  3023
    
hgs
parents:
diff changeset
  3024
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3025
// 
hgs
parents:
diff changeset
  3026
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3027
//
hgs
parents:
diff changeset
  3028
void CHapticsTestAppUi::GetCapabilityMaxEnvelopeTime()
hgs
parents:
diff changeset
  3029
    {    
hgs
parents:
diff changeset
  3030
    TBuf<50> buf;
hgs
parents:
diff changeset
  3031
    iAppView->InsertOutput( _L("    Maximum envelop time: "), EFalse );
hgs
parents:
diff changeset
  3032
    TInt retValue( 0 );
hgs
parents:
diff changeset
  3033
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  3034
        CHWRMHaptics::EHWRMHapticsMaxEnvelopeTime, retValue ) );
hgs
parents:
diff changeset
  3035
hgs
parents:
diff changeset
  3036
    if ( err )
hgs
parents:
diff changeset
  3037
        {
hgs
parents:
diff changeset
  3038
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  3039
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  3040
        }
hgs
parents:
diff changeset
  3041
    else
hgs
parents:
diff changeset
  3042
        {
hgs
parents:
diff changeset
  3043
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  3044
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  3045
        }
hgs
parents:
diff changeset
  3046
        
hgs
parents:
diff changeset
  3047
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  3048
    }
hgs
parents:
diff changeset
  3049
    
hgs
parents:
diff changeset
  3050
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3051
// 
hgs
parents:
diff changeset
  3052
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3053
//
hgs
parents:
diff changeset
  3054
void CHapticsTestAppUi::GetCapabilityAPIVersionNumber()
hgs
parents:
diff changeset
  3055
    {
hgs
parents:
diff changeset
  3056
    TBuf<50> buf;
hgs
parents:
diff changeset
  3057
    TInt retValue( 0 );
hgs
parents:
diff changeset
  3058
    iAppView->InsertOutput( _L("    API version: "), EFalse );
hgs
parents:
diff changeset
  3059
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  3060
        CHWRMHaptics::EHWRMHapticsAPIVersionNumber, retValue ) );
hgs
parents:
diff changeset
  3061
hgs
parents:
diff changeset
  3062
    if ( err )
hgs
parents:
diff changeset
  3063
        {
hgs
parents:
diff changeset
  3064
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  3065
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  3066
        }
hgs
parents:
diff changeset
  3067
    else
hgs
parents:
diff changeset
  3068
        {
hgs
parents:
diff changeset
  3069
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  3070
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  3071
        }
hgs
parents:
diff changeset
  3072
hgs
parents:
diff changeset
  3073
    iAppView->InsertOutput( buf );
hgs
parents:
diff changeset
  3074
    }
hgs
parents:
diff changeset
  3075
hgs
parents:
diff changeset
  3076
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3077
// 
hgs
parents:
diff changeset
  3078
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3079
//
hgs
parents:
diff changeset
  3080
void CHapticsTestAppUi::GetCapabilityMaxIVTSize()
hgs
parents:
diff changeset
  3081
    {
hgs
parents:
diff changeset
  3082
    TBuf<50> buf;
hgs
parents:
diff changeset
  3083
    iAppView->InsertOutput( _L("    Maximum size of IVT file: "), EFalse );
hgs
parents:
diff changeset
  3084
    TInt retValue( 0 );
hgs
parents:
diff changeset
  3085
    TInt err( iHaptics->GetDeviceCapability(
hgs
parents:
diff changeset
  3086
        CHWRMHaptics::EHWRMHapticsMaxEffectDataSize, retValue ) );
hgs
parents:
diff changeset
  3087
hgs
parents:
diff changeset
  3088
    if ( err )
hgs
parents:
diff changeset
  3089
        {
hgs
parents:
diff changeset
  3090
        _LIT( KFailedFormat, "GetDeviceCapability failed (%d)!" );
hgs
parents:
diff changeset
  3091
        buf.Format( KFailedFormat, err );
hgs
parents:
diff changeset
  3092
        }
hgs
parents:
diff changeset
  3093
    else
hgs
parents:
diff changeset
  3094
        {
hgs
parents:
diff changeset
  3095
        _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  3096
        buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  3097
        }
hgs
parents:
diff changeset
  3098
hgs
parents:
diff changeset
  3099
    iAppView->InsertOutput( buf, ETrue );
hgs
parents:
diff changeset
  3100
    }
hgs
parents:
diff changeset
  3101
hgs
parents:
diff changeset
  3102
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3103
// 
hgs
parents:
diff changeset
  3104
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3105
//
hgs
parents:
diff changeset
  3106
void CHapticsTestAppUi::SetPropertyPriorityMin()
hgs
parents:
diff changeset
  3107
    {
hgs
parents:
diff changeset
  3108
    iAppView->InsertOutput( _L("    Setting priority to minimum"), ETrue );
hgs
parents:
diff changeset
  3109
    TInt value(KHWRMHapticsMinDevicePriority);
hgs
parents:
diff changeset
  3110
    TRAPD( err, iHaptics->SetDeviceProperty(CHWRMHaptics::EHWRMHapticsPriority, value));
hgs
parents:
diff changeset
  3111
    if ( err )
hgs
parents:
diff changeset
  3112
        {
hgs
parents:
diff changeset
  3113
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3114
        }
hgs
parents:
diff changeset
  3115
    }
hgs
parents:
diff changeset
  3116
hgs
parents:
diff changeset
  3117
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3118
// 
hgs
parents:
diff changeset
  3119
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3120
//
hgs
parents:
diff changeset
  3121
void CHapticsTestAppUi::SetPropertyPriorityDefault()
hgs
parents:
diff changeset
  3122
    {
hgs
parents:
diff changeset
  3123
    iAppView->InsertOutput( _L("    Setting priority to default" ), ETrue );
hgs
parents:
diff changeset
  3124
    TInt value( KHWRMHapticsMinDevicePriority );
hgs
parents:
diff changeset
  3125
    
hgs
parents:
diff changeset
  3126
    TRAPD( err1, value = iHaptics->DefaultDevicePriority() );
hgs
parents:
diff changeset
  3127
    if ( err1 )
hgs
parents:
diff changeset
  3128
        {
hgs
parents:
diff changeset
  3129
        CEikonEnv::Static()->InfoMsg( _L( "DefaultDevicePriority() failed!" ) );
hgs
parents:
diff changeset
  3130
        return;
hgs
parents:
diff changeset
  3131
        }
hgs
parents:
diff changeset
  3132
    
hgs
parents:
diff changeset
  3133
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsPriority, value ) );
hgs
parents:
diff changeset
  3134
    if ( err2 )
hgs
parents:
diff changeset
  3135
        {
hgs
parents:
diff changeset
  3136
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3137
        }
hgs
parents:
diff changeset
  3138
    }
hgs
parents:
diff changeset
  3139
hgs
parents:
diff changeset
  3140
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3141
// 
hgs
parents:
diff changeset
  3142
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3143
//
hgs
parents:
diff changeset
  3144
void CHapticsTestAppUi::SetPropertyPriorityMax()
hgs
parents:
diff changeset
  3145
    {
hgs
parents:
diff changeset
  3146
    iAppView->InsertOutput( _L("    Setting priority to maximum"), ETrue );
hgs
parents:
diff changeset
  3147
    TInt value(KHWRMHapticsMaxDevicePriority);
hgs
parents:
diff changeset
  3148
    TRAPD( err, iHaptics->SetDeviceProperty(CHWRMHaptics::EHWRMHapticsPriority, value));
hgs
parents:
diff changeset
  3149
    if ( err )
hgs
parents:
diff changeset
  3150
        {
hgs
parents:
diff changeset
  3151
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3152
        }
hgs
parents:
diff changeset
  3153
    }
hgs
parents:
diff changeset
  3154
hgs
parents:
diff changeset
  3155
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3156
// 
hgs
parents:
diff changeset
  3157
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3158
//
hgs
parents:
diff changeset
  3159
void CHapticsTestAppUi::GetPropertyPriority()
hgs
parents:
diff changeset
  3160
    {
hgs
parents:
diff changeset
  3161
    _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  3162
    TBuf<50> buf;
hgs
parents:
diff changeset
  3163
    iAppView->InsertOutput( _L("    Device priority: "), EFalse );
hgs
parents:
diff changeset
  3164
    TInt retValue(0);
hgs
parents:
diff changeset
  3165
    TRAPD( err, iHaptics->GetDeviceProperty(CHWRMHaptics::EHWRMHapticsPriority, retValue));
hgs
parents:
diff changeset
  3166
    if ( err )
hgs
parents:
diff changeset
  3167
        {
hgs
parents:
diff changeset
  3168
        CEikonEnv::Static()->InfoMsg( _L("GetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3169
        }
hgs
parents:
diff changeset
  3170
hgs
parents:
diff changeset
  3171
    buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  3172
    iAppView->InsertOutput( buf, ETrue );
hgs
parents:
diff changeset
  3173
    }
hgs
parents:
diff changeset
  3174
hgs
parents:
diff changeset
  3175
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3176
// 
hgs
parents:
diff changeset
  3177
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3178
//
hgs
parents:
diff changeset
  3179
void CHapticsTestAppUi::SetPropertyDisableEffectsTrue()
hgs
parents:
diff changeset
  3180
    {
hgs
parents:
diff changeset
  3181
    iAppView->InsertOutput( _L("    Disabling effects" ), ETrue );
hgs
parents:
diff changeset
  3182
    TBool value( ETrue );
hgs
parents:
diff changeset
  3183
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsDisableEffects, value ) );
hgs
parents:
diff changeset
  3184
    if ( err2 )
hgs
parents:
diff changeset
  3185
        {
hgs
parents:
diff changeset
  3186
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3187
        }
hgs
parents:
diff changeset
  3188
    }
hgs
parents:
diff changeset
  3189
hgs
parents:
diff changeset
  3190
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3191
// 
hgs
parents:
diff changeset
  3192
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3193
//
hgs
parents:
diff changeset
  3194
void CHapticsTestAppUi::SetPropertyDisableEffectsFalse()
hgs
parents:
diff changeset
  3195
    {
hgs
parents:
diff changeset
  3196
    iAppView->InsertOutput( _L("    Enabling effects" ), ETrue );
hgs
parents:
diff changeset
  3197
    TBool value( EFalse );
hgs
parents:
diff changeset
  3198
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsDisableEffects, value ) );
hgs
parents:
diff changeset
  3199
    if ( err2 )
hgs
parents:
diff changeset
  3200
        {
hgs
parents:
diff changeset
  3201
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3202
        }
hgs
parents:
diff changeset
  3203
    }
hgs
parents:
diff changeset
  3204
hgs
parents:
diff changeset
  3205
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3206
// 
hgs
parents:
diff changeset
  3207
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3208
//
hgs
parents:
diff changeset
  3209
void CHapticsTestAppUi::GetPropertyDisableEffects()
hgs
parents:
diff changeset
  3210
    {
hgs
parents:
diff changeset
  3211
    iAppView->InsertOutput( _L("    Effects disabled: "), EFalse );
hgs
parents:
diff changeset
  3212
    TInt retValue( EFalse );
hgs
parents:
diff changeset
  3213
    TRAPD( err, iHaptics->GetDeviceProperty( CHWRMHaptics::EHWRMHapticsDisableEffects, retValue ) );
hgs
parents:
diff changeset
  3214
    if ( err )
hgs
parents:
diff changeset
  3215
        {
hgs
parents:
diff changeset
  3216
        CEikonEnv::Static()->InfoMsg( _L("GetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3217
        }
hgs
parents:
diff changeset
  3218
    else 
hgs
parents:
diff changeset
  3219
        {
hgs
parents:
diff changeset
  3220
        if ( retValue )
hgs
parents:
diff changeset
  3221
            {
hgs
parents:
diff changeset
  3222
            iAppView->InsertOutput( _L("TRUE"), ETrue );
hgs
parents:
diff changeset
  3223
            }
hgs
parents:
diff changeset
  3224
        else
hgs
parents:
diff changeset
  3225
            {
hgs
parents:
diff changeset
  3226
            iAppView->InsertOutput( _L("FALSE"), ETrue );
hgs
parents:
diff changeset
  3227
            }
hgs
parents:
diff changeset
  3228
        }
hgs
parents:
diff changeset
  3229
    }
hgs
parents:
diff changeset
  3230
    
hgs
parents:
diff changeset
  3231
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3232
// 
hgs
parents:
diff changeset
  3233
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3234
//
hgs
parents:
diff changeset
  3235
void CHapticsTestAppUi::SetPropertyStrengthMin()
hgs
parents:
diff changeset
  3236
    {
hgs
parents:
diff changeset
  3237
    iAppView->InsertOutput( _L("    Setting strength to mininum" ), ETrue );
hgs
parents:
diff changeset
  3238
    TBool value( KHWRMHapticsMinStrength );
hgs
parents:
diff changeset
  3239
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsStrength, value ) );
hgs
parents:
diff changeset
  3240
    if ( err2 )
hgs
parents:
diff changeset
  3241
        {
hgs
parents:
diff changeset
  3242
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3243
        }
hgs
parents:
diff changeset
  3244
    }
hgs
parents:
diff changeset
  3245
hgs
parents:
diff changeset
  3246
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3247
// 
hgs
parents:
diff changeset
  3248
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3249
//
hgs
parents:
diff changeset
  3250
void CHapticsTestAppUi::SetPropertyStrengthMiddle()
hgs
parents:
diff changeset
  3251
    {
hgs
parents:
diff changeset
  3252
    iAppView->InsertOutput( _L("    Setting strength to middle" ), ETrue );
hgs
parents:
diff changeset
  3253
    TBool value( ( KHWRMHapticsMaxStrength - KHWRMHapticsMinStrength ) / 2 );
hgs
parents:
diff changeset
  3254
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsStrength, value ) );
hgs
parents:
diff changeset
  3255
    if ( err2 )
hgs
parents:
diff changeset
  3256
        {
hgs
parents:
diff changeset
  3257
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3258
        }
hgs
parents:
diff changeset
  3259
    }
hgs
parents:
diff changeset
  3260
hgs
parents:
diff changeset
  3261
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3262
// 
hgs
parents:
diff changeset
  3263
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3264
//
hgs
parents:
diff changeset
  3265
void CHapticsTestAppUi::SetPropertyStrengthMax()
hgs
parents:
diff changeset
  3266
    {
hgs
parents:
diff changeset
  3267
    iAppView->InsertOutput( _L("    Setting strength to max" ), ETrue );
hgs
parents:
diff changeset
  3268
    TBool value( KHWRMHapticsMaxStrength );
hgs
parents:
diff changeset
  3269
    TRAPD( err2, iHaptics->SetDeviceProperty( CHWRMHaptics::EHWRMHapticsStrength, value ) );
hgs
parents:
diff changeset
  3270
    if ( err2 )
hgs
parents:
diff changeset
  3271
        {
hgs
parents:
diff changeset
  3272
        CEikonEnv::Static()->InfoMsg( _L("SetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3273
        }
hgs
parents:
diff changeset
  3274
    }
hgs
parents:
diff changeset
  3275
hgs
parents:
diff changeset
  3276
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3277
// 
hgs
parents:
diff changeset
  3278
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3279
//
hgs
parents:
diff changeset
  3280
void CHapticsTestAppUi::GetPropertyStrength()
hgs
parents:
diff changeset
  3281
    {
hgs
parents:
diff changeset
  3282
    _LIT( KNumFormat, "%d" );
hgs
parents:
diff changeset
  3283
    TBuf<50> buf;
hgs
parents:
diff changeset
  3284
    iAppView->InsertOutput( _L("    Strength level: "), EFalse );
hgs
parents:
diff changeset
  3285
    TInt retValue(0);
hgs
parents:
diff changeset
  3286
    TRAPD( err, iHaptics->GetDeviceProperty(CHWRMHaptics::EHWRMHapticsStrength, retValue));
hgs
parents:
diff changeset
  3287
    if ( err )
hgs
parents:
diff changeset
  3288
        {
hgs
parents:
diff changeset
  3289
        CEikonEnv::Static()->InfoMsg( _L("GetDeviceProperty failed!") );
hgs
parents:
diff changeset
  3290
        }
hgs
parents:
diff changeset
  3291
hgs
parents:
diff changeset
  3292
    buf.Format( KNumFormat, retValue );
hgs
parents:
diff changeset
  3293
    iAppView->InsertOutput( buf, ETrue );
hgs
parents:
diff changeset
  3294
    }
hgs
parents:
diff changeset
  3295
hgs
parents:
diff changeset
  3296
hgs
parents:
diff changeset
  3297
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3298
// Enables streaming mode.
hgs
parents:
diff changeset
  3299
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3300
//
hgs
parents:
diff changeset
  3301
void CHapticsTestAppUi::StartStreaming()
hgs
parents:
diff changeset
  3302
    {
hgs
parents:
diff changeset
  3303
    iCurrentSample = 0;
hgs
parents:
diff changeset
  3304
    iEffectHandle = KErrNotFound;
hgs
parents:
diff changeset
  3305
    TInt err = iHaptics->CreateStreamingEffect( iEffectHandle );
hgs
parents:
diff changeset
  3306
hgs
parents:
diff changeset
  3307
    if ( err )
hgs
parents:
diff changeset
  3308
        {
hgs
parents:
diff changeset
  3309
        TBuf<16> errCode;
hgs
parents:
diff changeset
  3310
        errCode.AppendNum( err );
hgs
parents:
diff changeset
  3311
        iAppView->InsertOutput( _L("Create streaming effect failed! Err: "), EFalse );
hgs
parents:
diff changeset
  3312
        iAppView->InsertOutput( errCode );
hgs
parents:
diff changeset
  3313
        }
hgs
parents:
diff changeset
  3314
    else
hgs
parents:
diff changeset
  3315
        {
hgs
parents:
diff changeset
  3316
        TBuf<16> handleBuf;
hgs
parents:
diff changeset
  3317
        handleBuf.AppendNum( iEffectHandle );
hgs
parents:
diff changeset
  3318
        iAppView->InsertOutput( _L("Streaming effect created successfully!") );
hgs
parents:
diff changeset
  3319
        iAppView->InsertOutput( _L("    Effect handle: "), EFalse );
hgs
parents:
diff changeset
  3320
        iAppView->InsertOutput( handleBuf );
hgs
parents:
diff changeset
  3321
hgs
parents:
diff changeset
  3322
        iStreaming = ETrue;
hgs
parents:
diff changeset
  3323
        }
hgs
parents:
diff changeset
  3324
    }
hgs
parents:
diff changeset
  3325
hgs
parents:
diff changeset
  3326
hgs
parents:
diff changeset
  3327
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3328
// Plays one streaming sample from KStreamArray.
hgs
parents:
diff changeset
  3329
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3330
//
hgs
parents:
diff changeset
  3331
void CHapticsTestAppUi::PlayStreamingSample( TInt aSampleId )
hgs
parents:
diff changeset
  3332
    {
hgs
parents:
diff changeset
  3333
    RBuf8 sampleBuffer;
hgs
parents:
diff changeset
  3334
    sampleBuffer.ReAlloc( sizeof( KStreamArray[aSampleId] ) );
hgs
parents:
diff changeset
  3335
    TUint8* tmpPtr = const_cast<TUint8*>( sampleBuffer.Ptr() );
hgs
parents:
diff changeset
  3336
    memcpy( tmpPtr, KStreamArray[aSampleId], sizeof( KStreamArray[aSampleId] ) );
hgs
parents:
diff changeset
  3337
    sampleBuffer.SetLength( sizeof( KStreamArray[aSampleId] ) );
hgs
parents:
diff changeset
  3338
hgs
parents:
diff changeset
  3339
    iHaptics->PlayStreamingSample( iEffectHandle, sampleBuffer );
hgs
parents:
diff changeset
  3340
                                         
hgs
parents:
diff changeset
  3341
    sampleBuffer.Close();
hgs
parents:
diff changeset
  3342
    }
hgs
parents:
diff changeset
  3343
hgs
parents:
diff changeset
  3344
hgs
parents:
diff changeset
  3345
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3346
// Disables streaming mode.
hgs
parents:
diff changeset
  3347
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  3348
//
hgs
parents:
diff changeset
  3349
void CHapticsTestAppUi::StopStreaming()
hgs
parents:
diff changeset
  3350
    {
hgs
parents:
diff changeset
  3351
    iStreaming = EFalse;
hgs
parents:
diff changeset
  3352
hgs
parents:
diff changeset
  3353
    TInt err = iHaptics->DestroyStreamingEffect( iEffectHandle );            
hgs
parents:
diff changeset
  3354
    if ( err )
hgs
parents:
diff changeset
  3355
        {
hgs
parents:
diff changeset
  3356
        TBuf<16> errCode;
hgs
parents:
diff changeset
  3357
        errCode.AppendNum( err );
hgs
parents:
diff changeset
  3358
        iAppView->InsertOutput( _L("Destoy streaming effect failed! Err: "), EFalse );
hgs
parents:
diff changeset
  3359
        iAppView->InsertOutput( errCode );
hgs
parents:
diff changeset
  3360
        }
hgs
parents:
diff changeset
  3361
    else
hgs
parents:
diff changeset
  3362
        {
hgs
parents:
diff changeset
  3363
        TBuf<16> handleBuf;
hgs
parents:
diff changeset
  3364
        handleBuf.AppendNum( iEffectHandle );
hgs
parents:
diff changeset
  3365
        iAppView->InsertOutput( _L("Streaming effect destroyed successfully!") );
hgs
parents:
diff changeset
  3366
        }
hgs
parents:
diff changeset
  3367
    }
hgs
parents:
diff changeset
  3368
    
hgs
parents:
diff changeset
  3369
// End of file