EngSrc/IESensorMonitor.cpp
author jkauppin
Fri, 15 Oct 2010 10:18:29 +0900
changeset 3 93fff7023be8
permissions -rw-r--r--
Initial version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     1
/*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     3
* All rights reserved.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     4
* This component and the accompanying materials are made available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     6
* which accompanies this distribution, and is available
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     8
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
     9
* Initial Contributors:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    11
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    12
* Contributors: Juha Kauppinen, Mika Hokkanen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    13
* 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    14
* Description: Photo Browser
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    15
*
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    16
*/
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    17
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    18
#include "IESensorMonitor.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    19
#include "debug.h"
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    20
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    21
#ifdef _ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    22
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    23
#ifdef _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    24
const TInt KAccelerometerSensorUID = 0x10273024;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    25
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    26
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    27
CIESensorMonitor* CIESensorMonitor::NewL(MIESensorMonitorObserver& aSensorObserver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    28
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    29
    DP0_IMAGIC(_L("CIESensorMonitor::NewL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    30
    CIESensorMonitor* self=new (ELeave) CIESensorMonitor(aSensorObserver);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    31
    CleanupStack::PushL(self);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    32
    self->ConstructL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    33
    CleanupStack::Pop();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    34
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    35
    DP0_IMAGIC(_L("CIESensorMonitor::NewL--"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    36
    return self;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    37
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    38
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    39
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    40
void CIESensorMonitor::ConstructL()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    41
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    42
    DP0_IMAGIC(_L("CIESensorMonitor::ConstructL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    43
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    44
#ifdef _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    45
    // Noise filter for the accelerometer;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    46
    iAccSensorDataX = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    47
    iAccSensorDataY = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    48
    iAccSensorDataZ = 0;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    49
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    50
#ifdef SENSOR_API_LOAD_DYNAMICALLY
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    51
    _LIT( KSensorApiDll, "RRSensorApi" );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    52
    TUidType dllUid( KDynamicLibraryUid );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    53
    TInt error = iSensorApi.Load( KSensorApiDll, dllUid );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    54
    User::LeaveIfError(error);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    55
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    56
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    57
    iSensorDataFilterX = CIESensorDataFilter::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    58
    iSensorDataFilterY = CIESensorDataFilter::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    59
    iSensorDataFilterZ = CIESensorDataFilter::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    60
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    61
#ifdef SENSOR_API_LOAD_DYNAMICALLY
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    62
    // If Sensor API library is dynamically linked
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    63
    typedef void ( *TFindSensorsLFunction )( RArray<TRRSensorInfo>& ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    64
    TFindSensorsLFunction findSensorsLFunction = ( TFindSensorsLFunction )iSensorApi.Lookup( 1 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    65
    findSensorsLFunction( iSensorList );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    66
#else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    67
    TRAPD( error , CRRSensorApi::FindSensorsL(iSensorList));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    68
    if (error)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    69
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    70
    // Error found in sensors  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    71
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    72
#endif    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    73
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    74
    TInt sensorCount = iSensorList.Count();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    75
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    76
    for (TInt i = 0; i < sensorCount; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    77
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    78
        if (iSensorList[i].iSensorId == KAccelerometerSensorUID)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    79
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    80
            iAccelerometerSensorIndex = i;       
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    81
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    82
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    83
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    84
#endif _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    85
#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    86
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    87
    DP0_IMAGIC(_L("CIESensorMonitor::ConstructL - create CSensrvChannelFinder"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    88
    iSensrvChannelFinder = CSensrvChannelFinder::NewL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    89
    DP1_IMAGIC(_L("CIESensorMonitor::ConstructL - CSensrvChannelFinder created: %d"),iSensrvChannelFinder);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    90
        
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    91
    iChannelInfoList.Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    92
    TSensrvChannelInfo mySearchConditions; // none, so matches all.
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    93
    DP0_IMAGIC(_L("CIESensorMonitor::ConstructL - iSensrvChannelFinder->FindChannelsL"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    94
    TRAPD(err, iSensrvChannelFinder->FindChannelsL(iChannelInfoList, mySearchConditions));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    95
    if(err != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    96
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    97
        DP1_IMAGIC(_L("CIESensorMonitor::ConstructL - iSensrvChannelFinder->FindChannelsL ERROR: %d"), err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    98
        User::Leave(err);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
    99
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   100
    DP0_IMAGIC(_L("CIESensorMonitor::ConstructL - iSensrvChannelFinder->FindChannelsL - OK"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   101
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   102
    TInt senIndex(0); // Sensor Selection 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   103
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   104
    TBuf<256> text;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   105
    text.Append(_L(" ----------------------------FOUND SENSOR=" ));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   106
    text.AppendNum(iChannelInfoList.Count());
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   107
    DP0_IMAGIC(text);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   108
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   109
    if(senIndex >= 0 && senIndex < iChannelInfoList.Count())
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   110
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   111
        DP0_IMAGIC(_L("CIESensorMonitor::ConstructL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   112
        iSensrvSensorChannel = CSensrvChannel::NewL( iChannelInfoList[senIndex] );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   113
        iSensrvSensorChannel->OpenChannelL();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   114
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   115
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   116
#endif //_S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   117
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   118
    DP0_IMAGIC(_L("CIESensorMonitor::ConstructL++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   119
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   120
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   121
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   122
CIESensorMonitor::CIESensorMonitor(MIESensorMonitorObserver& aSensorObserver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   123
    :iSensorObserver(aSensorObserver)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   124
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   125
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   126
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   127
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   128
CIESensorMonitor::~CIESensorMonitor()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   129
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   130
    DP0_IMAGIC(_L("CIESensorMonitor::~CIESensorMonitor"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   131
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   132
    StopMonitoring();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   133
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   134
#ifdef _S60_3x_ACCELEROMETER_ 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   135
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   136
#ifdef SENSOR_API_LOAD_DYNAMICALLY
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   137
    // Close dynamically loaded library
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   138
    iSensorApi.Close();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   139
#endif //SENSOR_API_LOAD_DYNAMICALLY    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   140
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   141
    delete iAccelerometerSensor;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   142
    iAccelerometerSensor = NULL;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   143
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   144
#ifdef _S60_5x_ACCELEROMETER_ 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   145
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   146
    if(iSensrvSensorChannel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   147
	    iSensrvSensorChannel->CloseChannel();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   148
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   149
    delete iSensrvSensorChannel;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   150
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   151
    iChannelInfoList.Reset();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   152
    delete iSensrvChannelFinder;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   153
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   154
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   155
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   156
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   157
void CIESensorMonitor::StartMonitoring()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   158
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   159
    DP0_IMAGIC(_L("CIESensorMonitor::StartMonitoring+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   160
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   161
#ifdef _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   162
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   163
#ifdef SENSOR_API_LOAD_DYNAMICALLY
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   164
    // If Sensor API library is dynamically linked
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   165
    typedef CRRSensorApi* ( *TNewLFunction )( TRRSensorInfo ); 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   166
    TNewLFunction newLFunction = ( TNewLFunction )iSensorApi.Lookup( 2 );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   167
    iAccelerometerSensor = newLFunction( iSensorList[iAccelerometerSensorIndex] );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   168
#else    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   169
    iAccelerometerSensor = CRRSensorApi::NewL(iSensorList[iAccelerometerSensorIndex]);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   170
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   171
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   172
    if (iAccelerometerSensor)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   173
        iAccelerometerSensor->AddDataListener(this);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   174
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   175
#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   176
    if(iSensrvSensorChannel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   177
        iSensrvSensorChannel->StartDataListeningL( this, 1,1,iUpdateInterval);         
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   178
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   179
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   180
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   181
void CIESensorMonitor::StopMonitoring()
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   182
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   183
    DP0_IMAGIC(_L("CSensorMonitor::StopMonitoring++"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   184
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   185
#ifdef _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   186
    if(iAccelerometerSensor)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   187
        iAccelerometerSensor->RemoveDataListener();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   188
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   189
#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   190
    if(iSensrvSensorChannel)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   191
        iSensrvSensorChannel->StopDataListening();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   192
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   193
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   194
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   195
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   196
#ifdef _S60_3x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   197
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   198
void CIESensorMonitor::HandleDataEventL(TRRSensorInfo aSensor, TRRSensorEvent aEvent)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   199
    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   200
    TImagicDeviceOrientation deviceOrientation;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   201
     // Axis Data
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   202
    switch (aSensor.iSensorId)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   203
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   204
        case KAccelerometerSensorUID:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   205
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   206
            iAccSensorDataX = iSensorDataFilterX->FilterSensorData(aEvent.iSensorData1); // X 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   207
            iAccSensorDataY = iSensorDataFilterY->FilterSensorData(aEvent.iSensorData2); // Y
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   208
            iAccSensorDataZ = iSensorDataFilterZ->FilterSensorData(aEvent.iSensorData3); // Z
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   209
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   210
            TInt x = Abs(iAccSensorDataX);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   211
            TInt y = Abs(iAccSensorDataY);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   212
            TInt z = Abs(iAccSensorDataZ);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   213
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   214
            // Calculate the orientation of the screen
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   215
            if (x>z && x>z) // Landscape
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   216
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   217
                if (iAccSensorDataX > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   218
                    deviceOrientation = EOrientationDisplayRigthUp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   219
                else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   220
                    deviceOrientation = EOrientationDisplayLeftUp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   221
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   222
            if (y>x && y>z) // Portrait Mode
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   223
                {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   224
                if (iAccSensorDataY > 0)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   225
                    deviceOrientation = EOrientationDisplayUp;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   226
                else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   227
                    deviceOrientation = EOrientationDisplayDown;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   228
                
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   229
                }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   230
            //if (z>x && z>y)  
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   231
            //    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   232
            //    if (iAccSensorDataZ)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   233
                  //Not used  deviceOrientation = EOrientationDisplayDownwards;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   234
            //    else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   235
                  //Not used  deviceOrientation = EOrientationDisplayUpwards;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   236
            //    } 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   237
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   238
            iSensorObserver.SensorDataAvailable(deviceOrientation, EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   239
            
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   240
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   241
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   242
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   243
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   244
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   245
    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   246
#endif
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   247
#ifdef _S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   248
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   249
 _LIT( KTimeString, "%-B%:0%J%:1%T%:2%S%.%*C4%:3%+B" );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   250
 
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   251
void CIESensorMonitor::DataReceived( CSensrvChannel& aChannel, TInt aCount, TInt aDataLost )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   252
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   253
    DP0_IMAGIC(_L("CSensorMonitor::DataReceived"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   254
    
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   255
    TBuf<250> progressBuf;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   256
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   257
	TInt errErr(KErrNone);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   258
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   259
	//iDataLostCount = iDataLostCount + aDataLost;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   260
	//iDataCount = iDataCount + aCount;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   261
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   262
	if( aChannel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdOrientationData )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   263
	{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   264
		TSensrvOrientationData data;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   265
		
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   266
		//TRAP(errErr,
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   267
		for( TInt i = 0; i < aCount; i++ )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   268
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   269
	    	TPckgBuf<TSensrvOrientationData> dataBuf;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   270
	    	aChannel.GetData( dataBuf );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   271
	    	data = dataBuf();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   272
	    	data.iTimeStamp.FormatL(progressBuf, KTimeString );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   273
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   274
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   275
	    if(errErr != KErrNone)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   276
	    {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   277
	    	progressBuf.Zero();
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   278
	    }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   279
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   280
    	switch ( data.iDeviceOrientation )
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   281
        {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   282
        case EOrientationDisplayUp:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   283
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   284
            progressBuf.Append( _L( "Display up" ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   285
            DP1_IMAGIC( _L( "Display up: %d" ),data.iDeviceOrientation );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   286
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   287
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   288
        case EOrientationDisplayDown:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   289
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   290
            progressBuf.Append( _L( "Display down" ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   291
            DP1_IMAGIC( _L( "Display down: %d" ),data.iDeviceOrientation );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   292
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   293
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   294
        case EOrientationDisplayLeftUp:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   295
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   296
            progressBuf.Append( _L( "Display left up" ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   297
            DP1_IMAGIC( _L( "Display left up: %d" ),data.iDeviceOrientation );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   298
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   299
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   300
        case EOrientationDisplayRigthUp:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   301
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   302
            progressBuf.Append( _L( "Display right up" ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   303
            DP1_IMAGIC( _L( "Display right up: %d" ),data.iDeviceOrientation );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   304
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   305
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   306
        default:
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   307
            {
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   308
            progressBuf.Append( _L( "Unknown orientation" ) );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   309
            DP1_IMAGIC( _L( "Unknown orientation: %d" ),data.iDeviceOrientation );
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   310
            break;
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   311
            }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   312
        }
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   313
    	iSensorObserver.SensorDataAvailable(TImagicDeviceOrientation(data.iDeviceOrientation), EFalse);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   314
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   315
	else
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   316
	{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   317
		progressBuf.Copy(_L("Channel = " ));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   318
	    progressBuf.AppendNum(aChannel.GetChannelInfo().iChannelType,EHex);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   319
	}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   320
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   321
	DP0_IMAGIC(progressBuf);
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   322
	
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   323
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   324
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   325
void CIESensorMonitor::DataError( CSensrvChannel& /*aChannel*/, TSensrvErrorSeverity /*aError*/)
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   326
{
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   327
    DP0_IMAGIC(_L("CIESensorMonitor::DataReceived"));
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   328
}
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   329
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   330
#endif //_S60_5x_ACCELEROMETER_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   331
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   332
#endif //_ACCELEROMETER_SUPPORTED_
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   333
// End of File
93fff7023be8 Initial version
jkauppin
parents:
diff changeset
   334