audiostubs/devsoundextensions_stubs/inc/EAacPlusDecoderIntfcCI.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 00:04:35 +0300
changeset 46 e1758cbb96ac
parent 0 0ce1b5ce9557
child 9 f935d51494d1
permissions -rw-r--r--
Revision: 201039 Kit: 201039

/*
* Copyright (c) 2006-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: Audio Stubs -  Custom Interface for eAAC+ decoder.
*
*/


#ifndef EAACPLUSDECODERINTFCCI_H
#define EAACPLUSDECODERINTFCCI_H

// INCLUDES
#include <e32base.h>
#include <EAacPlusDecoderIntfc.h>

// CONSTANTS

// MACROS

// DATA TYPES

// FUNCTION PROTOTYPES

// FORWARD DECLARATIONS

// CLASS DECLARATION

/**
*  Custom Interface for eAAC+ decoder.
*
*  @lib EAacPlusDecoderIntfcCI_Stub.lib
*  @since S60 3.0
*/
class CEAacPlusDecoderIntfcCI : public CEAacPlusDecoderIntfc
	{
    public:  // Constructors and destructor

        /**
        * Two-phased constructor.
        */
		IMPORT_C static CEAacPlusDecoderIntfcCI* NewL();

        /**
        * Destructor.
        */
        IMPORT_C virtual ~CEAacPlusDecoderIntfcCI();

    public: // New functions

    public: // Functions from CEAacPlusDecoderIntfc

        /**
        * Configures decoder's profile defined by TAudioObjectType.
        * @since S60 3.0
        * @param TAudioObjectType - Supported AAC profile.
        * @return void
        */
		IMPORT_C virtual void SetAudioObjectType(
		                      TAudioObjectType aAudioObjectType);

        /**
        * Configures decoder's input sampling frequency.
        * @since S60 3.0
        * @param TUint - Decoder's input sampling frequency value.
        * @return void
        */
		IMPORT_C virtual void SetInputSamplingFrequency(
		                      TUint aInputSamplingFrequency);

        /**
        * Configures the number of channels to be used by the decoder.
        * @since S60 3.0
        * @param TUint - Number of channels (stereo/mono).
        * @return void
        */
		IMPORT_C virtual void SetNumOfChannels(TUint aNumOfChannels);

        /**
        * Configures decoder's spectral bandwidth replication (SBR).
        * @since S60 3.0
        * @param TBool - Toggle SBR.
        * @return void
        */
		IMPORT_C virtual void SetSbr(TBool aSbrEnabled);

        /**
        * Configures decoder's down-sampled mode (DSM).
        * @since S60 3.0
        * @param TBool - Toggle DSM.
        * @return void
        */
		IMPORT_C virtual void SetDownSampledMode(TBool aDsmEnabled);

        /**
        * Commits configuration settings to the decoder.
        * @since S60 3.0
        * @return TInt - Status
        */
		IMPORT_C virtual TInt ApplyConfig();

        /**
        * Returns decoder's AAC profile setting.
        * @since S60 3.0
        * @param TAudioObjectType& - Reference to AAC profile.
        * @return TInt - Status
        */
		IMPORT_C virtual TInt GetAudioObjectType(
		                      TAudioObjectType& aAudioObjectType);

        /**
        * Returns decoder's input sampling frequency setting.
        * @since S60 3.0
        * @param TUint& - Reference to input sampling frequency.
        * @return TInt - Status
        */
		IMPORT_C virtual TInt GetInputSamplingFrequency(
		                      TUint& aInputSamplingFrequency);

        /**
        * Returns decoder's channel setting.
        * @since S60 3.0
        * @param TUint& - Reference to the number of channels.
        * @return TInt - Status
        */
		IMPORT_C virtual TInt GetNumOfChannels(TUint& aNumOfChannels);

        /**
        * Returns decoder's SBR setting.
        * @since S60 3.0
        * @param TBool& - Reference to the SBR setting.
        * @return TInt - Status
        */
		IMPORT_C virtual TInt GetSbr(TBool& aSbrEnabled);

        /**
        * Returns decoder's DSM setting.
        * @since S60 3.0
        * @param TBool& - Reference to the DSM setting.
        * @return TInt - Status
        */
		IMPORT_C virtual TInt GetDownSampledMode(TBool& aDsmEnabled);


    protected:  // New functions

    protected:  // Functions from base classes

	private:

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

        /**
        * By default Symbian 2nd phase constructor is private.
        */
	    void ConstructL();

    public:     // Data
    protected:  // Data
    private:    // Data

        // Working config before ApplyConfig()
        TAudioObjectType  iAudioObjectType;
        TUint             iInputSamplingFrequency;
        TUint             iNumOfChannels;
        TBool             iSbrEnabled;
        TBool             iDsmEnabled;

        // Current config after ApplyConfig()
        TAudioObjectType  iCurrentAudioObjectType;
        TUint             iCurrentInputSamplingFrequency;
        TUint             iCurrentNumOfChannels;
        TBool             iCurrentSbrEnabled;
        TBool             iCurrentDsmEnabled;

	};

#endif      // EAACPLUSDECODERINTFCCI_H

// End of File