--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videditor/ManualVideoEditor/src/SampleArrayHandler.cpp Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* 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:
+*
+*/
+
+
+
+// INCLUDE FILES
+// System includes
+// User includes
+#include <e32math.h>
+
+#include "SampleArrayHandler.h"
+#include "VideoEditorCommon.h" // Video Editor UID
+
+#include "VideoEditorDebugUtils.h"
+
+// ================= MEMBER FUNCTIONS =======================
+CSampleArrayHandler* CSampleArrayHandler::NewL()
+ {
+ CSampleArrayHandler* self = CSampleArrayHandler::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+CSampleArrayHandler* CSampleArrayHandler::NewLC()
+ {
+ CSampleArrayHandler* self = new( ELeave )CSampleArrayHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+void CSampleArrayHandler::ConstructL()
+ {
+ }
+
+CSampleArrayHandler::CSampleArrayHandler()
+ {
+ }
+
+
+CSampleArrayHandler::~CSampleArrayHandler()
+ {
+ delete [] iVisualization;
+ }
+
+void CSampleArrayHandler::SetVisualizationArray(TInt8* aVisualization, TInt aResolution)
+ {
+ LOG( KVideoEditorLogFile, "CSampleArrayHandler::SetVisualizationArray, In" );
+ iVisualization = aVisualization;
+ iVisualizationSize = aResolution;
+
+ // for testing
+ /* for (TInt i = 0; i < iVisualizationSize; i++)
+ {
+ if (i == 127)
+ iVisualization[i] = i - 127;
+ else
+ iVisualization[i] = i;
+ }
+ */
+ TInt8 temp = 0; // help variable used in finding the biggest current sample value
+ for ( TInt i = 0; i < iVisualizationSize; i++ )
+ {
+ if ( iVisualization[i] > temp )
+ {
+ temp = iVisualization[i];
+ }
+ //LOGFMT2(KVideoEditorLogFile, "CSampleArrayHandler::SetVisualizationArray, SAMPLE[%d]:%d", i, iVisualization[i]);
+ }
+ iMaxSample = temp;
+
+ iScaleFactor = 1.0; // TReal
+ LOG( KVideoEditorLogFile, "CSampleArrayHandler::SetVisualizationArray, Out" );
+ }
+
+void CSampleArrayHandler::ScaleAudioVisualization( const TInt8& aNewMaxValue )
+ {
+ if ( iVisualization && ( aNewMaxValue != iMaxSampleInCurrentScale ))
+ {
+ iMaxSampleInCurrentScale = aNewMaxValue;
+ if ( !Math::IsZero(( TReal64 )iMaxSampleInCurrentScale ))
+ {
+ iScaleFactor = ( TReal64 )iMaxSampleInCurrentScale / ( TReal64 )iMaxSample;
+
+ }
+
+ /*
+ //for testing
+ if (1 > coeff)
+ {
+ for (TInt i = 0; i < iVisualizationSize; i++)
+ {
+ LOGFMT(KVideoEditorLogFile, "before scaling:%d", iVisualization[i]);
+ iVisualization[i] *= coeff;
+ LOGFMT(KVideoEditorLogFile, "after scaling:%d", iVisualization[i]);
+ }
+ }*/
+ }
+ }
+
+TInt8 CSampleArrayHandler::Sample( const TInt aIndex )const
+ {
+ // must be scaled down in order to fit into screen
+ if ( iScaleFactor < 1 )
+ {
+ return (( iVisualization[aIndex]* 1000 )*( iScaleFactor* 1000 )) / 1000000;
+
+ }
+ else
+ {
+ return iVisualization[aIndex];
+ }
+ }
+
+TInt CSampleArrayHandler::Size()const
+ {
+ return iVisualizationSize;
+ }
+
+TInt CSampleArrayHandler::CurrentPoint()const
+ {
+ return iCurrentIndex;
+ }
+
+void CSampleArrayHandler::SetCurrentPoint(const TTimeIntervalMicroSeconds& aCurrentTime)
+ {
+ iCurrentTime = aCurrentTime;
+ iCurrentIndex = ( iCurrentTime.Int64() / 1000 ) / KAudioSampleInterval;
+ }
+
+void CSampleArrayHandler::SetCutInPoint(const TTimeIntervalMicroSeconds& aCutInTime)
+ {
+ iCutInTime = aCutInTime;
+ iCutInSampleIndex = ( iCutInTime.Int64() / 1000 ) / KAudioSampleInterval;
+ }
+
+void CSampleArrayHandler::SetCutOutPoint(const TTimeIntervalMicroSeconds& aCutOutTime)
+ {
+ iCutOutTime = aCutOutTime;
+ iCutOutSampleIndex = ( iCutOutTime.Int64() / 1000 ) / KAudioSampleInterval;
+ }
+
+TBool CSampleArrayHandler::SampleCutted( const TInt aIndex )const
+ {
+ return ( iCutInSampleIndex < aIndex ) && ( aIndex < iCutOutSampleIndex );
+ }
+
+// End of File