browserplugins/browsergpsplugin/src/GpsObserver.cpp
branchRCL_3
changeset 64 6385c4c93049
parent 63 4baee4f15982
child 65 8e6fa1719340
--- 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