21 #include "cxecameradevicecontrolsymbian.h" |
21 #include "cxecameradevicecontrolsymbian.h" |
22 #include "cxestillcapturecontrolsymbian.h" |
22 #include "cxestillcapturecontrolsymbian.h" |
23 #include "cxevideocapturecontrolsymbian.h" |
23 #include "cxevideocapturecontrolsymbian.h" |
24 #include "cxesettingscontrolsymbian.h" |
24 #include "cxesettingscontrolsymbian.h" |
25 #include "cxeviewfindercontrolsymbian.h" |
25 #include "cxeviewfindercontrolsymbian.h" |
|
26 #include "cxesnapshotcontrol.h" |
26 #include "cxefilenamegeneratorsymbian.h" |
27 #include "cxefilenamegeneratorsymbian.h" |
27 #include "cxeautofocuscontrolsymbian.h" |
28 #include "cxeautofocuscontrolsymbian.h" |
28 #include "cxezoomcontrolsymbian.h" |
29 #include "cxezoomcontrolsymbian.h" |
29 #include "cxequalitypresetssymbian.h" |
30 #include "cxequalitypresetssymbian.h" |
30 #include "cxutils.h" |
31 #include "cxutils.h" |
36 #include "cxesensoreventhandlersymbian.h" |
37 #include "cxesensoreventhandlersymbian.h" |
37 #include "cxefilesavethread.h" |
38 #include "cxefilesavethread.h" |
38 #include "cxecameradevice.h" |
39 #include "cxecameradevice.h" |
39 #include "cxememorymonitor.h" |
40 #include "cxememorymonitor.h" |
40 #include "cxediskmonitor.h" |
41 #include "cxediskmonitor.h" |
|
42 #include "cxegeotaggingtrail.h" |
41 |
43 |
42 #include "OstTraceDefinitions.h" |
44 #include "OstTraceDefinitions.h" |
43 #ifdef OST_TRACE_COMPILER_IN_USE |
45 #ifdef OST_TRACE_COMPILER_IN_USE |
44 #include "cxeenginesymbianTraces.h" |
46 #include "cxeenginesymbianTraces.h" |
45 #endif |
47 #endif |
49 |
51 |
50 CxeEngineSymbian::CxeEngineSymbian() |
52 CxeEngineSymbian::CxeEngineSymbian() |
51 : mCameraDeviceControl(NULL), |
53 : mCameraDeviceControl(NULL), |
52 mCameraDevice(NULL), |
54 mCameraDevice(NULL), |
53 mViewfinderControl(NULL), |
55 mViewfinderControl(NULL), |
|
56 mSnapshotControl(NULL), |
54 mStillCaptureControl(NULL), |
57 mStillCaptureControl(NULL), |
55 mVideoCaptureControl(NULL), |
58 mVideoCaptureControl(NULL), |
56 mSettingsControl(NULL), |
59 mSettingsControl(NULL), |
57 mAutoFocusControl(NULL), |
60 mAutoFocusControl(NULL), |
58 mZoomControl(NULL), |
61 mZoomControl(NULL), |
60 mFeatureManager(NULL), |
63 mFeatureManager(NULL), |
61 mSettingsModel(NULL), |
64 mSettingsModel(NULL), |
62 mFilenameGenerator(NULL), |
65 mFilenameGenerator(NULL), |
63 mSensorEventHandler(NULL), |
66 mSensorEventHandler(NULL), |
64 mQualityPresets(NULL), |
67 mQualityPresets(NULL), |
65 mFileSaveThread(NULL) |
68 mFileSaveThread(NULL), |
66 { |
69 mDiskMonitor(NULL), |
67 CX_DEBUG_ENTER_FUNCTION(); |
70 mMemoryMonitor(NULL), |
68 |
71 mGeoTaggingTrail(NULL) |
69 // Do secondary construction during reserve call. |
72 { |
70 //! @todo temporarily commented as part of a hack to change the startup sequence |
73 CX_DEBUG_IN_FUNCTION(); |
71 // to avoid GOOM issues |
|
72 // connect(this, SIGNAL(reserveStarted()), this, SLOT(construct())); |
|
73 |
|
74 CxeCameraDeviceControlSymbian *deviceControl = new CxeCameraDeviceControlSymbian(); |
|
75 mCameraDeviceControl = deviceControl; |
|
76 mCameraDevice = deviceControl->cameraDevice(); |
|
77 CX_ASSERT_ALWAYS(mCameraDeviceControl); |
|
78 CX_ASSERT_ALWAYS(mCameraDevice); |
|
79 |
|
80 mCameraDeviceControl->init(); |
|
81 //! @todo calling construct here is a hack to change the startup sequence |
|
82 // to avoid GOOM issues |
|
83 construct(); |
|
84 |
|
85 CX_DEBUG_EXIT_FUNCTION(); |
|
86 } |
74 } |
87 |
75 |
88 |
76 |
89 /*! |
77 /*! |
90 Create all control classes and connect relevant signals |
78 Create all control classes and connect relevant signals |
108 { |
96 { |
109 CX_DEBUG_ENTER_FUNCTION(); |
97 CX_DEBUG_ENTER_FUNCTION(); |
110 |
98 |
111 // Check we do this only once. |
99 // Check we do this only once. |
112 if (!mSettingsModel) { |
100 if (!mSettingsModel) { |
113 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "e_CX_ENGINE_CREATE_CONTROLS 1"); |
101 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_IN, "msg: e_CX_ENGINE_CREATE_CONTROLS 1"); |
|
102 |
|
103 CxeCameraDeviceControlSymbian *deviceControl = new CxeCameraDeviceControlSymbian(); |
|
104 mCameraDeviceControl = deviceControl; |
|
105 mCameraDevice = deviceControl->cameraDevice(); |
|
106 |
|
107 CX_ASSERT_ALWAYS(mCameraDeviceControl); |
|
108 CX_ASSERT_ALWAYS(mCameraDevice); |
|
109 |
|
110 mCameraDeviceControl->init(); |
114 |
111 |
115 CxeSettingsCenRepStore *settingsStore(NULL); |
112 CxeSettingsCenRepStore *settingsStore(NULL); |
116 if (XQServiceUtil::isService()) { |
113 if (XQServiceUtil::isService()) { |
117 settingsStore = new CxeSettingsLocalStore(); |
114 settingsStore = new CxeSettingsLocalStore(); |
118 } else { |
115 } else { |
122 mSettingsModel = new CxeSettingsModelImp(settingsStore); |
119 mSettingsModel = new CxeSettingsModelImp(settingsStore); |
123 // assert if settings model fails to intialize |
120 // assert if settings model fails to intialize |
124 CX_DEBUG_ASSERT(mSettingsModel); |
121 CX_DEBUG_ASSERT(mSettingsModel); |
125 |
122 |
126 mSettings = new CxeSettingsImp(*mSettingsModel); |
123 mSettings = new CxeSettingsImp(*mSettingsModel); |
127 |
124 |
|
125 // Loading current camera mode value from settings store and updating |
|
126 // devicecontrol |
|
127 Cxe::CameraMode cameraMode = Cxe::ImageMode; |
|
128 int value; |
|
129 CxeError::Id err = mSettings->get(CxeSettingIds::CAMERA_MODE, value); |
|
130 if (!err) { |
|
131 cameraMode = static_cast<Cxe::CameraMode>(value); |
|
132 } |
|
133 // set current camera mode to devicecontrol. |
|
134 mCameraDeviceControl->setMode(cameraMode); |
|
135 |
128 //! @todo a temporary hack to change the startup sequence to avoid GOOM problems |
136 //! @todo a temporary hack to change the startup sequence to avoid GOOM problems |
129 static_cast<CxeSettingsImp*>(mSettings)->loadSettings(mode()); |
137 static_cast<CxeSettingsImp*>(mSettings)->loadSettings(mode()); |
130 |
138 |
131 |
139 |
132 // Connect P&S key updates to settings signal. |
140 // Connect P&S key updates to settings signal. |
133 connect(settingsStore, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)), |
141 connect(settingsStore, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant)), |
134 mSettings, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant))); |
142 mSettings, SIGNAL(settingValueChanged(long int, unsigned long int, QVariant))); |
135 |
143 |
136 mFeatureManager = new CxeFeatureManagerImp(*mSettingsModel); |
144 mFeatureManager = new CxeFeatureManagerImp(*mSettingsModel); |
151 mode()); |
159 mode()); |
152 |
160 |
153 mViewfinderControl = new CxeViewfinderControlSymbian(*mCameraDevice, |
161 mViewfinderControl = new CxeViewfinderControlSymbian(*mCameraDevice, |
154 *mCameraDeviceControl); |
162 *mCameraDeviceControl); |
155 |
163 |
156 mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice); |
164 mSnapshotControl = new CxeSnapshotControl(*mCameraDevice); |
|
165 |
|
166 mAutoFocusControl = new CxeAutoFocusControlSymbian(*mCameraDevice, |
|
167 *mSettings); |
157 |
168 |
158 mFileSaveThread = CxeFileSaveThreadFactory::createFileSaveThread(); |
169 mFileSaveThread = CxeFileSaveThreadFactory::createFileSaveThread(); |
159 |
170 |
160 mStillCaptureControl = new CxeStillCaptureControlSymbian( |
171 mStillCaptureControl = new CxeStillCaptureControlSymbian( |
161 *mCameraDevice, *mViewfinderControl, *mCameraDeviceControl, |
172 *mCameraDevice, *mViewfinderControl, *mSnapshotControl, *mCameraDeviceControl, |
162 *mFilenameGenerator, *mSensorEventHandler, *mAutoFocusControl, |
173 *mFilenameGenerator, *mSensorEventHandler, *mAutoFocusControl, |
163 *mSettings, *mQualityPresets, *mFileSaveThread, *mDiskMonitor); |
174 *mSettings, *mQualityPresets, *mFileSaveThread, *mDiskMonitor); |
164 |
175 |
165 mZoomControl = new CxeZoomControlSymbian( *mCameraDevice, |
176 mZoomControl = new CxeZoomControlSymbian( |
166 *mCameraDeviceControl, *mSettings, *mFeatureManager); |
177 *mCameraDevice, *mCameraDeviceControl, *mSettings, *mFeatureManager); |
167 |
178 |
168 mVideoCaptureControl = new CxeVideoCaptureControlSymbian( |
179 mVideoCaptureControl = new CxeVideoCaptureControlSymbian( |
169 *mCameraDevice, *mViewfinderControl, *mCameraDeviceControl, |
180 *mCameraDevice, *mViewfinderControl, *mSnapshotControl, *mCameraDeviceControl, |
170 *mFilenameGenerator, *mSettings, *mQualityPresets, *mDiskMonitor); |
181 *mFilenameGenerator, *mSettings, *mQualityPresets, *mDiskMonitor); |
171 |
182 |
172 mSettingsControl = new CxeSettingsControlSymbian(*mCameraDevice, *mSettings); |
183 mSettingsControl = new CxeSettingsControlSymbian(*mCameraDevice, *mSettings); |
173 |
184 |
174 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "e_CX_ENGINE_CREATE_CONTROLS 0"); |
185 mGeoTaggingTrail = new CxeGeoTaggingTrail(*mStillCaptureControl, |
|
186 *mVideoCaptureControl, |
|
187 *mSettings); |
|
188 |
|
189 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CREATECONTROLS_OUT, "msg: e_CX_ENGINE_CREATE_CONTROLS 0"); |
175 } |
190 } |
176 |
191 |
177 CX_DEBUG_EXIT_FUNCTION(); |
192 CX_DEBUG_EXIT_FUNCTION(); |
178 } |
193 } |
179 |
194 |
181 Connect internal signals for control classes |
196 Connect internal signals for control classes |
182 */ |
197 */ |
183 void CxeEngineSymbian::connectSignals() |
198 void CxeEngineSymbian::connectSignals() |
184 { |
199 { |
185 CX_DEBUG_ENTER_FUNCTION(); |
200 CX_DEBUG_ENTER_FUNCTION(); |
186 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "e_CX_ENGINE_CONNECT_SIGNALS 1"); |
201 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_IN, "msg: e_CX_ENGINE_CONNECT_SIGNALS 1"); |
187 |
202 |
188 // enabling scene setting change callbacks to Autofocus control |
203 // enabling scene setting change callbacks to Autofocus control |
189 connect(mSettings, |
204 connect(mSettings, |
190 SIGNAL(sceneChanged(CxeScene&)), |
205 SIGNAL(sceneChanged(CxeScene&)), |
191 mAutoFocusControl, |
206 mAutoFocusControl, |
198 SLOT(handleAutofocusStateChanged(CxeAutoFocusControl::State,CxeError::Id))); |
213 SLOT(handleAutofocusStateChanged(CxeAutoFocusControl::State,CxeError::Id))); |
199 |
214 |
200 // Connect signals for ECam events |
215 // Connect signals for ECam events |
201 connect(mCameraDeviceControl, |
216 connect(mCameraDeviceControl, |
202 SIGNAL(cameraEvent(int,int)), |
217 SIGNAL(cameraEvent(int,int)), |
203 mVideoCaptureControl, |
218 mSnapshotControl, |
204 SLOT(handleCameraEvent(int,int))); |
219 SLOT(handleCameraEvent(int,int))); |
205 |
220 |
206 connect(mCameraDeviceControl, |
221 connect(mCameraDeviceControl, |
207 SIGNAL(cameraEvent(int,int)), |
222 SIGNAL(cameraEvent(int,int)), |
208 mAutoFocusControl, |
223 mAutoFocusControl, |
|
224 SLOT(handleCameraEvent(int,int))); |
|
225 |
|
226 connect(mCameraDeviceControl, |
|
227 SIGNAL(cameraEvent(int,int)), |
|
228 mStillCaptureControl, |
209 SLOT(handleCameraEvent(int,int))); |
229 SLOT(handleCameraEvent(int,int))); |
210 |
230 |
211 // Connect signal for device ready events |
231 // Connect signal for device ready events |
212 connect(mCameraDeviceControl, |
232 connect(mCameraDeviceControl, |
213 SIGNAL(deviceReady()), |
233 SIGNAL(deviceReady()), |
238 SLOT(prepareZoomForVideo())); |
258 SLOT(prepareZoomForVideo())); |
239 |
259 |
240 // Connect file saving thread to snapshot signals and video saved signal. |
260 // Connect file saving thread to snapshot signals and video saved signal. |
241 // Image saving it handles internally. |
261 // Image saving it handles internally. |
242 connect(mStillCaptureControl, |
262 connect(mStillCaptureControl, |
243 SIGNAL(snapshotReady(CxeError::Id, const QPixmap&, int)), |
263 SIGNAL(snapshotReady(CxeError::Id, const QImage&, int)), |
244 mFileSaveThread, |
264 mFileSaveThread, |
245 SLOT(handleSnapshotReady(CxeError::Id, const QPixmap&, int))); |
265 SLOT(handleSnapshotReady(CxeError::Id, const QImage&, int))); |
246 connect(mVideoCaptureControl, |
266 connect(mVideoCaptureControl, |
247 SIGNAL(videoComposed(CxeError::Id, const QString&)), |
267 SIGNAL(videoComposed(CxeError::Id, const QString&)), |
248 mFileSaveThread, |
268 mFileSaveThread, |
249 SLOT(handleVideoSaved(CxeError::Id, const QString&))); |
269 SLOT(handleVideoSaved(CxeError::Id, const QString&))); |
250 connect(mVideoCaptureControl, |
270 connect(mVideoCaptureControl, |
251 SIGNAL(snapshotReady(CxeError::Id, const QPixmap&, const QString&)), |
271 SIGNAL(snapshotReady(CxeError::Id, const QImage&, const QString&)), |
252 mFileSaveThread, |
272 mFileSaveThread, |
253 SLOT(handleSnapshotReady(CxeError::Id, const QPixmap&, const QString&))); |
273 SLOT(handleSnapshotReady(CxeError::Id, const QImage&, const QString&))); |
254 |
274 |
255 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "e_CX_ENGINE_CONNECT_SIGNALS 0"); |
275 |
|
276 // stop location trail when releasing camera. |
|
277 connect(mCameraDevice, |
|
278 SIGNAL(prepareForRelease()), |
|
279 mGeoTaggingTrail, |
|
280 SLOT(stop()), |
|
281 Qt::UniqueConnection); |
|
282 |
|
283 OstTrace0(camerax_performance, CXEENGINESYMBIAN_CONNECTSIGNALS_OUT, "msg: e_CX_ENGINE_CONNECT_SIGNALS 0"); |
256 |
284 |
257 CX_DEBUG_EXIT_FUNCTION(); |
285 CX_DEBUG_EXIT_FUNCTION(); |
258 } |
286 } |
259 |
287 |
260 CxeEngineSymbian::~CxeEngineSymbian() |
288 CxeEngineSymbian::~CxeEngineSymbian() |
261 { |
289 { |
262 CX_DEBUG_ENTER_FUNCTION(); |
290 CX_DEBUG_ENTER_FUNCTION(); |
263 |
291 |
|
292 // Saving current camera mode to cenrep |
|
293 saveMode(); |
|
294 |
|
295 delete mGeoTaggingTrail; |
264 delete mAutoFocusControl; |
296 delete mAutoFocusControl; |
265 delete mZoomControl; |
297 delete mZoomControl; |
266 delete mSettingsControl; |
298 delete mSettingsControl; |
267 delete mStillCaptureControl; |
299 delete mStillCaptureControl; |
268 delete mVideoCaptureControl; |
300 delete mVideoCaptureControl; |
|
301 delete mSnapshotControl; |
269 delete mViewfinderControl; |
302 delete mViewfinderControl; |
270 delete mFilenameGenerator; |
303 delete mFilenameGenerator; |
271 delete mDiskMonitor; |
304 delete mDiskMonitor; |
272 delete mMemoryMonitor; |
305 delete mMemoryMonitor; |
273 delete mFeatureManager; |
306 delete mFeatureManager; |
327 { |
369 { |
328 return *mFeatureManager; |
370 return *mFeatureManager; |
329 } |
371 } |
330 |
372 |
331 /*! |
373 /*! |
332 * Get memory monitor utility handle. |
374 * Returns memory monitor utility handle. |
333 */ |
375 */ |
334 CxeMemoryMonitor &CxeEngineSymbian::memoryMonitor() |
376 CxeMemoryMonitor &CxeEngineSymbian::memoryMonitor() |
335 { |
377 { |
336 return *mMemoryMonitor; |
378 return *mMemoryMonitor; |
337 } |
379 } |
338 |
380 |
339 /* |
381 |
|
382 /*! |
|
383 Returns geotaggingtrail handle |
|
384 */ |
|
385 CxeGeoTaggingTrail &CxeEngineSymbian::geoTaggingTrail() |
|
386 { |
|
387 return *mGeoTaggingTrail; |
|
388 } |
|
389 |
|
390 /*! |
340 * Returns true, if the engine is ready or else false. |
391 * Returns true, if the engine is ready or else false. |
341 */ |
392 */ |
342 bool CxeEngineSymbian::isEngineReady() |
393 bool CxeEngineSymbian::isEngineReady() |
343 { |
394 { |
344 bool ready = false; |
395 bool ready = false; |
362 CxeStillCaptureControl in still image mode). |
413 CxeStillCaptureControl in still image mode). |
363 */ |
414 */ |
364 void CxeEngineSymbian::doInit() |
415 void CxeEngineSymbian::doInit() |
365 { |
416 { |
366 CX_DEBUG_ENTER_FUNCTION(); |
417 CX_DEBUG_ENTER_FUNCTION(); |
367 OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "e_CX_ENGINE_DO_INIT 1"); |
418 OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_IN, "msg: e_CX_ENGINE_DO_INIT 1"); |
368 |
419 |
369 mFilenameGenerator->init(mode()); |
420 mFilenameGenerator->init(mode()); |
370 // load settings whenever we change mode or start camera or switch camera |
421 // load settings whenever we change mode or start camera or switch camera |
371 CxeSettingsImp *settingsImp = qobject_cast<CxeSettingsImp*>(mSettings); |
422 CxeSettingsImp *settingsImp = qobject_cast<CxeSettingsImp*>(mSettings); |
372 if (settingsImp) { |
423 if (settingsImp) { |
373 settingsImp->loadSettings(mode()); |
424 settingsImp->loadSettings(mode()); |
374 } |
425 } |
375 |
426 |
376 |
|
377 if (mode() == Cxe::ImageMode) { |
427 if (mode() == Cxe::ImageMode) { |
|
428 // start geotagging trail in image mode. |
|
429 startGeotaggingTrail(); |
378 mVideoCaptureControl->deinit(); |
430 mVideoCaptureControl->deinit(); |
379 mStillCaptureControl->init(); |
431 mStillCaptureControl->init(); |
380 } else if (mode() == Cxe::VideoMode) { |
432 } else if (mode() == Cxe::VideoMode) { |
381 mStillCaptureControl->deinit(); |
433 mStillCaptureControl->deinit(); |
|
434 if (mGeoTaggingTrail) { |
|
435 // in video mode, Geotagging is not supported for now. |
|
436 mGeoTaggingTrail->stop(); |
|
437 } |
382 mVideoCaptureControl->init(); |
438 mVideoCaptureControl->init(); |
383 } |
439 } |
384 |
440 |
385 OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "e_CX_ENGINE_DO_INIT 0"); |
441 OstTrace0(camerax_performance, CXEENGINESYMBIAN_DOINIT_OUT, "msg: e_CX_ENGINE_DO_INIT 0"); |
386 |
442 |
387 CX_DEBUG_EXIT_FUNCTION(); |
443 CX_DEBUG_EXIT_FUNCTION(); |
388 } |
444 } |
389 |
445 |
|
446 /*! |
|
447 * Returns camera mode. |
|
448 */ |
390 Cxe::CameraMode CxeEngineSymbian::mode() const |
449 Cxe::CameraMode CxeEngineSymbian::mode() const |
391 { |
450 { |
392 return mCameraDeviceControl->mode(); |
451 return mCameraDeviceControl->mode(); |
393 } |
452 } |
394 |
453 |
|
454 /*! |
|
455 * Sets the camera mode. |
|
456 * \parama mode New camera mode |
|
457 */ |
|
458 void CxeEngineSymbian::setMode(Cxe::CameraMode mode) |
|
459 { |
|
460 CX_DEBUG_ENTER_FUNCTION(); |
|
461 mCameraDeviceControl->setMode(mode); |
|
462 CX_DEBUG_EXIT_FUNCTION(); |
|
463 } |
395 /*! |
464 /*! |
396 Check if we need to reserve camera. |
465 Check if we need to reserve camera. |
397 */ |
466 */ |
398 bool CxeEngineSymbian::reserveNeeded() |
467 bool CxeEngineSymbian::reserveNeeded() |
399 { |
468 { |
517 mCameraDeviceControl->reserve(); |
588 mCameraDeviceControl->reserve(); |
518 emit reserveStarted(); |
589 emit reserveStarted(); |
519 CX_DEBUG_EXIT_FUNCTION(); |
590 CX_DEBUG_EXIT_FUNCTION(); |
520 } |
591 } |
521 |
592 |
|
593 |
|
594 /*! |
|
595 * Saves current mode to the cenrep |
|
596 */ |
|
597 void CxeEngineSymbian::saveMode() |
|
598 { |
|
599 CX_DEBUG_ENTER_FUNCTION(); |
|
600 |
|
601 if (mCameraDeviceControl && mSettings) { |
|
602 int value = mCameraDeviceControl->mode(); |
|
603 mSettings->set(CxeSettingIds::CAMERA_MODE, value); |
|
604 } |
|
605 |
|
606 CX_DEBUG_EXIT_FUNCTION(); |
|
607 } |
|
608 |
|
609 |
|
610 /*! |
|
611 * Start geotagging trail. |
|
612 */ |
|
613 void CxeEngineSymbian::startGeotaggingTrail() |
|
614 { |
|
615 CX_DEBUG_ENTER_FUNCTION(); |
|
616 OstTrace0(camerax_performance, CXEENGINE_START_GEO_IN, "msg: e_CX_ENGINE_START_GEOTAGGING 1"); |
|
617 |
|
618 if (mGeoTaggingTrail && mSettings) { |
|
619 // location trail is limited to image mode only for now. |
|
620 int value = Cxe::GeoTaggingDisclaimerDisabled; |
|
621 mSettings->get(CxeSettingIds::GEOTAGGING_DISCLAIMER, value); |
|
622 |
|
623 // we start location trail only when Geotagging First-time-use note is accepted by user. |
|
624 if (value == Cxe::GeoTaggingDisclaimerDisabled) { |
|
625 mGeoTaggingTrail->start(); |
|
626 } |
|
627 } |
|
628 |
|
629 OstTrace0(camerax_performance, CXEENGINE_START_GEO_OUT, "msg: e_CX_ENGINE_START_GEOTAGGING 0"); |
|
630 CX_DEBUG_EXIT_FUNCTION(); |
|
631 } |
|
632 |
522 // End of file |
633 // End of file |