hwrmhaptics/tsrc/haptics_stif/inc/hapticsclienttest.h
author hgs
Fri, 08 Oct 2010 14:33:25 +0300
changeset 76 cb32bcc88bad
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
76
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Symbian Foundation License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef HAPTICSCLIENTTEST_H
hgs
parents:
diff changeset
    20
#define HAPTICSCLIENTTEST_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
#include <hwrmhaptics.h>
hgs
parents:
diff changeset
    24
#include "hapticsclienttest_main.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
/**
hgs
parents:
diff changeset
    28
 * Callback class for haptics status observation.
hgs
parents:
diff changeset
    29
 */
hgs
parents:
diff changeset
    30
NONSHARABLE_CLASS( THapticsStatusCallback ) : public MHWRMHapticsObserver
hgs
parents:
diff changeset
    31
    {
hgs
parents:
diff changeset
    32
public:
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
    /**
hgs
parents:
diff changeset
    35
     * C++ constructor.
hgs
parents:
diff changeset
    36
     */
hgs
parents:
diff changeset
    37
    THapticsStatusCallback( CHapticsClientTest* aMTCallback );
hgs
parents:
diff changeset
    38
    
hgs
parents:
diff changeset
    39
    /**
hgs
parents:
diff changeset
    40
     * Destructor.
hgs
parents:
diff changeset
    41
     */
hgs
parents:
diff changeset
    42
    ~THapticsStatusCallback();
hgs
parents:
diff changeset
    43
    
hgs
parents:
diff changeset
    44
    /**
hgs
parents:
diff changeset
    45
     * Returns the last received status.
hgs
parents:
diff changeset
    46
     *
hgs
parents:
diff changeset
    47
     * @return Last status value.
hgs
parents:
diff changeset
    48
     */
hgs
parents:
diff changeset
    49
    MHWRMHapticsObserver::THWRMHapticsStatus Status();
hgs
parents:
diff changeset
    50
    
hgs
parents:
diff changeset
    51
    /**
hgs
parents:
diff changeset
    52
     * Starts a new wait loop under the current active scheduler.
hgs
parents:
diff changeset
    53
     * This method can be used in module tests to wait for the 
hgs
parents:
diff changeset
    54
     * notification to be received. When the notification is 
hgs
parents:
diff changeset
    55
     * received (i.e. callback is called by haptics), the waiting
hgs
parents:
diff changeset
    56
     * is stopped and the execution continues whereever this method
hgs
parents:
diff changeset
    57
     * was called.
hgs
parents:
diff changeset
    58
     */
hgs
parents:
diff changeset
    59
    void WaitForNotification();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
public: // from MHWRMHapticsObserver
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
    virtual void HapticsStatusChangedL( THWRMHapticsStatus aStatus );
hgs
parents:
diff changeset
    64
    virtual void EffectCompletedL( TInt aError, TInt aEffectHandle );
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
private:
hgs
parents:
diff changeset
    67
    
hgs
parents:
diff changeset
    68
    /**
hgs
parents:
diff changeset
    69
     * Last received haptics status through status observation.
hgs
parents:
diff changeset
    70
     */
hgs
parents:
diff changeset
    71
    MHWRMHapticsObserver::THWRMHapticsStatus iHapticsStatus;
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
    /**
hgs
parents:
diff changeset
    74
     * Callback which is notified, when a status has been received.
hgs
parents:
diff changeset
    75
     */
hgs
parents:
diff changeset
    76
    CHapticsClientTest* iMTCallback;
hgs
parents:
diff changeset
    77
    };
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
/**
hgs
parents:
diff changeset
    81
 * Callback class for actuator status observation.
hgs
parents:
diff changeset
    82
 */
hgs
parents:
diff changeset
    83
