23 #include <QMultiMap> |
23 #include <QMultiMap> |
24 #include <QMetaType> |
24 #include <QMetaType> |
25 #include <QString> |
25 #include <QString> |
26 #include <QStringList> |
26 #include <QStringList> |
27 #include <QVariant> |
27 #include <QVariant> |
|
28 #ifdef Q_OS_SYMBIAN |
|
29 #include <ProfileEngineSDKCRKeys.h> |
|
30 #endif |
28 |
31 |
29 #include "xqsettingsmanager.h" // Settings Manager API |
32 #include "xqsettingsmanager.h" // Settings Manager API |
30 #include "xqsettingskey.h" |
33 #include "xqsettingskey.h" |
31 #include "cxesettingscenrepstore.h" |
34 #include "cxesettingscenrepstore.h" |
32 #include "cxenamespace.h" |
35 #include "cxenamespace.h" |
33 #include "cxutils.h" |
36 #include "cxutils.h" |
34 #include "cxenamespace.h" |
37 #include "cxenamespace.h" |
35 #include "cxeerror.h" |
38 #include "cxeerror.h" |
36 #include "cxecenrepkeys.h" |
39 #include "cxecenrepkeys.h" |
37 |
40 |
38 |
41 #include "OstTraceDefinitions.h" |
39 #ifdef Q_OS_SYMBIAN |
42 #ifdef OST_TRACE_COMPILER_IN_USE |
40 #include <ProfileEngineSDKCRKeys.h> |
43 #include "cxesettingscenrepstoreTraces.h" |
41 #endif |
44 #endif |
42 |
45 |
|
46 |
43 using namespace CxeSettingIds; |
47 using namespace CxeSettingIds; |
44 |
48 |
45 |
49 |
46 /*! |
50 /*! |
47 * CxeSettingsCenRepStore::CxeSettingsCenRepStore |
51 * CxeSettingsCenRepStore::CxeSettingsCenRepStore |
48 */ |
52 */ |
49 CxeSettingsCenRepStore::CxeSettingsCenRepStore() |
53 CxeSettingsCenRepStore::CxeSettingsCenRepStore() |
50 { |
54 { |
51 CX_DEBUG_ENTER_FUNCTION(); |
55 CX_DEBUG_ENTER_FUNCTION(); |
|
56 OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_1, "msg: e_CX_SETTINGSSTORE_CREATE 1"); |
52 |
57 |
53 // map keys of type "string" to cenrep ids |
58 // map keys of type "string" to cenrep ids |
54 mapKeys(); |
59 mapKeys(); |
55 |
60 |
56 // we create settings handle, scope user::scope |
61 // we create settings handle, scope user::scope |
57 mSettingsManager = new XQSettingsManager(this); |
62 mSettingsManager = new XQSettingsManager(this); |
58 |
63 |
59 bool ok = false; |
64 bool ok = connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)), |
60 ok = connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)), |
65 this, SLOT(handleValueChanged(XQSettingsKey, QVariant))); |
61 this, SLOT(handleValueChanged(XQSettingsKey, QVariant))); |
66 CX_ASSERT_ALWAYS(ok); |
62 CX_DEBUG_ASSERT(ok); |
|
63 |
67 |
64 CX_DEBUG(("CxeSettingsCenRepStore - mSettingsManager ptr = %d", mSettingsManager)); |
68 CX_DEBUG(("CxeSettingsCenRepStore - mSettingsManager ptr = %d", mSettingsManager)); |
65 |
69 |
|
70 OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_2, "msg: e_CX_SETTINGSSTORE_CREATE 0"); |
66 CX_DEBUG_EXIT_FUNCTION(); |
71 CX_DEBUG_EXIT_FUNCTION(); |
67 } |
72 } |
68 |
73 |
69 |
74 |
70 |
75 |
109 } |
114 } |
110 |
115 |
111 |
116 |
112 |
117 |
113 /*! |
118 /*! |
114 * Reads/loads all run-time settings values from cenrep |
119 * Reads/loads all run-time variation settings values from cenrep |
115 * @param QList<QString> contains list of all runtime key ids which we use to load values from cenrep. |
120 * @param QList<QString> contains list of all variation key ids which we use to load values from cenrep. |
116 * returns: QHash container, "contains" values associated with each key that are read from cenrep |
121 * returns: QHash container, "contains" values associated with each key that are read from cenrep |
117 * NOTE: loading runtime settings should be done only ONCE at start-up. |
122 * NOTE: loading variation settings should be done only ONCE at start-up. |
118 */ |
123 */ |
119 QHash<QString, QVariantList> CxeSettingsCenRepStore::loadRuntimeSettings(QList<QString>& runtimeKeys) |
124 QHash<QString, QVariantList> CxeSettingsCenRepStore::loadVariationSettings(QList<QString>& variationKeys) |
120 { |
125 { |
121 CX_DEBUG_ENTER_FUNCTION(); |
126 CX_DEBUG_ENTER_FUNCTION(); |
|
127 OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_LOADRUNTIME_1, "msg: e_CX_SETTINGSSTORE_LOAD_RUNTIME 1"); |
122 |
128 |
123 QHash<QString, QVariantList> settings; |
129 QHash<QString, QVariantList> settings; |
124 CxeError::Id err = CxeError::None; |
130 CxeError::Id err = CxeError::None; |
125 QVariantList list; |
131 QVariantList list; |
126 QVariant data; |
132 QVariant data; |
127 |
133 |
128 // parsing through the list of run-time keys and reading values from cenrep. |
134 // parsing through the list of run-time variation keys and reading values from cenrep. |
129 foreach (QString key, runtimeKeys) { |
135 foreach (QString key, variationKeys) { |
130 |
136 |
131 // read the data from cenrep |
137 // read the data from cenrep |
132 err = get(key, data); |
138 err = get(key, data); |
133 |
139 |
134 // clear the list |
140 // clear the list |
214 } else { |
221 } else { |
215 keyType = XQSettingsKey::TargetCentralRepository; |
222 keyType = XQSettingsKey::TargetCentralRepository; |
216 } |
223 } |
217 |
224 |
218 XQSettingsKey settingsKey(keyType, uid, key); |
225 XQSettingsKey settingsKey(keyType, uid, key); |
219 CX_DEBUG(("reading values from XQSettingsManager..")); |
226 CX_DEBUG(("reading value from XQSettingsManager..")); |
220 value = mSettingsManager->readItemValue(settingsKey); |
227 value = mSettingsManager->readItemValue(settingsKey); |
221 |
228 |
222 // start monitoring changes for the key |
229 // start monitoring changes for the key |
223 // both P&S and Repository keys are monitored |
230 // both P&S and Repository keys are monitored |
224 bool ok = false; |
231 bool ok = mSettingsManager->startMonitoring(settingsKey); |
225 ok = mSettingsManager->startMonitoring(settingsKey); |
232 if (!ok) { |
226 CX_DEBUG_ASSERT(ok); |
233 XQSettingsManager::Error error = mSettingsManager->error(); |
|
234 CX_DEBUG(("CxeSettingsCenRepStore - got error %d trying to start listening", error)); |
|
235 // If we try to start listening one key more than once, |
|
236 // we get this error. We can safely ignore it. |
|
237 ok = (XQSettingsManager::AlreadyExistsError == error); |
|
238 } |
|
239 CX_ASSERT_ALWAYS(ok); |
227 |
240 |
228 CX_DEBUG_EXIT_FUNCTION(); |
241 CX_DEBUG_EXIT_FUNCTION(); |
229 } |
242 } |
230 |
243 |
231 |
244 |
282 * Maps CxeSettingIds to cenrep key ids that XQSettingsManager understands |
295 * Maps CxeSettingIds to cenrep key ids that XQSettingsManager understands |
283 */ |
296 */ |
284 void CxeSettingsCenRepStore::mapKeys() |
297 void CxeSettingsCenRepStore::mapKeys() |
285 { |
298 { |
286 CX_DEBUG_ENTER_FUNCTION(); |
299 CX_DEBUG_ENTER_FUNCTION(); |
|
300 OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_MAPKEYS_1, "msg: e_CX_SETTINGSSTORE_INIT_MAPPING 1"); |
|
301 |
287 mKeyMapping.clear(); |
302 mKeyMapping.clear(); |
288 |
303 |
289 // mapping setting keys |
304 // mapping setting keys |
290 addKeyMapping(CxeSettingIds::FNAME_FOLDER_SUFFIX, |
305 addKeyMapping(CxeSettingIds::FNAME_FOLDER_SUFFIX, |
291 FileNameSuffixCr, |
306 FileNameSuffixCr, |
320 XQSettingsManager::TypeInt); |
335 XQSettingsManager::TypeInt); |
321 |
336 |
322 addKeyMapping(CxeSettingIds::VIDEO_MUTE_SETTING, |
337 addKeyMapping(CxeSettingIds::VIDEO_MUTE_SETTING, |
323 AudioMuteCr, |
338 AudioMuteCr, |
324 XQSettingsManager::TypeInt); |
339 XQSettingsManager::TypeInt); |
325 |
340 |
326 addKeyMapping(CxeSettingIds::GEOTAGGING, |
341 addKeyMapping(CxeSettingIds::GEOTAGGING, |
327 GeoTaggingCr, |
342 GeoTaggingCr, |
328 XQSettingsManager::TypeInt); |
343 XQSettingsManager::TypeInt); |
329 |
344 |
330 addKeyMapping(CxeSettingIds::FACE_TRACKING, |
345 addKeyMapping(CxeSettingIds::FACE_TRACKING, |
344 XQSettingsManager::TypeInt); |
359 XQSettingsManager::TypeInt); |
345 |
360 |
346 addKeyMapping(CxeSettingIds::CAPTURE_SOUND_ALWAYS_ON, |
361 addKeyMapping(CxeSettingIds::CAPTURE_SOUND_ALWAYS_ON, |
347 CaptureSoundAlwaysOnCr, |
362 CaptureSoundAlwaysOnCr, |
348 XQSettingsManager::TypeInt); |
363 XQSettingsManager::TypeInt); |
349 |
364 |
350 addKeyMapping(CxeSettingIds::CAMERA_MODE, |
365 addKeyMapping(CxeSettingIds::CAMERA_MODE, |
351 CameraModeCr, |
366 CameraModeCr, |
352 XQSettingsManager::TypeInt); |
367 XQSettingsManager::TypeInt); |
353 |
368 |
354 addKeyMapping(CxeSettingIds::GEOTAGGING_DISCLAIMER, |
369 addKeyMapping(CxeSettingIds::GEOTAGGING_DISCLAIMER, |
355 GeoTaggingDisclaimerCr, |
370 GeoTaggingDisclaimerCr, |
356 XQSettingsManager::TypeInt); |
371 XQSettingsManager::TypeInt); |
357 |
372 |
358 // mapping run-time keys |
373 // mapping run-time variation keys |
359 addKeyMapping(CxeRuntimeKeys::PRIMARY_CAMERA_CAPTURE_KEYS, |
374 addKeyMapping(CxeVariationKeys::FREE_MEMORY_LEVELS, |
360 PrimaryCameraCaptureKeysCr, |
|
361 XQSettingsManager::TypeString, |
|
362 true); |
|
363 |
|
364 addKeyMapping(CxeRuntimeKeys::PRIMARY_CAMERA_AUTOFOCUS_KEYS, |
|
365 PrimaryCameraAutofocusKeysCr, |
|
366 XQSettingsManager::TypeString, |
|
367 true); |
|
368 |
|
369 addKeyMapping(CxeRuntimeKeys::SECONDARY_CAMERA_CAPTURE_KEYS, |
|
370 SecondaryCameraCaptureKeysCr, |
|
371 XQSettingsManager::TypeString, |
|
372 true); |
|
373 |
|
374 addKeyMapping(CxeRuntimeKeys::FREE_MEMORY_LEVELS, |
|
375 FreeMemoryLevelsCr, |
375 FreeMemoryLevelsCr, |
376 XQSettingsManager::TypeString, |
376 XQSettingsManager::TypeString, |
377 true); |
377 true); |
378 |
378 |
379 addKeyMapping(CxeRuntimeKeys::STILL_MAX_ZOOM_LIMITS, |
379 addKeyMapping(CxeVariationKeys::STILL_MAX_ZOOM_LIMITS, |
380 StillMaxZoomLimitsCr, |
380 StillMaxZoomLimitsCr, |
381 XQSettingsManager::TypeString, |
381 XQSettingsManager::TypeString, |
382 true); |
382 true); |
383 |
383 |
384 addKeyMapping(CxeRuntimeKeys::VIDEO_MAX_ZOOM_LIMITS, |
384 addKeyMapping(CxeVariationKeys::VIDEO_MAX_ZOOM_LIMITS, |
385 VideoMaxZoomLimitsCr, |
385 VideoMaxZoomLimitsCr, |
386 XQSettingsManager::TypeString, |
386 XQSettingsManager::TypeString, |
387 true); |
387 true); |
388 |
388 |
|
389 OstTrace0(camerax_performance, CXESETTINGSCENREPSTORE_MAPKEYS_2, "msg: e_CX_SETTINGSSTORE_INIT_MAPPING 0"); |
389 CX_DEBUG_EXIT_FUNCTION(); |
390 CX_DEBUG_EXIT_FUNCTION(); |
390 } |
391 } |
391 |
392 |
392 /*! |
393 /*! |
393 * helper method to construct key mappings for each setting key |
394 * helper method to construct key mappings for each setting key |