--- a/browserplugins/browsergpsplugin/src/GpsObserver.cpp Thu Aug 19 09:57:56 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:
-*
-*/
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <e32cmn.h>
-#include "GpsObserver.h"
-#include "GpsPlugin.h"
-
-// for debug #define BROWSER_GPS_PLUGIN_LOG
-
-#ifdef BROWSER_GPS_PLUGIN_LOG
-
-#include <flogger.h>
-
-// output goes in c:\Logs\gps (create this dir manually if it doesn't exist)
-
-_LIT(LOG_DIR, "gps");
-_LIT(LOG_NAME, "gps.log");
-
-TBuf16<256> formatBuf;
-_LIT16(formatInt,"[%d]");
-
-#define LOG_E \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("E")); \
- formatBuf.Format(formatInt, e); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf)
-#define LOG_CONNECT \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("RPositionerServer.Connect"))
-#define LOG_NUMMODULES \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("NUMMODULES")); \
- formatBuf.Format(formatInt, numberOfModules); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf)
-#define LOG_MODULE \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("MODULE")); \
- formatBuf.Format(formatInt, i); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf)
-#define LOG_SATMODULE \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("SATELLITE MODULE")); \
- formatBuf.Format(formatInt, i); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf)
-#define LOG_OPEN \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("RPositioner.Open"))
-#define LOG_OPTIONS \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("RPositioner.SetUpdateOptions"))
-#define LOG_REQUESTOR \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("RPositioner.SetRequestor"))
-#define LOG_REQUESTFIELD \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("HPositionGenericInfo.SetRequestedField"))
-#define LOG_POSITIONUPDATE \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("RPositioner.NotifyPositionUpdate"))
-#define LOG_RESPONSE \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("response"))
-#define LOG_GETPOSITION \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, _L("HPositionGenericInfo.GetPosition"))
-#define LOG_LATLNGALT \
- int lat = iPosition.Latitude(); \
- int lon = iPosition.Longitude(); \
- int alt = iPosition.Altitude(); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf); \
- formatBuf.Format(formatInt, lat); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf); \
- formatBuf.Format(formatInt, lon); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf); \
- formatBuf.Format(formatInt, alt); \
- RFileLogger::Write(LOG_DIR, LOG_NAME, EFileLoggingModeAppend, formatBuf)
-
-
-#else
-
-#define LOG_E
-#define LOG_CONNECT
-#define LOG_NUMMODULES
-#define LOG_MODULE
-#define LOG_SATMODULE
-#define LOG_OPEN
-#define LOG_OPTIONS
-#define LOG_REQUESTOR
-#define LOG_REQUESTFIELD
-#define LOG_POSITIONUPDATE
-#define LOG_RESPONSE
-#define LOG_GETPOSITION
-#define LOG_LATLNGALT
-
-#endif
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::NewL
-// Symbian 2-phase constructor.
-// -----------------------------------------------------------------------------
-CGpsObserver* CGpsObserver::NewL( CGpsPlugin* aPlugin )
- {
- CGpsObserver* self = new (ELeave) CGpsObserver( aPlugin );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::CGpsObserver
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-CGpsObserver::CGpsObserver( CGpsPlugin* aPlugin )
- : CActive( EPriorityStandard ),
- iGpsPlugin( aPlugin )
- {
- CActiveScheduler::Add( this );
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::ConstructL
-// 2nd-phase constructor.
-// -----------------------------------------------------------------------------
-void CGpsObserver::ConstructL()
- {
- TInt e; // for error codes
-
- // 1. connect to the position server
- e = iServer.Connect();
- LOG_E;
- LOG_CONNECT;
- User::LeaveIfError( e );
-
- // 2. find the satellite module (see the BLID application source
- // code CSattelliteEng.cpp)
- TUint numberOfModules = 0;
- e = iServer.GetNumModules( numberOfModules );
- LOG_E;
- LOG_NUMMODULES;
- User::LeaveIfError( e );
-
- TPositionModuleInfo moduleInfo;
- TInt i;
- for ( i = 0; i < numberOfModules ; i++ )
- {
- LOG_MODULE;
- e = iServer.GetModuleInfoByIndex( i, moduleInfo );
- LOG_E;
- if ( ( e == KErrNone ) &&
- ( moduleInfo.Capabilities()
- & TPositionModuleInfo::ECapabilitySatellite ) ) /* bit test */
- {
- break;
- }
- }
-
- if ( i == numberOfModules )
- {
- // leave if no GPS
- User::Leave( KErrNotFound );
- }
-
- // 3. open the positioner with the satellite module
- LOG_SATMODULE;
- TPositionModuleId moduleId = moduleInfo.ModuleId();
- e = iPositioner.Open( iServer, moduleId );
- LOG_E;
- User::LeaveIfError( e );
- LOG_OPEN;
-
- // 4. set the requestor on the positioner (something for security)
- iPositioner.SetRequestor( CRequestor::ERequestorService,
- CRequestor::EFormatApplication,
- _L("BrowserGpsPlugin")/**srvName*/ );
- LOG_REQUESTOR;
-
- // 5. request position notification
- iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
- SetActive();
- LOG_POSITIONUPDATE;
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::~CGpsObserver()
-// Destructor
-// -----------------------------------------------------------------------------
-CGpsObserver::~CGpsObserver()
- {
- Cancel();
- iPositioner.Close();
- iServer.Close();
-
- delete iEventHandler;
- }
-
-// -----------------------------------------------------------------------------
-// CSystemInfoBatteryObserver::RequestNotification
-// -----------------------------------------------------------------------------
-void CGpsObserver::RequestNotificationL( const NPString& aEvent )
- {
- // remove and free current handler
- HBufC8* handler = iEventHandler;
- iEventHandler = NULL;
- delete handler;
-
- //store the event handler function name
- TInt length = aEvent.UTF8Length;
- handler = HBufC8::NewL( length+1 );
-
- TPtr8 tptr = handler->Des();
- tptr.Copy( (const TUint8 *)aEvent.UTF8Characters, length );
-
- //Remove any arguments passed in the with the function name
- TInt pos = handler->LocateReverse( TChar('(') );
- if ( pos != KErrNotFound )
- {
- length = pos;
- }
-
- tptr.SetLength( length );
- tptr.ZeroTerminate();
-
- iEventHandler = handler;
-
- // monitoring is already active
- }
-
-// -----------------------------------------------------------------------------
-// CSystemInfoBatteryObserver::RunL
-// -----------------------------------------------------------------------------
-void CGpsObserver::RunL()
- {
- // if status ok and exists, update values and invoke callback
- if ( iStatus == KErrNone )
- {
- // update saved values
- iPositionInfo.GetPosition( iPosition );
- LOG_GETPOSITION;
- LOG_LATLNGALT;
-
- iTickCount++;
- if ( iEventHandler )
- {
- iGpsPlugin->InvokeCallback( *iEventHandler, NULL, 0 );
- }
- }
-
- // request next update
- iPositioner.NotifyPositionUpdate( iPositionInfo, iStatus );
- SetActive();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::RunError
-// -----------------------------------------------------------------------------
-TInt CGpsObserver::RunError( TInt /*aError*/ )
- {
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::DoCancel
-// -----------------------------------------------------------------------------
-void CGpsObserver::DoCancel()
- {
- iPositioner.CancelRequest( EPositionerNotifyPositionUpdate );
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::Latitude
-// -----------------------------------------------------------------------------
-TReal CGpsObserver::Latitude() const
- {
- return iPosition.Latitude();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::Longitude
-// -----------------------------------------------------------------------------
-TReal CGpsObserver::Longitude() const
- {
- return iPosition.Longitude();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::Altitude
-// -----------------------------------------------------------------------------
-TReal CGpsObserver::Altitude() const
- {
- return iPosition.Altitude();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::HorizontalAccuracy
-// -----------------------------------------------------------------------------
-TReal CGpsObserver::HorizontalAccuracy() const
- {
- return iPosition.HorizontalAccuracy();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::VerticalAccuracy
-// -----------------------------------------------------------------------------
-TReal CGpsObserver::VerticalAccuracy() const
- {
- return iPosition.VerticalAccuracy();
- }
-
-// -----------------------------------------------------------------------------
-// CGpsObserver::TIckCount
-// -----------------------------------------------------------------------------
-TInt CGpsObserver::TickCount() const
- {
- return iTickCount;
- }
-
-// End of File