NONSHARABLE_CLASS( TActuatorStatusCallback ) : public MHWRMHapticsActuatorObserver
hgs
parents:
diff changeset
    84
    {
hgs
parents:
diff changeset
    85
public:
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
    /**
hgs
parents:
diff changeset
    88
     * C++ constructor.
hgs
parents:
diff changeset
    89
     */
hgs
parents:
diff changeset
    90
    TActuatorStatusCallback( CHapticsClientTest* aMTCallback );
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
    /**
hgs
parents:
diff changeset
    93
     * Destructor.
hgs
parents:
diff changeset
    94
     */
hgs
parents:
diff changeset
    95
    ~TActuatorStatusCallback();
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
    /**
hgs
parents:
diff changeset
    98
     * Returns the last received state.
hgs
parents:
diff changeset
    99
     *
hgs
parents:
diff changeset
   100
     * @return Last status value.
hgs
parents:
diff changeset
   101
     */
hgs
parents:
diff changeset
   102
    MHWRMHapticsActuatorObserver::THWRMActuatorEvents Status( THWRMLogicalActuators aActuator );
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    /**
hgs
parents:
diff changeset
   105
     * Starts a new wait loop under the current active scheduler.
hgs
parents:
diff changeset
   106
     * This method can be used in module tests to wait for the 
hgs
parents:
diff changeset
   107
     * notification to be received. When the notification is 
hgs
parents:
diff changeset
   108
     * received (i.e. callback is called by haptics), the waiting
hgs
parents:
diff changeset
   109
     * is stopped and the execution continues whereever this method
hgs
parents:
diff changeset
   110
     * was called.
hgs
parents:
diff changeset
   111
     */
hgs
parents:
diff changeset
   112
    void WaitForNotification();
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
public: // from MHWRMHapticsActuatorObserver
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    virtual void ActuatorEventL( THWRMActuatorEvents aEvent,
hgs
parents:
diff changeset
   117
                                 THWRMLogicalActuators aActuator );
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
private:
hgs
parents:
diff changeset
   120
    
hgs
parents:
diff changeset
   121
    /**
hgs
parents:
diff changeset
   122
     * Last received actuator status through state observation.
hgs
parents:
diff changeset
   123
     */
hgs
parents:
diff changeset
   124
    RArray<TInt> iActuatorStatus;
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    /**
hgs
parents:
diff changeset
   127
     * Callback which is notified, when a state has been received.
hgs
parents:
diff changeset
   128
     */
hgs
parents:
diff changeset
   129
    CHapticsClientTest* iMTCallback;
hgs
parents:
diff changeset
   130
    };
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
/**
hgs
parents:
diff changeset
   133
 * Class for making async play-with-filehandle calls on behalf of the
hgs
parents:
diff changeset
   134
 * CHapticsClientTest
hgs
parents:
diff changeset
   135
 */ 
hgs
parents:
diff changeset
   136
