diff -r e8e63152f320 -r 2a9601315dfc javauis/amms_akn/mmacontrol/inc/cammsdopplercontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/amms_akn/mmacontrol/inc/cammsdopplercontrol.h Mon May 03 12:27:20 2010 +0300 @@ -0,0 +1,135 @@ +/* +* 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: Manipulates the settings of an effect called Doppler. +* +*/ + + +#ifndef CAMMSDOPPLERCONTROL_H +#define CAMMSDOPPLERCONTROL_H + +// INCLUDES +#include +#include +#include "cammscontrol.h" + +// CLASS DECLARATION + +/** +* +* Controls for the Doppler effect. +* This class delegates Doppler effect method calls to CDoppler. +* +* +* @since 3.0 +*/ +NONSHARABLE_CLASS(CAMMSDopplerControl): public CAMMSControl +{ +public: // Destructor + /** + * Destructor. + */ + ~CAMMSDopplerControl(); + +public: // New functions + /** + * Specifies if this Doppler effect is active or ignored. In case the + * DopplerControl is fetched from the Spectator, this method does not + * affect anything. + * + * @param aEnabled The boolean specifying if this Doppler effect is to + * be applied. + * + * @par Leaving: + * From Java API there are no leave codes, but the uset EffectControl's + * method leaves with the sama way as in effect control, if: + * - the effect cannot be enabled in this state of the player. + * - enabling is not supported (with the scope set). + */ + virtual void SetEnabledL(TBool aDopplerEnabled); + + /** + * Returns whether this Doppler effect is currently active. + * + * @return The boolean, true if Doppler is being applied. + */ + virtual TBool Enabled(); + + /** + * Sets the velocity, used in calculations for the Doppler effect. + * + * The velocity is specified using right-handed cartesian components in + * units defined by GlobalManager.getUnitsPerMeter(). For example, if + * the x parameter is specified to be 5000 and + * GlobalManager.getUnitsPerMeter() returns 1000 the actual x component + * will be 5 m/s. The same applies to y and z parameters. + * + * @param aX The x-coordinate of the new velocity. + * @param aY The y-coordinate of the new velocity. + * @param aZ The z-coordinate of the new velocity. + * + * @par Leaving: + * @li \c KErrArgument - coordinates are not correct. + */ + virtual void SetVelocityCartesianL(TInt aX, TInt aY, TInt aZ); + + /** + * Returns the current velocity, used in calculations for the Doppler + * effect. The velocity is specified using right-handed cartesian + * components in units defined by GlobalManager.getUnitsPerMeter(). + * The referenced memory of arguments will contain the coordinate values. + * + * @param aX The x-coordinate of the velocity. + * @param aY The y-coordinate of the velocity. + * @param aZ The z-coordinate of the velocity. + */ + virtual void VelocityCartesian(TInt& aX, TInt& aY, TInt& aZ); + + /** + * Sets the velocity, used in calculations for the Doppler effect. + * + * The velocity is specified using spherical components. The radius + * component is specified in units defined by + * GlobalManager.getUnitsPerMeter(). For example, if the radius + * parameter is specified to be 5000 and + * GlobalManager.getUnitsPerMeter() returns 1000 the actual radius + * component will be 5 m/s. + * + * @param aAzimuth The azimuth angle of the new velocity in degrees. + * @param aElevation The elevation angle of the new velocity in degrees. + * @param aRadius The magnitude of the new velocity (namely the speed). + * + * @par Leaving: + * @li \c KErrArgument - coordinates are not correct. + */ + virtual void SetVelocitySphericalL(TInt aAzimuth, TInt aElevation, + TInt aRadius); + +protected: + /** + * C++ default constructor, protected to allow access from derived class + * @param aPlayer Player that has this control. + */ + CAMMSDopplerControl(CMMAPlayer* aPlayer); + + +protected: // Data + + /* Native Doppler effect, set from derived classes */ + CDoppler* iDopplerEffect; +}; + +#endif // CAMMSDOPPLERCONTROL_H + +