williamr@2: /* williamr@2: * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Channel data types definitions williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef SENSRVORIENTATIONSENSOR_H williamr@2: #define SENSRVORIENTATIONSENSOR_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: williamr@2: // ORIENTATION RELATED CHANNELS williamr@2: williamr@2: /** williamr@2: * - Name: Orientation event channel type williamr@2: * - Type: Event williamr@2: * - Datatype: TSensrvOrientationData williamr@2: * - Description: Orientation events williamr@2: */ williamr@2: const TSensrvChannelTypeId KSensrvChannelTypeIdOrientationData = 0x10205088; williamr@2: williamr@2: /** williamr@2: * - Name: Rotation event channel type williamr@2: * - Type: Event williamr@2: * - Datatype: TSensrvRotationData williamr@2: * - Description: Rotation events williamr@2: */ williamr@2: const TSensrvChannelTypeId KSensrvChannelTypeIdRotationData = 0x10205089; williamr@2: williamr@2: // ORIENTATION RELATED DATATYPES williamr@2: williamr@2: class TSensrvOrientationData williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Channel data type Id number williamr@2: */ williamr@2: static const TSensrvChannelDataTypeId KDataTypeId = 0x10205088; williamr@2: williamr@2: /** williamr@2: * Channel data type index numbers williamr@2: */ williamr@2: enum TSensrvOrientationEventIndexes williamr@2: { williamr@2: ETimeStamp = 0, williamr@2: EDeviceOrientation williamr@2: }; williamr@2: williamr@2: /** williamr@2: * Possible device orientations williamr@2: */ williamr@2: enum TSensrvDeviceOrientation williamr@2: { williamr@2: EOrientationUndefined = 0, williamr@2: EOrientationDisplayUp, williamr@2: EOrientationDisplayDown, williamr@2: EOrientationDisplayLeftUp, williamr@2: EOrientationDisplayRightUp, williamr@2: EOrientationDisplayUpwards, williamr@2: EOrientationDisplayDownwards williamr@2: }; williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * - Item name: Sampling time williamr@2: * - Item Index: 0 williamr@2: * - Description: Timestamp for a sample williamr@2: */ williamr@2: TTime iTimeStamp; williamr@2: williamr@2: /** williamr@2: * - Item name: Device orientation williamr@2: * - Item Index: 1 williamr@2: * - Description: Contains one of the six basic orientations of the device williamr@2: */ williamr@2: TSensrvDeviceOrientation iDeviceOrientation; williamr@2: }; williamr@2: williamr@2: williamr@2: class TSensrvRotationData williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Channel data type Id number williamr@2: */ williamr@2: static const TSensrvChannelDataTypeId KDataTypeId = 0x10205089; williamr@2: williamr@2: /** williamr@2: * Rotation axis value equals -1 when it cannot be defined. williamr@2: * The undefined situation varies depending on the sensor type. williamr@2: * In the case of an accelerometer, the rotation value cannot be defined williamr@2: * when the corresponding axis is parallel to the gravitational force or williamr@2: * the device is in motion. In the case of a magnetometer, there are williamr@2: * difficulties in measuring values, when the axis is parallel to the williamr@2: * magnetic field. williamr@2: */ williamr@2: static const TInt KSensrvRotationUndefined = -1; williamr@2: williamr@2: /** williamr@2: * Channel data type index numbers williamr@2: */ williamr@2: enum TSensrvRotationDataIndexes williamr@2: { williamr@2: ETimeStamp = 0, williamr@2: EDeviceRotationAboutXAxis, williamr@2: EDeviceRotationAboutYAxis, williamr@2: EDeviceRotationAboutZAxis, williamr@2: }; williamr@2: williamr@2: public: williamr@2: /** williamr@2: * - Item name: Sampling time. williamr@2: * - Item Index: 0 williamr@2: * - Description: Timestamp for a sample williamr@2: */ williamr@2: TTime iTimeStamp; williamr@2: williamr@2: /** williamr@2: * - Item name: Rotation about x-axis williamr@2: * - Item Index: 1 williamr@2: * - Description: Positive rotation in Cartesian coordinate system about the x-axis. williamr@2: * If the value cannot be defined it is set to KSensrvRotationUndefined. williamr@2: */ williamr@2: TInt iDeviceRotationAboutXAxis; williamr@2: williamr@2: /** williamr@2: * - Item name: Rotation about y-axis williamr@2: * - Item Index: 2 williamr@2: * - Description: Positive rotation in Cartesian coordinate system about the y-axis. williamr@2: * If the value cannot be defined it is set to KSensrvRotationUndefined. williamr@2: */ williamr@2: TInt iDeviceRotationAboutYAxis; williamr@2: williamr@2: williamr@2: /** williamr@2: * - Item name: Rotation about z-axis williamr@2: * - Item Index: 3 williamr@2: * - Description: Positive rotation in Cartesian coordinate system about the z-axis. williamr@2: * If the value cannot be defined it is set to KSensrvRotationUndefined. williamr@2: */ williamr@2: TInt iDeviceRotationAboutZAxis; williamr@2: }; williamr@2: williamr@2: #endif //SENSRVORIENTATIONSENSOR_H williamr@2: williamr@2: // End of File