--- a/videoeditorengine/audioeditorengine/inc/ProcInFileHandler.h Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,392 +0,0 @@
-/*
-* 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 __CPROCINFILEHANDLER_H__
-#define __CPROCINFILEHANDLER_H__
-
-#include <e32base.h>
-#include <f32file.h>
-#include "ProcFrameHandler.h"
-#include "ProcWAVFrameHandler.h"
-
-#include "AudCommon.h"
-#include "ProcConstants.h"
-#include "AudClip.h"
-#include "ProcDecoder.h"
-
-class CProcInFileHandler : public CBase
- {
-
-public:
-
- /*
- * Destructor
- */
- virtual ~CProcInFileHandler();
-
-
- /**
- * Gets properties of this input clip
- *
- * @param aProperties audio clip properties. Needs to be allocated by the caller
- * and is filled in by this function
- *
- */
- virtual void GetPropertiesL(TAudFileProperties* aProperties) = 0;
-
- /*
- *
- * Is decoding required?
- */
-
- TBool DecodingRequired();
-
- /*
- *
- * Returns the size of a decoded frame
- */
- TInt GetDecodedFrameSize();
-
- /*
- *
- * Sets whether decoding is required?
- */
-
- void SetDecodingRequired(TBool aDecodingRequired);
-
- /**
- * Reads the next audio frame
- * This function allocates memory and
- * the caller is responsible for releasing it
- *
- * Possible leave codes:
- *
- *
- * @param aFrame audio frame
- * @param aSize size of the retrieved audio frame
- * @param aTime duration of the returned frame in milliseconds
- * @return ETrue if a frame was read
- * EFalse if frame was not read (EOF)
- */
- TBool GetAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aTime, TBool& aRawFrame);
-
- TBool GetRawAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aTime);
-
-
- /**
- * Sets properties of this in file handler
- *
- * @param aProperties audio clip properties
- *
- */
-
- TBool SetPropertiesL(TAudFileProperties aProperties);
-
- /*
- * Set the size of raw audio frames
- *
- * @param aSize audio size
- *
- * @return ETrue if successful, EFalse otherwise
- */
-
- TBool SetRawAudioFrameSize(TInt aSize);
-
-
- /**
- * Seeks a certain audio frame for reading
- *
- * Possible leave codes:
- *
- * @param aTime time from the beginning of file in milliseconds
- *
- * @return ETrue if successful
- * EFalse if beyond the file
- */
- virtual TBool SeekAudioFrame(TInt32 aTime) = 0;
-
-
- /**
- * Seeks a cut in audio frame for reading
- *
- * Possible leave codes:
- *
- *
- * @return ETrue if successful
- *
- */
- virtual TBool SeekCutInFrame() = 0;
-
-
- //virtual TBool GetAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aTime, TBool& aRawFrame) = 0;
-
-
- /**
- * Generates and returns a silent audio frame
- * This function allocates memory and
- * the caller is responsible for releasing it.
- * The silent frame is generated according to audio
- * properties of this input clip
- * (e.g. sampling rate, channel configuration, bitrate etc)
- *
- * Possible leave codes: , at least <code>KErrNotMemory</code>
- *
- *
- * @param aFrame audio frame
- * @param aSize size of the silent audio frame
- * @param aDuration duration of the returned silent frame in milliseconds
- * @return ETrue if a frame was generated
- * EFalse if frame was not generated (EOF, no need to release aFrame)
- */
- virtual TBool GetSilentAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aDuration, TBool& aRawFrame);
-
-
-
- /**
- * Gets the priority of this clip
- *
- * @return priority of this clip
- *
- */
- TInt Priority() const;
-
- /**
- * Gets the current time of the frame reading
- *
- * @return current time in milliseconds
- *
- */
- TInt32 GetCurrentTimeMilliseconds();
-
- /**
- * Gets the normalizing margin of this clip
- *
- * @return normalizing margin
- *
- */
- TInt8 NormalizingMargin() const;
-
- /**
- *
- * Set priority of this clip
- *
- * @param aPriority priority >= 0
- *
- * @return ETrue if priority >= 0
- * EFalse otherwise, priority not set
- */
- TBool SetPriority(TInt aPriority);
-
- /*
- * Sets the normalizing gain of this clip
- *
- * @param aFrameHandler frame handler
- *
- * @return ETrue if successful
- */
- virtual TBool SetNormalizingGainL(const CProcFrameHandler* aFrameHandler) = 0;
-
- /**
- * Gets ReadAudioDecoderSpecificInfo from file (if any)
- *
- * @param aBytes buffer
- * @param aBufferSize maximum size of buffer
- *
- * @return ETrue if bytes were read (The caller must release aBytes!!)
- *
- * EFalse if no bytes were read (no memory releasing needed)
- *
- */
-
- virtual TBool ReadAudioDecoderSpecificInfoL(HBufC8*& aBytes, TInt aBufferSize);
-
-
-protected:
-
- // constructL
- void ConstructL(const TDesC& aFileName);
-
- // c++ constructor
- CProcInFileHandler();
-
-
- /**
- * Reads the next raw frame
- * This function allocates memory and
- * the caller is responsible for releasing it
- *
- * Possible leave codes:
- *
- *
- * @param aFrame audio frame
- * @param aSize size of the retrieved audio frame
- * @param aTime duration of the returned frame in milliseconds
- * @return ETrue if a frame was read
- * EFalse if frame was not read (EOF)
- */
-
- virtual TBool GetRawSilentAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aDuration);
-
- virtual TBool GetEncAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aTime) = 0;
-
- virtual TBool GetEncSilentAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aDuration);
-
- TBool GetOneRawAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aDuration);
-
-
- /**
- * Performs all the necessary initializations and memory allocations needed.
- * Should be always called by classes inherited from <code>CProcInFileHander</code>
- *
- * @param aFileName name of the file
- * @param aCutInTime cut in time in milliseconds
- * @param aReadBufferSize read buffer size
- *
- * @return ETrue if successful
- *
- */
- TBool InitAndOpenFileL(const TDesC& aFileName, RFile* aFileHandle, TInt aReadBufferSize);
-
-
- /**
- * Performs all the necessary resource releasing and file closing
- *
- * should be called if <code>InitAndOpenFileL</code> has been called
- *
- * @return ETrue if successful
- *
- */
- void ResetAndCloseFile();
-
- // opens a file for readind
- TBool OpenFileForReadingL();
-
- // closes the file if open
- TBool CloseFile();
-
-
- // File reading methods------------------>
- TInt BufferedFileRead(TDes8& aDes,TInt aLength);
- TInt BufferedFileSetFilePos(TInt aPos);
- TInt BufferedFileGetFilePos();
- TInt BufferedFileGetSize();
- TInt BufferedFileRead(TInt aPos,TDes8& aDes);
- TInt BufferedFileRead(TDes8& aDes);
- TInt BufferedFileReadChar(TInt aPos, TUint8& aChar);
- // <------------------ File reading methods
-
-
- TBool ManipulateGainL(HBufC8*& aFrameIn);
-
- // function for gain manipulation
- TInt8 GetGainNow();
-
- TBool WriteDataToInputBufferL(const TDesC8& aData);
-
-protected:
-
- // is inputfile open?
- TBool iFileOpen;
-
- // file name
- HBufC* iFileName;
-
- // RFile
- RFile iFile;
-
- // file server session
- RFs iFs;
-
- // read buffer
- HBufC8* iReadBuffer;
-
- // size of the read buffer
- TInt iReadBufferSize;
-
- // start offset of the read buffer
- TInt iBufferStartOffset;
-
- // end offset of the read buffer
- TInt iBufferEndOffset;
-
- // current file position
- TInt iFilePos;
-
- // cut in time in milliseconds
- TInt32 iCutInTime;
-
- // current read time in milliseconds
- TInt32 iCurrentTimeMilliseconds;
-
- // priority of the clip
- TInt iPriority;
-
- // normalizing margin in dB/2
- TInt8 iNormalizingMargin;
-
- // audio file properties
- TAudFileProperties* iProperties;
-
- // silent frame
- HBufC8* iSilentFrame;
-
- // duration of the silent frame
- TInt32 iSilentFrameDuration;
-
- // raw silent frame
- HBufC8* iRawSilentFrame;
-
- // duration of the raw silent frame
- TInt iRawSilentFrameDuration;
-
- // if true, this object opens and closes the input file
- TBool iOwnsFile;
-
- TInt iTargetSampleRate;
-
- TChannelMode iChannelMode;
-
- CProcFrameHandler* iFrameHandler;
-
- CAudClip* iClip;
-
- TBool iDecodingRequired;
-
- CProcDecoder* iDecoder;
-
- TBool iDecodingPossible;
-
- // We need a temporary storage for extra bytes
- // when retrieving raw frames af equal length
- HBufC8* iInputBuffer;
-
- TInt iRawFrameLength;
-
- // wav frame handler for time domain gain manipulation
- CProcWAVFrameHandler* iWavFrameHandler;
-
- // remainder if audio duration can't be handled accurately in TInt milliseconds, depends on sampling rate
- TReal iFrameLenRemainderMilli;
-
- // Counter for decoder errors. Try to continue after one error, but if there are more, stop decoding.
- TInt iDecoderErrors;
- };
-
-#endif