--- a/hwrmhaptics/hapticspacketizer/plugins/hapticsvibepacketizerplugin/src/hwrmhapticsvibepacketizer.cpp Mon Mar 15 12:45:37 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1905 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Plugin for handling vibe command packages.
-*
-*/
-
-#include <ecom/implementationproxy.h>
-#include <badesca.h>
-#include <hwrmhaptics.h>
-
-#include "hwrmhapticsvibepacketizer.h"
-#include "hwrmhapticsvibepackets.h"
-#include "hwrmhapticsvibeconstants.h"
-
-// Default request message size (enough for any request message)
-const TInt KMsgDefaultSize = 80;
-
-// const for shifts
-const TInt KShiftByte = 8;
-const TInt KShift2Bytes = 16;
-const TInt KShift3Bytes = 24;
-
-const TInt KArrayElements = 10;
-
-// ---------------------------------------------------------------------------
-// Two phased constructor.
-// ---------------------------------------------------------------------------
-//
-CHWRMHapticsVibePacketizer* CHWRMHapticsVibePacketizer::NewL()
- {
- CHWRMHapticsVibePacketizer* self =
- new ( ELeave ) CHWRMHapticsVibePacketizer();
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------------------------
-//
-CHWRMHapticsVibePacketizer::~CHWRMHapticsVibePacketizer()
- {
- iReqBuf.Close();
- iDataBuf.Close();
-
- if( iReturnArray )
- {
- delete iReturnArray;
- iReturnArray = NULL;
- }
- }
-
-// ---------------------------------------------------------------------------
-// Constructor.
-// ---------------------------------------------------------------------------
-//
-CHWRMHapticsVibePacketizer::CHWRMHapticsVibePacketizer()
- : iDeviceHandle( KErrNotFound )
- {
- }
-
-// ---------------------------------------------------------------------------
-// 2nd phase constructor.
-// ---------------------------------------------------------------------------
-//
-void CHWRMHapticsVibePacketizer::ConstructL()
- {
- User::LeaveIfError( iReqBuf.CreateMax( KMsgDefaultSize ) );
- User::LeaveIfError( iDataBuf.CreateMax( KMsgDefaultSize ) );
-
- iReturnArray = new (ELeave) CDesC8ArraySeg( KArrayElements );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncOpenDeviceReq(
- THWRMLogicalActuators aLogicalActuator, RBuf8& aBuffer )
- {
- TVibePacketOpenDeviceRequest* pReq =
- reinterpret_cast<TVibePacketOpenDeviceRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdOpenDevice;
- pReq->iDeviceIndex_7_0 =
- static_cast<TUint8>( aLogicalActuator & 0xFF );
- pReq->iDeviceIndex_15_8 =
- static_cast<TUint8>( ( aLogicalActuator >> KShiftByte ) & 0xFF );
- pReq->iDeviceIndex_23_16 =
- static_cast<TUint8>(
- ( aLogicalActuator >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceIndex_31_24 =
- static_cast<TUint8>(
- ( aLogicalActuator >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof ( TVibePacketOpenDeviceRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncCloseDeviceReq( TInt aDeviceHandle,
- RBuf8& aBuffer )
- {
- TVibePacketCloseDeviceRequest* pReq =
- reinterpret_cast<TVibePacketCloseDeviceRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdCloseDevice;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketCloseDeviceRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayMagSweepEffectReq(
- TInt aDeviceHandle, CHWRMHaptics::THWRMHapticsMagSweepEffect aEffect,
- RBuf8& aBuffer )
- {
- TVibePacketPlayBasisEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayBasisEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdPlayMagSweepEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDuration_7_0 =
- static_cast<TUint8>( aEffect.iDuration & 0xFF );
- pReq->iDuration_15_8 =
- static_cast<TUint8>( ( aEffect.iDuration >> KShiftByte ) & 0xFF );
- pReq->iDuration_23_16 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift2Bytes ) & 0xFF );
- pReq->iDuration_31_24 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift3Bytes ) & 0xFF );
- pReq->iMagnitude_7_0 =
- static_cast<TUint8>( aEffect.iMagnitude & 0xFF );
- pReq->iMagnitude_15_8 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShiftByte ) & 0xFF );
- pReq->iMagnitude_23_16 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift2Bytes ) & 0xFF );
- pReq->iMagnitude_31_24 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift3Bytes ) & 0xFF );
- pReq->iEffectTypeStyle =
- static_cast<TUint8>( ( aEffect.iStyle << 4 ) & 0xF0 );
- pReq->iPeriod_7_0 = 0x0;
- pReq->iPeriod_15_8 = 0x0;
- pReq->iPeriod_23_16 = 0x0;
- pReq->iPeriod_31_24 = 0x0;
- pReq->iImpulseTime_7_0 =
- static_cast<TUint8>( aEffect.iAttackTime & 0xFF );
- pReq->iImpulseTime_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShiftByte ) & 0xFF );
- pReq->iImpulseTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseLevel_7_0 =
- static_cast<TUint8>( aEffect.iAttackLevel & 0xFF );
- pReq->iImpulseLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShiftByte ) & 0xFF );
- pReq->iImpulseLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift3Bytes ) & 0xFF );
- pReq->iFadeTime_7_0 =
- static_cast<TUint8>( aEffect.iFadeTime & 0xFF );
- pReq->iFadeTime_15_8 =
- static_cast<TUint8>( ( aEffect.iFadeTime >> KShiftByte ) & 0xFF );
- pReq->iFadeTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift2Bytes ) & 0xFF );
- pReq->iFadeTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift3Bytes ) & 0xFF );
- pReq->iFadeLevel_7_0 =
- static_cast<TUint8>( aEffect.iFadeLevel & 0xFF );
- pReq->iFadeLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShiftByte ) & 0xFF );
- pReq->iFadeLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift2Bytes ) & 0xFF );
- pReq->iFadeLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketPlayBasisEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayPeriodicEffectReq( TInt aDeviceHandle,
- CHWRMHaptics::THWRMHapticsPeriodicEffect aEffect, RBuf8& aBuffer )
- {
- TVibePacketPlayBasisEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayBasisEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdPlayPeriodicEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDuration_7_0 =
- static_cast<TUint8>( aEffect.iDuration & 0xFF );
- pReq->iDuration_15_8 =
- static_cast<TUint8>( ( aEffect.iDuration >> KShiftByte ) & 0xFF );
- pReq->iDuration_23_16 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift2Bytes ) & 0xFF );
- pReq->iDuration_31_24 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift3Bytes ) & 0xFF );
- pReq->iMagnitude_7_0 =
- static_cast<TUint8>( aEffect.iMagnitude & 0xFF );
- pReq->iMagnitude_15_8 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShiftByte ) & 0xFF );
- pReq->iMagnitude_23_16 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift2Bytes ) & 0xFF );
- pReq->iMagnitude_31_24 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift3Bytes ) & 0xFF );
- pReq->iEffectTypeStyle =
- static_cast<TUint8>( ( ( aEffect.iStyle << 4 ) & 0xF0 ) | 0x01 );
- pReq->iPeriod_7_0 =
- static_cast<TUint8>( aEffect.iPeriod & 0xFF );
- pReq->iPeriod_15_8 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShiftByte ) & 0xFF );
- pReq->iPeriod_23_16 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShift2Bytes ) & 0xFF );
- pReq->iPeriod_31_24 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseTime_7_0 =
- static_cast<TUint8>( aEffect.iAttackTime & 0xFF );
- pReq->iImpulseTime_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShiftByte ) & 0xFF );
- pReq->iImpulseTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseLevel_7_0 =
- static_cast<TUint8>( aEffect.iAttackLevel & 0xFF );
- pReq->iImpulseLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShiftByte ) & 0xFF );
- pReq->iImpulseLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift3Bytes ) & 0xFF );
- pReq->iFadeTime_7_0 =
- static_cast<TUint8>( aEffect.iFadeTime & 0xFF );
- pReq->iFadeTime_15_8 =
- static_cast<TUint8>( ( aEffect.iFadeTime >> KShiftByte ) & 0xFF );
- pReq->iFadeTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift2Bytes ) & 0xFF );
- pReq->iFadeTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift3Bytes ) & 0xFF );
- pReq->iFadeLevel_7_0 =
- static_cast<TUint8>( aEffect.iFadeLevel & 0xFF );
- pReq->iFadeLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShiftByte ) & 0xFF );
- pReq->iFadeLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift2Bytes ) & 0xFF );
- pReq->iFadeLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketPlayBasisEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncModifyPlayingMagSweepEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle,
- CHWRMHaptics::THWRMHapticsMagSweepEffect aEffect, RBuf8& aBuffer )
- {
- TVibePacketModifyBasisEffectRequest* pReq =
- reinterpret_cast<TVibePacketModifyBasisEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdModifyPlayingMagSweepEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDuration_7_0 =
- static_cast<TUint8>( aEffect.iDuration & 0xFF );
- pReq->iDuration_15_8 =
- static_cast<TUint8>( ( aEffect.iDuration >> KShiftByte ) & 0xFF );
- pReq->iDuration_23_16 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift2Bytes ) & 0xFF );
- pReq->iDuration_31_24 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift3Bytes ) & 0xFF );
- pReq->iMagnitude_7_0 =
- static_cast<TUint8>( aEffect.iMagnitude & 0xFF );
- pReq->iMagnitude_15_8 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShiftByte ) & 0xFF );
- pReq->iMagnitude_23_16 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift2Bytes ) & 0xFF );
- pReq->iMagnitude_31_24 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift3Bytes ) & 0xFF );
- pReq->iEffectTypeStyle =
- static_cast<TUint8>( ( aEffect.iStyle << 4 ) & 0xF0 );
- pReq->iPeriod_7_0 = 0x0;
- pReq->iPeriod_15_8 = 0x0;
- pReq->iPeriod_23_16 = 0x0;
- pReq->iPeriod_31_24 = 0x0;
- pReq->iImpulseTime_7_0 =
- static_cast<TUint8>( aEffect.iAttackTime & 0xFF );
- pReq->iImpulseTime_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShiftByte ) & 0xFF );
- pReq->iImpulseTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseLevel_7_0 =
- static_cast<TUint8>( aEffect.iAttackLevel & 0xFF );
- pReq->iImpulseLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShiftByte ) & 0xFF );
- pReq->iImpulseLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift3Bytes ) & 0xFF );
- pReq->iFadeTime_7_0 =
- static_cast<TUint8>( aEffect.iFadeTime & 0xFF );
- pReq->iFadeTime_15_8 =
- static_cast<TUint8>( ( aEffect.iFadeTime >> KShiftByte ) & 0xFF );
- pReq->iFadeTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift2Bytes ) & 0xFF );
- pReq->iFadeTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift3Bytes ) & 0xFF );
- pReq->iFadeLevel_7_0 =
- static_cast<TUint8>( aEffect.iFadeLevel & 0xFF );
- pReq->iFadeLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShiftByte ) & 0xFF );
- pReq->iFadeLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift2Bytes ) & 0xFF );
- pReq->iFadeLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketModifyBasisEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncModifyPlayingPeriodicEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle,
- CHWRMHaptics::THWRMHapticsPeriodicEffect aEffect, RBuf8& aBuffer )
- {
- TVibePacketModifyBasisEffectRequest* pReq =
- reinterpret_cast<TVibePacketModifyBasisEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdModifyPlayingPeriodicEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDuration_7_0 =
- static_cast<TUint8>( aEffect.iDuration & 0xFF );
- pReq->iDuration_15_8 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShiftByte ) & 0xFF );
- pReq->iDuration_23_16 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift2Bytes ) & 0xFF );
- pReq->iDuration_31_24 =
- static_cast<TUint8>(
- ( aEffect.iDuration >> KShift3Bytes ) & 0xFF );
- pReq->iMagnitude_7_0 =
- static_cast<TUint8>( aEffect.iMagnitude & 0xFF );
- pReq->iMagnitude_15_8 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShiftByte ) & 0xFF );
- pReq->iMagnitude_23_16 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift2Bytes ) & 0xFF );
- pReq->iMagnitude_31_24 =
- static_cast<TUint8>(
- ( aEffect.iMagnitude >> KShift3Bytes ) & 0xFF );
- pReq->iEffectTypeStyle =
- static_cast<TUint8>( ( ( aEffect.iStyle << 4 ) & 0xF0 ) | 0x01 );
- pReq->iPeriod_7_0 =
- static_cast<TUint8>( aEffect.iPeriod & 0xFF );
- pReq->iPeriod_15_8 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShiftByte ) & 0xFF );
- pReq->iPeriod_23_16 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShift2Bytes ) & 0xFF );
- pReq->iPeriod_31_24 =
- static_cast<TUint8>( ( aEffect.iPeriod >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseTime_7_0 =
- static_cast<TUint8>( aEffect.iAttackTime & 0xFF );
- pReq->iImpulseTime_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShiftByte ) & 0xFF );
- pReq->iImpulseTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackTime >> KShift3Bytes ) & 0xFF );
- pReq->iImpulseLevel_7_0 =
- static_cast<TUint8>( aEffect.iAttackLevel & 0xFF );
- pReq->iImpulseLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShiftByte ) & 0xFF );
- pReq->iImpulseLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift2Bytes ) & 0xFF );
- pReq->iImpulseLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iAttackLevel >> KShift3Bytes ) & 0xFF );
- pReq->iFadeTime_7_0 =
- static_cast<TUint8>( aEffect.iFadeTime & 0xFF );
- pReq->iFadeTime_15_8 =
- static_cast<TUint8>( ( aEffect.iFadeTime >> KShiftByte ) & 0xFF );
- pReq->iFadeTime_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift2Bytes ) & 0xFF );
- pReq->iFadeTime_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeTime >> KShift3Bytes ) & 0xFF );
- pReq->iFadeLevel_7_0 =
- static_cast<TUint8>( aEffect.iFadeLevel & 0xFF );
- pReq->iFadeLevel_15_8 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShiftByte ) & 0xFF );
- pReq->iFadeLevel_23_16 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift2Bytes ) & 0xFF );
- pReq->iFadeLevel_31_24 =
- static_cast<TUint8>(
- ( aEffect.iFadeLevel >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketModifyBasisEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPausePlayingEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle, RBuf8& aBuffer )
- {
- TVibePacketPausePlayingEffectRequest* pReq =
- reinterpret_cast<TVibePacketPausePlayingEffectRequest*>
- (const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdPausePlayingEffect;
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketPausePlayingEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncResumePausedEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle, RBuf8& aBuffer )
- {
- TVibePacketResumePlayingEffectRequest* pReq =
- reinterpret_cast<TVibePacketResumePlayingEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdResumePausedEffect;
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketResumePlayingEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncStopPlayingEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle, RBuf8& aBuffer )
- {
- TVibePacketStopEffectRequest* pReq =
- reinterpret_cast<TVibePacketStopEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdStopEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketStopEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncStopAllPlayingEffectsReq(
- TInt aDeviceHandle, RBuf8& aBuffer )
- {
- TVibePacketStopAllEffectsRequest* pReq =
- reinterpret_cast<TVibePacketStopAllEffectsRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdStopAllEffects;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketStopAllEffectsRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayEffectIncludeEffectDataReq(
- TInt aDeviceHandle, const TDesC8& aData, TInt aEffectIndex,
- RBuf8& aBuffer )
- {
- iDataBuf.Close();
- TInt err = iDataBuf.Create( aData.Size() + KMsgDefaultSize );
-
- TVibePacketPlayIVTEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayIVTEffectRequest*>
- ( const_cast<TUint8*>( iDataBuf.Ptr() ) );
-
- if ( !err && pReq &&
- ( ( aData.Size() + KMsgDefaultSize ) <= KVibePacketMaxSize ) )
- {
- pReq->iCmdCode = KVibeCmdPlayIVTEffectIncludeData;
- pReq->iIvtDataSize = aData.Size();
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iIvtIndex_7_0 =
- static_cast<TUint8>( aEffectIndex & 0xFF );
- pReq->iIvtIndex_15_8 =
- static_cast<TUint8>( ( aEffectIndex >> KShiftByte ) & 0xFF );
- pReq->iRepeat = 0x0;
-
- memcpy( pReq->iIvtData, aData.Ptr(), aData.Size() );
-
- // the data buffer length is set to the size of the request packet
- // plus size of the data minus 1 (minus 1, because first byte of the
- // data is already calculated as part of the request packet size).
- iDataBuf.SetLength(
- sizeof( TVibePacketPlayIVTEffectRequest ) + aData.Size() -1 );
- }
- else
- {
- iDataBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iDataBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayEffectRepeatIncludeEffectDataReq(
- TInt aDeviceHandle, const TDesC8& aData, TInt aEffectIndex,
- TUint8 aRepeat, RBuf8& aBuffer )
- {
- iDataBuf.Close();
- TInt err = iDataBuf.Create( aData.Size() + KMsgDefaultSize );
-
- TVibePacketPlayIVTEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayIVTEffectRequest*>
- ( const_cast<TUint8*>( iDataBuf.Ptr() ) );
-
- if ( !err && pReq &&
- ( ( aData.Size() + KMsgDefaultSize ) <= KVibePacketMaxSize ) )
- {
- pReq->iCmdCode = KVibeCmdPlayIVTEffectIncludeData;
- pReq->iIvtDataSize = aData.Size();
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iIvtIndex_7_0 =
- static_cast<TUint8>( aEffectIndex & 0xFF );
- pReq->iIvtIndex_15_8 =
- static_cast<TUint8>( ( aEffectIndex >> KShiftByte ) & 0xFF );
- pReq->iRepeat = aRepeat;
-
- memcpy( pReq->iIvtData, aData.Ptr(), aData.Size() );
-
- // the data buffer length is set to the size of the request packet
- // plus size of the data minus 1 (minus 1, because first byte of the
- // data is already calculated as part of the request packet size).
- iDataBuf.SetLength(
- sizeof( TVibePacketPlayIVTEffectRequest ) + aData.Size() -1 );
- }
- else
- {
- iDataBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iDataBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayEffectRepeatNoDataReq(
- TInt aDeviceHandle, TInt aEffectIndex, TUint8 aRepeat, RBuf8& aBuffer )
- {
- TVibePacketPlayIVTEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayIVTEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdPlayIVTEffectNoData;
- pReq->iIvtDataSize = 0x0;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iIvtIndex_7_0 =
- static_cast<TUint8>( aEffectIndex & 0xFF );
- pReq->iIvtIndex_15_8 =
- static_cast<TUint8>( ( aEffectIndex >> KShiftByte ) & 0xFF );
- pReq->iRepeat = aRepeat;
- iReqBuf.SetLength( sizeof( TVibePacketPlayIVTEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayEffectNoDataReq(
- TInt aDeviceHandle, TInt aEffectIndex, RBuf8& aBuffer )
- {
- TVibePacketPlayIVTEffectRequest* pReq =
- reinterpret_cast<TVibePacketPlayIVTEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdPlayIVTEffectNoData;
- pReq->iIvtDataSize = 0x0;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iIvtIndex_7_0 =
- static_cast<TUint8>( aEffectIndex & 0xFF );
- pReq->iIvtIndex_15_8 =
- static_cast<TUint8>( ( aEffectIndex >> KShiftByte ) & 0xFF );
- pReq->iRepeat = 0x0;
- iReqBuf.SetLength( sizeof( TVibePacketPlayIVTEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncCreateStreamingEffectReq(
- TInt aDeviceHandle, RBuf8& aBuffer )
- {
- TVibePacketCreateStreamingEffectRequest* pReq =
- reinterpret_cast<TVibePacketCreateStreamingEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdCreateStreamingEffect;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength(
- sizeof( TVibePacketCreateStreamingEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncDestroyStreamingEffectReq(
- TInt aDeviceHandle, TInt aEffectHandle, RBuf8& aBuffer )
- {
- TVibePacketDestroyStreamingEffectRequest* pReq =
- reinterpret_cast<TVibePacketDestroyStreamingEffectRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdDestroyStreamingEffect;
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength(
- sizeof( TVibePacketDestroyStreamingEffectRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayStreamingSampleReq(
- TInt aDeviceHandle, const TDesC8& aStreamingSample, TInt aEffectHandle,
- RBuf8& aBuffer )
- {
- return EncPlayStreamingSampleInternal( aDeviceHandle,
- aEffectHandle,
- aStreamingSample,
- 0, aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayStreamingSampleWithOffsetReq(
- TInt aDeviceHandle, const TDesC8& aStreamingSample, TInt aOffsetTime,
- TInt aEffectHandle, RBuf8& aBuffer )
- {
- return EncPlayStreamingSampleInternal( aDeviceHandle,
- aEffectHandle,
- aStreamingSample,
- aOffsetTime,
- aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetEffectStateReq(
- TInt aDeviceHandle, TInt aEffectHandle, RBuf8& aBuffer )
- {
- TVibePacketGetEffectStateRequest* pReq =
- reinterpret_cast<TVibePacketGetEffectStateRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdGetEffectState;
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof( TVibePacketGetEffectStateRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncSetDevicePropertyBoolReq(
- TInt aDeviceHandle, TBool aDevPropValue, TInt aDevPropType,
- RBuf8& aBuffer )
- {
- TVibePacketSetDevicePropertyRequest* pReq =
- reinterpret_cast<TVibePacketSetDevicePropertyRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdSetDeviceProperty;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyType_7_0 =
- static_cast<TUint8>( aDevPropType & 0xFF );
- pReq->iPropertyType_15_8 =
- static_cast<TUint8>( ( aDevPropType >> KShiftByte ) & 0xFF );
- pReq->iPropertyType_23_16 =
- static_cast<TUint8>( ( aDevPropType >> KShift2Bytes ) & 0xFF );
- pReq->iPropertyType_31_24 =
- static_cast<TUint8>( ( aDevPropType >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyValueType =
- static_cast<TUint8>( KVibeValuetypeBool );
- pReq->iSize = 1; // size of bool data is 1 byte
- pReq->iPropertyValue[0] =
- static_cast<TUint8>( aDevPropValue );
- iReqBuf.SetLength( sizeof( TVibePacketSetDevicePropertyRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncSetDevicePropertyIntReq(
- TInt aDeviceHandle, TInt aDevPropValue, TInt aDevPropType,
- RBuf8& aBuffer )
- {
- TVibePacketSetDevicePropertyRequest* pReq =
- reinterpret_cast<TVibePacketSetDevicePropertyRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdSetDeviceProperty;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyType_7_0 =
- static_cast<TUint8>( aDevPropType & 0xFF );
- pReq->iPropertyType_15_8 =
- static_cast<TUint8>( ( aDevPropType >> KShiftByte ) & 0xFF );
- pReq->iPropertyType_23_16 =
- static_cast<TUint8>( ( aDevPropType >> KShift2Bytes ) & 0xFF );
- pReq->iPropertyType_31_24 =
- static_cast<TUint8>( ( aDevPropType >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyValueType =
- static_cast<TUint8>( KVibeValuetypeInt32 );
- pReq->iSize = 4; // Size of int32 value is 4 bytes
- pReq->iPropertyValue[0] =
- static_cast<TUint8>( aDevPropValue & 0xFF );
- pReq->iPropertyValue[1] =
- static_cast<TUint8>( ( aDevPropValue >> KShiftByte ) & 0xFF );
- pReq->iPropertyValue[2] =
- static_cast<TUint8>( ( aDevPropValue >> KShift2Bytes ) & 0xFF );
- pReq->iPropertyValue[3] =
- static_cast<TUint8>( ( aDevPropValue >> KShift3Bytes ) & 0xFF );
- // the data buffer length is set to the size of the request packet
- // plus size of the data minus 1. Since int32 type data is always
- // 4 bytes, the extra size needed for data is 3 bytes (4-1).
- iReqBuf.SetLength(
- sizeof( TVibePacketSetDevicePropertyRequest ) +3 );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncSetDevicePropertyStringReq(
- TInt aDeviceHandle, const TDesC8& aDevPropValue, TInt aDevPropType,
- RBuf8& aBuffer )
- {
- iDataBuf.Close();
- TInt err = iDataBuf.Create( aDevPropValue.Size() + KMsgDefaultSize );
-
- TVibePacketSetDevicePropertyRequest* pReq =
- reinterpret_cast<TVibePacketSetDevicePropertyRequest*>
- ( const_cast<TUint8*>( iDataBuf.Ptr() ) );
-
- if ( !err && pReq &&
- ( ( aDevPropValue.Size() + KMsgDefaultSize ) <= KVibePacketMaxSize ) )
- {
- pReq->iCmdCode = KVibeCmdSetDeviceProperty;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyType_7_0 =
- static_cast<TUint8>( aDevPropType & 0xFF );
- pReq->iPropertyType_15_8 =
- static_cast<TUint8>( ( aDevPropType >> KShiftByte ) & 0xFF );
- pReq->iPropertyType_23_16 =
- static_cast<TUint8>( ( aDevPropType >> KShift2Bytes ) & 0xFF );
- pReq->iPropertyType_31_24 =
- static_cast<TUint8>( ( aDevPropType >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyValueType =
- static_cast<TUint8>( KVibeValuetypeString );
- pReq->iSize =
- static_cast<TUint8>( aDevPropValue.Size() );
-
- memcpy ( pReq->iPropertyValue,
- reinterpret_cast<TUint8*>(
- const_cast<TUint8*>( aDevPropValue.Ptr() ) ),
- aDevPropValue.Size() );
-
- // the data buffer length is set to the size of the request packet
- // plus size of the data minus 1 (minus 1, because first byte of the
- // data is already calculated as part of the request packet size).
- iDataBuf.SetLength(
- sizeof( TVibePacketSetDevicePropertyRequest ) + pReq->iSize -1 );
- }
- else
- {
- iDataBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iDataBuf );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncSetPlatformLicenseKeyReq(
- TInt aDeviceHandle, RBuf8& aBuffer )
- {
- TInt ret = EncSetDevicePropertyStringReq( aDeviceHandle, KNullDesC8,
- CHWRMHaptics::EHWRMHapticsLicensekey,
- aBuffer );
-
- // change the command id from general device property to setting
- // license key
- if ( ret == KErrNone )
- {
- TVibePacketSetDevicePropertyRequest* tmpReq =
- reinterpret_cast<TVibePacketSetDevicePropertyRequest*>
- ( const_cast<TUint8*>( aBuffer.Ptr() ) );
-
- if ( tmpReq )
- {
- tmpReq->iCmdCode = KVibeCmdSetLicense;
- }
- }
-
- return ret;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDevicePropertyBoolReq(
- TInt aDeviceHandle, TInt aDevPropType, RBuf8& aBuffer )
- {
- return EncGetDevicePropertyReqInternal(
- KVibeValuetypeBool, aDeviceHandle, aDevPropType, aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDevicePropertyIntReq(
- TInt aDeviceHandle, TInt aDevPropType, RBuf8& aBuffer )
- {
- return EncGetDevicePropertyReqInternal(
- KVibeValuetypeInt32, aDeviceHandle, aDevPropType, aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDevicePropertyStringReq(
- TInt aDeviceHandle, TInt aDevPropType, RBuf8& aBuffer )
- {
- return EncGetDevicePropertyReqInternal(
- KVibeValuetypeString, aDeviceHandle, aDevPropType, aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDeviceCapabilityIntReq(
- TInt aDeviceHandle, TInt aDevCapType, RBuf8& aBuffer )
- {
- return EncGetDeviceCapabilityReqInternal( KVibeValuetypeInt32,
- aDeviceHandle,
- aDevCapType,
- aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDeviceCapabilityStringReq(
- TInt aDeviceHandle, TInt aDevCapType, RBuf8& aBuffer )
- {
- return EncGetDeviceCapabilityReqInternal( KVibeValuetypeString,
- aDeviceHandle,
- aDevCapType,
- aBuffer );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CDesC8ArraySeg* CHWRMHapticsVibePacketizer::DecodeMessageL(
- const TDesC8& aData, TInt& aStatus )
- {
- // Clear Array before use
- iReturnArray->Reset();
-
- TVibePacket* pRsp =
- reinterpret_cast<TVibePacket*>( const_cast<TUint8*>( aData.Ptr() ) );
-
- switch( pRsp->iSimpleRsp.iCmdCode )
- {
- case KVibeCmdOpenDevice:
- {
- aStatus = pRsp->iOpenDeviceRsp.iVibeStatus;
- iDeviceHandle =
- pRsp->iOpenDeviceRsp.iDeviceHandle_7_0 |
- pRsp->iOpenDeviceRsp.iDeviceHandle_15_8 << KShiftByte |
- pRsp->iOpenDeviceRsp.iDeviceHandle_23_16 << KShift2Bytes |
- pRsp->iOpenDeviceRsp.iDeviceHandle_31_24 << KShift3Bytes;
-
- TPckg<TInt> deviceHandlePckg( iDeviceHandle );
-
- iReturnArray->AppendL( deviceHandlePckg );
- break;
- }
-
- case KVibeCmdCloseDevice:
- {
- aStatus = pRsp->iCloseDeviceRsp.iVibeStatus;
- iDeviceHandle = KErrNotFound;
- break;
- }
-
- case KVibeCmdSetDeviceProperty: // flow through
- case KVibeCmdSetLicense:
- {
- aStatus = pRsp->iSetDevicePropertyRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdGetDeviceProperty:
- {
- TInt propertyValueType =
- pRsp->iGetDevicePropertyRsp.iPropertyValueType;
-
- switch( propertyValueType )
- {
- case KVibeValuetypeBool:
- {
- aStatus = pRsp->iGetDevicePropertyRsp.iVibeStatus;
-
- TUint8* intArr =
- pRsp->iGetDevicePropertyRsp.iPropertyValue;
-
- TUint value = ( TUint( intArr[0] ) );
- TPckg<TBool> devicePropertyValuePckg( value );
-
- iReturnArray->AppendL( devicePropertyValuePckg );
- break;
- }
- case KVibeValuetypeInt32:
- {
- aStatus = pRsp->iGetDevicePropertyRsp.iVibeStatus;
-
- TUint8* intArr =
- pRsp->iGetDevicePropertyRsp.iPropertyValue;
-
- TUint value = ( TUint( intArr[0] ) )
- | ( TUint( intArr[1] ) << KShiftByte )
- | ( TUint( intArr[2] ) << KShift2Bytes )
- | ( TUint( intArr[3] ) << KShift3Bytes );
- TPckg<TInt> devicePropertyValuePckg( value );
-
- iReturnArray->AppendL( devicePropertyValuePckg );
- break;
- }
-
- case KVibeValuetypeString:
- {
- aStatus = pRsp->iGetDevicePropertyRsp.iVibeStatus;
- TInt stringSize = pRsp->iGetDevicePropertyRsp.iSize;
-
- if( stringSize > MaxPropertyStringLength() )
- {
- // truncate string if too long
- stringSize = MaxPropertyStringLength();
- }
-
- TUint8* text = reinterpret_cast<TUint8*>(
- pRsp->iGetDevicePropertyRsp.iPropertyValue );
- TPtrC8 ptr( text, stringSize );
-
- iReturnArray->AppendL( ptr );
- break;
- }
- default:
- break;
- }// switch
- break;
- }
-
- case KVibeCmdPlayMagSweepEffect: // flow through
- case KVibeCmdPlayPeriodicEffect:
- {
- aStatus = pRsp->iPlayBasisEffectRsp.iVibeStatus;
- TInt effectHandle =
- pRsp->iPlayBasisEffectRsp.iEffectHandle_7_0 |
- pRsp->iPlayBasisEffectRsp.iEffectHandle_15_8 << KShiftByte |
- pRsp->iPlayBasisEffectRsp.iEffectHandle_23_16 << KShift2Bytes |
- pRsp->iPlayBasisEffectRsp.iEffectHandle_31_24 << KShift3Bytes;
-
- TPckg<TInt> effectHandlePckg( effectHandle );
- iReturnArray->AppendL( effectHandlePckg );
- break;
- }
-
- case KVibeCmdPlayIVTEffectIncludeData: // flow through
- case KVibeCmdPlayIVTEffectNoData:
- {
- aStatus = pRsp->iPlayIVTEffectRsp.iVibeStatus;
- TInt effectHandle =
- pRsp->iPlayIVTEffectRsp.iEffectHandle_7_0 |
- pRsp->iPlayIVTEffectRsp.iEffectHandle_15_8 << KShiftByte |
- pRsp->iPlayIVTEffectRsp.iEffectHandle_23_16 << KShift2Bytes |
- pRsp->iPlayIVTEffectRsp.iEffectHandle_31_24 << KShift3Bytes;
-
- TPckg<TInt> effectHandlePckg( effectHandle );
- iReturnArray->AppendL( effectHandlePckg );
- break;
- }
-
- case KVibeCmdModifyPlayingMagSweepEffect: // flow through
- case KVibeCmdModifyPlayingPeriodicEffect:
- {
- aStatus = pRsp->iModifyBasisEffectRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdStopEffect:
- {
- aStatus = pRsp->iStopEffectRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdStopAllEffects:
- {
- aStatus = pRsp->iStopAllEffectsRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdGetDeviceCapabilities:
- {
- TInt capabilityValueType =
- pRsp->iGetDeviceCapsRsp.iCapabilityValueType;
-
- switch( capabilityValueType )
- {
- case KVibeValuetypeInt32:
- {
- aStatus = pRsp->iGetDeviceCapsRsp.iVibeStatus;
- TUint8* intArr =
- pRsp->iGetDeviceCapsRsp.iCapabilityValue;
-
- TUint value = ( TUint( intArr[0] ) )
- | ( TUint( intArr[1] ) << KShiftByte )
- | ( TUint( intArr[2] ) << KShift2Bytes )
- | ( TUint( intArr[3] ) << KShift3Bytes );
-
- TPckg<TInt> deviceCapabilityValuePckg( value );
- iReturnArray->AppendL( deviceCapabilityValuePckg );
- break;
- }
-
- case KVibeValuetypeString:
- {
- aStatus = pRsp->iGetDeviceCapsRsp.iVibeStatus;
- TUint8* text =
- reinterpret_cast<TUint8*>(
- pRsp->iGetDeviceCapsRsp.iCapabilityValue );
- TInt stringSize ( pRsp->iGetDeviceCapsRsp.iSize );
-
- if( stringSize > MaxCapabilityStringLength() )
- {
- // truncate string if too long
- stringSize = MaxCapabilityStringLength();
- }
- TPtrC8 ptr( text, stringSize );
-
- iReturnArray->AppendL( ptr );
- break;
- }
- default:
- break;
- }// switch
- break;
- }
-
- case KVibeCmdPlayStreamingSample:
- {
- aStatus = pRsp->iPlayStreamingSampleRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdCreateStreamingEffect:
- {
- aStatus = pRsp->iCreateStreamingEffectRsp.iVibeStatus;
-
- TInt effectHandle =
- pRsp->iCreateStreamingEffectRsp.iEffectHandle_7_0 |
- pRsp->iCreateStreamingEffectRsp.iEffectHandle_15_8
- << KShiftByte |
- pRsp->iCreateStreamingEffectRsp.iEffectHandle_23_16
- << KShift2Bytes |
- pRsp->iCreateStreamingEffectRsp.iEffectHandle_31_24
- << KShift3Bytes;
-
- TPckg<TInt> effectHandlePckg( effectHandle );
- iReturnArray->AppendL( effectHandlePckg );
- break;
- }
-
- case KVibeCmdDestroyStreamingEffect:
- {
- aStatus = pRsp->iDestroyStreamingEffectRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdPausePlayingEffect:
- {
- aStatus = pRsp->iPausePlayingEffectRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdResumePausedEffect:
- {
- aStatus = pRsp->iResumePausedEffectRsp.iVibeStatus;
- break;
- }
-
- case KVibeCmdGetEffectState:
- {
- aStatus = pRsp->iGetEffectStateRsp.iVibeStatus;
- TInt effectState = pRsp->iGetEffectStateRsp.iEffectState;
-
- TPckg<TInt> effectStatePckg( effectState );
- iReturnArray->AppendL( effectStatePckg );
- break;
- }
-
- default:
- User::Leave( KErrGeneral );
- }
-
- // convert vibe error code to Symbian error code
- aStatus = MapError( aStatus );
-
- return iReturnArray;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::DeviceHandle()
- {
- return iDeviceHandle;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::InfiniteRepeat()
- {
- return static_cast<TInt>( KVibeRepeatCountInfinite );
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::InfiniteDuration()
- {
- return KVibeTimeInfinite;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MaxEffectNameLength()
- {
- return KVibeMaxEffectNameLength;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MaxDeviceNameLength()
- {
- return KVibeMaxDeviceNameLength;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MaxCapabilityStringLength()
- {
- return KVibeMaxCapabilityStringLength;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MaxPropertyStringLength()
- {
- return KVibeMaxPropertyStringLength;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MaxStreamingSampleSize()
- {
- return KVibeMaxStreamingSampleSize;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::DefaultDevicePriority()
- {
- return KVibeDevicePriorityDefault;
- }
-
-// ---------------------------------------------------------------------------
-// Internal helper method. Fills Get Device Capability request data.
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDeviceCapabilityReqInternal(
- TInt aValueType, TInt aDeviceHandle, TInt aDevCapType, RBuf8& aBuffer )
- {
- TVibePacketGetDeviceCapabilitiesRequest* pReq =
- reinterpret_cast<TVibePacketGetDeviceCapabilitiesRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdGetDeviceCapabilities;
- pReq->iCapabilityValueType =
- static_cast<TUint8>( aValueType );
- pReq->iDeviceIndex_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceIndex_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceIndex_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceIndex_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iCapabilityType_7_0 =
- static_cast<TUint8>( aDevCapType & 0xFF );
- pReq->iCapabilityType_15_8 =
- static_cast<TUint8>( ( aDevCapType >> KShiftByte ) & 0xFF );
- pReq->iCapabilityType_23_16 =
- static_cast<TUint8>( ( aDevCapType >> KShift2Bytes ) & 0xFF );
- pReq->iCapabilityType_31_24 =
- static_cast<TUint8>( ( aDevCapType >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength(
- sizeof ( TVibePacketGetDeviceCapabilitiesRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-// Internal helper method. Fills Get Device Property request data.
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncGetDevicePropertyReqInternal(
- TInt aValueType, TInt aDeviceHandle, TInt aDevPropType, RBuf8& aBuffer )
- {
- TVibePacketGetDevicePropertyRequest* pReq =
- reinterpret_cast<TVibePacketGetDevicePropertyRequest*>
- ( const_cast<TUint8*>( iReqBuf.Ptr() ) );
-
- if ( pReq )
- {
- pReq->iCmdCode = KVibeCmdGetDeviceProperty;
- pReq->iPropertyValueType =
- static_cast<TUint8>( aValueType );
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iPropertyType_7_0 =
- static_cast<TUint8>( aDevPropType & 0xFF );
- pReq->iPropertyType_15_8 =
- static_cast<TUint8>( ( aDevPropType >> KShiftByte ) & 0xFF );
- pReq->iPropertyType_23_16 =
- static_cast<TUint8>( ( aDevPropType >> KShift2Bytes ) & 0xFF );
- pReq->iPropertyType_31_24 =
- static_cast<TUint8>( ( aDevPropType >> KShift3Bytes ) & 0xFF );
- iReqBuf.SetLength( sizeof ( TVibePacketGetDevicePropertyRequest ) );
- }
- else
- {
- iReqBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iReqBuf );
- }
-
-// ---------------------------------------------------------------------------
-// Internal helper method. Fills Play Streaming Sample request data.
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::EncPlayStreamingSampleInternal(
- TInt aDeviceHandle, TInt aEffectHandle, const TDesC8& aStreamingSample,
- TInt aOffsetTime, RBuf8& aBuffer )
- {
- iDataBuf.Close();
- TInt err = iDataBuf.Create( aStreamingSample.Size() + KMsgDefaultSize );
-
- TVibePacketPlayStreamingSampleRequest* pReq =
- reinterpret_cast<TVibePacketPlayStreamingSampleRequest*>
- ( const_cast<TUint8*>( iDataBuf.Ptr() ) );
-
- if ( !err && pReq &&
- ( ( aStreamingSample.Size() + KMsgDefaultSize ) <=
- KVibePacketMaxSize ) )
- {
- pReq->iCmdCode = KVibeCmdPlayStreamingSample;
- pReq->iDeviceHandle_7_0 =
- static_cast<TUint8>( aDeviceHandle & 0xFF );
- pReq->iDeviceHandle_15_8 =
- static_cast<TUint8>( ( aDeviceHandle >> KShiftByte ) & 0xFF );
- pReq->iDeviceHandle_23_16 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift2Bytes ) & 0xFF );
- pReq->iDeviceHandle_31_24 =
- static_cast<TUint8>( ( aDeviceHandle >> KShift3Bytes ) & 0xFF );
- pReq->iEffectHandle_7_0 =
- static_cast<TUint8>( aEffectHandle & 0xFF );
- pReq->iEffectHandle_15_8 =
- static_cast<TUint8>( ( aEffectHandle >> KShiftByte ) & 0xFF );
- pReq->iEffectHandle_23_16 =
- static_cast<TUint8>( ( aEffectHandle >> KShift2Bytes ) & 0xFF );
- pReq->iEffectHandle_31_24 =
- static_cast<TUint8>( ( aEffectHandle >> KShift3Bytes ) & 0xFF );
- pReq->iSize = static_cast<TUint8>( aStreamingSample.Size() );
- pReq->iEffectOffsetTime_7_0 =
- static_cast<TUint8>( aOffsetTime & 0xFF );
- pReq->iEffectOffsetTime_15_8 =
- static_cast<TUint8>( ( aOffsetTime >> KShiftByte ) & 0xFF );
-
- memcpy( pReq->iStreamingData,
- reinterpret_cast<TUint8*>(
- const_cast<TUint8*>( aStreamingSample.Ptr() ) ),
- aStreamingSample.Size() );
-
- iDataBuf.SetLength(
- sizeof ( TVibePacketPlayStreamingSampleRequest )
- + aStreamingSample.Size() -1 );
- }
- else
- {
- iDataBuf.SetLength( 0 );
- }
-
- return aBuffer.Create( iDataBuf );
- }
-
-// ---------------------------------------------------------------------------
-// Maps Vibe error code to Symbian error code.
-// ---------------------------------------------------------------------------
-//
-TInt CHWRMHapticsVibePacketizer::MapError( TInt aVibeError )
- {
- TInt error = KErrNone;
-
- switch ( aVibeError )
- {
- case KVibeErrAlreadyInitialized:
- {
- error = KErrAlreadyExists;
- break;
- }
-
- case KVibeErrNotInitialized:
- {
- error = KErrNotReady;
- break;
- }
-
- case KVibeWarningNotPlaying: // flow through
- case KVibeErrInvalidArgument:
- {
- error = KErrArgument;
- break;
- }
-
- case KVibeErrFail:
- {
- error = KErrGeneral;
- break;
- }
-
- case KVibeErrIncompatibleEffectType: // flow through
- case KVibeErrIncompatibleCapabilityType: // flow through
- case KVibeErrIncompatiblePropertyType:
- {
- error = KErrNotSupported;
- break;
- }
-
- case KVibeErrDeviceNeedsLicense:
- {
- error = KErrAccessDenied;
- break;
- }
-
- case KVibeErrNotEnoughMemory:
- {
- error = KErrNoMemory;
- break;
- }
-
- case KVibeErrServiceNotRunning:
- {
- error = KErrNotReady;
- break;
- }
-
- case KVibeErrInsufficientPriority:
- {
- error = KErrAccessDenied;
- break;
- }
-
- case KVibeErrServiceBusy:
- {
- error = KErrInUse;
- break;
- }
-
- case KVibeStatusSuccess:
- {
- error = KErrNone;
- break;
- }
-
- default:
- {
- // All the warning codes, except KVibeWarningNotPlaying
- // are handled here. Thus they are converted to KErrNone.
- break;
- }
- }
-
- return error;
- }
-
-// ---------------------------------------------------------------------------
-// ImplementationTable[]
-// ---------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( 0x20021207, CHWRMHapticsVibePacketizer::NewL )
- };
-
-// ---------------------------------------------------------------------------
-// TImplementationProxy* ImplementationGroupProxy()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
- {
- aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- return ImplementationTable;
- }
-
-// End of file