locationsystemui/locationsysui/locblidsatelliteinfo/inc/MSatelliteEng.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 12 Mar 2010 15:44:22 +0200
branchRCL_3
changeset 12 f3bd2a0973b9
parent 0 667063e416a2
permissions -rw-r--r--
Revision: 201007 Kit: 201008

/*
* Copyright (c) 2005 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:
*
* Description: Interface class for defining the engine.
*
*/



#ifndef __MSATELLITEENG_H__
#define __MSATELLITEENG_H__

// INCLUDES
#include <lbspositioninfo.h>
#include <lbs.h>
#include <locnotprefplugindomaincrkeys.h>

// FORWARD DECLARATIONS
class MEngObserver;
class TSatelliteData;
// CLASS DECLARATION

/**
* Interface class to implement all the functionality required 
* by the satellite engine
*/
class MSatelliteEng
    {
    public:  // Constructors and destructor
        /**
         * Destructor.
         */
        virtual ~MSatelliteEng(){};

    public: // New functions
        /**
         * Sets satellite observer
		 *
         * @param aObserver A reference to observer
         */
        virtual void SetObserver(MEngObserver& aObserver) = 0;

        /**
         * Request satelite data
         * @param aSrvName
         */
        virtual void RequestSatelliteDataL( const TDesC& aSrvName ) = 0;

        /**
         * Get satellite data 
         * @param aIndex
         * @param aSatelliteData
         * @return error code
         */
        virtual TInt GetSatelliteData( TUint aIndex, 
                      TSatelliteData& aSatelliteData ) const = 0;

        /**
         * Get Position Info
         * @param aPosition
         */
        virtual void GetPosition(TPosition& aPosition) = 0;
        
        /**
         * Get Course Info
         * @param aCourse
         */
        virtual void GetCourse(TCourse& aCourse) = 0;
        
        /**
         * Get Course Info
         * @param aCourse
         */
        virtual TLocSystemofMeasurementValues SysOfMeasurementL() = 0;

        /**
         * Get number of satellites
         * @return number of satellites
         */
        virtual TInt NumberOfSatellites() = 0;

        /**
         * Get number of satellites used
         * @return number of satellites used
         */
        virtual TInt NumberOfSatellitesUsed() = 0;

        /**
         * Stop requesting
         */
        virtual void StopRequesting() = 0;

        /**
         * Start requesting
         */
        virtual void StartRequestingL() = 0;
        
        /**
         * Clears the satellite data
         *
         */
        virtual void ClearSatelliteData() = 0;
        
        /**
         * Check if any satelllite data is available
         *
         */
        virtual TBool IsSatelliteDataAvailable() = 0;        
        
        /**
         * Function to obtain the Azimuth and elevation of sun
         */
        virtual void GetSunAzimuthElevation(TReal& aAzimuth, TReal& aElevation ) = 0;
        
        /**
         * Function to obtain the Azimuth and elevation of moon
         */
        virtual void GetMoonAzimuthElevation(TReal& aAzimuth, TReal& aElevation ) = 0;
    };

#endif      // __MSATELLITEENG_H__

// End of File