--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfsenumerator.cpp Mon Mar 15 12:43:12 2010 +0200
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpfsenumerator.cpp Wed Mar 31 22:58:56 2010 +0300
@@ -33,11 +33,12 @@
// Class constants.
__FLOG_STMT(_LIT8(KComponent,"FSEnumerator");)
-const TUint KMTPMaxFullFileName = 259;
/*
*
*/
-#define KMAX_FILECOUNT_ENUMERATINGPHASE1 5000
+#define KMAX_FILECOUNT_ENUMERATINGPHASE1 1
+
+#define KMAX_FILECOUNT_ENUMERATINGPHASE2 0x7FFFFFFF
/**
* the files should not be owned by any dp.
@@ -94,22 +95,29 @@
Kick off the enumeration on the specified storage
@param aStorageId storage to be enumerated
*/
-EXPORT_C void CMTPFSEnumerator::StartL(TUint32 aStorageId, TBool aOnlyRoot)
- {
- __ASSERT_DEBUG(!IsActive(), User::Invariant());
- iNumOfFoldersAndFiles = 0;
- iOnlyScanRoot = aOnlyRoot;
- __FLOG_VA((_L8("iOnlyScanRoot == %d "), iOnlyScanRoot));
-
- MMTPStorageMgr& storageMgr(iFramework.StorageMgr());
- if (aStorageId == KMTPStorageAll)
- {
+EXPORT_C void CMTPFSEnumerator::StartL(TUint32 aStorageId, TBool aScanAll)
+ {
+ __ASSERT_DEBUG(!IsActive(), User::Invariant());
+ iScanAll = aScanAll;
+ iAllRootScaned = EFalse;
+ iStorages.Reset();
+ if(iScanAll)
+ {
+ iObjectNeedToScan = KMAX_FILECOUNT_ENUMERATINGPHASE2;
+ }
+ else
+ {
+ iObjectNeedToScan = KMAX_FILECOUNT_ENUMERATINGPHASE1;
+ }
+ __FLOG_VA((_L8("iScanAll %d files %d Storage 0x%x"), iScanAll, iObjectNeedToScan, aStorageId));
+ MMTPStorageMgr& storageMgr(iFramework.StorageMgr());
+ if (aStorageId == KMTPStorageAll)
+ {
// Retrieve the available logical StorageIDs
RPointerArray<const CMTPStorageMetaData> storages;
CleanupClosePushL(storages);
TMTPStorageMgrQueryParams params(KNullDesC, CMTPStorageMetaData::ESystemTypeDefaultFileSystem);
storageMgr.GetLogicalStoragesL(params, storages);
-
// Construct the StorageIDs list.
const TUint KCount(storages.Count());
for (TUint i(0); (i < KCount); i++)
@@ -118,72 +126,67 @@
__FLOG_VA((_L8("FileEnumerator is doing storage id = %x\r\n"), storages[i]->Uint(CMTPStorageMetaData::EStorageId) ));
}
CleanupStack::PopAndDestroy(&storages);
- }
+ }
else if (aStorageId != KMTPNotSpecified32)
{
- __ASSERT_DEBUG(storageMgr.ValidStorageId(aStorageId), User::Invariant());
- const CMTPStorageMetaData& storage(storageMgr.StorageL(aStorageId));
- if (storage.Uint(CMTPStorageMetaData::EStorageSystemType) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem)
- {
- if (storageMgr.LogicalStorageId(aStorageId))
- {
- // Logical StorageID.
- iStorages.AppendL(aStorageId);
- }
- else
- {
- // Physical StorageID. Enumerate all eligible logical storages.
- const RArray<TUint>& logicalIds(storage.UintArray(CMTPStorageMetaData::EStorageLogicalIds));
- const TUint KCountLogicalIds(logicalIds.Count());
+ __ASSERT_DEBUG(storageMgr.ValidStorageId(aStorageId), User::Invariant());
+ const CMTPStorageMetaData& storage(storageMgr.StorageL(aStorageId));
+ if (storage.Uint(CMTPStorageMetaData::EStorageSystemType) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem)
+ {
+ if (storageMgr.LogicalStorageId(aStorageId))
+ {
+ // Logical StorageID.
+ iStorages.AppendL(aStorageId);
+ }
+ else
+ {
+ // Physical StorageID. Enumerate all eligible logical storages.
+ const RArray<TUint>& logicalIds(storage.UintArray(CMTPStorageMetaData::EStorageLogicalIds));
+ const TUint KCountLogicalIds(logicalIds.Count());
for (TUint i(0); (i < KCountLogicalIds); i++)
{
iStorages.AppendL(logicalIds[i]);
}
- }
- }
- }
+ }
+ }
+ }
- iStorageId = aStorageId;
- iSkipCurrentStorage = EFalse;
+ iStorageId = aStorageId;
+ iSkipCurrentStorage = EFalse;
- if (iStorages.Count() > 0)
- {
- TRAPD(err, ScanStorageL(iStorages[0]));
- if(err != KErrNone)
- {
- if( !storageMgr.ValidStorageId(iStorages[0]) )
- {
- //Scan storage leave because storage(memory card) removed.
- //Scan next specified storage in RunL, if there is.
- __FLOG_VA(_L8("StartL - iSkipCurrentStorage - ETrue."));
- iSkipCurrentStorage = ETrue;
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, iStatus.Int());
- SetActive();
- }
- else
- {
- User::Leave(err);
- }
- }
- }
- else
- {
- if((!iIsFileEnumerator) &&(iNumOfFoldersAndFiles > KMAX_FILECOUNT_ENUMERATINGPHASE1))
- {
- iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
- }
-
- iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
-
- TMTPTypeEvent event;
-
- event.SetUint16(TMTPTypeEvent::EEventCode, EMTPEventCodeUnreportedStatus);
- event.SetUint32(TMTPTypeEvent::EEventSessionID, KMTPSessionAll);
-
- iFramework.SendEventL(event);
- }
- }
+ if (iStorages.Count() > 0)
+ {
+ iScanPos = 0;
+ TRAPD(err, ScanStorageL(iStorages[iScanPos]));
+ if(err != KErrNone)
+ {
+ if( !storageMgr.ValidStorageId(iStorages[iScanPos]) )
+ {
+ //Scan storage leave because storage(memory card) removed.
+ //Scan next specified storage in RunL, if there is.
+ __FLOG_VA(_L8("StartL - iSkipCurrentStorage - ETrue."));
+ iSkipCurrentStorage = ETrue;
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, iStatus.Int());
+ SetActive();
+ }
+ else
+ {
+ User::Leave(err);
+ }
+ }
+ }
+ else
+ {
+ iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
+ TMTPTypeEvent event;
+
+ event.SetUint16(TMTPTypeEvent::EEventCode, EMTPEventCodeUnreportedStatus);
+ event.SetUint32(TMTPTypeEvent::EEventSessionID, KMTPSessionAll);
+
+ iFramework.SendEventL(event);
+ }
+ }
/**
Cancel the enumeration process
@@ -194,33 +197,33 @@
}
void CMTPFSEnumerator::ScanStorageL(TUint32 aStorageId)
- {
- __FLOG_VA(_L8("ScanStorageL - entry"));
+ {
+ __FLOG_VA(_L8("ScanStorageL - entry"));
const CMTPStorageMetaData& storage(iFramework.StorageMgr().StorageL(aStorageId));
__ASSERT_DEBUG((storage.Uint(CMTPStorageMetaData::EStorageSystemType) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem), User::Invariant());
TFileName root(storage.DesC(CMTPStorageMetaData::EStorageSuid));
#ifdef __FLOG_ACTIVE
- TBuf8<KMaxFileName> tmp;
- tmp.Copy(root);
- __FLOG_VA((_L8("StorageSuid - %S"), &tmp));
- #endif // __FLOG_ACTIVE
-
- if ( iExclusionMgr.IsFolderAcceptedL(root, aStorageId) )
- {
- iParentHandle = KMTPHandleNoParent;
- iPath.Set(root, NULL, NULL);
- User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
- ScanDirL();
- }
- else
- {
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, iStatus.Int());
- SetActive();
- }
- __FLOG_VA(_L8("ScanStorageL - exit"));
- }
+ TBuf8<KMaxFileName> tmp;
+ tmp.Copy(root);
+ __FLOG_VA((_L8("StorageSuid - %S"), &tmp));
+ #endif // __FLOG_ACTIVE
+
+ if ( iExclusionMgr.IsFolderAcceptedL(root, aStorageId) )
+ {
+ iParentHandle = KMTPHandleNoParent;
+ iCurrentPath = root;
+ User::LeaveIfError(iDir.Open(iFramework.Fs(), iCurrentPath, KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
+ ScanDirL();
+ }
+ else
+ {
+ TRequestStatus* status = &iStatus;
+ User::RequestComplete(status, iStatus.Int());
+ SetActive();
+ }
+ __FLOG_VA(_L8("ScanStorageL - exit"));
+ }
/**
Scans directory at aPath recursing into subdirectories on a depth first basis.
@@ -252,45 +255,69 @@
}
void CMTPFSEnumerator::ScanNextStorageL()
- {
- __FLOG_VA(_L8("ScanNextStorageL - entry"));
- // If there are one or more unscanned storages left
- // (the currently scanned one is still on the list)
- if (iStorages.Count() > 1)
- {
- iStorages.Remove(0);
- ScanStorageL(iStorages[0]);
- }
- else
- {
- // We are done
- iStorages.Reset();
- if((!iIsFileEnumerator) &&(iNumOfFoldersAndFiles > KMAX_FILECOUNT_ENUMERATINGPHASE1))
- {
- iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
- }
- iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
-
- }
- __FLOG_VA(_L8("ScanNextStorageL - exit"));
- }
+ {
+ iDirStack.Reset();
+ __FLOG_VA(_L8("ScanNextStorageL - entry"));
+ // If there are one or more unscanned storages left
+ // (the currently scanned one is still on the list)
+ if (++ iScanPos < iStorages.Count())
+ {
+ ScanStorageL(iStorages[iScanPos]);
+ }
+ else
+ {
+ // We are done
+ iScanPos = 0;
+
+ if(iScanAll) //all object scaned or first time limit reached.
+ {
+ iStorages.Reset();
+ if(iObjectNeedToScan <= 0)
+ {
+ iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
+ }
+ iDir.Close();
+ iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
+ }
+ iAllRootScaned = ETrue;
+ if(!iScanAll)
+ {
+ if(iObjectNeedToScan > 0)//partial scan didn't finish means root didn't have KMAX_FILECOUNT_ENUMERATINGPHASE1 files
+ {
+ iScanAll = ETrue;
+ iObjectNeedToScan = KMAX_FILECOUNT_ENUMERATINGPHASE1;
+ ScanStorageL(iStorages[iScanPos]);
+ }
+ else //root has more than KMAX_FILECOUNT_ENUMERATINGPHASE1 files
+ {
+ iDir.Close();
+ iStorages.Reset();
+ iSingletons.DpController().SetNeedEnumeratingPhase2(ETrue);
+ iCallback.NotifyEnumerationCompleteL(iStorageId, KErrNone);
+ }
+ }
+ }
+ __FLOG_VA(_L8("ScanNextStorageL - exit"));
+ }
void CMTPFSEnumerator::ScanNextSubdirL()
{
__FLOG_VA(_L8("ScanNextSubdirL - entry"));
// A empty (non-constructed) TEntry is our marker telling us to pop a directory
// from iPath when we see this
- iDirStack.AppendL(TEntry());
+ //iDirStack.AppendL(TEntry());
// Leave with KErrNotFound if we don't find the object handle since it shouldn't be on the
// dirstack if the entry wasn't added
- TPtrC suid = iPath.DriveAndPath().Left(iPath.DriveAndPath().Length());
+ //TPtrC suid = iPath.DriveAndPath().Left(iPath.DriveAndPath().Length());
// Update the current parentId with object of the directory
- iParentHandle = iFramework.ObjectMgr().HandleL(suid);
-
+ iParentHandle = iDirStack[iDirStack.Count() - 1].iHandle;//iFramework.ObjectMgr().HandleL(suid);
+ iCurrentPath = iDirStack[iDirStack.Count() - 1].iPath;
+ iDirStack.Remove(iDirStack.Count() - 1);
+ __FLOG_VA((_L8("ScanNextSubdirL path %S"), &iCurrentPath));
// Kick-off a scan of the next directory
iDir.Close();
- User::LeaveIfError(iDir.Open(iFramework.Fs(), iPath.DriveAndPath(), KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
+ User::LeaveIfError(iDir.Open(iFramework.Fs(), iCurrentPath, KEntryAttNormal | KEntryAttHidden | KEntryAttDir));
ScanDirL();
__FLOG_VA(_L8("ScanNextSubdirL - exit"));
}
@@ -305,38 +332,15 @@
__FLOG_VA(_L8("ScanNextL - entry"));
TInt count = iDirStack.Count();
- if ((count == 0) || iOnlyScanRoot )
+ if ((count == 0) || !iScanAll)
{
// No more directories on the stack, try the next storage
ScanNextStorageL();
}
else
{
- TEntry& entry = iDirStack[count - 1];
-
- // Empty TEntry, no more subdirectories in
- // the current path
- if (entry.iName == KNullDesC)
- {
- // Remove current dir from path
- iPath.PopDir();
- iDirStack.Remove(count - 1);
- iDir.Close();
-
- // Scan the next directory of the parent
- ScanNextL();
- }
-
- // Going into a subdirectory of current
- else
- {
- // Add directory to path
- iPath.AddDir(entry.iName);
- // Remove directory so we don't think it's a subdirectory
- iDirStack.Remove(count - 1);
-
- ScanNextSubdirL();
- }
+ // Remove directory so we don't think it's a subdirectory
+ ScanNextSubdirL();
}
__FLOG_VA(_L8("ScanNextL - exit"));
}
@@ -392,9 +396,9 @@
TInt CMTPFSEnumerator::RunError(TInt aError)
{
__FLOG_VA((_L8("RunError - entry with error %d"), aError));
- if(!iFramework.StorageMgr().ValidStorageId(iStorages[0]))
+ if(!iFramework.StorageMgr().ValidStorageId(iStorages[iScanPos]))
{
- __FLOG_VA((_L8("Invalid StorageID = %d"),iStorages[0] ));
+ __FLOG_VA((_L8("Invalid StorageID = %d"),iStorages[iScanPos] ));
if (iStorages.Count()>1)
{
//Not necessary to process any entry on the storage, since the storage removed.
@@ -434,7 +438,6 @@
iDpSingletons.OpenL(iFramework);
iObject = CMTPObjectMetaData::NewL();
iDpID = iFramework.DataProviderId();
- iIsFileEnumerator = (KMTPFileDPID == iDpID);
}
/**
@@ -442,114 +445,148 @@
*/
void CMTPFSEnumerator::ProcessEntriesL()
- {
- TBuf<KMTPMaxFullFileName> path = iPath.DriveAndPath();
-
- // Start looping through entries at where we left off
- TInt count = iEntries.Count() - iFirstUnprocessed;
- // Process no more than KProcessLimit entries
- count = Min(count, iProcessLimit);
- iFirstUnprocessed += count;
-
- if(!iIsFileEnumerator)
- {
- iNumOfFoldersAndFiles +=count;
- }
-
- for (TInt i = (iFirstUnprocessed - count); i < iFirstUnprocessed; ++i)
- {
- const TEntry& entry = iEntries[i];
- path.Append(entry.iName);
-
+ {
+ // Start looping through entries at where we left off
+ TInt count = iEntries.Count() - iFirstUnprocessed;
+ // Process no more than KProcessLimit entries
+ count = Min(count, iProcessLimit);
+ iFirstUnprocessed += count;
+
+ for (TInt i = (iFirstUnprocessed - count); i < iFirstUnprocessed; ++i)
+ {
+ const TEntry& entry = iEntries[i];
+ iCurrentPath.Append(entry.iName);
+ __FLOG_VA((_L8("Process path %S name %S"), &iCurrentPath, &entry.iName));
#ifdef __FLOG_ACTIVE
- TBuf8<KMTPMaxFullFileName> tmp;
- tmp.Copy(path);
- TInt pathLen=path.Length();
+ TBuf8<KMTPMaxFullFileName> tmp;
+ tmp.Copy(iCurrentPath);
+ TInt pathLen=iCurrentPath.Length();
if(pathLen > KLogBufferSize)
{
TBuf8<KLogBufferSize> tmp1;
tmp1.Copy(tmp.Ptr(),KLogBufferSize);
- __FLOG_VA(_L8("Entry - "));
- __FLOG_VA((_L8("%S"), &tmp1));
+ __FLOG_VA(_L8("Entry - "));
+ __FLOG_VA((_L8("%S"), &tmp1));
- tmp1.Copy(tmp.Ptr()+KLogBufferSize, pathLen-KLogBufferSize);
- __FLOG_VA((_L8("%S"), &tmp1));
+ tmp1.Copy(tmp.Ptr()+KLogBufferSize, pathLen-KLogBufferSize);
+ __FLOG_VA((_L8("%S"), &tmp1));
}
else
{
__FLOG_VA(_L8("Entry - "));
- __FLOG_VA((_L8("%S"), &tmp));
+ __FLOG_VA((_L8("%S"), &tmp));
}
#endif // __FLOG_ACTIVE
-
- TInt len = entry.iName.Length();
- TInt totalLen = path.Length();
- if(totalLen > KMaxFileName)
- {
- // Remove filename part
- path.SetLength(totalLen - len);
- __FLOG_VA(_L8("Full name exceeds KMaxFileName, ignored."));
- continue;
- }
- TUint32 handle = 0;
- TMTPFormatCode format;
- TParsePtrC parse(path);
- if (entry.IsDir())
- {
- if (iExclusionMgr.IsFolderAcceptedL(path, iStorages[0]))
- {
- path.Append('\\');
- ++len;
- format = EMTPFormatCodeAssociation;
- AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);
- iDirStack.AppendL(entry);
- }
- }
- else if ( iExclusionMgr.IsFileAcceptedL(path,iStorages[0]) )
- {
- format = EMTPFormatCodeUndefined;
- AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);
- }
- else if ( parse.ExtPresent() )
- {
- switch(iDpSingletons.MTPUtility().GetEnumerationFlag(parse.Ext().Mid(1)))
- {
- case MISSED_FILES_OWNED_BY_FILE_DP:
- if (KMTPHandleNone == iFramework.ObjectMgr().HandleL(path))
+
+ TInt len = entry.iName.Length();
+ TInt totalLen = iCurrentPath.Length();
+ if(totalLen > KMaxFileName)
+ {
+ // Remove filename part
+ iCurrentPath.SetLength(totalLen - len);
+ __FLOG_VA(_L8("Full name exceeds KMaxFileName, ignored."));
+ continue;
+ }
+ TUint32 handle = 0;
+ TMTPFormatCode format;
+ if(-- iObjectNeedToScan <=0 && iAllRootScaned)
+ {
+ iSkipCurrentStorage = ETrue;
+ return;
+ }
+ if (entry.IsDir())
+ {
+ if (iExclusionMgr.IsFolderAcceptedL(iCurrentPath, iStorages[iScanPos]))
+ {
+ iCurrentPath.Append('\\');
+ ++len;
+ format = EMTPFormatCodeAssociation;
+ AddEntryL(iCurrentPath, handle, format, KMTPDeviceDPID, entry, iStorages[iScanPos], iParentHandle);
+ iDirStack.Append(TStackItem(iCurrentPath, handle));
+ }
+ }
+ else
+ {
+ if ( iExclusionMgr.IsFileAcceptedL(iCurrentPath,iStorages[iScanPos]) )
+ {
+ format = EMTPFormatCodeUndefined;
+ AddEntryL(iCurrentPath, handle, format, iDpID, entry, iStorages[iScanPos], iParentHandle);
+ }
+ else
+ {
+ TParsePtrC parse(iCurrentPath);
+ if ( parse.ExtPresent() )
{
- format = EMTPFormatCodeUndefined;
- AddEntryL(path, handle, format, iDpID, entry, iStorages[0], iParentHandle);
- }
- break;
-
- case MISSED_FILES_OWNED_BY_OTHER_DP:
- if (KMTPHandleNone == iFramework.ObjectMgr().HandleL(path))
- {
- format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));
- TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
- AddFileEntryForOtherDpL(path, handle, format, DpId, entry, iStorages[0], iParentHandle);
+ switch(iDpSingletons.MTPUtility().GetEnumerationFlag(parse.Ext().Mid(1)))
+ {
+ case MISSED_FILES_OWNED_BY_FILE_DP:
+ if (KMTPHandleNone == iFramework.ObjectMgr().HandleL(iCurrentPath))
+ {
+ format = EMTPFormatCodeUndefined;
+ AddEntryL(iCurrentPath, handle, format, iDpID, entry, iStorages[iScanPos], iParentHandle);
+ }
+ break;
+
+ case MISSED_FILES_OWNED_BY_OTHER_DP:
+ if (KMTPHandleNone == iFramework.ObjectMgr().HandleL(iCurrentPath))
+ {
+ format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));
+ TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
+ AddFileEntryForOtherDpL(iCurrentPath, handle, format, DpId, entry, iStorages[iScanPos], iParentHandle);
+ }
+ break;
+
+ case FILES_OWNED_BY_OTHER_DP:
+ {
+ _LIT( KTxtExtensionODF, ".odf" );
+ TUint32 DpId = iFramework.DataProviderId();
+ if (parse.Ext().CompareF(KTxtExtensionODF)==0)
+ {
+ format = iDpSingletons.MTPUtility().FormatFromFilename(parse.Ext().Mid(1));
+ if ( EMTPFormatCode3GPContainer==format || EMTPFormatCodeMP4Container==format )
+ {
+ DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1),KNullDesC);
+ if ( 255 == DpId )
+ {
+ HBufC* mime = NULL;
+ mime = iDpSingletons.MTPUtility().ContainerMimeType(iCurrentPath);
+ if ( mime != NULL )
+ {
+ DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1),*mime);
+ delete mime;
+ mime = NULL;
+ }
+ }
+ AddFileEntryForOtherDpL(iCurrentPath, handle, format, DpId, entry, iStorages[iScanPos], iParentHandle);
+ }
+ else
+ {
+ format = EMTPFormatCodeUndefined;
+ AddEntryL(iCurrentPath, handle, format, iDpID, entry, iStorages[iScanPos], iParentHandle);
+ }
+ }
+ else
+ {
+ format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));
+ TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
+ AddFileEntryForOtherDpL(iCurrentPath, handle, format, DpId, entry, iStorages[iScanPos], iParentHandle);
+ }
+ }
+ break;
+
+ // case FILES_OWNED_BY_NONE:
+ default:
+ //nothing to do
+ break;
+ }
}
- break;
-
- case FILES_OWNED_BY_OTHER_DP:
- {
- format = iDpSingletons.MTPUtility().GetFormatByExtension(parse.Ext().Mid(1));
- TUint32 DpId = iDpSingletons.MTPUtility().GetDpId(parse.Ext().Mid(1), KNullDesC);
- AddFileEntryForOtherDpL(path, handle, format, DpId, entry, iStorages[0], iParentHandle);
}
- break;
-
-// case FILES_OWNED_BY_NONE:
- default:
- //nothing to do
- break;
- }
- }
- // Remove filename part
- path.SetLength(path.Length() - len);
- }
-
- }
+ }
+ // Remove filename part
+ iCurrentPath.SetLength(iCurrentPath.Length() - len);
+ }
+
+ }
/**
Add a file entry to the object store
@@ -574,14 +611,14 @@
TParsePtrC pathParser(aPath.Left(aPath.Length() - 1)); // Ignore the trailing "\".
name.Set(aEntry.iName);
}
- else
+ else
{
assoc = EMTPAssociationTypeUndefined;
TParsePtrC pathParser(aPath);
name.Set(pathParser.Name());
}
- if(iExclusionMgr.IsFormatValid(format))
+ //if(iExclusionMgr.IsFormatValid(format))
{
aHandle = KMTPHandleNone;
@@ -594,6 +631,8 @@
iObject->SetUint(CMTPObjectMetaData::ENonConsumable, EMTPConsumable);
iObject->SetDesCL(CMTPObjectMetaData::EName, name);
iFramework.ObjectMgr().InsertObjectL(*iObject);
+ aHandle = iObject->Uint(CMTPObjectMetaData::EHandle);
+
}
__FLOG_VA(_L8("AddEntryL - exit"));
}