--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/audioeditorengine/inc/AudObservers.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,294 @@
+/*
+* 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 __AUDOBSERVERS_H__
+#define __AUDOBSERVERS_H__
+
+
+#include <e32base.h>
+//#include "AudSong.h"
+//#include "AudClip.h"
+//#include "AudClipInfo.h"
+#include "AudCommon.h"
+
+class CAudSong;
+class CAudClip;
+class CAudClipInfo;
+
+/**
+ * Observer for movie processing operations.
+ */
+class MAudSongProcessingObserver
+ {
+public:
+ /**
+ * Called to notify that a new audio processing operation has been started.
+ *
+ * @param aSong song
+ */
+ virtual void NotifyAudioProcessingStartedL(CAudSong& aSong) = 0;
+
+ /**
+ * Called to inform about the current progress of the audio processing operation.
+ *
+ * @param aSong song
+ * @param aPercentage percentage of the operation completed, must be
+ * in range 0..100
+ */
+ virtual void NotifyAudioProcessingProgressed(CAudSong& aSong, TInt aPercentage) = 0;
+
+ /**
+ * Called to notify that the song processing operation has been completed.
+ *
+ * @param aSong song
+ * @param aError error code why the operation was completed.
+ * <code>KErrNone</code> if the operation was completed
+ * successfully.
+ */
+ virtual void NotifyAudioProcessingCompleted(CAudSong& aSong, TInt aError) = 0;
+
+ };
+
+/**
+* Observer for audio visualization processes.
+*/
+class MAudVisualizationObserver
+ {
+public:
+
+ /**
+ * Called to notify that audio _clip_ visualization process has been completed.
+ * The receiver is responsible for releasing the memory in
+ * <code>aVisualization</code> if <code>aError = KErrNone</code>
+ * Note: if aError != KErrNone, aVisualization = NULL and aSize = 0;
+ *
+ * @param aClipInfo audio clip info
+ * @param aError <code>KErrNone</code> if visualization was
+ * completed successfully; one of the system wide
+ * error codes if generating visualization failed
+ * @param aVisualization pointer to TInt8 visualization array
+ * @param aSize size of the visualization array
+ */
+ virtual void NotifyClipInfoVisualizationCompleted(const CAudClipInfo& aClipInfo,
+ TInt aError,
+ TInt8* aVisualization,
+ TInt aSize) = 0;
+
+
+ /**
+ * Called to notify that audio _clip_ visualization process has been started.
+ *
+ * @param aClipInfo clip info
+ * @param aError <code>KErrNone</code> if visualization was
+ * started successfully; one of the system wide
+ * error codes if generating visualization failed
+ */
+ virtual void NotifyClipInfoVisualizationStarted(const CAudClipInfo& aClipInfo,
+ TInt aError) = 0;
+
+
+ /**
+ * Called to inform about the current progress of the audio clip visualization.
+ *
+ * @param aClipInfo clip info
+ * @param aPercentage percentage of the operation completed, must be
+ * in range 0..100
+ */
+ virtual void NotifyClipInfoVisualizationProgressed(const CAudClipInfo& aClipInfo,
+ TInt aPercentage) = 0;
+
+
+ };
+
+
+/**
+ * Observer for song events.
+ * <p>
+ * Note that every change operation that is made to a song or the clips it consists of
+ * results in a maximum of one notification method called (that is, more than one
+ * notification method is never called as a result of a single change). For example,
+ * changing the index of a clip results in the <code>NotifyClipIndicesChanged()</code>
+ * method being called once. The <code>NotifyClipTimingsChanged()</code> method is not
+ * called even if the timings of several clips may have changed as a result. See the
+ * descriptions of the notification methods for more detailed information.
+ *
+ * @see CAudSong
+ */
+class MAudSongObserver
+ {
+public:
+
+ /**
+ * Called to notify that a new audio clip has been successfully
+ * added to the song. Note that the indices and the start and end times
+ * of the audio clips after the new clip have also changed as a result.
+ * Note that the transitions may also have changed.
+ *
+ * @param aSong song
+ * @param aClip new audio clip
+ * @param aIndex index of the new audio clip on a track
+ * @param aTrackIndex track index of the new clip
+ *
+ */
+ virtual void NotifyClipAdded(CAudSong& aSong, CAudClip& aClip, TInt aIndex, TInt aTrackIndex) = 0;
+
+ /**
+ * Called to notify that adding a new audio clip to the song has failed.
+ *
+ * Possible error codes:
+ * - <code>KErrNotFound</code> if there is no file with the specified name
+ * in the specified directory (but the directory exists)
+ * - <code>KErrPathNotFound</code> if the specified directory
+ * does not exist
+ * - <code>KErrUnknown</code> if the specified file is of unknown format
+ * - <code>KErrNotSupported</code> if the format of the file is recognized but
+ * adding it to the song is not supported (e.g., it is of different codec
+ * or format than the other clips)
+ *
+ * @param aSong song
+ * @param aError one of the system wide error codes
+ */
+ virtual void NotifyClipAddingFailed(CAudSong& aSong, TInt aError, TInt aTrackIndex) = 0;
+
+ /**
+ * Called to notify that an audio clip has been removed from the song.
+ * Note that the indices and the start and end times of the audio clips after
+ * the removed clip have also changed as a result. Note that the
+ * transitions may also have changed.
+ *
+ * @param aSong song
+ * @param aIndex index of the removed clip (on a track)
+ * @param aTrackIndex track index
+ */
+ virtual void NotifyClipRemoved(CAudSong& aSong, TInt aIndex, TInt aTrackIndex) = 0;
+
+ /**
+ * Called to notify that the timings of the clip has changed.
+ * Note that the start and end times of the audio clips
+ * after the changed clip have also changed.
+ *
+ * @param aSong song
+ * @param aClip changed clip
+ */
+ virtual void NotifyClipTimingsChanged(CAudSong& aSong,
+ CAudClip& aClip) = 0;
+
+
+ /**
+ * Called to notify that the index of the clip has changed.
+ *
+ * @param aSong song
+ * @param aOldIndex old index on a track
+ * @param aNewIndex new index on a track
+ * @param aTrackIndex track index
+ */
+ virtual void NotifyClipIndicesChanged(CAudSong& aSong, TInt aOldIndex,
+ TInt aNewIndex, TInt aTrackIndex) = 0;
+
+ /**
+ * Called to notify that the song has been reseted.
+ *
+ * @param aSong song
+ */
+ virtual void NotifySongReseted(CAudSong& aSong) = 0;
+
+
+ /**
+ * Called to notify that a clip has been reseted.
+ *
+ * @param aClip clip
+ */
+ virtual void NotifyClipReseted(CAudClip& aClip) = 0;
+
+
+ /**
+ * Called to notify that a new dynamic level mark has been successfully
+ * added to a _clip_.
+ *
+ * @param aClip clip
+ * @param aMark new level mark
+ * @param aIndex index of the new level mark
+ */
+ virtual void NotifyDynamicLevelMarkInserted(CAudClip& aClip,
+ TAudDynamicLevelMark& aMark,
+ TInt aIndex) = 0;
+
+
+ /**
+ * Called to notify that a dynamic level mark has been removed from a _clip_.
+ * Note that indices of dynamic level marks has also changed as a result
+ *
+ * @param aClip clip
+ * @param aIndex index of the removed mark
+ */
+ virtual void NotifyDynamicLevelMarkRemoved(CAudClip& aClip, TInt aIndex) = 0;
+
+
+
+ };
+
+
+
+
+/**
+ * Observer for notifying that audio clip info
+ * is ready for reading.
+ *
+ * @see CAudClipInfo
+ */
+class MAudClipInfoObserver
+ {
+public:
+ /**
+ * Called to notify that audio clip info is ready
+ * for reading.
+ *
+ * Possible error codes:
+ * - <code>KErrNotFound</code> if there is no file with the specified name
+ * in the specified directory (but the directory exists)
+ * - <code>KErrPathNotFound</code> if the specified directory
+ * does not exist
+ * - <code>KErrUnknown</code> if the specified file is of unknown type
+ *
+ * @param aInfo audio clip info
+ * @param aError <code>KErrNone</code> if info is ready
+ * for reading; one of the system wide
+ * error codes if reading file failed
+ */
+ virtual void NotifyClipInfoReady(CAudClipInfo& aInfo,
+ TInt aError) = 0;
+ };
+
+class MAudTimeEstimateObserver
+ {
+public:
+ /**
+ * Called to notify that time estimate is ready
+ * for reading.
+ *
+ *
+ * @param aTimeEstimate time estimate in microseconds
+ */
+
+ virtual void NotifyTimeEstimateReady(TInt64 aTimeEstimate) = 0;
+
+ };
+#endif