videoeditorengine/audioeditorengine/inc/AudClip.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- 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 <e32base.h>
-#include <f32file.h>
-
-
-#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 <em>not</em>
-    * 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 
-    * <code>EIllegalDynamicLevelMarkIndex</code> 
-    *
-    * @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 <code>EAudioClipIllegalStartTime</code> 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 <code>EAudioClipIllegalCutInTime</code> 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 <code>EAudioClipIllegalCutOutTime</code> 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
-    * <code>EIllegalDynamicLevelMark</code>-panic is raised
-    *
-    * Possible leave codes:
-    *    - <code>KErrNoMemory</code> 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 <code>EAudioClipIllegalIndex</code> 
-    * 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  <code>ETrue</code> to mute the audio clip;
-    *                 <code>EFalse</code> not to mute the audio clip
-    */
-    IMPORT_C void SetMuting(TBool aMuted);
-    
-    /**
-    * Sets whether this clip is normalized
-    * 
-    * @param  aNormalizing <code>ETrue</code> if normalized 
-    *                        <code>EFalse</code> 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<TAudDynamicLevelMark> iDynamicLevelMarkArray;
-    
-    friend class CAudSong;
-    friend class CAudSongAddClipOperation;
-    friend class RPointerArray<CAudClip>;
-    
-    };
-
-
-#endif // __AUDCLIP_H__
-