diff -r 951a5db380a0 -r e0b5df5c0969 videoeditorengine/audioeditorengine/inc/ProcTools.h --- a/videoeditorengine/audioeditorengine/inc/ProcTools.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,301 +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 __PROCTOOLS_H__ -#define __PROCTOOLS_H__ - -#include -#include -#include "AudCommon.h" -#include "ProcConstants.h" -#include "Mp3API.h" - -class ProcTools - { - -public: - - /** - * Decimal number to binary number - */ - static TBool Dec2Bin(TUint8 aDec, TBuf8<8>& aBinary); - /** - * This version allocates memory (aBin), remember to release - */ - static TBool Dec2BinL(TUint32 aDec, HBufC8*& aBin); - - /** - * Binary number to decimal number - */ - static TBool Bin2Dec(const TDesC8& aBin, TUint& aDec); - - /** - * Decimal number in descriptor to unsigned integer - */ - static TBool Des2Dec(TDesC8& aDes, TUint& aDec); - - /** - * Decimal number in descriptor to binary descriptor - * allocates memory, the caller must release - */ - static TBool Des2BinL(const TDesC8& aDes, HBufC8*& aBin); - - /** - * Gets milliseconds(TInt) from microseconds (TTimeIntervalMicroSeconds) - * @param aMicroSeconds microseconds - * - * @return milliseconds - */ - - static TInt MilliSeconds(TTimeIntervalMicroSeconds aMicroSeconds); - - /** - * Gets microseconds (TTimeIntervalMicroSeconds) from milliseconds (TInt) - * @param aMilliSeconds milliseconds - * - * @return microiseconds - */ - - static TTimeIntervalMicroSeconds MicroSeconds(TInt aMilliSeconds); - - /** - * casts TInt64 to TInt (overflow possible, the user is resonsible!!) - * - * @param aInt64 TInt64 - * - * @return Tint - */ - - static TInt GetTInt(TInt64 aTInt64); - - - /** - * Retrieves a decimal number from a frame - * - * @param aFrame frame - * @param aBitFirst index of the first bit of the needed balue - * @param aLength number of bits in the needed value - * - * @return retrieved integer, if -1 then operation was unsuccessful - */ - static TInt GetValueFromFrame(const HBufC8* aFrame, TInt aBitFirst, TInt aLength); - - /** - * Retrieves a decimal number from a frame, whose bits are shuffled - * - * @param aFrame frame - * @param aBitRate bitrate - * @param aBitPositions bit position in a deshuffled frame - * @param aLength number of bits read - * - * @return retrieved integer - * - */ - static TInt GetValueFromShuffledAWBFrameL(const HBufC8* aFrame, TInt aBitRate, TInt aBitPosition, TInt aLength); - - static TBool SetValueToShuffledAWBFrame(TUint8 aNewValue, HBufC8* aFrame, - TInt aBitRate, TInt aBitPosition, TInt aLength); - - /** - * Retrieves a decimal number from a frame, whose bits are shuffled - * - * @param aFrame frame - * @param aBitPositions shuffling table - * @param TInt aSize length of aBitPositions - * - * @return retrieved integer, if -1 then operation was unsuccessful - * - */ - static TInt GetValueFromShuffledFrame(const HBufC8* aFrame, const TUint8 aBitPositions[], TInt aSize); - - - /** - * Writes a decimal number to a frame, whose bits are shuffled - * - * @param aFrame frame - * @param aNewValue value to be written - * @param aBitPositions bit indexes in order - * @param TInt aSize length of aBitPositions - * - * @return ETrue if successful - * - */ - static TBool SetValueToShuffledFrame(HBufC8* aFrame, TUint8 aNewValue, const TUint8 aBitPositions[], TInt aSize); - - /** - * Appends integers to a file separated by linefeeds - * Mostly for debugging purposes - * - * @param aArray array of integers to be written - * @param aFilename file name, created if doesn't exist, append otherwise - * - * @return ETrue if successful - */ - static TBool WriteValuesToFileL(const RArray& aArray, const TDesC& aFilename); - - /** - * Finds a closest match in a gain table - * used for scalar quantized gain tables - * - * @param aNewGain search key - * @param aGainTable gain table - * @param aTableSize gain table length - * - * @return index of the closest match - */ - static TUint8 FindNewIndexSQ(TInt aNewGain, const TInt aGainTable[], TInt aTableSize); - - /** - * Finds a closest match in a gain table - * used for vector quantized gain tables - * pitch: Q14. FC gain Q12 - * - * @param aNewGain search key - * @param aGainTable gain table - * @param aTableSize gain table length - * - * @return index of the closest match - */ - static TUint8 FindNewIndexVQ(TInt aNewGain, TInt aOldPitch, const TInt aGainTable[], TInt aTableSize); - - /** - * Finds a closest match in a gain table - * used for vector quantized gain tables - * pitch: Q14. FC gain Q11!! - * - * @param aNewGain search key - * @param aGainTable gain table - * @param aTableSize gain table length - * - * @return index of the closest match - */ - static TUint8 FindNewIndexVQ2(TInt aNewGain, TInt aOldPitch, const TInt aGainTable[], TInt aTableSize); - - - /** - * Finds a closest match in a gain table for 4.75 kBit/s - * - * @param aNewGain0 new gain of subframe 0 or 2 - * @param aOldPitch0 new pitch of subframe 0 or 2 - * @param aNewGain1 new gain of subframe 1 or 3 - * @param aNewGain1 new pitch of subframe 1 or 3 - * - */ - static TUint8 FindNewIndex475VQ(TInt aNewGain0, TInt aOldPitch0, TInt aNewGain1, TInt aOldPitch1); - - static TInt FindIndex(TInt aKey, const TInt aBitPositions[], TInt aTableLength); - - static TBool GenerateADTSHeaderL(TBuf8<7>& aHeader, TInt aFrameLength, TAudFileProperties aProperties); - - static TInt GetNextAMRFrameLength(const HBufC8* aFrame, TInt aPosNow); - - }; - - -/* -* -* One processing event represents a section in the output clip -* It includes the following information: -* - when the section starts (iPosition) -* - is the new section a result of a new clip (iCutIn == ETrue) -* or a result of an ending clip (iCutIn == EFalse) -* - what clips are supposed to be mixed from this processing event (iAllIndexes) -* - what is the clip starting or ending that is causing this processing event (iChangedIndex) -* -* -*/ - -class CProcessingEvent : public CBase - { - -public: - - - static CProcessingEvent* NewL(); - ~CProcessingEvent(); - /* - * Insert a new clip to this processing event - */ - void InsertIndex(TInt aIndex); - - /* - * Gets the clip index in CAudSong based on the clip index in processing event - */ - TInt GetIndex(TInt aProcessingEventIndex); - - /* - * Gets all clip indexes in this processing event - */ - TBool GetAllIndexes(RArray& aAllIndexes); - - /* - * Index count - */ - TInt IndexCount(); - - /* - * Find processing event index based on clip index - */ - TInt FindIndex(TInt aClipIndex); - - /* - * Remove processing event - */ - void RemoveIndex(TInt aProcessingEventIndex); - -public: - - //global position in milliseconds - TInt32 iPosition; - //true = cutIn, false = cutOut - TBool iCutIn; - - // there can be only one different clip in iAllIndexes in consecutive - // processing events: - // iChangedClipIndex is that index - TInt iChangedClipIndex; - - // compare starting times (used by a common ordering function) - static TInt Compare(const CProcessingEvent& c1, const CProcessingEvent& c2); - -private: - - void ConstructL(); - CProcessingEvent(); - - // indexes of all the clips that should be mixed - // after this processing events - RArray iAllIndexes; // -1 = silence - }; - - - -class AudioEngineUtilTools - { -public: - - /** - * Displays messages on a box - */ - static void AudioEngineMessageBox(const TDesC& aMessage); - - }; - -#endif