videditor/VideoEditorCommon/src/VeiTempMaker.cpp
changeset 0 951a5db380a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videditor/VideoEditorCommon/src/VeiTempMaker.cpp	Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,226 @@
+/*
+* 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
+#include <eikenv.h>
+#include <pathinfo.h>
+#include <eikappui.h>
+#include <bautils.h>
+#include <e32math.h>
+#include <vedcommon.h>
+
+// User includes
+#include "VeiTempMaker.h"
+#include "VideoEditorCommon.h"
+#include "VeiSettings.h"
+#include "VideoEditorDebugUtils.h"
+
+
+EXPORT_C CVeiTempMaker* CVeiTempMaker::NewL()
+    {
+    CVeiTempMaker* self = NewLC();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+    
+EXPORT_C CVeiTempMaker* CVeiTempMaker::NewLC()
+    {
+    CVeiTempMaker* self = new (ELeave) CVeiTempMaker();
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+void CVeiTempMaker::ConstructL()
+	{
+	}
+
+CVeiTempMaker::CVeiTempMaker()
+    {
+    }
+
+
+EXPORT_C CVeiTempMaker::~CVeiTempMaker()
+    {
+    }
+
+EXPORT_C void CVeiTempMaker::EmptyTempFolder() const
+	{
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::EmptyTempFolder(): In");
+
+	TRAP_IGNORE( DoEmptyTempFolderL() );
+
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::EmptyTempFolder(): Out");
+	}
+
+void CVeiTempMaker::DoEmptyTempFolderL() const
+	{
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::DoEmptyTempFolderL(): In");
+
+	RFs&	fs = CCoeEnv::Static()->FsSession();
+
+	CFileMan* fileManager = CFileMan::NewL( fs );
+	CleanupStack::PushL( fileManager );
+		
+	TFileName tempDir;
+	// First try to delete from Phone Memory
+	TBool dirExists = GetTempPath( CAknMemorySelectionDialog::EPhoneMemory, tempDir );
+	if ( dirExists )
+		{
+		LOGFMT(KVideoEditorLogFile, "\tFolder \"%S\" exists...Deleting...", &tempDir);
+		fileManager->RmDir( tempDir );
+		}
+	// ..then from MMC
+	dirExists = GetTempPath( CAknMemorySelectionDialog::EMemoryCard, tempDir );
+	if ( dirExists )
+		{
+		LOGFMT(KVideoEditorLogFile, "\tFolder \"%S\" exists...Deleting...", &tempDir);
+		fileManager->RmDir( tempDir );
+		}
+
+	CleanupStack::PopAndDestroy( fileManager );
+
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::DoEmptyTempFolderL(): Out");
+	}
+
+EXPORT_C void CVeiTempMaker::GenerateTempFileName( 
+	HBufC& aTempPathAndName, 
+	CAknMemorySelectionDialog::TMemory aMemory,
+	TVedVideoFormat aVideoFormat,
+	TBool aExtAMR ) const
+	{
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::GenerateTempFileName(): In");
+
+	RFs&	fs = CCoeEnv::Static()->FsSession();
+	
+
+// Parse tempPath. MMC or memoryroot
+	TFileName tempPath;
+	RFile temp;
+// Temp files are processed to \\data\\videos\\[application uid]\\[random name]
+	TBool tempFolderExists = GetTempPath( aMemory, tempPath );
+	if ( !tempFolderExists )
+		{
+		fs.MkDirAll( tempPath );
+		fs.SetAtt( tempPath, KEntryAttHidden, KEntryAttDir );
+		}
+	
+	TUint32 randomName;
+
+	randomName = Math::Random();
+	tempPath.AppendNum( randomName, EHex );
+	
+	if ( aExtAMR )
+		{
+		tempPath.Append( KExtAmr );
+		}	
+	else if ( aVideoFormat == EVedVideoFormatMP4 )
+		{
+		tempPath.Append( KExtMp4 );
+		}
+	else
+		{
+		tempPath.Append( KExt3gp );
+		}
+
+	temp.Create( fs, tempPath, EFileWrite );
+	temp.Close();
+
+	aTempPathAndName = tempPath;
+
+	LOGFMT(KVideoEditorLogFile, "CVeiTempMaker::GenerateTempFileName(): Out: %S", &tempPath);
+	}
+	
+TBool CVeiTempMaker::GetTempPath( const CAknMemorySelectionDialog::TMemory& aMemory, TDes& aTempPath ) const
+	{
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::GetTempPath: In");
+
+	if ( aMemory == CAknMemorySelectionDialog::EPhoneMemory )
+		{
+		aTempPath = PathInfo::PhoneMemoryRootPath();
+		}
+	else
+		{
+		aTempPath = PathInfo::MemoryCardRootPath();
+		}
+		
+	aTempPath.Append( PathInfo::VideosPath() ); 	
+	aTempPath.AppendNum( KUidVideoEditor.iUid, EHex );
+	aTempPath.Append(_L("\\"));	
+
+	LOGFMT(KVideoEditorLogFile, "CVeiTempMaker::GetTempPath: Out: %S", &aTempPath);
+
+	return BaflUtils::FolderExists( CCoeEnv::Static()->FsSession(), aTempPath );
+	}
+
+/*void CVeiTempMaker::ListFilesL(const TDesC& aFindFromDir, const TDesC& aWriteResultTo) const
+{	
+	LOGFMT(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): In, aFindFromDir:%S", &aFindFromDir);
+	CDir* dir = NULL;
+	//RFile file;
+	RFs fileSession;
+	
+	TInt err = fileSession.Connect();	
+
+//	err = file.Replace(fileSession, aWriteResultTo, EFileWrite);
+
+	
+	CleanupClosePushL(fileSession);
+	//CleanupClosePushL(file);
+
+	//_LIT8(KNewLine, "\r\n");
+	//TBuf8<255> buf8;
+	TBuf<KMaxFileName> buf;
+	TFileName fileName;
+	fileName.Append(aFindFromDir); 
+	
+	fileSession.GetDir(fileName, KEntryAttNormal, ESortNone, dir);
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): 2");
+	if (dir)
+	{
+		CleanupStack::PushL(dir);
+		
+
+		for(TInt index=0; index < dir->Count(); index++)
+		{
+			LOG(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): 3 in loop");
+
+			//buf8.Copy((*dir)[index].iName);		
+			//buf.Copy((*dir)[index].iName);		
+			
+			LOG(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): 4 in loop");
+
+			LOGFMT(KVideoEditorLogFile, "%S", &((*dir)[index].iName));			
+			//file.Write(buf8);
+
+			//file.Write(KNewLine);		
+
+		}
+		CleanupStack::PopAndDestroy( dir );	
+	}	
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): 5");
+	//CleanupStack::PopAndDestroy( file );	
+	CleanupStack::PopAndDestroy( fileSession );	
+	LOG(KVideoEditorLogFile, "CVeiTempMaker::ListFiles(): Out");
+}*/
+
+// End of File