26 |
26 |
27 #include "thumbagcameraobserver.h" |
27 #include "thumbagcameraobserver.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 "thumbagcameraobserverTraces.h" |
|
34 #endif |
|
35 |
31 |
36 |
32 |
37 // --------------------------------------------------------------------------- |
33 // --------------------------------------------------------------------------- |
38 // NewLC |
34 // NewLC |
39 // --------------------------------------------------------------------------- |
35 // --------------------------------------------------------------------------- |
40 // |
36 // |
41 CThumbAGCameraObserver* CThumbAGCameraObserver::NewLC(CThumbAGProcessor* aProcessor) |
37 CThumbAGCameraObserver* CThumbAGCameraObserver::NewLC(CThumbAGProcessor* aProcessor) |
42 { |
38 { |
43 TN_DEBUG1( "CThumbAGCameraObserver::NewLC() - begin" ); |
39 TN_DEBUG1( "CThumbAGCameraObserver::NewLC() - begin" ); |
44 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_NEWLC, "CThumbAGCameraObserver::NewLC - begin" ); |
|
45 |
40 |
46 CThumbAGCameraObserver* self = new (ELeave) CThumbAGCameraObserver(aProcessor); |
41 CThumbAGCameraObserver* self = new (ELeave) CThumbAGCameraObserver(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 CThumbAGCameraObserver::ConstructL() |
74 void CThumbAGCameraObserver::ConstructL() |
81 { |
75 { |
82 TN_DEBUG1( "CThumbAGCameraObserver::ConstructL() - begin" ); |
76 TN_DEBUG1( "CThumbAGCameraObserver::ConstructL() - begin" ); |
83 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_CONSTRUCTL, "CThumbAGCameraObserver::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( "CThumbAGCameraObserver::ConstructL() - end" ); |
85 TN_DEBUG1( "CThumbAGCameraObserver::ConstructL() - end" ); |
93 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_CONSTRUCTL, "CThumbAGCameraObserver::ConstructL - end" ); |
|
94 } |
86 } |
95 |
87 |
96 // --------------------------------------------------------------------------- |
88 // --------------------------------------------------------------------------- |
97 // ~CThumbAGCameraObserver |
89 // ~CThumbAGCameraObserver |
98 // --------------------------------------------------------------------------- |
90 // --------------------------------------------------------------------------- |
99 // |
91 // |
100 void CThumbAGCameraObserver::InitializeL() |
92 void CThumbAGCameraObserver::InitializeL() |
101 { |
93 { |
102 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - begin" ); |
94 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - begin" ); |
103 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - begin" ); |
|
104 |
95 |
105 |
96 |
106 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - create observers" ); |
97 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - create observers" ); |
107 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - create observers" ); |
|
108 |
98 |
109 // create shutdown observer |
99 // create shutdown observer |
110 if(iMDSShutdownObserver) |
100 if(iMDSShutdownObserver) |
111 { |
101 { |
112 delete iMDSShutdownObserver; |
102 delete iMDSShutdownObserver; |
143 |
132 |
144 iMdESession = CMdESession::NewL( *this ); |
133 iMdESession = CMdESession::NewL( *this ); |
145 iSessionError = EFalse; |
134 iSessionError = EFalse; |
146 |
135 |
147 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - end" ); |
136 TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - end" ); |
148 OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - end" ); |
|
149 } |
137 } |
150 |
138 |
151 // --------------------------------------------------------------------------- |
139 // --------------------------------------------------------------------------- |
152 // ~CThumbAGCameraObserver |
140 // ~CThumbAGCameraObserver |
153 // --------------------------------------------------------------------------- |
141 // --------------------------------------------------------------------------- |
154 // |
142 // |
155 CThumbAGCameraObserver::~CThumbAGCameraObserver() |
143 CThumbAGCameraObserver::~CThumbAGCameraObserver() |
156 { |
144 { |
157 TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - begin" ); |
145 TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - begin" ); |
158 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_CTHUMBAGCAMERAOBSERVER, "CThumbAGCameraObserver::~CThumbAGCameraObserver - begin" ); |
|
159 |
146 |
160 iShutdown = ETrue; |
147 iShutdown = ETrue; |
161 |
148 |
162 delete iMDSShutdownObserver; |
149 delete iMDSShutdownObserver; |
163 iMDSShutdownObserver = NULL; |
150 iMDSShutdownObserver = NULL; |
181 delete iMdESession; |
168 delete iMdESession; |
182 iMdESession = NULL; |
169 iMdESession = NULL; |
183 } |
170 } |
184 |
171 |
185 TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - end" ); |
172 TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - end" ); |
186 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_CTHUMBAGCAMERAOBSERVER, "CThumbAGCameraObserver::~CThumbAGCameraObserver - end" ); |
|
187 } |
173 } |
188 |
174 |
189 // ----------------------------------------------------------------------------- |
175 // ----------------------------------------------------------------------------- |
190 // CThumbAGCameraObserver::HandleSessionOpened |
176 // CThumbAGCameraObserver::HandleSessionOpened |
191 // ----------------------------------------------------------------------------- |
177 // ----------------------------------------------------------------------------- |
192 // |
178 // |
193 void CThumbAGCameraObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError ) |
179 void CThumbAGCameraObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError ) |
194 { |
180 { |
195 TN_DEBUG1( "CThumbAGCameraObserver::HandleSessionOpened"); |
181 TN_DEBUG1( "CThumbAGCameraObserver::HandleSessionOpened"); |
196 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened" ); |
|
197 |
182 |
198 if (aError == KErrNone) |
183 if (aError == KErrNone) |
199 { |
184 { |
200 TRAPD( err, AddObserversL() ); |
185 TRAPD( err, AddObserversL() ); |
201 if (err != KErrNone) |
186 if (err != KErrNone) |
202 { |
187 { |
203 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened, AddObserversL error == %d", err ); |
188 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened, AddObserversL error == %d", err ); |
204 OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened - AddObserversL error;err=%d", err ); |
|
205 } |
189 } |
206 } |
190 } |
207 else |
191 else |
208 { |
192 { |
209 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened error == %d", aError ); |
193 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened error == %d", aError ); |
210 OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened;aError=%d", aError ); |
|
211 } |
194 } |
212 } |
195 } |
213 |
196 |
214 // ----------------------------------------------------------------------------- |
197 // ----------------------------------------------------------------------------- |
215 // CThumbAGCameraObserver::HandleSessionError |
198 // CThumbAGCameraObserver::HandleSessionError |
216 // ----------------------------------------------------------------------------- |
199 // ----------------------------------------------------------------------------- |
217 // |
200 // |
218 void CThumbAGCameraObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError ) |
201 void CThumbAGCameraObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError ) |
219 { |
202 { |
220 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionError == %d", aError ); |
203 TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionError == %d", aError ); |
221 OstTrace1( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLESESSIONERROR, "CThumbAGCameraObserver::HandleSessionError;aError=%d", aError ); |
|
222 if (aError != KErrNone && !iSessionError) |
204 if (aError != KErrNone && !iSessionError) |
223 { |
205 { |
224 iSessionError = ETrue; |
206 iSessionError = ETrue; |
225 |
207 |
226 if (!iShutdown) |
208 if (!iShutdown) |
245 void CThumbAGCameraObserver::HandleObjectNotification( CMdESession& /*aSession*/, |
226 void CThumbAGCameraObserver::HandleObjectNotification( CMdESession& /*aSession*/, |
246 TObserverNotificationType aType, |
227 TObserverNotificationType aType, |
247 const RArray<TItemId>& aObjectIdArray ) |
228 const RArray<TItemId>& aObjectIdArray ) |
248 { |
229 { |
249 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - begin" ); |
230 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - begin" ); |
250 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - begin" ); |
|
251 |
231 |
252 // no processor or shutting down |
232 // no processor or shutting down |
253 if ( iShutdown || !iProcessor) |
233 if ( iShutdown || !iProcessor) |
254 { |
234 { |
255 return; |
235 return; |
257 |
237 |
258 #ifdef _DEBUG |
238 #ifdef _DEBUG |
259 if (aType == ENotifyAdd) |
239 if (aType == ENotifyAdd) |
260 { |
240 { |
261 TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() ); |
241 TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() ); |
262 OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() ); |
|
263 iAddCounter = aObjectIdArray.Count(); |
242 iAddCounter = aObjectIdArray.Count(); |
264 } |
243 } |
265 else if (aType == ENotifyModify) |
244 else if (aType == ENotifyModify) |
266 { |
245 { |
267 TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() ); |
246 TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() ); |
268 OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count=%d", aObjectIdArray.Count() ); |
|
269 iModCounter = aObjectIdArray.Count(); |
247 iModCounter = aObjectIdArray.Count(); |
270 } |
248 } |
271 #endif |
249 #endif |
272 |
250 |
273 if ( (aType == ENotifyAdd || aType == ENotifyModify ) && (aObjectIdArray.Count() > 0) ) |
251 if ( (aType == ENotifyAdd || aType == ENotifyModify ) && (aObjectIdArray.Count() > 0) ) |
274 { |
252 { |
275 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - AddToQueueL" ); |
253 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - AddToQueueL" ); |
276 OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - AddToQueueL" ); |
|
277 |
254 |
278 // Add event to processing queue by type and enable force run |
255 // Add event to processing queue by type and enable force run |
279 RPointerArray<HBufC> dummyArray; |
256 RPointerArray<HBufC> dummyArray; |
280 TRAPD(err, iProcessor->AddToQueueL(aType, EGenerationItemTypeCamera, aObjectIdArray, dummyArray, EFalse)); |
257 TRAPD(err, iProcessor->AddToQueueL(aType, EGenerationItemTypeCamera, aObjectIdArray, dummyArray, EFalse)); |
281 if (err != KErrNone) |
258 if (err != KErrNone) |
282 { |
259 { |
283 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - error adding to queue" ); |
260 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - error adding to queue" ); |
284 OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - error adding to queue" ); |
|
285 } |
261 } |
286 } |
262 } |
287 else |
263 else |
288 { |
264 { |
289 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - bad notification" ); |
265 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - bad notification" ); |
290 OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - bad notification" ); |
|
291 } |
266 } |
292 |
267 |
293 #ifdef _DEBUG |
268 #ifdef _DEBUG |
294 TN_DEBUG3( "CThumbAGCameraObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter ); |
269 TN_DEBUG3( "CThumbAGCameraObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter ); |
295 OstTraceExt2( TRACE_FATAL, DUP6_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification;iAddCounter=%u;iModCounter=%u", iAddCounter, iModCounter ); |
|
296 iModCounter = 0; |
270 iModCounter = 0; |
297 iAddCounter = 0; |
271 iAddCounter = 0; |
298 #endif |
272 #endif |
299 |
273 |
300 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - end" ); |
274 TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - end" ); |
301 OstTrace0( TRACE_FATAL, DUP7_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - end" ); |
|
302 } |
275 } |
303 |
276 |
304 // ----------------------------------------------------------------------------- |
277 // ----------------------------------------------------------------------------- |
305 // CThumbAGCameraObserver::ShutdownNotification |
278 // CThumbAGCameraObserver::ShutdownNotification |
306 // ----------------------------------------------------------------------------- |
279 // ----------------------------------------------------------------------------- |
307 // |
280 // |
308 void CThumbAGCameraObserver::ShutdownNotification() |
281 void CThumbAGCameraObserver::ShutdownNotification() |
309 { |
282 { |
310 TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification()" ); |
283 TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification()" ); |
311 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGCameraObserver::ShutdownNotification" ); |
|
312 |
284 |
313 if (!iShutdown) |
285 if (!iShutdown) |
314 { |
286 { |
315 TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification() shutdown" ); |
287 TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification() shutdown" ); |
316 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGCameraObserver::ShutdownNotification - shutdown" ); |
|
317 iShutdown = ETrue; |
288 iShutdown = ETrue; |
318 } |
289 } |
319 } |
290 } |
320 |
291 |
321 // --------------------------------------------------------------------------- |
292 // --------------------------------------------------------------------------- |
323 // --------------------------------------------------------------------------- |
294 // --------------------------------------------------------------------------- |
324 // |
295 // |
325 void CThumbAGCameraObserver::AddObserversL() |
296 void CThumbAGCameraObserver::AddObserversL() |
326 { |
297 { |
327 TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - begin" ); |
298 TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - begin" ); |
328 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_ADDOBSERVERSL, "CThumbAGCameraObserver::AddObserversL - begin" ); |
|
329 |
299 |
330 CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL(); |
300 CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL(); |
331 CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
301 CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject ); |
332 CMdEPropertyDef& originPropDef = objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
302 CMdEPropertyDef& originPropDef = objectDef.GetPropertyDefL( MdeConstants::Object::KOriginProperty ); |
333 |
303 |
347 iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); |
317 iMdESession->AddObjectObserverL( *this, modifyCondition, ENotifyModify ); |
348 |
318 |
349 CleanupStack::Pop( 4, addCondition ); |
319 CleanupStack::Pop( 4, addCondition ); |
350 |
320 |
351 TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - end" ); |
321 TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - end" ); |
352 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_ADDOBSERVERSL, "CThumbAGCameraObserver::AddObserversL - end" ); |
|
353 } |
322 } |
354 |
323 |
355 // --------------------------------------------------------------------------- |
324 // --------------------------------------------------------------------------- |
356 // CThumbAGCameraObserver::ReconnectCallBack() |
325 // CThumbAGCameraObserver::ReconnectCallBack() |
357 // --------------------------------------------------------------------------- |
326 // --------------------------------------------------------------------------- |
358 // |
327 // |
359 TInt CThumbAGCameraObserver::ReconnectCallBack(TAny* aAny) |
328 TInt CThumbAGCameraObserver::ReconnectCallBack(TAny* aAny) |
360 { |
329 { |
361 TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - reinitialize"); |
330 TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - reinitialize"); |
362 OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_RECONNECTCALLBACK, "CThumbAGCameraObserver::ReconnectCallBack - reinitialize" ); |
|
363 |
331 |
364 CThumbAGCameraObserver* self = static_cast<CThumbAGCameraObserver*>( aAny ); |
332 CThumbAGCameraObserver* self = static_cast<CThumbAGCameraObserver*>( aAny ); |
365 |
333 |
366 self->iReconnect->Cancel(); |
334 self->iReconnect->Cancel(); |
367 |
335 |
368 // reconnect to MDS |
336 // reconnect to MDS |
369 TRAP_IGNORE( self->InitializeL() ); |
337 TRAP_IGNORE( self->InitializeL() ); |
370 |
338 |
371 TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - done"); |
339 TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - done"); |
372 OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_RECONNECTCALLBACK, "CThumbAGCameraObserver::ReconnectCallBack - done" ); |
|
373 |
340 |
374 return KErrNone; |
341 return KErrNone; |
375 } |
342 } |
376 |
343 |
377 |
344 |