--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/audioeditorengine/src/AudClipInfo.cpp Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,372 @@
+/*
+* 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:
+*
+*/
+
+
+/* Copyright (c) 2003, Nokia. All rights reserved */
+
+#include "AudClipInfo.h"
+#include "AudProcessor.h"
+#include "AudPanic.h"
+
+
+
+#include <fbs.h>
+#include <e32base.h>
+
+// Debug print macro
+#if defined _DEBUG
+#include <e32svr.h>
+#define PRINT(x) RDebug::Print x;
+#else
+#define PRINT(x)
+#endif
+
+
+EXPORT_C CAudClipInfo* CAudClipInfo::NewL(const TDesC& aFileName,
+ MAudClipInfoObserver& aObserver)
+ {
+ CAudClipInfo* self = NewLC(aFileName, aObserver);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+EXPORT_C CAudClipInfo* CAudClipInfo::NewLC(const TDesC& aFileName,
+ MAudClipInfoObserver& aObserver)
+ {
+ CAudClipInfo* self = new (ELeave) CAudClipInfo();
+ CleanupStack::PushL(self);
+ self->ConstructL(aFileName, aObserver);
+ return self;
+ }
+
+EXPORT_C CAudClipInfo* CAudClipInfo::NewL(RFile* aFileHandle,
+ MAudClipInfoObserver& aObserver)
+ {
+ CAudClipInfo* self = NewLC(aFileHandle, aObserver);
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+EXPORT_C CAudClipInfo* CAudClipInfo::NewLC(RFile* aFileHandle,
+ MAudClipInfoObserver& aObserver)
+ {
+ CAudClipInfo* self = new (ELeave) CAudClipInfo();
+ CleanupStack::PushL(self);
+ self->ConstructL(aFileHandle, aObserver);
+ return self;
+ }
+
+EXPORT_C TAudFileProperties CAudClipInfo::Properties() const
+ {
+
+ return *iProperties;
+ }
+
+EXPORT_C TPtrC CAudClipInfo::FileName() const
+ {
+ return *iFileName;
+ }
+
+EXPORT_C RFile* CAudClipInfo::FileHandle() const
+ {
+ return iFileHandle;
+ }
+
+EXPORT_C void CAudClipInfo::GetVisualizationL(MAudVisualizationObserver& aObserver,
+ TInt aSize, TInt aPriority) const
+ {
+
+
+ iOperation->StartVisualizationL(aObserver, aSize, aPriority);
+ }
+
+EXPORT_C void CAudClipInfo::CancelVisualization()
+ {
+
+
+ iOperation->CancelVisualization();
+ }
+
+CAudClipInfo::CAudClipInfo() : iInfoReady(EFalse)
+
+ {
+ }
+
+
+void CAudClipInfo::ConstructL(const TDesC& aFileName, MAudClipInfoObserver& aObserver)
+ {
+
+ iProperties = new (ELeave) TAudFileProperties();
+
+ iFileName = HBufC::NewL(aFileName.Length());
+ *iFileName = aFileName;
+ iFileHandle = NULL;
+
+ iOperation = CAudClipInfoOperation::NewL(this, aObserver);
+ iOperation->StartGetPropertiesL();
+
+ }
+
+void CAudClipInfo::ConstructL(RFile* aFileHandle, MAudClipInfoObserver& aObserver)
+ {
+
+ iProperties = new (ELeave) TAudFileProperties();
+
+ iFileHandle = aFileHandle;
+
+ iFileName = HBufC::NewL(1);
+
+ iOperation = CAudClipInfoOperation::NewL(this, aObserver);
+ iOperation->StartGetPropertiesL();
+
+ }
+
+
+EXPORT_C CAudClipInfo::~CAudClipInfo()
+ {
+
+ PRINT((_L("CAudClipInfo::~CAudClipInfo() in")));
+ if (iProperties != 0)
+ {
+ delete iProperties;
+ iProperties = 0;
+ }
+ PRINT((_L("CAudClipInfo::~CAudClipInfo() deleted iProperties")));
+ if (iOperation)
+ {
+ delete iOperation;
+ iOperation = 0;
+ }
+
+ PRINT((_L("CAudClipInfo::~CAudClipInfo() deleted iOperation")));
+ if (iFileName != 0)
+ {
+ delete iFileName;
+ iFileName = 0;
+ }
+ PRINT((_L("CAudClipInfo::~CAudClipInfo() out")));
+
+ }
+
+
+
+
+CAudClipInfoOperation* CAudClipInfoOperation::NewL(CAudClipInfo* aInfo,
+ MAudClipInfoObserver& aObserver)
+ {
+ CAudClipInfoOperation* self =
+ new (ELeave) CAudClipInfoOperation(aInfo, aObserver);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+
+CAudClipInfoOperation::CAudClipInfoOperation(CAudClipInfo* aInfo,
+ MAudClipInfoObserver& aObserver) :
+ iInfo(aInfo), iObserver(&aObserver)
+
+ {
+
+ }
+
+
+void CAudClipInfoOperation::ConstructL()
+ {
+
+
+ }
+
+
+CAudClipInfoOperation::~CAudClipInfoOperation()
+ {
+
+ PRINT((_L("CAudClipInfoOperation::~CAudClipInfoOperation() in")));
+ if (iProcessor != 0)
+ {
+ delete iProcessor;
+ iProcessor = 0;
+
+ }
+ PRINT((_L("CAudClipInfoOperation::~CAudClipInfoOperation() out")));
+
+ }
+
+
+void CAudClipInfoOperation::NotifyClipInfoReady(TInt aError)
+ {
+
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoReady() in")));
+
+ iInfo->iInfoReady = ETrue;
+
+ if (iProcessor == 0)
+ {
+ TAudPanic::Panic(TAudPanic::EInternal);
+ }
+
+ if (iProcessor != 0)
+ {
+ delete iProcessor;
+ iProcessor = 0;
+ }
+
+ iObserver->NotifyClipInfoReady(*iInfo, aError);
+
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoReady() out")));
+
+ }
+
+void CAudClipInfoOperation::StartGetPropertiesL()
+ {
+ PRINT((_L("CAudClipInfoOperation::StartGetPropertiesL() in")));
+
+ if (iProcessor != 0)
+ {
+ TAudPanic::Panic(TAudPanic::EInternal);
+ }
+ iProcessor = CAudProcessor::NewL();
+ iProcessor->GetAudFilePropertiesL(*iInfo->iFileName, iInfo->iFileHandle,
+ iInfo->iProperties, *this, CActive::EPriorityStandard);
+
+ PRINT((_L("CAudClipInfoOperation::StartGetPropertiesL() out")));
+ }
+
+void CAudClipInfoOperation::StartVisualizationL(MAudVisualizationObserver& aObserver, TInt aSize,
+ TInt aPriority)
+ {
+
+ if (iProcessor != 0)
+ {
+ TAudPanic::Panic(TAudPanic::EClipInfoProcessAlreadyRunning);
+ }
+ iVisualizationObserver = &aObserver;
+
+ CAudProcessor* processor = CAudProcessor::NewLC();
+
+ processor->StartGetClipVisualizationL(iInfo, aSize, *this, aPriority);
+
+
+ CleanupStack::Pop(processor);
+ iProcessor = processor;
+
+ }
+
+void CAudClipInfoOperation::CancelVisualization()
+ {
+ PRINT((_L("CAudClipInfoOperation::CancelVisualization() in")));
+
+ if (iProcessor == 0)
+ {
+ PRINT((_L("CAudClipInfoOperation::CancelVisualization() no visualization going on, ignore")));
+ return;
+ }
+ else
+ {
+ PRINT((_L("CAudClipInfoOperation::CancelVisualization() cancel iProcessor")));
+ iProcessor->CancelClipVisualization();
+
+ delete iProcessor;
+ iProcessor = 0;
+
+ iVisualizationObserver = 0;
+ PRINT((_L("CAudClipInfoOperation::CancelVisualization() out")));
+ }
+ }
+
+void CAudClipInfoOperation::NotifySongVisualizationCompleted(const CAudSong& /*aSong*/,
+ TInt /*aError*/,
+ TInt8* /*aVisualization*/,
+ TInt /*aSize*/)
+ {
+
+ // should not be called
+ TAudPanic::Panic(TAudPanic::EInternal);
+
+
+ }
+
+void CAudClipInfoOperation::NotifySongVisualizationStarted(const CAudSong& /*aSong*/,
+ TInt /*aError*/)
+ {
+ // should not be called
+ TAudPanic::Panic(TAudPanic::EInternal);
+
+ }
+
+
+void CAudClipInfoOperation::NotifySongVisualizationProgressed(const CAudSong& /*aSong*/,
+ TInt /*aPercentage*/)
+ {
+
+ // should not be called
+ TAudPanic::Panic(TAudPanic::EInternal);
+
+
+ }
+
+void CAudClipInfoOperation::NotifyClipInfoVisualizationCompleted(const CAudClipInfo& aClipInfo,
+ TInt aError,
+ TInt8* aVisualization,
+ TInt aSize)
+ {
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoVisualizationCompleted() in")));
+ if (aError != KErrNone)
+ {
+ iVisualizationObserver->NotifyClipInfoVisualizationCompleted(aClipInfo, aError, aVisualization, aSize);
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoVisualizationCompleted() completed with error %d"),aError));
+ }
+ else
+ {
+ if (iProcessor != 0)
+ {
+ delete iProcessor;
+ iProcessor = 0;
+ }
+
+ MAudVisualizationObserver* observer = iVisualizationObserver;
+ iVisualizationObserver = 0;
+ observer->NotifyClipInfoVisualizationProgressed(aClipInfo, 100);
+ observer->NotifyClipInfoVisualizationCompleted(aClipInfo, aError, aVisualization, aSize);
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoVisualizationCompleted() completed")));
+ }
+
+
+ PRINT((_L("CAudClipInfoOperation::NotifyClipInfoVisualizationCompleted() out")));
+ }
+
+
+void CAudClipInfoOperation::NotifyClipInfoVisualizationStarted(const CAudClipInfo& aClipInfo,
+ TInt aError)
+ {
+
+
+ iVisualizationObserver->NotifyClipInfoVisualizationStarted(aClipInfo, aError);
+
+ }
+
+void CAudClipInfoOperation::NotifyClipInfoVisualizationProgressed(const CAudClipInfo& aClipInfo,
+ TInt aPercentage)
+ {
+
+
+ iVisualizationObserver->NotifyClipInfoVisualizationProgressed(aClipInfo, aPercentage);
+ }