--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/EngInc/rrsensorapi.h Fri Oct 15 10:18:29 2010 +0900
@@ -0,0 +1,147 @@
+/*
+* Copyright (c) 2009 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: Juha Kauppinen, Mika Hokkanen
+*
+* Description: Photo Browser
+*
+*/
+
+#ifndef RRSENSORAPI_H
+#define RRSENSORAPI_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+const TInt KMaxSensorName = 128;
+
+// CLASS DECLARATION
+
+/**
+* TRRSensorInfo.
+* Contains info of sensor
+*
+* iSensorId identifies individual sensors
+*
+* iSensorCategory can have following values:
+* 0x10010FFF for sensor server internal sensors and
+* 0x10010321 for external sensors.
+*
+* iSensorName contains string name of sensor. This
+* can be used e.g. to show name of sensor to user.
+*
+* @lib rrsensorapi.lib
+*/
+class TRRSensorInfo
+ {
+ public:
+ TInt iSensorCategory;
+ TInt iSensorId;
+ TBuf<KMaxSensorName> iSensorName;
+ };
+
+/**
+* TRRSensorEvent
+* Data obtained from sensor
+* --------------------------------------------------------------------------
+* E.g. to sensor server internal Accelerator sensor id: 0x10273024
+* these fields contain following information:
+* iSensorData1 = acceleration in axis X
+* iSensorData2 = acceleration in axis Y
+* iSensorData3 = acceleration in axis Z
+* --------------------------------------------------------------------------
+* Data from external sensors may vary.
+*
+* @lib rrsensorapi.lib
+*/
+class TRRSensorEvent
+ {
+ public:
+ TInt iSensorData1;
+ TInt iSensorData2;
+ TInt iSensorData3;
+ };
+
+
+/**
+* MRRSensorDataListener
+* Callback function for receiving sensor
+* data events
+*
+* TRRSensorInfo identifies sensor that created the event.
+*
+* TTRRSensorEvent contains data about created event.
+*
+* @lib rrsensorapi.lib
+*/
+class MRRSensorDataListener
+ {
+ public:
+ virtual void HandleDataEventL( TRRSensorInfo aSensor,
+ TRRSensorEvent aEvent ) = 0;
+ };
+
+/**
+* CRRSensorApi
+* User access to sensor server
+* data events
+* @lib rrsensorapi.lib
+*/
+class CRRSensorApi : public CBase
+{
+public:
+ /**
+ * Create new sensor access
+ * @param TRRSensorInfo identifing desired sensor.
+ * @return CRRSensorApi*
+ */
+ IMPORT_C static CRRSensorApi* NewL( TRRSensorInfo aSensor );
+
+ /**
+ * Retrieve list of available sensors
+ * @param RArray<TRRSensorInfo>& upon completion
+ * contains list of available sensors.
+ * @return void
+ */
+ IMPORT_C static void FindSensorsL( RArray<TRRSensorInfo>& aSensorInfoArray );
+
+ /**
+ * Register data listener
+ * @param MRRSensorDataListener* register this pointer as sensor
+ * event listener.
+ * @return void
+ */
+ virtual void AddDataListener( MRRSensorDataListener* aListener ) = 0;
+
+ /**
+ * Remove data listener
+ * @param void
+ * @return void
+ */
+ virtual void RemoveDataListener() = 0;
+
+ /**
+ * Send sensor specific command.
+ * This feature is intended for future use and
+ * is not currently supported.
+ *
+ * @param TInt& aCommand identify of command.
+ * TInt& aValue desired value for command.
+ * @return TInt error code
+ */
+ virtual TInt SensorCommand( TInt& aCommand, TInt& aValue ) = 0;
+
+};
+
+#endif //RRSENSORAPI_H
+
+// End of File