217 break; |
217 break; |
218 |
218 |
219 case EMTPObjectPropCodeObjectFileName: |
219 case EMTPObjectPropCodeObjectFileName: |
220 { |
220 { |
221 TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) ); |
221 TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) ); |
222 TBuf<KMaxFileName> newSuid( aPropListElement.StringL( |
222 TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) ); |
223 CMTPTypeObjectPropListElement::EValue ) ); |
223 if ( KMaxFileName < ptr.Length() ) |
224 TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid ); |
224 responseCode = EMTPRespCodeInvalidDataset; |
225 PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err ); |
225 else |
226 if ( KErrOverflow == err ) // full path name is too long |
|
227 { |
226 { |
228 responseCode = EMTPRespCodeInvalidDataset; |
227 TFileName newSuid( ptr ); |
229 } |
228 TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid ); |
230 else if ( ( KErrNone == err ) || ( KErrAlreadyExists == err ) ) |
229 PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err ); |
231 { |
230 if ( KErrOverflow == err ) // full path name is too long |
232 TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( suid, newSuid ) ); //Update MPX DB |
|
233 PRINT1( _L( "MM MTP <> Rename Object err = %d" ), err ); |
|
234 // it is ok if file is not found in DB, following S60 solution |
|
235 if ( KErrNotFound == err ) |
|
236 { |
231 { |
237 TUint formatCode = object->Uint( CMTPObjectMetaData::EFormatCode ); |
232 responseCode = EMTPRespCodeInvalidDataset; |
238 TUint subFormatCode = object->Uint( CMTPObjectMetaData::EFormatSubCode ); |
|
239 TRAP( err, iDpConfig.GetWrapperL().AddObjectL( newSuid, formatCode, subFormatCode ) ); |
|
240 PRINT1( _L( "MM MTP <> Add Object err = %d" ), err ); |
|
241 } |
233 } |
242 |
234 else if ( ( KErrNone == err ) || ( KErrAlreadyExists == err ) ) |
243 if ( KErrNone == err ) |
|
244 { |
235 { |
245 object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid ); |
236 TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( suid, newSuid ) ); //Update MPX DB |
246 iFramework.ObjectMgr().ModifyObjectL( *object ); |
237 PRINT1( _L( "MM MTP <> Rename Object err = %d" ), err ); |
247 } |
238 // it is ok if file is not found in DB, following S60 solution |
248 else |
239 if ( KErrNotFound == err ) |
249 { |
240 { |
250 responseCode = EMTPRespCodeGeneralError; |
241 TUint formatCode = object->Uint( CMTPObjectMetaData::EFormatCode ); |
|
242 TUint subFormatCode = object->Uint( CMTPObjectMetaData::EFormatSubCode ); |
|
243 TRAP( err, iDpConfig.GetWrapperL().AddObjectL( newSuid, formatCode, subFormatCode ) ); |
|
244 PRINT1( _L( "MM MTP <> Add Object err = %d" ), err ); |
|
245 } |
|
246 |
|
247 if ( KErrNone == err ) |
|
248 { |
|
249 object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid ); |
|
250 iFramework.ObjectMgr().ModifyObjectL( *object ); |
|
251 } |
|
252 else |
|
253 { |
|
254 responseCode = EMTPRespCodeGeneralError; |
|
255 } |
251 } |
256 } |
252 } |
257 } |
253 } |
258 } |
254 break; |
259 break; |
255 |
260 |
256 case EMTPObjectPropCodeName: |
261 case EMTPObjectPropCodeName: |
257 { |
262 { |
258 CMTPTypeString* stringData = CMTPTypeString::NewLC( |
263 CMTPTypeString* stringData = CMTPTypeString::NewLC( |
259 aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData |
264 aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData |
260 |
265 |
261 responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapperL( iDpConfig, |
266 responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig, |
262 propertyCode, |
267 propertyCode, |
263 *stringData, |
268 *stringData, |
264 *object ); |
269 *object ); |
265 |
270 |
266 CleanupStack::PopAndDestroy( stringData );// - stringData |
271 CleanupStack::PopAndDestroy( stringData );// - stringData |