diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/audioeditorengine/inc/AudClipInfo.h --- a/videoeditorengine/audioeditorengine/inc/AudClipInfo.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,369 +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 __AUDCLIPINFO_H__ -#define __AUDCLIPINFO_H__ - - -#include -#include - -#include "AudCommon.h" -#include "AudObservers.h" - - - -/* -* Forward declarations. -*/ -class CAudClipInfoOperation; -class CAudProcessor; - -/** -* Utility class for getting information about audio clip files. -*/ -class CAudClipInfo : public CBase - - { - -public: - - /* Constructors & destructor. */ - - /** - * Constructs a new CAudClipInfo object to get information - * about the specified audio clip file. The specified observer - * is notified when info is ready for reading. This method - * may leave if no resources are available to construct - * a new object. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - KErrNotSupported if the given file format is not supported - * or is invalid - * - * @param aFileName name of audio clip file - * @param aObserver observer to notify when info is ready for reading - * - * @return pointer to a new CAudClipInfo instance - */ - IMPORT_C static CAudClipInfo* NewL(const TDesC& aFileName, MAudClipInfoObserver& aObserver); - - /** - * Constructs a new CAudClipInfo object to get information - * about the specified audio clip file. The constructed object - * is left in the cleanup stack. The specified observer - * is notified when info is ready for reading. This method - * may leave if no resources are available to construct a new - * object. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - KErrNotSupported if the given file format is not supported - * or is invalid - * - * @param aFileName name of video clip file - * @param aObserver observer to notify when info is ready for reading - * - * @return pointer to a new CAudClipInfo instance - */ - IMPORT_C static CAudClipInfo* NewLC(const TDesC& aFileName, MAudClipInfoObserver& aObserver); - - - /** - * Returns the properties of this audio file - * - * @return properties - */ - IMPORT_C TAudFileProperties Properties() const; - - /** - * Generates a visualization of the current clip. - * - * Asynchronous operation; MAudVisualizationObserver::NotifyClipVisualizationCompleted - * is called as soon as the visualization process has completed. This method leads to - * memory reservation, so once NotifyClipVisualizationCompleted has occurred, - * the caller is responsible for memory releasing. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - * @param aObserver observer to be notified when visualization is completed - * @param aSize the size of aVisualization array (time resolution). - * @param aPriority priority - * - */ - IMPORT_C void GetVisualizationL(MAudVisualizationObserver& aObserver, - TInt aSize, TInt aPriority) const; - - /** - * Cancels visualization generation. If no visualization is currently being - * generated, the function does nothing. - */ - IMPORT_C void CancelVisualization(); - - /** - * Returns the file name of the clip. Panics if info - * is not yet ready for reading. - * - * @return file name - */ - IMPORT_C TPtrC FileName() const; - - /** - * Destroys the object and releases all resources. - */ - IMPORT_C ~CAudClipInfo(); - - /** - * Constructs a new CAudClipInfo object to get information - * about the specified audio clip file. The specified observer - * is notified when info is ready for reading. This method - * may leave if no resources are available to construct - * a new object. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - KErrNotSupported if the given file format is not supported - * or is invalid - * - * @param aFileHandle file handle of audio clip file - * @param aObserver observer to notify when info is ready for reading - * - * @return pointer to a new CAudClipInfo instance - */ - IMPORT_C static CAudClipInfo* NewL(RFile* aFileHandle, MAudClipInfoObserver& aObserver); - - /** - * Constructs a new CAudClipInfo object to get information - * about the specified audio clip file. The constructed object - * is left in the cleanup stack. The specified observer - * is notified when info is ready for reading. This method - * may leave if no resources are available to construct a new - * object. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - KErrNotSupported if the given file format is not supported - * or is invalid - * - * @param aFileHandle file handle of audio clip file - * @param aObserver observer to notify when info is ready for reading - * - * @return pointer to a new CAudClipInfo instance - */ - IMPORT_C static CAudClipInfo* NewLC(RFile* aFileHandle, MAudClipInfoObserver& aObserver); - - /** - * Returns the file handle of the clip. Panics if info - * is not yet ready for reading. - * - * @return file name - */ - IMPORT_C RFile* FileHandle() const; - - -private: - - // C++ constructor - CAudClipInfo(); - - // ConstructL - // parameters: see NewL() - void ConstructL(const TDesC& aFileName, MAudClipInfoObserver& aObserver); - - void ConstructL(RFile* aFileHandle, MAudClipInfoObserver& aObserver); - -private: - - // properties of this clip - TAudFileProperties* iProperties; - - // file name of this clip - HBufC* iFileName; - - // file handle of this clip - RFile* iFileHandle; - - // flag to indicate whether info class is ready - TBool iInfoReady; - - // operation class - CAudClipInfoOperation* iOperation; - - // friends - friend class CAudClipInfoOperation; - friend class CAudClip; - - - }; - - - -/** - * Observer for notifying that audio clip info - * is ready for reading. - * - */ -class MProcClipInfoObserver - { -public: - /** - * Called to notify that audio clip info is ready - * for reading. - * - * Possible error codes: - * - KErrNotFound if there is no file with the specified name - * in the specified directory (but the directory exists) - * - KErrPathNotFound if the specified directory - * does not exist - * - KErrUnknown if the specified file is of unknown type - * - * @param aError KErrNone if info is ready - * for reading; one of the system wide - * error codes if reading file failed - */ - virtual void NotifyClipInfoReady(TInt aError) = 0; - }; - - - -/** - * Internal class for reading information from the audio clip file. - * Implements a simple object - * to report to the audio clip info observer certain common error conditions - * that would otherwise leave. - */ -class CAudClipInfoOperation : public CBase, - public MProcClipInfoObserver, - public MAudVisualizationObserver - { - -public: - - - /* - * Constructor - * - * - * @param aInfo CAudClipInfo class that owns this object - * @param aObserver observer for callbacks - */ - - static CAudClipInfoOperation* NewL(CAudClipInfo* aInfo, - MAudClipInfoObserver& aObserver); - - /* - * Destructor - */ - ~CAudClipInfoOperation(); - - - // from base class MProcClipInfoObserver - void NotifyClipInfoReady(TInt aError); - - // from base class MAudVisualizationObserver - - void NotifySongVisualizationCompleted(const CAudSong& aSong, - TInt aError, - TInt8* aVisualization, - TInt aSize); - - void NotifyClipInfoVisualizationCompleted(const CAudClipInfo& aClipInfo, - TInt aError, - TInt8* aVisualization, - TInt aSize); - - void NotifySongVisualizationStarted(const CAudSong& aSong, - TInt aError); - - void NotifyClipInfoVisualizationStarted(const CAudClipInfo& aClipInfo, - TInt aError); - - void NotifySongVisualizationProgressed(const CAudSong& aSong, - TInt aPercentage); - - void NotifyClipInfoVisualizationProgressed(const CAudClipInfo& aClipInfo, - TInt aPercentage); - - /** - * Generates a visualization of the current clip. - * - * Asynchronous operation; MAudVisualizationObserver::NotifyClipVisualizationCompleted - * is called as soon as the visualization process has completed. This method leads to - * memory reservation, so once NotifyClipVisualizationCompleted has occurred, - * the caller is responsible for memory releasing. - * - * Possible leave codes: - * - KErrNoMemory if memory allocation fails - * - * @param aObserver observer to be notified when visualization is completed - * @param aSize the size of aVisualization array (time resolution). - * @param aPriority priority - * - */ - - void StartVisualizationL(MAudVisualizationObserver& aObserver, TInt aSize, TInt aPriority); - - /** - * Cancels visualization generation. If no visualization is currently being - * generated, the function does nothing. - */ - - void CancelVisualization(); - - /** - * Called to start getting file properties - * - * NotifyClipInfoReady is called as soon as the operation completes - */ - void StartGetPropertiesL(); - - -private: - - CAudClipInfoOperation(CAudClipInfo* aInfo, - MAudClipInfoObserver& aObserver); - void ConstructL(); - - -private: - - // info class that owns this object - CAudClipInfo* iInfo; - - // observer for clip info callbacks - MAudClipInfoObserver* iObserver; - - // observer for visualization callbacks - MAudVisualizationObserver* iVisualizationObserver; - - // processor class owned by this object - CAudProcessor* iProcessor; - - friend class CAudClipInfo; - friend class CAudClip; - - }; - - - - -#endif