mmaudio_pub/audio_effects_api/inc/DopplerBase.h
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:  This is the definition of the doppler effect class.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#ifndef CDOPPLER_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#define CDOPPLER_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
// INCLUDES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include <e32base.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include <AudioEffectBase.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
#include <DopplerData.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
#include <MCustomInterface.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
// CLASS DECLARATION
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
*  This is the Doppler effect class for managing doppler settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
*  @lib DopplerEffect.lib
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
*  @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
class CDoppler : public CAudioEffect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
	protected:		// Constructor and Destructors
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
        *
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
        * Destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
		IMPORT_C virtual ~CDoppler();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
		* Private C++ constructor for this class.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
		*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
		IMPORT_C CDoppler();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
    public: // New functions
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
        * Get the velocity's cartesian settings
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
        * @param aX Velocity in X direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
        * @param aY Velocity in Y direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
        * @param aZ Velocity in Z direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
		IMPORT_C void CartesianVelocity( TInt32& aX, TInt32& aY, TInt32& aZ );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
        * Get the current multiplier factor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
        * @return multiplier factor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
		IMPORT_C TUint32 Factor() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
        * Get the maximum multiplier factor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
        * @return multiplier factor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
		IMPORT_C TUint32 FactorMax() const;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
        * Sets the velocity in Cartesian coordinates of the sound source with respect to the listener.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
        * @param aX Velocity in X direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
        * @param aY Velocity in Y direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
        * @param aZ Velocity in Z direction (mm/s)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
        * @return -
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
		IMPORT_C void SetCartesianVelocityL( TInt32 aX, TInt32 aY, TInt32 aZ );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
        * Sets the multiplier factor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
        * @param aFactor Factor value in hundredths that ranges from 0 to FactorMax(),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
        *                where 100 corresponds to 1.00, 200 corresponds to 2.00, etc.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
        * @return -
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
		IMPORT_C void SetFactorL( TUint32 aFactor );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
        * Sets the velocity in spherical coordinates of the sound source with respect to the listener.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
        * @param aAzimuth the Azimuth (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
        * @param aElevation the elevation (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
        * @param aRadius the radius (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
        * @return -
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
		IMPORT_C void SetSphericalVelocityL( TInt32 aAzimuth, TInt32 aElevation, TInt32 aRadius );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
        * Gets the velocity's spherical coordinates settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
        * @param aAzimuth the Azimuth (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
        * @param aElevation the elevation (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
        * @param aRadius the radius (thousandths of radians)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
        * @return -
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
		IMPORT_C void SphericalVelocity( TInt32& aAzimuth, TInt32& aElevation, TInt32& aRadius );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
    protected:  // Functions from base classes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
		* From CAudioEffect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
		* Create a package of the effect data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
        * @return A descriptor containing the effect data.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
		IMPORT_C const TDesC8& DoEffectData();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
		/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
		* From CAudioEffect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
		* Internal function to unpack effect data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
        * @since 3.0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
        * @param aEffectDataBuffer Descriptor containing packed effect data
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
        * @return -
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
        */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
        IMPORT_C void SetEffectData( const TDesC8& aEffectDataBuffer );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
	protected:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
		// Doppler data structure
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		TEfDoppler iDopplerData;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
		// Data package sent to server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
		TEfDopplerDataPckg iDataPckgTo;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
		// Data package received from server
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
		TEfDopplerDataPckg iDataPckgFrom;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
	};
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
#endif	// of CDOPPLER_H
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
// End of File