NONSHARABLE_CLASS( MT_HapticsTestAsyncPlaySender ) : public CActive
hgs
parents:
diff changeset
   137
    {
hgs
parents:
diff changeset
   138
public: 
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
    /**
hgs
parents:
diff changeset
   141
     * Constructor
hgs
parents:
diff changeset
   142
     *
hgs
parents:
diff changeset
   143
     * @param aUi   Pointer to the test appl UI object.
hgs
parents:
diff changeset
   144
     */
hgs
parents:
diff changeset
   145
    MT_HapticsTestAsyncPlaySender( CHapticsClientTest* aMTCallback );
hgs
parents:
diff changeset
   146
                                 
hgs
parents:
diff changeset
   147
    /**
hgs
parents:
diff changeset
   148
     * Destructor
hgs
parents:
diff changeset
   149
     */
hgs
parents:
diff changeset
   150
    virtual ~MT_HapticsTestAsyncPlaySender();
hgs
parents:
diff changeset
   151
 
hgs
parents:
diff changeset
   152
    /**
hgs
parents:
diff changeset
   153
     * Method for fileHandle type playing of effects repeatedly in asynch mode
hgs
parents:
diff changeset
   154
     * 
hgs
parents:
diff changeset
   155
     * @param aHaptics Pointer to the haptics interface object.
hgs
parents:
diff changeset
   156
     * @param aFileHandle Handle for the effect data buffer from which to
hgs
parents:
diff changeset
   157
     *                    play the effects.
hgs
parents:
diff changeset
   158
     * @param aEffectIndex Index of the effect that is being played.
hgs
parents:
diff changeset
   159
     * @param aRepeat Number of repeats.
hgs
parents:
diff changeset
   160
     * @param aEffectHandle Out-parameter to which the handle for the played
hgs
parents:
diff changeset
   161
     *        effect is returned.
hgs
parents:
diff changeset
   162
     */
hgs
parents:
diff changeset
   163
    void PlayRepeat( CHWRMHaptics* aHaptics,
hgs
parents:
diff changeset
   164
                     TInt  aFileHandle,
hgs
parents:
diff changeset
   165
                     TInt aEffectIndex,
hgs
parents:
diff changeset
   166
                     TUint8 aRepeat,
hgs
parents:
diff changeset
   167
                     TInt& aEffectHandle,
hgs
parents:
diff changeset
   168
                     TRequestStatus& aClientStatus );
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    /**
hgs
parents:
diff changeset
   171
     * Method for fileHandle type playing of effects in asynch mode
hgs
parents:
diff changeset
   172
     * 
hgs
parents:
diff changeset
   173
     * @param aHaptics Pointer to the haptics interface object.
hgs
parents:
diff changeset
   174
     * @param aFileHandle Handle for the effect data buffer from which to
hgs
parents:
diff changeset
   175
     *                    play the effects.
hgs
parents:
diff changeset
   176
     * @param aEffectIndex Index of the effect that is being played.
hgs
parents:
diff changeset
   177
     * @param aEffectHandle Out-parameter to which the handle for the played
hgs
parents:
diff changeset
   178
     *        effect is returned.
hgs
parents:
diff changeset
   179
     */
hgs
parents:
diff changeset
   180
    void Play( CHWRMHaptics* aHaptics,
hgs
parents:
diff changeset
   181
               TInt  aFileHandle,
hgs
parents:
diff changeset
   182
               TInt aEffectIndex,
hgs
parents:
diff changeset
   183
               TInt& aEffectHandle,
hgs
parents:
diff changeset
   184
               TRequestStatus& aClientStatus );
hgs
parents:
diff changeset
   185
 
hgs
parents:
diff changeset
   186
public:
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
    /**
hgs
parents:
diff changeset
   189
     * From CActive
hgs
parents:
diff changeset
   190
     */
hgs
parents:
diff changeset
   191
    virtual void RunL();
hgs
parents:
diff changeset
   192
    
hgs
parents:
diff changeset
   193
    /**
hgs
parents:
diff changeset
   194
     * From CActive
hgs
parents:
diff changeset
   195
     */
hgs
parents:
diff changeset
   196
    virtual void DoCancel();
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
    /**
hgs
parents:
diff changeset
   199
     * From CActive
hgs
parents:
diff changeset
   200
     */
hgs
parents:
diff changeset
   201
    virtual TInt RunError( TInt aError ); 
hgs
parents:
diff changeset
   202
 
hgs
parents:
diff changeset
   203
private:
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    /**
hgs
parents:
diff changeset
   206
     * Pointer to the CHapticsClientTest.
hgs
parents:
diff changeset
   207
     * Not owned.
hgs
parents:
diff changeset
   208
     */
hgs
parents:
diff changeset
   209
    CHapticsClientTest* iMTCallback;
hgs
parents:
diff changeset
   210
    
hgs
parents:
diff changeset
   211
    TRequestStatus* iClientStatus;
hgs
parents:
diff changeset
   212
    };
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
hgs
parents:
diff changeset
   215
#endif      //  HAPTICSCLIENTTEST_H