diff -r 3673b591050c -r ef55b168cedb mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp --- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp Wed Apr 14 16:49:36 2010 +0300 +++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp Tue Apr 27 17:30:23 2010 +0300 @@ -220,6 +220,10 @@ iDpSingletons.OpenL(iFramework); iNoRollback = EFalse; iSingletons.OpenL(); + _LIT(KM4A, ".m4a"); + _LIT(KODF, ".odf"); + iExceptionList.AppendL(KM4A()); + iExceptionList.AppendL(KODF()); __FLOG(_L8("ConstructL - Exit")); } @@ -707,38 +711,48 @@ //with folder creation. if(!iIsFolder) - { - SetPropertiesL(); - iFramework.ObjectMgr().CommitReservedObjectHandleL(*iReceivedObject); - - TParsePtrC file( iFullPath ); - _LIT( KTxtExtensionODF, ".odf" ); - if ( file.ExtPresent() && file.Ext().CompareF(KTxtExtensionODF)==0 ) - { - TUint32 DpId = iFramework.DataProviderId(); - DpId = iDpSingletons.MTPUtility().GetDpId(file.Ext().Mid(1),KNullDesC); - //The data provider which owns all mimetypes of a file extension is not found - if ( 255 == DpId ) - { - HBufC* mime = NULL; - mime = iDpSingletons.MTPUtility().ContainerMimeType(iFullPath); - if ( mime != NULL ) - { - DpId = iDpSingletons.MTPUtility().GetDpId(file.Ext().Mid(1),*mime); - delete mime; - mime = NULL; - } - } - if ( DpId!=iFramework.DataProviderId() && DpId!=255) - { - iReceivedObject->SetUint(CMTPObjectMetaData::EDataProviderId,DpId); - //iReceivedObject->SetUint(CMTPObjectMetaData::EFormatCode,format); - iFramework.ObjectMgr().ModifyObjectL(*iReceivedObject); - TUint32 handle = iReceivedObject->Uint(CMTPObjectMetaData::EHandle); - iSingletons.DpController().NotifyDataProvidersL(DpId,EMTPObjectAdded,(TAny*)&handle); - } - } - } + { + SetPropertiesL(); + iFramework.ObjectMgr().CommitReservedObjectHandleL(*iReceivedObject); + iFullPath.LowerCase(); + __FLOG_VA((_L8("File Name %S"), &iFullPath)); + TParsePtrC file( iFullPath ); + if ( file.ExtPresent() && iExceptionList.Find(file.Ext()) != KErrNotFound) + { + TUint32 DpId = iFramework.DataProviderId(); + HBufC* mime = iDpSingletons.MTPUtility().ContainerMimeType(iFullPath); + CleanupStack::PushL(mime); + if ( mime != NULL ) + { + DpId = iDpSingletons.MTPUtility().GetDpIdL(file.Ext().Mid(1),*mime); + } + else + { + DpId = iDpSingletons.MTPUtility().GetDpIdL(file.Ext().Mid(1), KNullDesC); + } + if ( DpId!=iFramework.DataProviderId()) + { + iReceivedObject->SetUint(CMTPObjectMetaData::EDataProviderId,DpId); + TUint32 format = EMTPFormatCodeUndefined; + TUint16 subFormat = 0; + if(mime != NULL) + { + format = iDpSingletons.MTPUtility().GetFormatCodeByMimeTypeL(file.Ext().Mid(1),*mime); + subFormat = iDpSingletons.MTPUtility().GetSubFormatCodeL(file.Ext().Mid(1),*mime); + } + else + { + format = iDpSingletons.MTPUtility().GetFormatByExtension(file.Ext().Mid(1)); + } + iReceivedObject->SetUint(CMTPObjectMetaData::EFormatCode,format); + iReceivedObject->SetUint(CMTPObjectMetaData::EFormatSubCode,subFormat); + iFramework.ObjectMgr().ModifyObjectL(*iReceivedObject); + TUint32 handle = iReceivedObject->Uint(CMTPObjectMetaData::EHandle); + iSingletons.DpController().NotifyDataProvidersL(DpId,EMTPObjectAdded,(TAny*)&handle); + } + CleanupStack::PopAndDestroy(mime); + } + } SendResponseL(EMTPRespCodeOK); }