sl@0: /*
sl@0: * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
sl@0: * All rights reserved.
sl@0: * This component and the accompanying materials are made available
sl@0: * under the terms of "Eclipse Public License v1.0"
sl@0: * which accompanies this distribution, and is available
sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: *
sl@0: * Initial Contributors:
sl@0: * Nokia Corporation - initial contribution.
sl@0: *
sl@0: * Contributors:
sl@0: *
sl@0: * Description:  This is the definition of the base class for location effect.
sl@0: *
sl@0: *
sl@0: */
sl@0: 
sl@0: 
sl@0: #ifndef CLOCATION_H
sl@0: #define CLOCATION_H
sl@0: 
sl@0: // INCLUDES
sl@0: 
sl@0: #include <e32base.h>
sl@0: #include <AudioEffectBase.h>
sl@0: #include <LocationData.h>
sl@0: 
sl@0: // CLASS DECLARATION
sl@0: 
sl@0: /**
sl@0: *  This is the base class for location effect settings.
sl@0: *
sl@0: *  @lib LocationEffect.lib
sl@0: *  @since 3.0
sl@0: */
sl@0: 
sl@0: class CLocation : public CAudioEffect
sl@0: 	{
sl@0: 
sl@0: 	protected:	// Constructors and destructor
sl@0: 
sl@0: 		/**
sl@0:         *
sl@0:         * Destructor
sl@0:         */
sl@0: 		IMPORT_C virtual ~CLocation();
sl@0: 
sl@0: 		/**
sl@0: 		* Private C++ constructor for this class.
sl@0:         */
sl@0: 		IMPORT_C CLocation();
sl@0: 
sl@0: 	public: // New Functions
sl@0: 
sl@0: 		/**
sl@0:         * Gets the cartesian coordinates for the location of the position.
sl@0:         * @since 3.0
sl@0:         * @param aX The x-coordinate of the position (in millimeters)
sl@0:         * @param aY The y-coordinate of the position (in millimeters)
sl@0:         * @param aZ The z-coordinate of the position (in millimeters)
sl@0:         * @return -
sl@0:         */
sl@0: 		IMPORT_C void LocationCartesian( TInt32& aX, TInt32& aY, TInt32& aZ );
sl@0: 
sl@0: 		/**
sl@0:         * Gets the spherical coordinates for the location of the position.
sl@0:         * @since 3.0
sl@0:         * @param aAzimuth The Azimuth of the position (thousandths of radians)
sl@0:         * @param aElevation The elevation of the position (thousandths of radians)
sl@0:         * @param aRadius The radius of the position (thousandths of radians)
sl@0:         * @return -
sl@0:         */
sl@0: 		IMPORT_C void LocationSpherical( TInt32& aAzimuth, TInt32& aElevation, TInt32& aRadius );
sl@0: 
sl@0: 		/**
sl@0:         * Sets the cartesian coordinates for the location of the position.
sl@0:         * @since 3.0
sl@0:         * @param aX The x-coordinate of the position
sl@0:         * @param aY The y-coordinate of the position
sl@0:         * @param aZ The z-coordinate of the position
sl@0:         * @return -
sl@0:         */
sl@0: 		IMPORT_C void SetLocationCartesianL( TInt32& aX, TInt32& aY, TInt32& aZ );
sl@0: 
sl@0: 		/**
sl@0:         * Sets the spherical coordinates for the location of the position.
sl@0:         * @since 3.0
sl@0:         * @param aAzimuth The Azimuth of the position (thousandths of radians)
sl@0:         * @param aElevation The elevation of the position (thousandths of radians)
sl@0:         * @param aRadius The radius of the position (thousandths of radians)
sl@0:         * @return -
sl@0:         */
sl@0: 		IMPORT_C void SetLocationSphericalL( TInt32& aAzimuth, TInt32& aElevation, TInt32& aRadius );
sl@0: 
sl@0:     protected:  // Functions from base classes
sl@0: 
sl@0: 		/**
sl@0: 		* From CAudioEffect
sl@0: 		* Create a package of the effect data
sl@0:         * @since 3.0
sl@0:         * @return A descriptor containing the effect data.
sl@0:         */
sl@0: 		IMPORT_C const TDesC8& DoEffectData();
sl@0: 
sl@0: 		/**
sl@0: 		* From CAudioEffect
sl@0: 		* Internal function to unpack effect data
sl@0:         * @since 3.0
sl@0:         * @param aEffectDataBuffer Descriptor containing packed effect data
sl@0:         * @return -
sl@0:         */
sl@0:         IMPORT_C void SetEffectData( const TDesC8& aEffectDataBuffer );
sl@0: 
sl@0: 	protected:
sl@0: 
sl@0: 		// Location data structure
sl@0: 		TEfLocation iLocationData;
sl@0: 		// Data package sent to server
sl@0: 		TEfLocationDataPckg iDataPckgTo;
sl@0: 		// Data package received from server
sl@0: 		TEfLocationDataPckg iDataPckgFrom;
sl@0: 	};
sl@0: 
sl@0: #endif	// of CLOCATION_H
sl@0: 
sl@0: // End of File