diff -r 4baee4f15982 -r 6385c4c93049 browserplugins/browsergpsplugin/src/GpsPlugin.cpp --- a/browserplugins/browsergpsplugin/src/GpsPlugin.cpp Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +0,0 @@ -/* -* Copyright (c) 2006 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: Interface to Browser for handling embedded Gps requests. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include "GpsPlugin.h" -#include "GpsObserver.h" -#include - - -// CONSTANTS - -enum TIdentifiersNames { - EIdLatitude, - EIdLongitude, - EIdAlt, - EIdHorizontalAccuracy, - EIdVerticalAccuracy, - EIdOnGps, - EIdSatelliteStatus, - EIdTickCount, - EIdLast - }; - -const NPUTF8 *GpsPluginIdentifierNames[EIdLast] -= { "latitude", // 0 - "longitude", // 1 - "altitude", // 2 - "horizontalaccuracy", // 3 - "verticalaccuracy", // 4 - "ongps", // 5 - "showsatellitestatus", // 6 - "tickcount", // 7 - }; - -const TBool IsMethod[] = { - EFalse, // latitude, - EFalse, // longitude, - EFalse, // altitude - EFalse, // horizontalaccuracy - EFalse, // verticalaccuracy - EFalse, // ongps - ETrue, // showSatelliteStatus - EFalse, // tickcount - }; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ---------------------------------------------------------------------------- -// CGpsPlugin::CGpsPlugin -// C++ default constructor can NOT contain any code, that -// might leave. -// ---------------------------------------------------------------------------- -CGpsPlugin::CGpsPlugin() - { - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::NewL -// Two-phased constructor. -// ---------------------------------------------------------------------------- -CGpsPlugin* CGpsPlugin::NewL() - { - CGpsPlugin* self = new (ELeave) CGpsPlugin; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::ConstructL -// Symbian 2nd phase constructor can leave. -// ---------------------------------------------------------------------------- -void CGpsPlugin::ConstructL() - { - iGpsPluginIdentifiers = new (ELeave) NPIdentifier[EIdLast]; - NPN_GetStringIdentifiers( GpsPluginIdentifierNames, EIdLast, - iGpsPluginIdentifiers ); - - iGpsObserver = CGpsObserver::NewL( this ); - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::Destructor -// ---------------------------------------------------------------------------- -CGpsPlugin::~CGpsPlugin() - { - delete [] iGpsPluginIdentifiers; - delete iGpsObserver; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::Deallocate -// ---------------------------------------------------------------------------- -void CGpsPlugin::Deallocate () - { - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::InvokeCallback -// ---------------------------------------------------------------------------- -bool CGpsPlugin::InvokeCallback( TDesC8& name, - const NPVariant *args, uint32_t argCount ) - { - CGpsPluginEcomMain* lGpsPPluginEcomMain = (CGpsPluginEcomMain*) Dll::Tls(); - NPNetscapeFuncs* lNetscapeFuncs = lGpsPPluginEcomMain->Funcs(); - if (lNetscapeFuncs && iInstanceHandle) - { - void* value = 0; - NPError npErr - = lNetscapeFuncs->getvalue( iInstanceHandle, NPNVWindowNPObject, - (void*)&value ); - if (npErr == NPERR_NO_ERROR) - { - NPVariant resultVariant; - VOID_TO_NPVARIANT( resultVariant ); - NPIdentifier ident - = NPN_GetStringIdentifier( (const NPUTF8 *)(name.Ptr()) ); - return NPN_Invoke( iInstanceHandle, (NPObject*)value, - ident, args, argCount, &resultVariant ); - } - } - return false; - } - -// ---------------------------------------------------------------------------- -// CWidgetManagerPlugin::HasMethod -// ---------------------------------------------------------------------------- - -bool CGpsPlugin::HasMethod( NPIdentifier name ) - { - for ( TInt i= 0; i < EIdLast; i++ ) - { - if ( name == iGpsPluginIdentifiers[i] ) - { - return IsMethod[i]; - } - } - return false; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::HasProperty -// ---------------------------------------------------------------------------- -bool CGpsPlugin::HasProperty( NPIdentifier name ) - { - for ( TInt i= 0; i < EIdLast; i++ ) - { - if ( name == iGpsPluginIdentifiers[i] ) - { - return !IsMethod[i]; - } - } - return false; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::GetProperty -// ---------------------------------------------------------------------------- -bool CGpsPlugin::GetProperty( NPIdentifier name, NPVariant *variant ) - { - // default variant value maps to javascript undefined - VOID_TO_NPVARIANT( *variant ); - if ( name == iGpsPluginIdentifiers[EIdLatitude] ) - { - DOUBLE_TO_NPVARIANT( iGpsObserver->Latitude(), *variant ); - } - else if ( name == iGpsPluginIdentifiers[EIdLongitude] ) - { - DOUBLE_TO_NPVARIANT( iGpsObserver->Longitude(), *variant ); - } - else if ( name == iGpsPluginIdentifiers[EIdAlt] ) - { - DOUBLE_TO_NPVARIANT( iGpsObserver->Altitude(), *variant ); - } - else if ( name == iGpsPluginIdentifiers[EIdHorizontalAccuracy] ) - { - DOUBLE_TO_NPVARIANT( iGpsObserver->HorizontalAccuracy(), *variant ); - } - else if ( name == iGpsPluginIdentifiers[EIdVerticalAccuracy] ) - { - DOUBLE_TO_NPVARIANT( iGpsObserver->VerticalAccuracy(), *variant ); - } - else if ( name == iGpsPluginIdentifiers[EIdTickCount] ) - { - INT32_TO_NPVARIANT( iGpsObserver->TickCount(), *variant ); - } - else - { - return EFalse; - } - return ETrue; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::Invoke -// ---------------------------------------------------------------------------- -bool CGpsPlugin::Invoke( NPIdentifier name, - NPVariant* /*args*/, - uint32_t /*argCount*/, - NPVariant *result ) - { - VOID_TO_NPVARIANT( *result ); - if ( name == iGpsPluginIdentifiers[EIdSatelliteStatus] ) - { - TRAP_IGNORE( - CSatelliteInfoUI* satelliteUI = CSatelliteInfoUI::NewL(); - (void) satelliteUI->ExecuteLD( _L("BrowserGpsPlugin") ) ); - } - return true; - } - -// ---------------------------------------------------------------------------- -// CGpsPlugin::SetPropertyL -// ---------------------------------------------------------------------------- -bool CGpsPlugin::SetPropertyL( NPIdentifier name, NPVariant *variant ) - { - if ( name == iGpsPluginIdentifiers[EIdOnGps] ) - { - NPString str = NPVARIANT_TO_STRING( *variant ); - iGpsObserver->RequestNotificationL(str); - } - else - { - return EFalse; - } - return ETrue; - } - -// ---------------------------------------------------------------------------- -// CBAPPlugin::SetWindowL -// Called by Browser for window creation. -// (other items were commented in a header). -// ---------------------------------------------------------------------------- -void CGpsPlugin::SetWindowL( - MPluginAdapter* /*aPluginAdapter*/, // Allows callback to Browser - const TRect& /*aRect*/) // Window information - { - } -// End of File