26 |
26 |
27 #include "thumbagimageobserver.h" |
27 #include "thumbagimageobserver.h" |
28 #include "thumbnaillog.h" |
28 #include "thumbnaillog.h" |
29 #include "thumbnailmanagerconstants.h" |
29 #include "thumbnailmanagerconstants.h" |
30 #include "thumbnailmanagerprivatecrkeys.h" |
30 #include "thumbnailmanagerprivatecrkeys.h" |
31 #include "OstTraceDefinitions.h" |
|
32 #ifdef OST_TRACE_COMPILER_IN_USE |
|
33 #include "thumbagimageobserverTraces.h" |
|
34 #endif |
|
35 |
31 |
36 |
32 |
37 // --------------------------------------------------------------------------- |
33 // --------------------------------------------------------------------------- |
38 // NewLC |
34 // NewLC |
39 // --------------------------------------------------------------------------- |
35 // --------------------------------------------------------------------------- |
40 // |
36 // |
41 CThumbAGImageObserver* CThumbAGImageObserver::NewLC(CThumbAGProcessor* aProcessor) |
37 CThumbAGImageObserver* CThumbAGImageObserver::NewLC(CThumbAGProcessor* aProcessor) |
42 { |
38 { |
43 TN_DEBUG1( "CThumbAGImageObserver::NewLC() - begin" ); |
39 TN_DEBUG1( "CThumbAGImageObserver::NewLC() - begin" ); |
44 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_NEWLC, "CThumbAGImageObserver::NewLC - begin" ); |
|
45 |
40 |
46 CThumbAGImageObserver* self = new (ELeave) CThumbAGImageObserver(aProcessor); |
41 CThumbAGImageObserver* self = new (ELeave) CThumbAGImageObserver(aProcessor); |
47 CleanupStack::PushL( self ); |
42 CleanupStack::PushL( self ); |
48 self->ConstructL(); |
43 self->ConstructL(); |
49 return self; |
44 return self; |
78 // --------------------------------------------------------------------------- |
72 // --------------------------------------------------------------------------- |
79 // |
73 // |
80 void CThumbAGImageObserver::ConstructL() |
74 void CThumbAGImageObserver::ConstructL() |
81 { |
75 { |
82 TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - begin" ); |
76 TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - begin" ); |
83 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_CONSTRUCTL, "CThumbAGImageObserver::ConstructL - begin" ); |
|
84 |
77 |
85 #ifdef _DEBUG |
78 #ifdef _DEBUG |
86 iAddCounter = 0; |
79 iAddCounter = 0; |
87 iModCounter = 0; |
80 iModCounter = 0; |
88 #endif |
81 #endif |
89 |
82 |
90 InitializeL(); |
83 InitializeL(); |
91 |
84 |
92 TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - end" ); |
85 TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - end" ); |
93 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_CONSTRUCTL, "CThumbAGImageObserver::ConstructL - end" ); |
|
94 } |
86 } |
95 |
87 |
96 // --------------------------------------------------------------------------- |
88 // --------------------------------------------------------------------------- |
97 // ~CThumbAGImageObserver |
89 // ~CThumbAGImageObserver |
98 // --------------------------------------------------------------------------- |
90 // --------------------------------------------------------------------------- |
99 // |
91 // |
100 void CThumbAGImageObserver::InitializeL() |
92 void CThumbAGImageObserver::InitializeL() |
101 { |
93 { |
102 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - begin" ); |
94 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - begin" ); |
103 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - begin" ); |
95 |
104 |
96 |
105 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - create observers" ); |
97 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - create observers" ); |
106 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - create observers" ); |
|
107 |
98 |
108 // create shutdown observer |
99 // create shutdown observer |
109 if(iMDSShutdownObserver) |
100 if(iMDSShutdownObserver) |
110 { |
101 { |
111 delete iMDSShutdownObserver; |
102 delete iMDSShutdownObserver; |
142 |
132 |
143 iMdESession = CMdESession::NewL( *this ); |
133 iMdESession = CMdESession::NewL( *this ); |
144 iSessionError = EFalse; |
134 iSessionError = EFalse; |
145 |
135 |
146 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - end" ); |
136 TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - end" ); |
147 OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - end" ); |
|
148 } |
137 } |
149 |
138 |
150 // --------------------------------------------------------------------------- |
139 // --------------------------------------------------------------------------- |
151 // ~CThumbAGImageObserver |
140 // ~CThumbAGImageObserver |
152 // --------------------------------------------------------------------------- |
141 // --------------------------------------------------------------------------- |
153 // |
142 // |
154 CThumbAGImageObserver::~CThumbAGImageObserver() |
143 CThumbAGImageObserver::~CThumbAGImageObserver() |
155 { |
144 { |
156 TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - begin" ); |
145 TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - begin" ); |
157 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_CTHUMBAGIMAGEOBSERVER, "CThumbAGImageObserver::~CThumbAGImageObserver - begin" ); |
|
158 |
146 |
159 iShutdown = ETrue; |
147 iShutdown = ETrue; |
160 |
148 |
161 delete iMDSShutdownObserver; |
149 delete iMDSShutdownObserver; |
162 iMDSShutdownObserver = NULL; |
150 iMDSShutdownObserver = NULL; |
180 delete iMdESession; |
168 delete iMdESession; |
181 iMdESession = NULL; |
169 iMdESession = NULL; |
182 } |
170 } |
183 |
171 |
184 TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - end" ); |
172 TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - end" ); |
185 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_CTHUMBAGIMAGEOBSERVER, "CThumbAGImageObserver::~CThumbAGImageObserver - end" ); |
|
186 } |
173 } |
187 |
174 |
188 // ----------------------------------------------------------------------------- |
175 // ----------------------------------------------------------------------------- |
189 // CThumbAGImageObserver::HandleSessionOpened |
176 // CThumbAGImageObserver::HandleSessionOpened |
190 // ----------------------------------------------------------------------------- |
177 // ----------------------------------------------------------------------------- |
191 // |
178 // |
192 void CThumbAGImageObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError ) |
179 void CThumbAGImageObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError ) |
193 { |
180 { |
194 TN_DEBUG1( "CThumbAGImageObserver::HandleSessionOpened"); |
181 TN_DEBUG1( "CThumbAGImageObserver::HandleSessionOpened"); |
195 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened" ); |
|
196 |
182 |
197 if (aError == KErrNone) |
183 if (aError == KErrNone) |
198 { |
184 { |
199 TRAPD( err, AddObserversL() ); |
185 TRAPD( err, AddObserversL() ); |
200 if (err != KErrNone) |
186 if (err != KErrNone) |
201 { |
187 { |
202 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened, AddObserversL error == %d", err ); |
188 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened, AddObserversL error == %d", err ); |
203 OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened, AddObserversL error;err=%d", err ); |
|
204 } |
189 } |
205 } |
190 } |
206 else |
191 else |
207 { |
192 { |
208 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened error == %d", aError ); |
193 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened error == %d", aError ); |
209 OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened;aError=%d", aError ); |
|
210 } |
194 } |
211 } |
195 } |
212 |
196 |
213 // ----------------------------------------------------------------------------- |
197 // ----------------------------------------------------------------------------- |
214 // CThumbAGImageObserver::HandleSessionError |
198 // CThumbAGImageObserver::HandleSessionError |
215 // ----------------------------------------------------------------------------- |
199 // ----------------------------------------------------------------------------- |
216 // |
200 // |
217 void CThumbAGImageObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError ) |
201 void CThumbAGImageObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError ) |
218 { |
202 { |
219 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionError == %d", aError ); |
203 TN_DEBUG2( "CThumbAGImageObserver::HandleSessionError == %d", aError ); |
220 OstTrace1( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_HANDLESESSIONERROR, "CThumbAGImageObserver::HandleSessionError;aError=%d", aError ); |
|
221 if (aError != KErrNone && !iSessionError) |
204 if (aError != KErrNone && !iSessionError) |
222 { |
205 { |
223 iSessionError = ETrue; |
206 iSessionError = ETrue; |
224 |
207 |
225 if (!iShutdown) |
208 if (!iShutdown) |
256 |
237 |
257 #ifdef _DEBUG |
238 #ifdef _DEBUG |
258 if (aType == ENotifyAdd) |
239 if (aType == ENotifyAdd) |
259 { |
240 { |
260 TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() ); |
241 TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() ); |
261 OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() ); |
|
262 iAddCounter = aObjectIdArray.Count(); |
242 iAddCounter = aObjectIdArray.Count(); |
263 } |
243 } |
264 else if (aType == ENotifyModify) |
244 else if (aType == ENotifyModify) |
265 { |
245 { |
266 TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() ); |
246 TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() ); |
267 OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count()=%d", aObjectIdArray.Count() ); |
|
268 iModCounter = aObjectIdArray.Count(); |
247 iModCounter = aObjectIdArray.Count(); |
269 } |
248 } |
270 #endif |
249 #endif |
271 |
250 |
272 if ( (aType == ENotifyAdd || aType == ENotifyModify) && aObjectIdArray.Count() > 0 ) |
251 if ( (aType == ENotifyAdd || aType == ENotifyModify) && aObjectIdArray.Count() > 0 ) |
273 { |
252 { |
274 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - AddToQueueL" ); |
253 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - AddToQueueL" ); |
275 OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - AddToQueueL" ); |
|
276 |
254 |
277 // Add event to processing queue by type and enable force run |
255 // Add event to processing queue by type and enable force run |
278 RPointerArray<HBufC> dummyArray; |
256 RPointerArray<HBufC> dummyArray; |
279 TRAPD(err, iProcessor->AddToQueueL(aType, EGenerationItemTypeImage, aObjectIdArray, dummyArray, EFalse)); |
257 TRAPD(err, iProcessor->AddToQueueL(aType, EGenerationItemTypeImage, aObjectIdArray, dummyArray, EFalse)); |
280 if (err != KErrNone) |
258 if (err != KErrNone) |
281 { |
259 { |
282 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - error adding to queue" ); |
260 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - error adding to queue" ); |
283 OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - error adding to queue" ); |
|
284 } |
261 } |
285 } |
262 } |
286 else |
263 else |
287 { |
264 { |
288 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - bad notification" ); |
265 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - bad notification" ); |
289 OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - bad notification" ); |
|
290 } |
266 } |
291 |
267 |
292 #ifdef _DEBUG |
268 #ifdef _DEBUG |
293 TN_DEBUG3( "CThumbAGImageObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter ); |
269 TN_DEBUG3( "CThumbAGImageObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter ); |
294 OstTraceExt2( TRACE_FATAL, DUP6_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HIN-COUNTERS---------- Add, Modify;iAddCounter=%u;iModCounter=%u", iAddCounter, iModCounter ); |
|
295 iModCounter = 0; |
270 iModCounter = 0; |
296 iAddCounter = 0; |
271 iAddCounter = 0; |
297 |
272 |
298 #endif |
273 #endif |
299 |
274 |
300 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - end" ); |
275 TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - end" ); |
301 OstTrace0( TRACE_FATAL, DUP7_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - end" ); |
|
302 } |
276 } |
303 |
277 |
304 // --------------------------------------------------------------------------- |
278 // --------------------------------------------------------------------------- |
305 // CThumbAGImageObserver::AddObserversL |
279 // CThumbAGImageObserver::AddObserversL |
306 // --------------------------------------------------------------------------- |
280 // --------------------------------------------------------------------------- |
307 // |
281 // |
308 void CThumbAGImageObserver::AddObserversL() |
282 void CThumbAGImageObserver::AddObserversL() |
309 { |
283 { |
310 TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - begin" ); |
284 TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - begin" ); |
311 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_ADDOBSERVERSL, "CThumbAGImageObserver::AddObserversL - begin" ); |
|
312 |
285 |
313 CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL(); |
286 CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL(); |
314 CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
287 CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
315 CMdEPropertyDef& originPropDef = objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
288 CMdEPropertyDef& originPropDef = objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
316 CMdEObjectDef& imageDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject ); |
289 CMdEObjectDef& imageDef = defaultNamespace.GetObjectDefL( MdeConstants::Image::KImageObject ); |
338 iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); |
311 iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); |
339 |
312 |
340 CleanupStack::Pop( 6, addCondition ); |
313 CleanupStack::Pop( 6, addCondition ); |
341 |
314 |
342 TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - end" ); |
315 TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - end" ); |
343 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_ADDOBSERVERSL, "CThumbAGImageObserver::AddObserversL - end" ); |
|
344 } |
316 } |
345 |
317 |
346 |
318 |
347 // ----------------------------------------------------------------------------- |
319 // ----------------------------------------------------------------------------- |
348 // CThumbAGCameraObserver::ShutdownNotification |
320 // CThumbAGCameraObserver::ShutdownNotification |
349 // ----------------------------------------------------------------------------- |
321 // ----------------------------------------------------------------------------- |
350 // |
322 // |
351 void CThumbAGImageObserver::ShutdownNotification() |
323 void CThumbAGImageObserver::ShutdownNotification() |
352 { |
324 { |
353 TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification()" ); |
325 TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification()" ); |
354 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGImageObserver::ShutdownNotification" ); |
|
355 |
326 |
356 if (!iShutdown) |
327 if (!iShutdown) |
357 { |
328 { |
358 TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification() shutdown" ); |
329 TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification() shutdown" ); |
359 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGImageObserver::ShutdownNotification - shutdown" ); |
|
360 iShutdown = ETrue; |
330 iShutdown = ETrue; |
361 } |
331 } |
362 } |
332 } |
363 |
333 |
364 // --------------------------------------------------------------------------- |
334 // --------------------------------------------------------------------------- |
366 // --------------------------------------------------------------------------- |
336 // --------------------------------------------------------------------------- |
367 // |
337 // |
368 TInt CThumbAGImageObserver::ReconnectCallBack(TAny* aAny) |
338 TInt CThumbAGImageObserver::ReconnectCallBack(TAny* aAny) |
369 { |
339 { |
370 TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - reinitialize"); |
340 TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - reinitialize"); |
371 OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_RECONNECTCALLBACK, "CThumbAGImageObserver::ReconnectCallBack - reinitialize" ); |
|
372 |
341 |
373 CThumbAGImageObserver* self = static_cast<CThumbAGImageObserver*>( aAny ); |
342 CThumbAGImageObserver* self = static_cast<CThumbAGImageObserver*>( aAny ); |
374 |
343 |
375 self->iReconnect->Cancel(); |
344 self->iReconnect->Cancel(); |
376 |
345 |
377 // reconnect to MDS |
346 // reconnect to MDS |
378 TRAP_IGNORE( self->InitializeL() ); |
347 TRAP_IGNORE( self->InitializeL() ); |
379 |
348 |
380 TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - done"); |
349 TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - done"); |
381 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_RECONNECTCALLBACK, "CThumbAGImageObserver::ReconnectCallBack - done" ); |
|
382 |
350 |
383 return KErrNone; |
351 return KErrNone; |
384 } |
352 } |
385 |
353 |
386 |
354 |