diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/audioeditorengine/inc/AudClip.h --- a/videoeditorengine/audioeditorengine/inc/AudClip.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,387 +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 __AUDCLIP_H__ -#define __AUDCLIP_H__ - - - -#include -#include - - -#include "AudCommon.h" -#include "AudObservers.h" - -/* -* Forward declarations. -*/ - -class CAudSong; -class CAudSongObserver; -class CAudClipInfo; -class MAudClipInfoObserver; - - -/* -* Constant definitions. -*/ - - -/** -* Individual audio clip stored as a single bitstream. -* -* @see CAudSong -*/ -class CAudClip : public CBase - { -public: - - /* Property methods. */ - - /** - * Returns an audio clip info object to get detailed information about - * the original audio clip. Note that the specified editing operations - * (for example, cutting or muting) do not - * affect the values returned by the info object. - * - * @return pointer to an audio clip info instance - */ - IMPORT_C CAudClipInfo* Info() const; - - /** - * Returns a boolean value that indicates whether this clip is normalized - * - * @return ETrue if normalized, EFalse otherwise - */ - IMPORT_C TBool Normalizing() const; - - /** - * Returns a dynamic level mark at the specified index - * If the index is illegal, the method panics with the code - * EIllegalDynamicLevelMarkIndex - * - * @return A dynamic level mark - */ - IMPORT_C TAudDynamicLevelMark DynamicLevelMark(TInt aIndex) const; - - /** - * Returns the number of dynamic level marks - * - * @return The number of dynamic level mark - */ - IMPORT_C TInt DynamicLevelMarkCount() const; - - /** - * Returns whether this clip is muted or not - * - * @return muting - */ - IMPORT_C TBool Muting() const; - - /** - * Sets the start time of this audio clip in clip timebase. - * Panics with EAudioClipIllegalStartTime if - * cut in time is illegal (negative). - * - * @param aCutInTime cut in time in microseconds in clip timebase - */ - IMPORT_C void SetStartTime(TTimeIntervalMicroSeconds aStartTime); - - /** - * Returns the start time of this audio clip in song timebase. - * - * @return start time in microseconds in song timebase - */ - IMPORT_C TTimeIntervalMicroSeconds StartTime() const; - - /** - * Returns the start time of this audio clip in song timebase. - * - * @return start time in milliseconds in song timebase - */ - TInt32 StartTimeMilliSeconds() const; - - - /** - * Returns the end time of this audio clip in song timebase. - * - * @return end time in microseconds in song timebase - */ - IMPORT_C TTimeIntervalMicroSeconds EndTime() const; - - /** - * Returns the duration of this audio clip with the specified - * editing operations applied (for example, cutting) - * - * @return duration in microseconds - */ - IMPORT_C TTimeIntervalMicroSeconds EditedDuration() const; - - /** - * Returns the priority of this audio clip - * - * @return priority - */ - IMPORT_C TInt Priority() const; - - /** - * Returns the index of this audio clip __on a track__ - * - * @return index - */ - IMPORT_C TInt IndexOnTrack() const; - - - /** - * Returns the track index of this audio clip in CAudSong - * - * @return track index - */ - IMPORT_C TInt TrackIndex() const; - - - - /* Song methods. */ - - /** - * Returns the song that this audio clip is part of. - * - * @return song - */ - IMPORT_C CAudSong* Song() const; - - /* Timing methods. */ - - /** - * Returns the cut in time of this audio clip in clip timebase. - * - * @return cut in time in microseconds in clip timebase - */ - IMPORT_C TTimeIntervalMicroSeconds CutInTime() const; - - /** - * Returns the cut in time of this audio clip in clip timebase. - * - * @return cut in time in milliseconds in clip timebase - */ - TInt32 CutInTimeMilliSeconds() const; - - /** - * Sets the cut in time of this audio clip in clip timebase. - * Panics with EAudioClipIllegalCutInTime if - * cut in time is illegal. - * - * @param aCutInTime cut in time in microseconds in clip timebase - */ - IMPORT_C void SetCutInTime(TTimeIntervalMicroSeconds aCutInTime); - - /** - * Returns the cut out time of this audio clip in clip timebase. - * - * @return cut out time in microseconds in clip timebase - */ - IMPORT_C TTimeIntervalMicroSeconds CutOutTime() const; - - /** - * Returns the cut out time of this audio clip in clip timebase. - * - * @return cut out time in milliseconds in clip timebase - */ - TInt32 CutOutTimeMilliSeconds() const; - - /** - * Sets the cut out time of this audio clip in clip timebase. - * Panics with EAudioClipIllegalCutOutTime if - * cut out time is illegal. - * - * @param aCutOutTime cut out time in microseconds in clip timebase - */ - IMPORT_C void SetCutOutTime(TTimeIntervalMicroSeconds aCutOutTime); - - /** - * Sets the priority of this audio clip - * - * @param aPriority priority, >= 0 - * - * @return ETrue if aPriority >= 0 - * EFalse if aPriority < 0, priority not set - * - */ - IMPORT_C TBool SetPriority(TInt aPriority); - - - /* Processing methods */ - - /** - * Inserts a dynamic level mark to a clip. - * If time of the given mark is illegal - * EIllegalDynamicLevelMark-panic is raised - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - * @param aMark mark to be added in clip time domain - * @return index of the mark inserted - */ - IMPORT_C TInt InsertDynamicLevelMarkL(const TAudDynamicLevelMark& aMark); - - /** - * Removes a dynamic level mark in a clip. - * Panics with code EAudioClipIllegalIndex - * if the clip index is invalid. - * - * @param aIndex index of the removed mark in this clip - * @return ETrue if mark was removed, EFalse otherwise - */ - IMPORT_C TBool RemoveDynamicLevelMark(TInt aIndex); - - /** - * Sets whether this clip is muted or not. - * - * @param aMuting ETrue to mute the audio clip; - * EFalse not to mute the audio clip - */ - IMPORT_C void SetMuting(TBool aMuted); - - /** - * Sets whether this clip is normalized - * - * @param aNormalizing ETrue if normalized - * EFalse otherwise - */ - IMPORT_C void SetNormalizing(TBool aNormalizing); - - IMPORT_C void Reset(TBool aNotify); - - /** - * Sets common volume gain for the clip. It is used to store - * the gain; the actual processing will be based on dynamic level - * marks which are set based on the gain value just before processing. - * Since global gain setting may affect the dynamic level mark, - * we need different variable to store the clip-specific gain also after the processing. - * I.e. dynamic level marks do not have effect to this value. - * - * @param aVolumeGain - */ - IMPORT_C void SetVolumeGain(TInt aVolumeGain); - - /** - * Gets common volume gain for the clip. - * Since global gain setting may affect the dynamic level mark, - * we need different variable to store the clip-specific gain also after the processing. - * - * @param aVolumeGain - */ - IMPORT_C TInt GetVolumeGain(); - - /** - * - * Compare is used by RPointerArray::Sort() - * - */ - static TInt Compare(const CAudClip &c1, const CAudClip &c2); - - -protected: - - -private: - - - - /* Constructors. */ - - static CAudClip* NewL(CAudSong* aSong, const TDesC& aFileName, - TTimeIntervalMicroSeconds aStartTime, - MAudClipInfoObserver& aObserver, TInt aTrackIndex); - - static CAudClip* NewL(CAudSong* aSong, RFile* aFileHandle, - TTimeIntervalMicroSeconds aStartTime, - MAudClipInfoObserver& aObserver, TInt aTrackIndex); - - CAudClip(CAudSong* aSong); - - void ConstructL(const TDesC& aFileName, - TTimeIntervalMicroSeconds aStartTime, - MAudClipInfoObserver& aObserver, TInt aTrackIndex); - - void ConstructL(RFile* aFileHandle, - TTimeIntervalMicroSeconds aStartTime, - MAudClipInfoObserver& aObserver, TInt aTrackIndex); - - /* Destructor. */ - - /** - * Destroys the object and releases all resources. - */ - virtual ~CAudClip(); - -private: - // Member variables - - // Song class this clip is part of. - CAudSong* iSong; - // File of the audio clip. - RFile iFile; - - - // Info class of this audio clip. - CAudClipInfo* iInfo; - - // Cut in time of this audio clip. - TTimeIntervalMicroSeconds iCutInTime; - // Cut out time of this audio clip. - TTimeIntervalMicroSeconds iCutOutTime; - // Start time of this audio clip. - TTimeIntervalMicroSeconds iStartTime; - - // Muting of this audio clip. - // If ETrue, the clip is to be muted - TBool iMute; - - // Normalizing of this audio clip. - // If ETrue, the clip is to be normalized - TBool iNormalize; - - // Priority of this audio clip. - TInt iPriority; - - // index of this clip in CAudSong - TInt iIndex; - - // track index of this clip - TInt iTrackIndex; - - TInt iVolumeGain; - - // Marks used for manual level controlling - RPointerArray iDynamicLevelMarkArray; - - friend class CAudSong; - friend class CAudSongAddClipOperation; - friend class RPointerArray; - - }; - - -#endif // __AUDCLIP_H__ -