X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flocation_internal.c;h=ede0a44d294feae54f217c7eda03613c4c4e106a;hb=refs%2Fheads%2Ftizen_5.5_mobile_hotfix;hp=0beb7f5c3b6cf74b2af025a0f41f6c5b2068581e;hpb=f79705a60628a82e7995b1380a9318e6901e84ea;p=platform%2Fcore%2Fapi%2Flocation-manager.git diff --git a/src/location_internal.c b/src/location_internal.c index 0beb7f5..ede0a44 100644 --- a/src/location_internal.c +++ b/src/location_internal.c @@ -33,6 +33,7 @@ int __convert_error_code(int code) ret = LOCATIONS_ERROR_INVALID_PARAMETER; msg = "LOCATIONS_ERROR_INVALID_PARAMETER"; break; + //LCOV_EXCL_START case LOCATION_ERROR_NOT_ALLOWED: ret = LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED; msg = "LOCATIONS_ERROR_ACCESSIBILITY_NOT_ALLOWED"; @@ -60,6 +61,7 @@ int __convert_error_code(int code) default: msg = "LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE"; ret = LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE; + //LCOV_EXCL_STOP } if (ret != LOCATIONS_ERROR_NONE) @@ -75,7 +77,7 @@ int __is_gps_supported(void) retval = system_info_get_platform_bool("http://tizen.org/feature/location.gps", &is_supported); if (retval != SYSTEM_INFO_ERROR_NONE) - LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); + LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); //LCOV_EXCL_LINE if (is_supported == false) return LOCATIONS_ERROR_NOT_SUPPORTED; @@ -90,7 +92,7 @@ int __is_gps_satellite_supported(void) retval = system_info_get_platform_bool("http://tizen.org/feature/location.gps.satellite", &is_supported); if (retval != SYSTEM_INFO_ERROR_NONE) - LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); + LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); //LCOV_EXCL_LINE if (is_supported == false) return LOCATIONS_ERROR_NOT_SUPPORTED; @@ -105,21 +107,25 @@ int __is_wps_supported(void) retval = system_info_get_platform_bool("http://tizen.org/feature/location.wps", &is_supported); if (retval != SYSTEM_INFO_ERROR_NONE) + //LCOV_EXCL_START LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); if (is_supported == false) return LOCATIONS_ERROR_NOT_SUPPORTED; return LOCATIONS_ERROR_NONE; + //LCOV_EXCL_STOP } int __is_location_supported(void) { if (__is_gps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED) { + //LCOV_EXCL_START if (__is_wps_supported() == LOCATIONS_ERROR_NOT_SUPPORTED) return LOCATIONS_ERROR_NOT_SUPPORTED; else return LOCATIONS_ERROR_NONE; + //LCOV_EXCL_STOP } return LOCATIONS_ERROR_NONE; @@ -137,7 +143,35 @@ int __is_batch_supported(void) if (is_supported == false) return LOCATIONS_ERROR_NOT_SUPPORTED; - return LOCATIONS_ERROR_NONE; + return LOCATIONS_ERROR_NONE; //LCOV_EXCL_LINE +} + +int __is_fused_supported(void) +{ + bool is_supported = false; + bool is_accelerometer = false; + bool is_gyroscope = false; + int retval = 0; + + retval = system_info_get_platform_bool("http://tizen.org/feature/location.fused", &is_supported); + if (retval != SYSTEM_INFO_ERROR_NONE) + LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); + if (is_supported == false) + return LOCATIONS_ERROR_NOT_SUPPORTED; + + retval = system_info_get_platform_bool("http://tizen.org/feature/sensor.accelerometer", &is_accelerometer); + if (retval != SYSTEM_INFO_ERROR_NONE) + LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); + if (is_accelerometer == false) + return LOCATIONS_ERROR_NOT_SUPPORTED; + + retval = system_info_get_platform_bool("http://tizen.org/feature/sensor.gyroscope", &is_gyroscope); + if (retval != SYSTEM_INFO_ERROR_NONE) + LOCATIONS_LOGW("system_info_get_platform_bool failed: retval = %d", retval); + if (is_gyroscope == false) + return LOCATIONS_ERROR_NOT_SUPPORTED; + + return LOCATIONS_ERROR_NONE; //LCOV_EXCL_LINE } int __set_callback(_location_event_e type, location_manager_h manager, void *callback, void *user_data) @@ -145,8 +179,12 @@ int __set_callback(_location_event_e type, location_manager_h manager, void *cal LOCATIONS_NULL_ARG_CHECK(manager); LOCATIONS_NULL_ARG_CHECK(callback); location_manager_s *handle = (location_manager_s *) manager; - handle->user_cb[type] = callback; - handle->user_data[type] = user_data; + if (handle != NULL){ + handle->user_cb[type] = callback; + handle->user_data[type] = user_data; + } + else + LOCATIONS_LOGE("Null Handle"); LOCATIONS_LOGD("event type : %d", type); return LOCATIONS_ERROR_NONE; } @@ -155,8 +193,12 @@ int __unset_callback(_location_event_e type, location_manager_h manager) { LOCATIONS_NULL_ARG_CHECK(manager); location_manager_s *handle = (location_manager_s *) manager; - handle->user_cb[type] = NULL; - handle->user_data[type] = NULL; + if (handle != NULL){ + handle->user_cb[type] = NULL; + handle->user_data[type] = NULL; + } + else + LOCATIONS_LOGE("Null Handle"); LOCATIONS_LOGD("event type : %d", type); return LOCATIONS_ERROR_NONE; }