systemswstubs/hwrmhapticsstubplugin/src/hwrmhapticsstubplugin.cpp
author Shabe Razvi <shaber@symbian.org>
Wed, 27 Jan 2010 15:23:15 +0000
changeset 5 6ac4a04c9b06
child 16 cee235f8aa57
permissions -rw-r--r--
Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     1
/*
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     3
* All rights reserved.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     8
*
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
     9
* Initial Contributors:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    11
*
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    12
* Contributors:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    13
*
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    14
* Description:  Haptics test (adaptation) plugin implementation.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    15
*
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    16
*/
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    17
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    18
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    19
#include <s32mem.h>
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    20
#include <hwrmhapticscommands.h>
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    21
#include "hwrmhapticsstubplugin.h"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    22
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    23
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    24
// Static instantiation method.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    25
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    26
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    27
CHWRMHapticsStubPlugin* CHWRMHapticsStubPlugin::NewL( 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    28
                                    MHWRMHapticsPluginCallback* aCallback )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    29
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    30
    CHWRMHapticsStubPlugin* self = 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    31
        new ( ELeave ) CHWRMHapticsStubPlugin( aCallback );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    32
    CleanupStack::PushL( self );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    33
    self->ConstructL();
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    34
    CleanupStack::Pop( self );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    35
    return self;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    36
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    37
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    38
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    39
// Destructor
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    40
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    41
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    42
CHWRMHapticsStubPlugin::~CHWRMHapticsStubPlugin()
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    43
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    44
    iResponders.ResetAndDestroy();
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    45
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    46
    if ( iIdle )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    47
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    48
        iIdle->Cancel();
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    49
        delete iIdle;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    50
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    51
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    52
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    53
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    54
// Implementation of ProcessCommandL. Creates an idle responder and appends it
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    55
// to the array of idle responders. (Later then, when the responder gets 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    56
// runtime, it will initiate the response generation).
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    57
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    58
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    59
void CHWRMHapticsStubPlugin::ProcessCommandL( TInt aCommandId,
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    60
                                              TUint8 aTransId,
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    61
                                              TDesC8& aData )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    62
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    63
    if ( aCommandId != HWRMHapticsCommand::EHapticsCmdId ||
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    64
         aData.Size() < 2 ) // minimum length check
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    65
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    66
        User::Leave( KErrBadDescriptor );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    67
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    68
        
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    69
    TUint8* dataPtr = const_cast<TUint8*>( aData.Ptr() );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    70
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    71
    if ( !dataPtr )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    72
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    73
        User::Leave( KErrBadDescriptor );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    74
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    75
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    76
    CHWRMHapticsStubPluginIdleResponder* responder = 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    77
        CHWRMHapticsStubPluginIdleResponder::NewL( this, aTransId, dataPtr );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    78
    CleanupStack::PushL( responder );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    79
    iResponders.AppendL( responder );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    80
    CleanupStack::Pop ( responder );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    81
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    82
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    83
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    84
// Implementation of CancelCommandL. Just removes the corresponding idle 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    85
// responder.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    86
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    87
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    88
void CHWRMHapticsStubPlugin::CancelCommandL( TUint8 aTransId, 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    89
                                             TInt /* aCommandId */ )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    90
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    91
    RemoveResponder( aTransId );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    92
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    93
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    94
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    95
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    96
// Method that does the actual response generation towards the issuer of 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    97
// command i.e., the HapticsPluginManager
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    98
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
    99
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   100
void CHWRMHapticsStubPlugin::GenerateResponseL( TUint8 aTransId,
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   101
                                                TUint8* aData )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   102
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   103
    // Hardcoded responses generated based on the command code (first 2 bytes
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   104
    // of the aData data packet, but since at the moment the 2nd byte is 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   105
    // always 0x00, we just use the 1st one)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   106
    TUint8 command = aData[0];
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   107
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   108
    TBuf8<KHWRMHapticsRespMaxSize> binRespData;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   109
    binRespData.SetLength( KHWRMHapticsRespMaxSize );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   110
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   111
    TInt i( 0 );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   112
    // For each command the response data's first two bytes are copy of
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   113
    // the received command code (first 2 bytes of aData).
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   114
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   115
    binRespData[i++] = aData[0]; // command code bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   116
    binRespData[i++] = aData[1]; // command code bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   117
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   118
    switch ( command )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   119
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   120
        case 0x00: // API version query
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   121
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   122
            // Response to API version query contains:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   123
            //      1 byte major version number
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   124
            //      1 byte minor version number
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   125
            //      2 bytes for build version
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   126
            binRespData[i++] = 0x02; // major version
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   127
            binRespData[i++] = 0x00; // minor version
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   128
            binRespData[i++] = 0x53; // build version bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   129
            binRespData[i++] = 0x04; // build version bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   130
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   131
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   132
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   133
        case 0x01: // Initialize
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   134
        case 0x02: // Terminate
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   135
        case 0x06: // Modify basis effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   136
        case 0x07: // Stop effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   137
        case 0x08: // Stop all effects
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   138
        case 0x0B: // Reset debug buffer
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   139
        case 0x0C: // Stop designed bridge
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   140
        case 0x13: // Close device
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   141
        case 0x14: // Start designed bridge
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   142
        case 0x16: // Play streaming sample
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   143
        case 0x18: // Destroy streaming effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   144
        case 0x19: // Pause playing effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   145
        case 0x1A: // Resume playing effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   146
        case 0x1E: // Modify magsweep effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   147
        case 0x1F: // Modify periodic effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   148
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   149
            // For these commands the response only contains status byte 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   150
            // (set to 0x00 ("Success") in this stub).
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   151
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   152
            break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   153
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   154
 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   155
        case 0x03: // Play basis effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   156
        case 0x04: // Play IVT effect (with IVT data)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   157
        case 0x05: // Play IVT effect (without IVT data)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   158
        case 0x17: // Create streaming effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   159
        case 0x1C: // Play magsweep effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   160
        case 0x1D: // Play periodic effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   161
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   162
            // The response consists of status byte (0x00) and 4-byte long
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   163
            // effectHandle (here hardcoded as 0x01000000)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   164
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   165
            binRespData[i++] = 0x01; // effectHandle bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   166
            binRespData[i++] = 0x00; // effectHandle bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   167
            binRespData[i++] = 0x00; // effectHandle bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   168
            binRespData[i++] = 0x00; // effectHandle bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   169
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   170
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   171
            
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   172
        case 0x09: // Get device capabilities
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   173
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   174
            // The response consists of status byte (0x00), 4-byte long
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   175
            // capability type (copied from the received command (bytes 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   176
            // 7..10)), 1-byte capability  value type (copied from the 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   177
            // received command (byte 2), 1-byte size byte and "size" bytes
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   178
            // long value
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   179
            binRespData[i++] = 0x00;      // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   180
            binRespData[i++] = aData[7];  // capability type bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   181
            binRespData[i++] = aData[8];  // capability type bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   182
            binRespData[i++] = aData[9];  // capability type bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   183
            binRespData[i++] = aData[10]; // capability type bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   184
            binRespData[i++] = aData[2];  // capability value type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   185
            // The size and value depend on what exactly is being queried
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   186
            // Note: Currently only the lowest (0..7) bytes of capability
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   187
            //       type have meaning, thus the switch case below is 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   188
            //       simplified..
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   189
            // Note: Since all values, except device name, are actually 32-bit
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   190
            //       integers, their size is always 4.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   191
            TUint8 capabilityType = aData[7];
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   192
            switch ( capabilityType )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   193
                {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   194
                case 0: // device category
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   195
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   196
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   197
                    binRespData[i++] = 0x02;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   198
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   199
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   200
                    binRespData[i++] = 0x00; // value - virtual device
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   201
                    break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   202
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   203
                case 1: // max nested repeats
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   204
                case 2: // num of actuators
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   205
                case 4: // num of effect slots
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   206
                case 6: // min period
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   207
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   208
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   209
                    binRespData[i++] = 0x01;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   210
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   211
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   212
                    binRespData[i++] = 0x00; // value - 0x1
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   213
                    break;  
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   214
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   215
                case 3: // actuator type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   216
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   217
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   218
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   219
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   220
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   221
                    binRespData[i++] = 0x00; // value - ERM actuator
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   222
                    break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   223
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   224
                case 5: // supported styles
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   225
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   226
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   227
                    binRespData[i++] = 0x07;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   228
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   229
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   230
                    binRespData[i++] = 0x00; // value - all styles   
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   231
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   232
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   233
                case 7:  // max period 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   234
                case 8:  // max effect duration
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   235
                case 11: // max envelope time
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   236
                case 13: // max IVT file size (tethered)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   237
                case 14: // max IVT file size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   238
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   239
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   240
                    binRespData[i++] = 0xFF;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   241
                    binRespData[i++] = 0xFF;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   242
                    binRespData[i++] = 0x00; // 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   243
                    binRespData[i++] = 0x00; // value => 0xFFFF.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   244
                    break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   245
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   246
                case 9: // supported effects
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   247
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   248
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   249
                    binRespData[i++] = 0x07;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   250
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   251
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   252
                    binRespData[i++] = 0x00; // value - mag|per|timeline   
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   253
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   254
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   255
                case 10: // device name
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   256
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   257
                    binRespData[i++] = 0x04;  // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   258
                    binRespData[i++] = 0x52;  // value - byte 1, ascii "S"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   259
                    binRespData[i++] = 0x53;  // value - byte 2, ascii "T"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   260
                    binRespData[i++] = 0x54;  // value - byte 3, ascii "U"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   261
                    binRespData[i++] = 0x42;  // value - byte 4, ascoo "B"
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   262
                    break;   
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   263
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   264
                case 12: // API version number
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   265
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   266
                    binRespData[i++] = 0x04; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   267
                    binRespData[i++] = 0x02;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   268
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   269
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   270
                    binRespData[i++] = 0x00; // value - API version 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   271
                                             // Note: same as major version in
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   272
                                             // specific API version query
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   273
                                             // 0x2
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   274
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   275
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   276
                default:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   277
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   278
                    // Here status byte changed to -6 (0xFA)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   279
                    // ("incompatible capability type")
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   280
                    binRespData[2]   = 0xFA; // status (re-assigned)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   281
                    binRespData[i++] = 0x00; // value size set to zero
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   282
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   283
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   284
                } // inner switch ends
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   285
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   286
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   287
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   288
        case 0x0A: // Get debug buffer
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   289
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   290
            // The response consists of status byte (0x00) and 2 bytes
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   291
            // indicating the buffer size followed by the buffer itself.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   292
            // Here buffer size zero is used => thus this only consists of
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   293
            // 3 bytes
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   294
            // FFS: This may have to be changed if the zero-length is not ok.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   295
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   296
            binRespData[i++] = 0x00; // buffer size bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   297
            binRespData[i++] = 0x00; // buffer size bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   298
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   299
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   300
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   301
        case 0x0D: // Get device state
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   302
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   303
            // The response consists of status byte (0x00) and 4 bytes that
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   304
            // indicate the device state (the bytes used here mean 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   305
            // "device attached to the system")
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   306
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   307
            binRespData[i++] = 0x01; // device state bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   308
            binRespData[i++] = 0x00; // device state bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   309
            binRespData[i++] = 0x00; // device state bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   310
            binRespData[i++] = 0x00; // device state bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   311
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   312
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   313
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   314
        case 0x0E: // Set kernel param
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   315
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   316
            // The response consists of status byte (0x00) and 2 bytes that
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   317
            // are the kernel param Id's copied from the received command 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   318
            // (bytes 6 and 7)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   319
            binRespData[i++] = 0x00;     // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   320
            binRespData[i++] = aData[6]; // kernel param Id bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   321
            binRespData[i++] = aData[7]; // kernel param Id bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   322
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   323
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   324
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   325
        case 0x0F: // Get kernel param
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   326
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   327
            // The response consists of status byte (0x00), 2 bytes that are
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   328
            // the kernel param Id's copied from the received command 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   329
            // (bytes 6&7) and two bytes for (here dummy 0x00) values
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   330
            binRespData[i++] = 0x00;     // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   331
            binRespData[i++] = aData[6]; // kernel param Id bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   332
            binRespData[i++] = aData[7]; // kernel param Id bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   333
            binRespData[i++] = 0x00;     // kernel param value bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   334
            binRespData[i++] = 0x00;     // kernel param value bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   335
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   336
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   337
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   338
        case 0x10: // Set device property
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   339
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   340
            // The response consists of status byte (0x00), 4 bytes indicating
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   341
            // the property type (copied from the received command's bytes 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   342
            // 6..9) and 1 byte indicating the property value type (copied
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   343
            // from the received command's byte 10).
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   344
            binRespData[i++] = 0x00;      // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   345
            binRespData[i++] = aData[6];  // property type bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   346
            binRespData[i++] = aData[7];  // property type bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   347
            binRespData[i++] = aData[8];  // property type bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   348
            binRespData[i++] = aData[9];  // property type bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   349
            binRespData[i++] = aData[10]; // property value type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   350
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   351
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   352
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   353
        case 0x11: // Get device property
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   354
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   355
            // The response consists of 1-byte status (0x00), 4-byte long
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   356
            // property type (copied from the received command bytes 7..10),
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   357
            // 1-byte property value type (copied from the received command
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   358
            // byte 2), 1-byte size byte and "size" bytes long value part
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   359
            binRespData[i++] = 0x00;      // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   360
            binRespData[i++] = aData[7];  // property type bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   361
            binRespData[i++] = aData[8];  // property type bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   362
            binRespData[i++] = aData[9];  // property type bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   363
            binRespData[i++] = aData[10]; // property type bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   364
            binRespData[i++] = aData[2];  // property value type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   365
            // The size and value depend on what exactly is being queried
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   366
            // Note: Currently only the lowest (0..7) bytes of capability type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   367
            //       have meaning, thus the switch case below is simplified
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   368
            TUint8 propertyType = aData[7];
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   369
            switch ( propertyType )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   370
                {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   371
                case 0: 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   372
                    // license key.. not feasible as GET device property type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   373
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   374
                    // re-assign the status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   375
                    binRespData[2]   = 0xF9; // status - incompatible property
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   376
                                             //          type
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   377
                    binRespData[i++] = 0x00; // value size == 0 (=> no value)                    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   378
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   379
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   380
                case 1: // priority
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   381
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   382
                    binRespData[i++] = 0x04; // size (32-bit integer takes 4
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   383
                                             // bytes)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   384
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   385
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   386
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   387
                    binRespData[i++] = 0x00; // value - 0x0 is lowest priority
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   388
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   389
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   390
                case 2: // disable effects
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   391
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   392
                    binRespData[i++] = 0x04; // size 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   393
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   394
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   395
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   396
                    binRespData[i++] = 0x00; // value - 0x0 means not disabled
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   397
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   398
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   399
                case 3: // strength
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   400
                case 4: // master strength
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   401
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   402
                    binRespData[i++] = 0x04; // size 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   403
                    binRespData[i++] = 0xFF;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   404
                    binRespData[i++] = 0xFF;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   405
                    binRespData[i++] = 0x00;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   406
                    binRespData[i++] = 0x00; // => value 0xFFFF
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   407
                    break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   408
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   409
                default:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   410
                    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   411
                    // Pehaps it's best to change the status byte to -7 (0xF9)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   412
                    // ("incompatible property type")
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   413
                    binRespData[2]   = 0xF9; // status (re-assigned)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   414
                    binRespData[i++] = 0x00; // value size, set to zero
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   415
                    break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   416
                    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   417
                } // inner switch ends
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   418
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   419
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   420
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   421
        case 0x12: // Open device
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   422
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   423
            // The response consists of status byte (0x00) and 4-byte long
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   424
            // deviceHandle (here hardcoded as 0x01000000)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   425
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   426
            binRespData[i++] = 0x01; // deviceHandle bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   427
            binRespData[i++] = 0x00; // deviceHandle bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   428
            binRespData[i++] = 0x00; // deviceHandle bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   429
            binRespData[i++] = 0x00; // deviceHandle bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   430
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   431
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   432
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   433
        case 0x15: // Device count
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   434
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   435
            // The response only contains the device count (here value == 1)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   436
            binRespData[i++] = 0x01;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   437
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   438
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   439
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   440
        case 0x1B: // Get effect state
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   441
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   442
            // The response consists of status byte (0x00) and one byte effect
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   443
            // state (0x00 used here meaning "Not playing")
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   444
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   445
            binRespData[i++] = 0x00; // effect state 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   446
            break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   447
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   448
            
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   449
        case 0x20: // Load IVT data
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   450
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   451
            // The response consists of status byte (0x00) and 4-byte long
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   452
            // fileHandle (here hardcoded as 0x01000000)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   453
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   454
            binRespData[i++] = 0x01; // fileHandle bits 0..7
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   455
            binRespData[i++] = 0x00; // fileHandle bits 8..15
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   456
            binRespData[i++] = 0x00; // fileHandle bits 16..23
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   457
            binRespData[i++] = 0x00; // fileHandle bits 24..31
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   458
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   459
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   460
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   461
        case 0x30: // Get license key
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   462
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   463
            binRespData[i++] = 0x00; // status
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   464
            binRespData[i++] = 0x20; // size
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   465
            for( TInt n=0; n<0x20; )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   466
                {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   467
                binRespData[i++] = 0x53; // S
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   468
                n++;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   469
                binRespData[i++] = 0x54; // T
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   470
                n++;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   471
                binRespData[i++] = 0x55; // U
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   472
                n++;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   473
                binRespData[i++] = 0x42; // B
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   474
                n++;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   475
                }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   476
            break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   477
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   478
            
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   479
        case 0xFF: // Protocol version query
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   480
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   481
            // Response to Protocol version query contains:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   482
            //      1 byte minor version number
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   483
            //      1 byte major version number
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   484
            binRespData[i++] = 0x00; // minor version 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   485
            binRespData[i++] = 0x03; // major version
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   486
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   487
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   488
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   489
        default:
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   490
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   491
            // Unknown command.. 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   492
            break;    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   493
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   494
        } // switch ends 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   495
        
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   496
    // set the lenght of the raw response data
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   497
    binRespData.SetLength( i );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   498
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   499
    // create Haptics response data. This is done by externalizing 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   500
    // (with RDesWriteStream whose sink is the Haptics response data)
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   501
    TInt32 respDataErr( KErrNone );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   502
    CHWRMHapticsRespData* respData = 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   503
        CHWRMHapticsRespData::NewLC( respDataErr, binRespData );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   504
    HWRMHapticsCommand::RHWRMHapticsRespData resp;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   505
    resp.CreateL( KHWRMHapticsRespMaxSize );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   506
    CleanupClosePushL( resp );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   507
    RDesWriteStream streamWriter( resp );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   508
    CleanupClosePushL( streamWriter );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   509
    streamWriter << *respData;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   510
    // This commits to stream's sink (i.e., to 'resp')
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   511
    CleanupStack::PopAndDestroy( &streamWriter );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   512
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   513
    // Call the ProcessResponseL of the HapticsPluginManager
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   514
    // object that created this stub plugin instance.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   515
    iResponseCallback->ProcessResponseL
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   516
        ( HWRMHapticsCommand::EHapticsCmdId, aTransId, resp );    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   517
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   518
    CleanupStack::PopAndDestroy( &resp );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   519
    CleanupStack::PopAndDestroy( respData );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   520
    // Order garbage collection of "spent" responder(s), if not already
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   521
    // waiting for scheduling
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   522
    if ( !iIdle->IsActive() )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   523
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   524
        iIdle->Start( TCallBack ( CollectGarbageIdle, this ) );    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   525
        }         
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   526
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   527
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   528
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   529
// Static method called as CIdle TCallBack in order to remove obsolete 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   530
// responder from the array of responder pointers
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   531
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   532
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   533
TInt CHWRMHapticsStubPlugin::CollectGarbageIdle( TAny* aObjectPtr )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   534
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   535
    CHWRMHapticsStubPlugin* self = 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   536
        reinterpret_cast<CHWRMHapticsStubPlugin*>( aObjectPtr );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   537
    if ( self )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   538
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   539
        self->CollectGarbage();
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   540
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   541
    return KErrNone;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   542
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   543
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   544
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   545
// Removes all responders that have finished their work from iResponders array
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   546
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   547
// 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   548
void CHWRMHapticsStubPlugin::CollectGarbage()
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   549
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   550
    for( TInt i( 0 ); i < iResponders.Count(); )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   551
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   552
        if ( iResponders[i]->Active() )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   553
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   554
            ++i; // skip this, it's still active.. 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   555
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   556
        else     
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   557
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   558
            delete iResponders[i];
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   559
            iResponders.Remove( i );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   560
            // note: array index i is not incremented as in the next round
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   561
            //       it already is the position of next item..
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   562
            //       obviously the iResponders.Count() will be then one less
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   563
            //       than in this round.
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   564
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   565
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   566
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   567
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   568
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   569
// Constructor
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   570
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   571
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   572
CHWRMHapticsStubPlugin::CHWRMHapticsStubPlugin( 
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   573
                                MHWRMHapticsPluginCallback* aCallback )     
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   574
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   575
    // set callback to baseclass' member variable
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   576
    iResponseCallback = aCallback;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   577
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   578
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   579
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   580
// Two-phase construction ConstructL
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   581
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   582
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   583
void CHWRMHapticsStubPlugin::ConstructL()     
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   584
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   585
    iIdle = CIdle::NewL( CActive::EPriorityIdle );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   586
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   587
    // inform haptics of the plugin state
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   588
    iResponseCallback->PluginEnabled( EHWRMLogicalActuatorAny, ETrue );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   589
    iResponseCallback->PluginEnabled( EHWRMLogicalActuatorDevice, ETrue );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   590
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   591
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   592
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   593
// Removes a specific responder (based on transId) from iResponders array
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   594
// ---------------------------------------------------------------------------
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   595
//
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   596
void CHWRMHapticsStubPlugin::RemoveResponder( TUint8 aTransId )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   597
    {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   598
    TInt count( iResponders.Count() );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   599
    
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   600
    for( TInt i( 0 ); i < count; ++i )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   601
        {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   602
        if ( iResponders[i]->TransId() == aTransId )
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   603
            {
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   604
            delete iResponders[i];
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   605
            iResponders.Remove( i );
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   606
            break;
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   607
            }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   608
        }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   609
    }
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   610
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   611
// end of file
6ac4a04c9b06 Bug 1624 - systemswstubs\hwrmhapticsstubplugin\ missing from 201003 drop
Shabe Razvi <shaber@symbian.org>
parents:
diff changeset
   612