videoeditorengine/audioeditorengine/codecs/WAV/inc/ProcWAVFrameHandler.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* Copyright (c) 2010 Ixonos Plc.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "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:
* Ixonos Plc
*
* Description:  
*
*/



#ifndef __CPROCWAVFRAMEHANDLER_H__
#define __CPROCWAVFRAMEHANDLER_H__

#include <e32base.h>
#include "AudCommon.h"
#include "ProcConstants.h"
#include "ProcFrameHandler.h"

class CProcWAVFrameHandler : public CProcFrameHandler 
    {

public:

    /*
    * Constructors & destructor
    *
    */
    static CProcWAVFrameHandler* NewL(TInt aBitsPerSample);
    static CProcWAVFrameHandler* NewLC(TInt aBitsPerSample);
    virtual ~CProcWAVFrameHandler();


    // From base class --------------->
    virtual TBool ManipulateGainL(const HBufC8* aFrameIn, HBufC8*& aFrameOut, TInt8 aGain);

    
    virtual TBool GetGainL(const HBufC8* aFrame, RArray<TInt>& aGains, TInt& aMaxGain) const;
    virtual TBool GetNormalizingMargin(const HBufC8* aFrame, TInt8& aMargin) const;

    virtual TBool IsMixingAvailable() const;
    virtual TBool MixL(const HBufC8* aFrame1, const HBufC8* aFrame2, HBufC8*& aMixedFrame);
    //<---------------------------------

    
private:

    // ConstructL
    void ConstructL();
    
    // c++ constructor
    CProcWAVFrameHandler(TInt aBitsPerSample);
    
    // gets the highest gain
    TInt GetHighestGain(const HBufC8* aFrame, TInt& aMaxGain) const;

    // bitdepth
    TInt iBitsPerSample;

    
    };

#endif