ipappsrv_plat/multimedia_comms_api/inc/mceamrwbcodec.h
author vnuitven <>
Mon, 06 Sep 2010 19:02:58 +0530
branchrcs
changeset 51 a13dcee59a62
parent 0 1bce908db942
permissions -rw-r--r--
modifications in the copyright for these files

/*
* Copyright (c) 2008 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:    
*
*/




#ifndef CMCEAMRWBCODEC_H
#define CMCEAMRWBCODEC_H

// INCLUDES
#include <mceamrcodec.h>
#include <mcedefs.h>


// CONSTANTS

// AMR-WB Codec possible bitrates
const TInt KMceAmrWbBitrate660( 6600 );
const TInt KMceAmrWbBitrate885( 8850 );
const TInt KMceAmrWbBitrate1265( 12650 );
const TInt KMceAmrWbBitrate1425( 14250 );
const TInt KMceAmrWbBitrate1585( 15850 );
const TInt KMceAmrWbBitrate1825( 18250 );
const TInt KMceAmrWbBitrate1985( 19850 );
const TInt KMceAmrWbBitrate2305( 23050 );
const TInt KMceAmrWbBitrate2385( 23850 );

const TUint KMceAllowedAmrWbBitrate660     = 0x0001;
const TUint KMceAllowedAmrWbBitrate885     = 0x0002;
const TUint KMceAllowedAmrWbBitrate1265    = 0x0004;
const TUint KMceAllowedAmrWbBitrate1425    = 0x0008;
const TUint KMceAllowedAmrWbBitrate1585    = 0x0010;
const TUint KMceAllowedAmrWbBitrate1825    = 0x0020;
const TUint KMceAllowedAmrWbBitrate1985    = 0x0040;
const TUint KMceAllowedAmrWbBitrate2305    = 0x0080;
const TUint KMceAllowedAmrWbBitrate2385    = 0x0100;
const TUint KMceAllowedAmrWbBitrateAll     = 0x0FFF;

// Allowed bitrates bitfield can contain additional information
const TUint KMceAllowedAmrWbAdditionalInfo      = 0xF000;

// If this bit is not present, mode-change-period=1
const TUint KMceAllowedAmrWbModeChangePeriod2   = 0x1000;

// If this bit is not present, mode-change-neighbor=0
const TUint KMceAllowedAmrWbModeChangeNeighbor1 = 0x2000;


// CLASS DECLARATION

/**
* Class for the AMR WB codec information.
*
* It checks the validity of inserted values for AMR WB.
* 
*  @lib mceclient.lib
*/
class CMceAmrWbCodec : public CMceAmrCodec
    {
	public:  // Constructors and destructor
	    
	    /**
	    * Destructor.
	    */
	    IMPORT_C ~CMceAmrWbCodec();
	        
	public: // From CMceAmrCodec

		/**
	    * Clones codec, ownership is transferred.
	    * @return cloned codec
	    */
	    IMPORT_C CMceAudioCodec* CloneL() const;

	public: 

	    /**
	    * Two-phased constructor.
	    * @param aSdpName sdp name
	    */
	    static CMceAmrWbCodec* NewL( TBuf8<KMceMaxSdpNameLength> aSdpName );

	    /**
	    * Two-phased constructor.
	    * @param aSdpName sdp name
	    */
	    static CMceAmrWbCodec* NewLC(TBuf8<KMceMaxSdpNameLength> aSdpName );

	private:

	    /**
	    * C++ default constructor.
	    */
	    CMceAmrWbCodec();

	    /**
	    * By default Symbian 2nd phase constructor is private.
	    */
	    void ConstructL( TBuf8<KMceMaxSdpNameLength> aSdpName );


		// For testing
	    MCE_UNIT_TEST_DEFS
    };


#endif // CMCEAMRWBCODEC_H

// End of File