mp3_dec/arimp3decwrapper/export_hdr/arimp3decwrapper.h
author Pat Downey <patd@symbian.org>
Fri, 23 Jul 2010 16:58:44 +0100
changeset 0 bb31fbe78861
permissions -rw-r--r--
Initial commit of Aricent codec contribution.

/*
* Copyright (c) 2009 Aricent and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:
* Aricent - initial contribution.
*
* Contributors:
*
* Description: 
* Export header file for Wrapper APIs.Interface class for 
* Mp3 Decoder Wrapper.The member functions are pure virtual functions which     
* are to be implemented by the derived class.
*
*/

#ifndef ARIMP3DECWRAPPER_H	
#define ARIMP3DECWRAPPER_H

// System includes
#include <E32Base.h>

// Class declaration
class TMp3FrameInfo
    {
		
public:  
    TInt iSamplingFrequency;
	TInt iNumberOfChannels;
	TInt iBufferSize;
	TInt iBitRate;
	
    };

// Class declaration
class CAriMp3DecWrapper : public CBase
    {

public:
    /**
     * Two-phased constructor.
     * @return pointer to an instance of CAriMp3DecWrapper
     */
	IMPORT_C static CAriMp3DecWrapper* NewL();
	/**> Destructor */
	virtual ~CAriMp3DecWrapper();
	/**
	 * The function resets the decoder.
	 * @param   
	 * @return return status         
	 */
    virtual TInt Reset() = 0 ;
    /**
	 * The function Gets frame information for the given source.
	 * @param aBuf
	 *    	Pointer to buffer containing the header of input stream data
	 * @param aBufLen
	 * 		Size of Buffer in bytes
	 * @param aFrameLen 
	 * 		Length of the frame
	 * @param aInfo
	 * 		Reference to the structure TMp3FrameInfo 
	 * @return return status         
	 */  
    virtual TInt GetFrameInfo( const TUint8* aBuf, TInt aBufLen,
								TInt &aFrameLen, TMp3FrameInfo& aInfo ) = 0 ;
    /**
	 * The function Gets maximum out put frame length with the information 
	 * @param aFrameLen 
	 * 		Length of the maximum out put frame
	 * @param aInfo
	 * 		Reference to the structure TMp3FrameInfo 
	 * @return return status         
	 */ 
    virtual TInt GetMaxFrameInfo( TInt &aFrameLen, 
									TMp3FrameInfo& aInfo ) = 0 ;
    /**
	 * The function gives the offset value of the buffer from where frame 
	 * starts. 
	 * @param aBuf 
	 * 		Pointer to the input buffer 
	 * @param aBufLen
	 * 		Length of the input buffer
	 * @param aSyncPos
	 * 		Offset value of the buffer from where frame starts	
	 * @return return status         
	 */ 
    virtual TInt SeekSync( const TUint8* aBuf, TInt aBufLen, 
														TInt &aSyncPos ) = 0 ;
    /**
	 * The function decodes the aSrc buffer. 
	 * @param aSrc 
	 * 		Pointer to the source buffer 
	 * @param aSrcUsed
	 * 		Size of the source buffer
	 * @param aDst
	 * 		Pointer to the destination buffer
	 * @param aDstLen
	 * 		Size of the destination buffer	
	 * @return return status         
	 */ 
    virtual TInt Decode( TUint8* aSrc, TInt& aSrcUsed, TUint8* aDst, 
														TInt& aDstLen ) = 0 ;    
   
    };

#endif //ARIMP3DECWRAPPER_H

//-----------------------------------------------------------------------------
//  End of File
//-----------------------------------------------------------------------------