2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file CmCameraSettingsPresentationModel.cpp
19 * @brief This is the implementation file for CameraSettingsPresentationModel class.
23 #include "CmCameraSettingsPresentationModel.h"
26 using namespace Tizen::App;
27 using namespace Tizen::Base;
28 using namespace Tizen::Io;
29 using namespace Tizen::Media;
30 using namespace Tizen::Graphics;
31 using namespace Tizen::System;
33 static const int DEFAULT_VALUE_ZERO = 0;
34 static const int DEFAULT_VALUE_ONE = 1;
36 const wchar_t* PATH_CAMERA_DEFAULT_SETTINGS = L"data/CameraDefaultSettings.ini";
38 CameraSettingsPresentationModel* CameraSettingsPresentationModel::__pCameraSettingsPresentationModel = null;
40 CameraSettingsPresentationModel::CameraSettingsPresentationModel(void)
41 : __pDefaultCameraRegistry(null)
47 CameraSettingsPresentationModel::~CameraSettingsPresentationModel(void)
51 if (__pDefaultCameraRegistry !=null)
53 delete __pDefaultCameraRegistry;
59 CameraSettingsPresentationModel*
60 CameraSettingsPresentationModel::GetInstance(void)
63 if (__pCameraSettingsPresentationModel == null)
65 AppLogDebug("CameraSettingsPresentationModel GetInstance");
71 return __pCameraSettingsPresentationModel;
75 CameraSettingsPresentationModel::CreateInstance(void)
78 __pCameraSettingsPresentationModel = new (std::nothrow) CameraSettingsPresentationModel();
80 result r = __pCameraSettingsPresentationModel->Construct();
84 delete __pCameraSettingsPresentationModel;
85 __pCameraSettingsPresentationModel = null;
89 // std::atexit(DestroyInstance);
94 CameraSettingsPresentationModel::DestroyInstance(void)
97 delete __pCameraSettingsPresentationModel;
98 __pCameraSettingsPresentationModel = null;
103 CameraSettingsPresentationModel::GetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName, int& value) const
105 AppLogDebug("ENTER");
106 result r = E_SUCCESS;
107 String pathCameraDefaultSetting = App::GetInstance()->GetAppRootPath() + PATH_CAMERA_DEFAULT_SETTINGS;
109 AppLogDebug("EntryName of registry is %ls",entryName.GetPointer());
110 AppLogDebug("Entry value of registry is %d",value);
111 AppLogDebug("section name is %ls",strSectionName.GetPointer());
113 r = __pDefaultCameraRegistry->GetValue(strSectionName, entryName, value);
114 TryCatch(r == E_SUCCESS, , "Registry::GetValue() failed[%s]", GetErrorMessage(r));
120 AppLogDebug("CATCH - GetValue");
121 if (File::IsFileExist(pathCameraDefaultSetting))
123 r = File::Remove(pathCameraDefaultSetting);
127 AppLogDebug("File:: Remove[%s]", GetErrorMessage(r));
128 UiApp::GetInstance()->Terminate();
132 if (__pDefaultCameraRegistry )
134 delete __pDefaultCameraRegistry;
135 __pDefaultCameraRegistry = null;
138 r = __pCameraSettingsPresentationModel->Construct();
139 AppLogDebug("Construct:: failed[%s]", GetErrorMessage(r));
141 if (__pDefaultCameraRegistry)
143 r = __pDefaultCameraRegistry->GetValue(strSectionName, entryName, value);
144 AppLogDebug("GetValue:: failed[%s]", GetErrorMessage(r));
147 AppLogDebug("Exit with Error[%s]", GetErrorMessage(r));
152 CameraSettingsPresentationModel::SetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName, const int value)
154 AppLogDebug("ENTER");
155 result r = E_SUCCESS;
157 AppLogDebug("EntryName of registry is %ls",entryName.GetPointer());
158 AppLogDebug("Entry value of registry is %d",value);
159 AppLogDebug("SetValue set value to registry");
161 TryCatch(__pDefaultCameraRegistry!=null, r= E_FAILURE, "Camera App Registry is NULL");
163 r = __pDefaultCameraRegistry->SetValue(strSectionName, entryName, value);
164 AppLogDebug("Registry Setvalue result is %s",GetErrorMessage(r));
168 r = __pDefaultCameraRegistry->AddSection(strSectionName);
169 AppLogDebug("Registry addsection result is %s",GetErrorMessage(r));
170 r = __pDefaultCameraRegistry->AddValue(strSectionName, entryName, value);
171 AppLogDebug("Registry addvalue result is %s",GetErrorMessage(r));
172 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
179 AppLogDebug("EXIT : Error Code : %s", GetErrorMessage(r));
185 CameraSettingsPresentationModel::Construct(void)
187 AppLogDebug("ENTER");
188 result r = E_SUCCESS;
190 r = CreateRegistry();
191 TryCatch(r==E_SUCCESS,,"Registry creation failed");
192 AppLogDebug("Exit [%s]", GetErrorMessage(r));
196 AppLogDebug("Exit with error [%s]", GetErrorMessage(r));
199 RemoveDefaultRegistry();
201 if (__pDefaultCameraRegistry )
203 delete __pDefaultCameraRegistry;
204 __pDefaultCameraRegistry = null;
210 CameraSettingsPresentationModel::ResetCameraSettingsRegistry(void)
212 AppLogDebug("ENTER");
213 result r = E_SUCCESS;
215 r = CreateRegistry(true);
216 TryCatch(r == E_SUCCESS, , "CameraSettingsPresentationModel::Construct() failed[%s]", GetErrorMessage(r));
221 AppLogDebug("EXIT-with Error Message %s", GetErrorMessage(r));
226 CameraSettingsPresentationModel::DestroyCameraSettingInstance(void)
228 AppLogDebug("ENTER");
229 CameraSettingsPresentationModel* pCameraSettingsPresentationModel = CameraSettingsPresentationModel::GetInstance();
231 delete pCameraSettingsPresentationModel;
236 CameraSettingsPresentationModel::RemoveDefaultRegistry(void)
238 result r = E_SUCCESS;
239 String pathCameraDefaultSetting = App::GetInstance()->GetAppRootPath() + PATH_CAMERA_DEFAULT_SETTINGS;
241 if(__pDefaultCameraRegistry!=null)
243 __pDefaultCameraRegistry->Remove(pathCameraDefaultSetting);
250 CameraSettingsPresentationModel::CreateRegistry(bool bResetSettings)
252 AppLogDebug("ENTER : %d ", bResetSettings);
253 result r = E_SUCCESS;
254 String pathCameraDefaultSetting = App::GetInstance()->GetAppRootPath() + PATH_CAMERA_DEFAULT_SETTINGS;
258 if (File::IsFileExist(pathCameraDefaultSetting))
260 r = File::Remove(pathCameraDefaultSetting);
263 //UiApp::GetInstance()->Terminate();
264 if (__pDefaultCameraRegistry !=null)
266 delete __pDefaultCameraRegistry;
267 __pDefaultCameraRegistry = null;
273 if (__pDefaultCameraRegistry !=null)
275 delete __pDefaultCameraRegistry;
276 __pDefaultCameraRegistry = null;
280 if ( File::IsFileExist(pathCameraDefaultSetting))
282 AppLogDebug("Default Settings file still exists %d ", File::IsFileExist(pathCameraDefaultSetting));
286 if ( __pDefaultCameraRegistry==null )
287 __pDefaultCameraRegistry = new (std::nothrow) Registry();
290 delete __pDefaultCameraRegistry;
291 __pDefaultCameraRegistry = null;
294 TryCatch(__pDefaultCameraRegistry!=null,,"Default registry can not be created!");
298 if( __pDefaultCameraRegistry== null )
299 __pDefaultCameraRegistry = new (std::nothrow) Registry();
301 TryCatch(__pDefaultCameraRegistry!=null,,"Default registry can not be created!");
303 if (File::IsFileExist(pathCameraDefaultSetting))
305 r = __pDefaultCameraRegistry->Construct(pathCameraDefaultSetting, false);
308 r = File::Remove(pathCameraDefaultSetting);
310 delete __pDefaultCameraRegistry;
311 __pDefaultCameraRegistry = null;
317 AppLogDebug("RegistryFile already exists. No need to create it again, open it to read!");
323 r = __pDefaultCameraRegistry->Construct(pathCameraDefaultSetting, true);
324 TryCatch(r == E_SUCCESS, , "Default registry construct failed [%s]", GetErrorMessage(r));
326 r = __pDefaultCameraRegistry->AddSection(SECTION_CAMERA);
327 TryCatch(r == E_SUCCESS, , "Registry::AddSection() failed[%s]", GetErrorMessage(r));
329 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, CURRENT_MODE, DEFAULT_VALUE_ZERO);
330 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
332 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, FLASH_MODE_PRIMARY, DEFAULT_VALUE_ONE);
333 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
335 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, FLASH_MODE_SECONDARY, DEFAULT_VALUE_ZERO);
336 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
338 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, SELF_PORTRAIT_ENABLE, DEFAULT_VALUE_ZERO);
339 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
341 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, SHOOTING_MODE, DEFAULT_VALUE_ZERO);
342 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
344 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, EXPOSURE_VALUE, EXPOSURE_DEFAULT_VALUE);
345 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
347 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, BRIGHTNESS_VALUE, BRIGHTNESS_DEFAULT_VALUE);
348 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
350 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, TIMER_INTERVAL, DEFAULT_VALUE_ZERO);
351 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
353 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, ISO_VALUE, DEFAULT_VALUE_ZERO);
354 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
356 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, WHITE_BALANCE_TYPE_PRIMARY, DEFAULT_VALUE_ZERO);
357 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
359 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, WHITE_BALANCE_TYPE_SECONDARY, DEFAULT_VALUE_ZERO);
360 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
362 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, EXPOSURE_METERING_TYPE, DEFAULT_VALUE_ONE);
363 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
365 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, GEO_TAGGING_ENABLE, DEFAULT_VALUE_ZERO);
366 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
368 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, GUIDELINE_ENABLE, DEFAULT_VALUE_ZERO);
369 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
371 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, STORAGE_TYPE, DEFAULT_VALUE_ZERO);
372 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
374 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, RECORDING_MODE, DEFAULT_VALUE_ZERO);
375 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
377 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, OVERLAY_HELP_ENABLE, DEFAULT_VALUE_ZERO);
378 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
380 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, PRIMARY_RESOLUTION_INDEX, DEFAULT_VALUE_ZERO);
381 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
383 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMERA, SECONDARY_RESOLUTION_INDEX, DEFAULT_VALUE_ZERO);
384 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
386 r = __pDefaultCameraRegistry->AddSection(SECTION_CAMCORDER);
387 TryCatch(r == E_SUCCESS, , "Registry::AddSection() failed[%s]", GetErrorMessage(r));
389 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, FLASH_MODE_PRIMARY, DEFAULT_VALUE_ONE);
390 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
392 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, FLASH_MODE_SECONDARY, DEFAULT_VALUE_ZERO);
393 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
395 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, SELF_PORTRAIT_ENABLE, DEFAULT_VALUE_ZERO);
396 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
398 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, SHOOTING_MODE, DEFAULT_VALUE_ZERO);
399 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
401 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, EXPOSURE_VALUE, EXPOSURE_DEFAULT_VALUE);
402 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
404 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, BRIGHTNESS_VALUE, BRIGHTNESS_DEFAULT_VALUE);
405 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
407 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, TIMER_INTERVAL, DEFAULT_VALUE_ZERO);
408 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
410 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, ISO_VALUE, DEFAULT_VALUE_ZERO);
411 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
413 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, WHITE_BALANCE_TYPE_PRIMARY, DEFAULT_VALUE_ZERO);
414 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
416 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, WHITE_BALANCE_TYPE_SECONDARY, DEFAULT_VALUE_ZERO);
417 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
419 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, EXPOSURE_METERING_TYPE, DEFAULT_VALUE_ONE);
420 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
422 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, GEO_TAGGING_ENABLE, DEFAULT_VALUE_ZERO);
423 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
425 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, GUIDELINE_ENABLE, DEFAULT_VALUE_ZERO);
426 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
428 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, STORAGE_TYPE, DEFAULT_VALUE_ZERO);
429 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
431 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, RECORDING_MODE, DEFAULT_VALUE_ZERO);
432 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
434 r = __pDefaultCameraRegistry->AddValue(SECTION_CAMCORDER, OVERLAY_HELP_ENABLE, DEFAULT_VALUE_ZERO);
435 TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
437 if (!(CmUtility::GetAvailableMemory() < MIN_MEMORY_NEEDED))
439 r = __pDefaultCameraRegistry->Flush();
440 TryCatch(r == E_SUCCESS, , "Registry::Flush() failed[%s]", GetErrorMessage(r));
446 AppLogDebug("Exit with Error [%s]", GetErrorMessage(r));