69 iNextItemsSkip.Close(); |
69 iNextItemsSkip.Close(); |
70 |
70 |
71 if ( iMdeObject ) |
71 if ( iMdeObject ) |
72 { |
72 { |
73 delete iMdeObject; |
73 delete iMdeObject; |
|
74 iMdeObject = NULL; |
74 } |
75 } |
75 if ( iExifUtil ) |
76 if ( iExifUtil ) |
76 { |
77 { |
77 delete iExifUtil; |
78 delete iExifUtil; |
|
79 iExifUtil = NULL; |
78 } |
80 } |
79 |
81 |
80 delete iRelationQuery; |
82 delete iRelationQuery; |
|
83 iRelationQuery = NULL; |
81 iFs.Close(); |
84 iFs.Close(); |
82 |
85 |
83 delete iMdEHarvesterSession; |
86 delete iMdEHarvesterSession; |
|
87 iMdEHarvesterSession = NULL; |
84 } |
88 } |
85 |
89 |
86 // --------------------------------------------------------------------------- |
90 // --------------------------------------------------------------------------- |
87 // CComposerImagePlugin |
91 // CComposerImagePlugin |
88 // --------------------------------------------------------------------------- |
92 // --------------------------------------------------------------------------- |
108 iLocationObjectDef = NULL; |
112 iLocationObjectDef = NULL; |
109 |
113 |
110 CActiveScheduler::Add( this ); |
114 CActiveScheduler::Add( this ); |
111 |
115 |
112 iExifUtil = CHarvesterExifUtil::NewL(); |
116 iExifUtil = CHarvesterExifUtil::NewL(); |
|
117 iFastModeEnabled = EFalse; |
113 User::LeaveIfError( iFs.Connect() ); |
118 User::LeaveIfError( iFs.Connect() ); |
114 } |
119 } |
115 |
120 |
116 // --------------------------------------------------------------------------- |
121 // --------------------------------------------------------------------------- |
117 // DoCancel |
122 // DoCancel |
239 case ERequestGetObject: |
244 case ERequestGetObject: |
240 { |
245 { |
241 if( iItemQueue.Count() <= 0 ) |
246 if( iItemQueue.Count() <= 0 ) |
242 { |
247 { |
243 iItemQueue.Compress(); |
248 iItemQueue.Compress(); |
|
249 if( iFastModeEnabled ) |
|
250 { |
|
251 SetPriority( KHarvesterPriorityComposerPlugin ); |
|
252 } |
244 SetNextRequest( ERequestReady ); |
253 SetNextRequest( ERequestReady ); |
245 } |
254 } |
246 else |
255 else |
247 { |
256 { |
248 TItemId mdeObjectId = KNoId; |
257 TItemId mdeObjectId = KNoId; |
249 TRAPD( err, GetObjectFromMdeL( mdeObjectId ) ); |
258 TRAPD( err, GetObjectFromMdeL( mdeObjectId ) ); |
250 |
259 |
251 if ( err == KErrNone ) |
260 if ( err == KErrNone ) |
252 { |
261 { |
|
262 CMdEProperty* prop = NULL; |
|
263 CMdEPropertyDef& originPropDef = iMdeObject->Def().GetPropertyDefL( Object::KOriginProperty ); |
|
264 iMdeObject->Property( originPropDef, prop ); |
|
265 if( prop && prop->Uint8ValueL() == MdeConstants::Object::ECamera && !iFastModeEnabled ) |
|
266 { |
|
267 iFastModeEnabled = ETrue; |
|
268 SetPriority( KHarvesterPriorityMonitorPlugin ); |
|
269 } |
|
270 else if( iFastModeEnabled ) |
|
271 { |
|
272 iFastModeEnabled = EFalse; |
|
273 SetPriority( KHarvesterPriorityComposerPlugin ); |
|
274 } |
|
275 |
253 SetNextRequest( ERequestCompose ); |
276 SetNextRequest( ERequestCompose ); |
254 } |
277 } |
255 // if object does not exists, find next |
278 // if object does not exists, find next |
256 else if ( err == KErrNotFound || err == KErrAbort ) |
279 else if ( err == KErrNotFound || err == KErrAbort ) |
257 { |
280 { |
744 User::Leave( KErrNotSupported ); |
767 User::Leave( KErrNotSupported ); |
745 } |
768 } |
746 |
769 |
747 // Check whether the file is open |
770 // Check whether the file is open |
748 TBool isOpen( EFalse ); |
771 TBool isOpen( EFalse ); |
749 iFs.IsFileOpen( uri, isOpen ); |
772 const TInt openError = iFs.IsFileOpen( uri, isOpen ); |
750 if ( isOpen ) |
773 if( openError != KErrNone ) |
|
774 { |
|
775 WRITELOG( "CImageComposerAO::DoWriteExifL() - check for open file failed!" ); |
|
776 User::Leave( openError ); |
|
777 } |
|
778 else if ( isOpen ) |
751 { |
779 { |
752 WRITELOG( "CImageComposerAO::DoWriteExifL() - file handle is open!" ); |
780 WRITELOG( "CImageComposerAO::DoWriteExifL() - file handle is open!" ); |
753 User::Leave( KErrInUse ); |
781 User::Leave( KErrInUse ); |
754 } |
782 } |
755 |
783 |