summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS2
-rwxr-xr-xCMakeLists.txt42
-rw-r--r--Makefile.am2
-rwxr-xr-xTC/_export_env.sh8
-rw-r--r--TC/_export_target_env.sh7
-rwxr-xr-xTC/build.sh16
-rw-r--r--TC/config2
-rwxr-xr-xTC/excute.sh16
-rwxr-xr-xTC/making_new_tet_scen.py69
-rw-r--r--TC/tet_scen33
-rw-r--r--TC/tetbuild.cfg5
-rw-r--r--TC/tetclean.cfg5
-rw-r--r--TC/tetexec.cfg5
-rw-r--r--TC/unit/Makefile72
-rw-r--r--TC/unit/stc_gps_nmea.c175
-rw-r--r--TC/unit/stc_gps_position.c197
-rw-r--r--TC/unit/stc_gps_satellite.c177
-rw-r--r--TC/unit/stc_gps_velocity.c186
-rw-r--r--TC/unit/stc_gps_zone.c306
-rw-r--r--TC/unit/tslist28
-rw-r--r--TC/unit/utc_location_free.c85
-rw-r--r--TC/unit/utc_location_get_address.c119
-rw-r--r--TC/unit/utc_location_get_address_from_position.c126
-rw-r--r--TC/unit/utc_location_get_last_known_position.c76
-rw-r--r--TC/unit/utc_location_get_last_position.c100
-rw-r--r--TC/unit/utc_location_get_last_satellite.c89
-rw-r--r--TC/unit/utc_location_get_last_velocity.c105
-rw-r--r--TC/unit/utc_location_get_position.c128
-rw-r--r--TC/unit/utc_location_get_position_from_address.c153
-rw-r--r--TC/unit/utc_location_get_position_from_freeformed_address.c148
-rw-r--r--TC/unit/utc_location_get_satellite.c112
-rw-r--r--TC/unit/utc_location_get_velocity.c128
-rw-r--r--TC/unit/utc_location_init.c55
-rw-r--r--TC/unit/utc_location_new.c70
-rw-r--r--TC/unit/utc_location_search_poi.c400
-rw-r--r--TC/unit/utc_location_start.c76
-rw-r--r--TC/unit/utc_location_stop.c78
-rw-r--r--TC/unit/utc_properties_boundary.c114
-rw-r--r--TC/unit/utc_properties_method.c60
-rw-r--r--TC/unit/utc_signals_service_disabled.c91
-rw-r--r--TC/unit/utc_signals_service_enabled.c81
-rw-r--r--TC/unit/utc_signals_service_updated.c83
-rw-r--r--TC/unit/utc_signals_zone_in.c93
-rw-r--r--TC/unit/utc_signals_zone_out.c95
-rw-r--r--[-rwxr-xr-x]configure.ac45
-rw-r--r--debian/changelog620
-rw-r--r--debian/compat1
-rwxr-xr-xdebian/control31
-rw-r--r--debian/libslp-location-dev.install3
-rw-r--r--debian/libslp-location.install1
-rwxr-xr-xdebian/libslp-location.postinst38
-rwxr-xr-xdebian/rules121
-rwxr-xr-ximage/SLP_Location_PG.h6
-rw-r--r--libslp-location.manifest5
-rw-r--r--location.pc.in12
-rw-r--r--location/CMakeLists.txt86
-rw-r--r--[-rwxr-xr-x]location/Makefile.am33
-rw-r--r--location/include/location-log.h34
-rw-r--r--location/include/location-map-types.h166
-rwxr-xr-x[-rw-r--r--]location/include/location-types.h79
-rw-r--r--location/manager/Makefile.am83
-rwxr-xr-x[-rw-r--r--]location/manager/location-accuracy.c26
-rw-r--r--location/manager/location-accuracy.h72
-rwxr-xr-xlocation/manager/location-batch.c197
-rw-r--r--location/manager/location-batch.h90
-rwxr-xr-x[-rw-r--r--]location/manager/location-boundary.c128
-rw-r--r--location/manager/location-boundary.h111
-rwxr-xr-x[-rw-r--r--]location/manager/location-common-util.c142
-rw-r--r--location/manager/location-common-util.h32
-rw-r--r--location/manager/location-cps.c672
-rw-r--r--location/manager/location-cps.h64
-rwxr-xr-x[-rw-r--r--]location/manager/location-gps.c768
-rw-r--r--location/manager/location-gps.h29
-rwxr-xr-x[-rw-r--r--]location/manager/location-hybrid.c413
-rw-r--r--location/manager/location-hybrid.h27
-rwxr-xr-x[-rw-r--r--]location/manager/location-ielement.c98
-rw-r--r--location/manager/location-ielement.h46
-rw-r--r--location/manager/location-marshal.list2
-rwxr-xr-x[-rw-r--r--]location/manager/location-position.c16
-rw-r--r--location/manager/location-position.h70
-rwxr-xr-xlocation/manager/location-privacy.c353
-rwxr-xr-x[-rw-r--r--]location/manager/location-privacy.h (renamed from location/map-service/location-geocode.c)19
-rwxr-xr-x[-rw-r--r--]location/manager/location-satellite.c8
-rw-r--r--location/manager/location-satellite.h72
-rw-r--r--location/manager/location-setting.c34
-rw-r--r--location/manager/location-setting.h26
-rwxr-xr-x[-rw-r--r--]location/manager/location-signaling-util.c155
-rw-r--r--location/manager/location-signaling-util.h34
-rwxr-xr-x[-rw-r--r--]location/manager/location-velocity.c8
-rw-r--r--location/manager/location-velocity.h54
-rwxr-xr-x[-rw-r--r--]location/manager/location-wps.c522
-rw-r--r--location/manager/location-wps.h29
-rwxr-xr-x[-rw-r--r--]location/manager/location.c512
-rwxr-xr-x[-rw-r--r--]location/manager/location.h283
-rw-r--r--location/map-service/Makefile.am28
-rw-r--r--location/map-service/location-address.c90
-rw-r--r--location/map-service/location-address.h101
-rw-r--r--location/map-service/location-geocode.h39
-rw-r--r--location/map-service/location-landmark-ext.h247
-rw-r--r--location/map-service/location-landmark.c528
-rw-r--r--location/map-service/location-landmark.h147
-rw-r--r--location/map-service/location-map-ielement.c265
-rw-r--r--location/map-service/location-map-ielement.h101
-rw-r--r--location/map-service/location-map-pref.c222
-rw-r--r--location/map-service/location-map-pref.h116
-rw-r--r--location/map-service/location-map-service-ext.h40
-rw-r--r--location/map-service/location-map-service.c384
-rw-r--r--location/map-service/location-map-service.h1287
-rw-r--r--location/map-service/location-poi.c289
-rw-r--r--location/map-service/location-poi.h282
-rw-r--r--location/map-service/location-route-ext.h380
-rw-r--r--location/map-service/location-route.c1372
-rw-r--r--location/map-service/location-route.h873
-rw-r--r--location/map-service/map-internal.c241
-rw-r--r--location/map-service/map-internal.h82
-rw-r--r--location/map-service/map-service.c340
-rw-r--r--location/map-service/map-service.h71
-rw-r--r--location/module/Makefile.am37
-rw-r--r--location/module/location-module.h88
-rw-r--r--location/module/module-internal.c226
-rw-r--r--location/module/module-internal.h23
-rw-r--r--packaging/libslp-location.spec104
-rw-r--r--tests/Makefile.am16
-rw-r--r--tests/address-sample.c27
-rw-r--r--tests/cps-test.c67
-rw-r--r--tests/gps-test.c34
-rw-r--r--tests/hybrid-test.c18
-rw-r--r--tests/location-api-test-util.c8
-rw-r--r--tests/location-api-test-util.h6
-rw-r--r--tests/location-api-test.c139
-rw-r--r--tests/location-api-test.json2
-rw-r--r--tests/map-service-test.c861
-rw-r--r--tests/nmea-sample.c6
-rw-r--r--tests/position-sample-gps.c6
-rw-r--r--tests/property-sample.c20
-rw-r--r--tests/satellite-sample.c6
-rw-r--r--tests/velocity-sample.c6
-rw-r--r--tests/wps-test.c12
-rw-r--r--tests/zone-sample.c22
139 files changed, 4694 insertions, 15059 deletions
diff --git a/AUTHORS b/AUTHORS
index cc7be1c..a879250 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,3 +1,3 @@
Youngae Kang <youngae.kang@samsung.com>
-Yunhan Kim <yhan.kim@samsung.com>
+Minjune Kim <sena06.kim@samsung.com>
Genie Kim <daejins.kim@samsung.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755
index 0000000..71c8ab4
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,42 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(slp-location C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(LIBDIR "\${prefix}/lib")
+SET(INCLUDEDIR "\${prefix}/include")
+
+# Set required packages
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED glib-2.0 gthread-2.0 gobject-2.0 gmodule-2.0
+ capi-appfw-app-manager capi-appfw-package-manager pkgmgr-info
+ privacy-manager-client dlog vconf json-glib-1.0 lbs-dbus)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs -fvisibility=hidden ")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wextra -fvisibility=hidden -fPIC")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter -Wno-missing-field-initializers -Wno-missing-declarations -Wall -Wcast-align -Wno-sign-compare")
+
+ADD_DEFINITIONS("-DFEATURE_DLOG_DEBUG")
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS(" -DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" ")
+
+MESSAGE(${CMAKE_C_FLAGS})
+MESSAGE(${CMAKE_EXE_LINKER_FLAGS})
+
+# pkgconfig file
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+
+CONFIGURE_FILE(location.pc.in location.pc @ONLY)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/location.pc DESTINATION lib/pkgconfig)
+
+#INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME liblbs-dbus)
+
+ADD_SUBDIRECTORY(location)
+#ADD_SUBDIRECTORY(tests)
diff --git a/Makefile.am b/Makefile.am
index f227da9..847e20c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
ACLOCAL_AMFLAGS=-I m4
-SUBDIRS=location
+SUBDIRS=location tests
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = location.pc
diff --git a/TC/_export_env.sh b/TC/_export_env.sh
deleted file mode 100755
index 72a11ec..0000000
--- a/TC/_export_env.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-. ./config
-export TET_INSTALL_PATH=$TET_INSTALL_HOST_PATH # tetware root path
-export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target # tetware target path
-export PATH=$TET_TARGET_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH
-export TET_ROOT=$TET_TARGET_PATH
diff --git a/TC/_export_target_env.sh b/TC/_export_target_env.sh
deleted file mode 100644
index 5ddaa53..0000000
--- a/TC/_export_target_env.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-. ./config
-export TET_INSTALL_PATH=$TET_INSTALL_TARGET_PATH # path to path
-export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target
-export PATH=$TET_TARGET_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH
-export TET_ROOT=$TET_TARGET_PATH
diff --git a/TC/build.sh b/TC/build.sh
deleted file mode 100755
index 72aad6c..0000000
--- a/TC/build.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. ./_export_env.sh # setting environment variables
-
-export TET_SUITE_ROOT=`pwd`
-FILE_NAME_EXTENSION=`date +%s`
-
-RESULT_DIR=results
-HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html
-JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal
-
-mkdir -p $RESULT_DIR
-
-tcc -c -p ./
-tcc -b -j $JOURNAL_RESULT -p ./
-grw -c 7 -f chtml -o $HTML_RESULT $JOURNAL_RESULT
diff --git a/TC/config b/TC/config
deleted file mode 100644
index ba387c7..0000000
--- a/TC/config
+++ /dev/null
@@ -1,2 +0,0 @@
-TET_INSTALL_HOST_PATH=/home/june/SBS2/work/tetware/TETware
-TET_INSTALL_TARGET_PATH=/mnt/nfs/SBS2/work/tetware/TETware
diff --git a/TC/excute.sh b/TC/excute.sh
deleted file mode 100755
index 2c6167e..0000000
--- a/TC/excute.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-. ./_export_target_env.sh # setting environment variables
-
-echo PATH=$PATH
-echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH
-echo TET_ROOT=$TET_ROOT
-echo TET_SUITE_ROOT=$TET_SUITE_ROOT
-echo ARCH=$ARCH
-
-RESULT_DIR=results-$ARCH
-HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html
-JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal
-
-mkdir $RESULT_DIR
-
-tcc -e -j $JOURNAL_RESULT -p ./ # executing tcc, with –e option
-grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT # reporting the result
diff --git a/TC/making_new_tet_scen.py b/TC/making_new_tet_scen.py
deleted file mode 100755
index 6c5b845..0000000
--- a/TC/making_new_tet_scen.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/python
-
-#############################################
-# tet_scen auto generator
-#
-# ** argv[1] = TC root
-#############################################
-
-import sys,string,os
-
-
-write_file = open("tet_scen", 'w')
-
-#
-# making new tet_scen
-#
-def making_tet_scen (filename):
- #tmp_list = filename.strip().split('/')
- n_filename = filename.replace(' ', '\\ ')
- #print n_filename
- #new_path = "/"+ sys.argv[1] +"/"+n_filename[2:-6]
- new_path = "/"+n_filename[:-6]
- #print new_path
- file = open(filename, 'r')
- lines = file.readlines()
- for line in lines:
- if len(line.strip()) > 1:
- list = line.strip().split('/')
- #print new_path + list[-1]
- write_file.write("\t"+new_path+list[-1]+"\n")
-
-#
-# usage()
-#
-def usage():
- print(" ")
- print("./making_new_tet_scen.py tc_root")
- print("Put the Test Case's root directory.")
- print("Do not include '/' at the end")
- print(" ")
-
-#
-# main()
-#
-def main():
- if len(sys.argv) < 2:
- usage()
- sys.exit(0)
-
- os.system('find '+ sys.argv[1] +' -name "tslist" > tslist.txt')
-
- #write_file = open("tetscen", w)
- write_file.write("# auto generated tet_scen\n")
- write_file.write("all\n")
- write_file.write("\t\"Starting Full Test Suite\"\n")
-
- for file in open("tslist.txt", 'r'):
- #print file.strip()
- making_tet_scen(file.strip())
-
- write_file.write("\t\"Completed Full Test Suite\"\n")
- write_file.write("# EOF\n")
- write_file.close()
- print(" ")
- print("==============================")
- print("New tet_scen file is made~~~~")
- print("==============================")
- print(" ")
-main()
diff --git a/TC/tet_scen b/TC/tet_scen
deleted file mode 100644
index bf662fc..0000000
--- a/TC/tet_scen
+++ /dev/null
@@ -1,33 +0,0 @@
-# auto generated tet_scen
-all
- "Starting Full Test Suite"
- /unit/stc_gps_nmea
- /unit/stc_gps_position
- /unit/stc_gps_satellite
- /unit/stc_gps_velocity
- /unit/stc_gps_zone
- /unit/utc_location_free
- /unit/utc_location_get_address
- /unit/utc_location_get_last_known_position
- /unit/utc_location_get_address_from_position
- /unit/utc_location_get_position_from_address
- /unit/utc_location_get_position_from_freeformed_address
- /unit/utc_location_get_position
- /unit/utc_location_get_last_position
- /unit/utc_location_get_velocity
- /unit/utc_location_get_last_velocity
- /unit/utc_location_get_satellite
- /unit/utc_location_get_last_satellite
- /unit/utc_location_search_poi
- /unit/utc_location_init
- /unit/utc_location_new
- /unit/utc_location_start
- /unit/utc_location_stop
- /unit/utc_properties_method
- /unit/utc_signals_service_disabled
- /unit/utc_signals_service_enabled
- /unit/utc_signals_service_updated
- /unit/utc_signals_zone_in
- /unit/utc_signals_zone_out
- "Completed Full Test Suite"
-# EOF
diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg
deleted file mode 100644
index f7eda55..0000000
--- a/TC/tetbuild.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capture option for build operation checking
-TET_BUILD_TOOL=make # build with using make command
-TET_BUILD_FILE=-f Makefile # execution file (Makefile) for build
-TET_API_COMPLIANT=True # use TET API in Test Case ?
-TET_PASS_TC_NAME=True # report passed TC name in Journal file?
diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg
deleted file mode 100644
index 02d7030..0000000
--- a/TC/tetclean.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capture option
-TET_CLEAN_TOOL= make clean # clean tool
-TET_CLEAN_FILE= Makefile # file for clean
-TET_API_COMPLIANT=True # TET API useage
-TET_PASS_TC_NAME=True # showing name , passed TC
diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg
deleted file mode 100644
index ef3e452..0000000
--- a/TC/tetexec.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-TET_OUTPUT_CAPTURE=True # capturing execution or not
-TET_EXEC_TOOL= # ex) exec : execution tool set up/ Optional
-TET_EXEC_FILE= # ex) exectool : execution file/ Optional
-TET_API_COMPLIANT=True # Test case or Tool usesTET API?
-TET_PASS_TC_NAME=True # showing Passed TC name ?
diff --git a/TC/unit/Makefile b/TC/unit/Makefile
deleted file mode 100644
index 62fc0c8..0000000
--- a/TC/unit/Makefile
+++ /dev/null
@@ -1,72 +0,0 @@
-###################################################
-# add your TestCase List Here
-#
-# e.g.,
-# TC1 = utc_frameworkName_apiName_func
-# TC2 = utc_ApplicationLib_recurGetDayOfWeek_func
-TC1 = stc_gps_position
-TC2 = stc_gps_velocity
-TC3 = stc_gps_satellite
-TC4 = stc_gps_nmea
-TC5 = stc_gps_zone
-TC6 = utc_location_init
-TC7 = utc_location_new
-TC8 = utc_location_start
-TC9 = utc_location_stop
-TC10 = utc_location_free
-TC11 = utc_location_get_position
-TC12 = utc_location_get_last_position
-TC13 = utc_location_get_last_known_position
-TC14 = utc_location_get_velocity
-TC15 = utc_location_get_last_velocity
-TC16 = utc_location_get_satellite
-TC17 = utc_location_get_last_satellite
-TC18 = utc_properties_method
-TC19 = utc_signals_service_disabled
-TC20 = utc_signals_service_enabled
-TC21 = utc_signals_service_updated
-TC22 = utc_signals_zone_in
-TC23 = utc_signals_zone_out
-TC24 = utc_location_get_address
-TC25 = utc_location_get_address_from_position
-TC26 = utc_location_get_position_from_address
-TC27 = utc_location_get_position_from_freeformed_address
-TC28 = utc_location_search_poi
-
-#
-# add your Package Config Info Here
-#
-# e.g.,
-# PKGS=calendar
-PKGS= gconf-2.0 network vconf location
-
-LDLIBS = $(TET_ROOT)/lib/tet3/tcm_s.o
-LDLIBS += -L$(TET_ROOT)/lib/tet3 -ltcm_s
-LDLIBS += -L$(TET_ROOT)/lib/tet3 -lapi_s
-LDLIBS += `pkg-config --libs $(PKGS)`
-
-TTLIBS = $(TET_ROOT)/lib/tet3/tcm_s.o
-TTLIBS += -L$(TET_ROOT)/lib/tet3 -ltcm_s
-TTLIBS += -L$(TET_ROOT)/lib/tet3 -lapi_s
-TTLIBS += `pkg-config --libs $(PKGS)`
-
-CC = gcc
-INCS = -I$(TET_ROOT)/inc/tet3
-INCS += -I.`pkg-config --cflags $(PKGS)`
-CFLAGS = -Wall -D_TETWARE_MODE
-CFLAGS += $(INCS)
-
-###################################################
-# Modify here
-# depending on the Test Case you want to build
-#
-# e.g.,
-#
-TCLIST = $(TC1) $(TC2) $(TC3) $(TC4) $(TC5) $(TC6) $(TC7) $(TC8) $(TC9) $(TC10) $(TC11) $(TC12) $(TC13) $(TC14) $(TC16) $(TC17) $(TC18) $(TC19) $(TC20) $(TC21) $(TC22) $(TC23) $(TC24) $(TC25) $(TC26) $(TC27) $(TC28)
-
-all: $(TCLIST)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
-
-clean:
- rm -f $(TCLIST)
- rm -f *.o
diff --git a/TC/unit/stc_gps_nmea.c b/TC/unit/stc_gps_nmea.c
deleted file mode 100644
index 1b0578e..0000000
--- a/TC/unit/stc_gps_nmea.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-static void utc_location_new();
-static void utc_location_start();
-static void utc_get_method();
-static void utc_get_devname();
-static void utc_location_get_nmea();
-static void utc_location_svc_disabled();
-static void utc_location_free();
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {utc_location_new,1},
- {utc_location_start,1},
- {utc_get_method,1},
- {utc_get_devname,1},
- {utc_location_get_nmea,1},
- {utc_location_svc_disabled,1},
- {utc_location_free,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-
-static void startup()
-{
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_new()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if (loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_start()
-{
- ret = location_start(loc);
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
- if (LOCATION_METHOD_HYBRID <= method && method<= LOCATION_METHOD_WPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_devname()
-{
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
- if(devname){
- tet_result(TET_PASS);
- g_free(devname);
- } else tet_result(TET_FAIL);
-}
-
-static void
-_get_nmea (GObject *self,
- guint _status,
- gpointer userdata)
-{
- char* nmea_data;
- g_object_get(loc, "nmea", &nmea_data, NULL);
- if (nmea_data) {
- tet_result(TET_PASS);
- g_free(nmea_data);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_nmea()
-{
- loop = g_main_loop_new (NULL, TRUE);
- g_signal_connect (loc, "service-updated", G_CALLBACK(_get_nmea), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-_cb_disabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- if( LOCATION_STATUS_NO_FIX <= _status && _status <= LOCATION_STATUS_3D_FIX) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-gboolean
-_stop_location()
-{
- location_stop(loc);
- return FALSE;
-}
-
-static void
-utc_location_svc_disabled()
-{
- g_signal_connect (loc, "service-disabled", G_CALLBACK(_cb_disabled), loc);
- g_timeout_add_seconds(1, _stop_location, NULL);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-
-}
-
-static void
-utc_location_free()
-{
- ret = location_free(loc);
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/stc_gps_position.c b/TC/unit/stc_gps_position.c
deleted file mode 100644
index bb91dfe..0000000
--- a/TC/unit/stc_gps_position.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-static void utc_location_new();
-static void utc_location_start();
-static void utc_get_method();
-static void utc_get_devname();
-static void utc_location_get_position();
-static void utc_location_svc_updated();
-static void utc_location_stop();
-static void utc_get_lastpostion();
-static void utc_location_free();
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {utc_location_new,1},
- {utc_location_start,1},
- {utc_get_method,1},
- {utc_get_devname,1},
- {utc_location_get_position,1},
- {utc_location_svc_updated,1},
- {utc_location_stop,1},
- {utc_get_lastpostion,1},
- {utc_location_free,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-
-static void startup()
-{
- tet_printf("\n TC startup");
- loop = g_main_loop_new (NULL, TRUE);
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_new()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if (loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_start()
-{
- ret = location_start(loc);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
-
- if(LOCATION_METHOD_HYBRID <= method && method<= LOCATION_METHOD_WPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_devname()
-{
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
-
- if (devname) {
- tet_result(TET_PASS);
- g_free(devname);
- } else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_lastpostion()
-{
- LocationPosition *pos = NULL;
- g_object_get(loc, "last-position", &pos, NULL);
-
- if (pos) {
- tet_result(TET_PASS);
- location_position_free (pos);
- } else tet_result(TET_FAIL);
-}
-
-static void
-_get_position (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationAccuracy *acc = NULL;
- LocationPosition *pos = NULL;
- LocationObject *loc = (LocationObject*)userdata;
-
- ret = location_get_position (loc, &pos, &acc);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_position()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_position), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_stop()
-{
- ret = location_stop(loc);
-
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-_cb_updated (GObject *self,
- guint type,
- gpointer data,
- gpointer accuracy,
- gpointer userdata)
-{
- if ( POSITION_UPDATED <= type && type <= REVERSEGEOCODE_UPDATED) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_svc_updated()
-{
- g_signal_connect (loc, "service-updated", G_CALLBACK(_cb_updated), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_free()
-{
- ret = location_free(loc);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/stc_gps_satellite.c b/TC/unit/stc_gps_satellite.c
deleted file mode 100644
index 780d5b3..0000000
--- a/TC/unit/stc_gps_satellite.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-static void utc_location_new();
-static void utc_location_start();
-static void utc_get_method();
-static void utc_get_devname();
-static void utc_location_get_satellite();
-static void utc_location_svc_disabled();
-static void utc_location_free();
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {utc_location_new,1},
- {utc_location_start,1},
- {utc_get_method,1},
- {utc_get_devname,1},
- {utc_location_get_satellite,1},
- {utc_location_svc_disabled,1},
- {utc_location_free,1},
- {NULL,0},
-};
-
-
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_new()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if(loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_start()
-{
- ret = location_start(loc);
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
- if (LOCATION_METHOD_HYBRID <= method && method<= LOCATION_METHOD_WPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_devname()
-{
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- tet_result(TET_PASS);
- g_free(devname);
- } else tet_result(TET_FAIL);
-}
-
-static void
-_get_satellite (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationSatellite *sat = NULL;
- int ret = 0;
-
- ret = location_get_satellite (loc, &sat);
- if (ret == LOCATION_ERROR_NONE) {
- tet_result(TET_PASS);
- location_satellite_free (sat);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_satellite()
-{
- loop = g_main_loop_new (NULL, TRUE);
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_satellite), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-_cb_disabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- if( LOCATION_STATUS_NO_FIX <= _status && _status <= LOCATION_STATUS_3D_FIX) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-gboolean
-_stop_location()
-{
- location_stop(loc);
- return FALSE;
-}
-
-static void
-utc_location_svc_disabled()
-{
- g_signal_connect (loc, "service-disabled", G_CALLBACK(_cb_disabled), loc);
- g_timeout_add_seconds(1, _stop_location, NULL);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_free()
-{
- ret = location_free(loc);
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/stc_gps_velocity.c b/TC/unit/stc_gps_velocity.c
deleted file mode 100644
index 0f175d9..0000000
--- a/TC/unit/stc_gps_velocity.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-static void utc_location_new();
-static void utc_location_start();
-static void utc_get_method();
-static void utc_get_devname();
-static void utc_location_get_velocity();
-static void utc_location_stop();
-static void utc_location_svc_updated();
-static void utc_location_free();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {utc_location_new,1},
- {utc_location_start,1},
- {utc_get_method,1},
- {utc_get_devname,1},
- {utc_location_get_velocity,1},
- {utc_location_svc_updated,1},
- {utc_location_stop,1},
- {utc_location_free,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_new()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if (loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_start()
-{
- ret = location_start(loc);
-
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
-
- if (LOCATION_METHOD_HYBRID <= method && method<= LOCATION_METHOD_WPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_devname()
-{
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
-
- if(devname){
- tet_result(TET_PASS);
- g_free(devname);
- } else tet_result(TET_FAIL);
-}
-
-static void
-_get_velocity (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationVelocity *vel = NULL;
- LocationAccuracy *acc = NULL;
- LocationObject *loc = (LocationObject*)userdata;
-
- ret = location_get_velocity (loc, &vel, &acc);
- if (ret == LOCATION_ERROR_NONE) {
- location_velocity_free (vel);
- location_accuracy_free (acc);
- tet_result(TET_PASS);
- }
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_velocity()
-{
- loop = g_main_loop_new (NULL, TRUE);
-
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_velocity), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_stop()
-{
- ret = location_stop(loc);
-
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-_cb_updated (GObject *self,
- guint type,
- gpointer data,
- gpointer accuracy,
- gpointer userdata)
-{
- if ( POSITION_UPDATED <= type && type <= REVERSEGEOCODE_UPDATED) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_svc_updated()
-{
- g_signal_connect (loc, "service-updated", G_CALLBACK(_cb_updated), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_free()
-{
- ret = location_free(loc);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/stc_gps_zone.c b/TC/unit/stc_gps_zone.c
deleted file mode 100644
index 11d8150..0000000
--- a/TC/unit/stc_gps_zone.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static gboolean g_is_found = FALSE;
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-static void utc_location_new();
-static void utc_location_start();
-static void utc_get_method();
-static void utc_get_devname();
-static void utc_location_svc_enabled();
-static void utc_set_boundary_in_suwonHQ();
-static void utc_get_boundary_in_suwonHQ();
-static void utc_zone_in();
-static void utc_set_boundary_in_Santorini();
-static void utc_get_boundary_in_Santorini();
-static void utc_zone_out();
-static void utc_location_stop();
-static void utc_location_free();
-
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {utc_location_new,1},
- {utc_location_start,1},
- {utc_get_method,1},
- {utc_get_devname,1},
- {utc_location_svc_enabled,1},
- {utc_set_boundary_in_suwonHQ,1},
- {utc_get_boundary_in_suwonHQ,1},
- {utc_zone_in,1},
- {utc_set_boundary_in_Santorini,1},
- {utc_get_boundary_in_Santorini,1},
- {utc_zone_out,1},
- {utc_location_stop,1},
- {utc_location_free,1},
- {NULL,0},
-};
-
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static void comp_boundary(LocationBoundary *bound, gpointer user_data)
-{
- LocationBoundary *check_bound = (LocationBoundary *) user_data;
-
- if(bound && bound->type == check_bound->type) {
- switch(bound->type) {
- case LOCATION_BOUNDARY_RECT:
- if(bound->rect.right_bottom->latitude == check_bound->rect.right_bottom->latitude &&
- bound->rect.right_bottom->longitude == check_bound->rect.right_bottom->longitude &&
- bound->rect.left_top->latitude == check_bound->rect.left_top->latitude &&
- bound->rect.left_top->longitude == check_bound->rect.left_top->longitude ){
- g_is_found = TRUE;
- }
- break;
- default:
- break;
- }
- }
-}
-
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- tet_printf("\n TC startup");
- loop = g_main_loop_new (NULL, TRUE);
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_new()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if(loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_start()
-{
- ret = location_start(loc);
-
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
-
- if(LOCATION_METHOD_HYBRID <= method && method<= LOCATION_METHOD_WPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_get_devname()
-{
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
-
- if(devname){
- tet_result(TET_PASS);
- g_free(devname);
- } else tet_result(TET_FAIL);
-}
-
-static void
-_cb_svc_enabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- if(LOCATION_STATUS_NO_FIX <= _status && _status <= LOCATION_STATUS_3D_FIX) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit(loop);
-}
-
-
-static void
-utc_location_svc_enabled()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_cb_svc_enabled), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_set_boundary_in_suwonHQ()
-{
- int ret = 0;
- LocationPosition *rb = location_position_new(0, 37.253, 127.058, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 37.261, 127.052, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary *bound = location_boundary_new_for_rect(lt, rb);
- location_position_free (rb);
- location_position_free (lt);
- ret = location_boundary_add(loc, bound);
- if (!ret) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- location_boundary_free (bound);
-}
-
-static void
-utc_get_boundary_in_suwonHQ()
-{
- LocationPosition *rb = location_position_new(0, 37.253, 127.058, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 37.261, 127.052, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary *bound = location_boundary_new_for_rect(lt, rb);
- location_position_free (rb);
- location_position_free (lt);
-
- g_is_found = FALSE;
- location_boundary_foreach(loc, comp_boundary, bound);
- if(g_is_found) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- location_boundary_free (bound);
-}
-
-static void
-_cb_zone_in(LocationObject *self,
- guint type,
- gpointer position,
- gpointer accuracy)
-{
- LocationPosition *pos = (LocationPosition*) position;
- if( (37.253 <= pos->latitude && pos->latitude <= 37.261) &&
- (127.052 <= pos->longitude && pos->longitude <= 127.058) ) {
- tet_result(TET_PASS); // I am in Suwon HQ
- } else tet_result(TET_FAIL);
-
- g_main_loop_quit(loop);
-}
-
-static void
-utc_zone_in()
-{
- g_signal_connect (loc, "zone-in", G_CALLBACK(_cb_zone_in), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_set_boundary_in_Santorini()
-{
- int ret = 0;
- LocationPosition *rb = location_position_new(0, 36.395, 25.41, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 36.413, 25.388, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
- location_position_free (rb);
- location_position_free (lt);
-
- ret = location_boundary_add(loc, bound);
- if (!ret) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- location_boundary_free (bound);
-}
-
-static void
-utc_get_boundary_in_Santorini()
-{
- LocationPosition *rb = location_position_new(0, 36.395, 25.41, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 36.413, 25.388, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
- location_position_free (rb);
- location_position_free (lt);
-
- g_is_found = FALSE;
- location_boundary_foreach(loc, comp_boundary, bound);
- if(g_is_found) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- location_boundary_free (bound);
-}
-
-static void
-_cb_zone_out(LocationObject *self,
- guint type,
- gpointer position,
- gpointer accuracy)
-{
- LocationPosition *pos = (LocationPosition*) position;
-
- if( (37.253 <= pos->latitude && pos->latitude <= 37.261) &&
- (27.052 <= pos->longitude && pos->longitude <= 127.058) ) {
- tet_result(TET_PASS); // I am in Suwon HQ
- } else tet_result(TET_FAIL);
- g_main_loop_quit(loop);
-}
-
-
-static void
-utc_zone_out()
-{
- g_signal_connect (loc, "zone-out", G_CALLBACK(_cb_zone_out), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_stop()
-{
- ret = location_stop(loc);
-
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_free()
-{
- ret = location_free(loc);
- if(ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/tslist b/TC/unit/tslist
deleted file mode 100644
index 6cf5690..0000000
--- a/TC/unit/tslist
+++ /dev/null
@@ -1,28 +0,0 @@
-stc_gps_nmea
-stc_gps_position
-stc_gps_satellite
-stc_gps_velocity
-stc_gps_zone
-utc_location_free
-utc_location_get_address
-utc_location_get_last_known_position
-utc_location_get_address_from_position
-utc_location_get_position_from_address
-utc_location_get_position_from_freeformed_address
-utc_location_get_position
-utc_location_get_last_position
-utc_location_get_velocity
-utc_location_get_last_velocity
-utc_location_get_satellite
-utc_location_get_last_satellite
-utc_location_search_poi
-utc_location_init
-utc_location_new
-utc_location_start
-utc_location_stop
-utc_properties_method
-utc_signals_service_disabled
-utc_signals_service_enabled
-utc_signals_service_updated
-utc_signals_zone_in
-utc_signals_zone_out
diff --git a/TC/unit/utc_location_free.c b/TC/unit/utc_location_free.c
deleted file mode 100644
index e107106..0000000
--- a/TC/unit/utc_location_free.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_free_01();
-static void utc_location_free_02();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_free_01,1},
- {utc_location_free_02,2},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- ret = location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- if(loc)
- location_free(loc);
-
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_free_01()
-{
- ret = location_free(loc);
-
- tet_printf("Returned value: %d", ret);
- if(ret == LOCATION_ERROR_NONE){
- tet_result(TET_PASS);
- loc = NULL;
- }
- else{
- tet_result(TET_FAIL);
- }
-}
-
-static void
-utc_location_free_02()
-{
- ret = location_free(NULL);
-
- tet_printf("Returned value: %d", ret);
- if(ret == LOCATION_ERROR_PARAMETER){
- tet_result(TET_PASS);
- }
- else{
- tet_result(TET_FAIL);
- }
-}
-
diff --git a/TC/unit/utc_location_get_address.c b/TC/unit/utc_location_get_address.c
deleted file mode 100644
index b069288..0000000
--- a/TC/unit/utc_location_get_address.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_address_01();
-static void utc_location_get_address_02();
-static void utc_location_get_address_03();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_address_01,1},
- {utc_location_get_address_02,2},
- {utc_location_get_address_03,3},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-LocationObject* loc = NULL;
-int ret = LOCATION_ERROR_NONE;
-int isNetStarted = 0;
-
-static gboolean
-exit_loop_fail (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
-
- loop = g_main_loop_new(NULL,FALSE);
-
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-_get_address (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
-
- ret = location_get_address(loc, &addr, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE ||
- ret == LOCATION_ERROR_CONFIGURATION) {
- location_address_free(addr);
- location_accuracy_free(acc);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_address_01()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_address), loc);
- location_start(loc);
- g_timeout_add_seconds(60, exit_loop_fail, loop);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_get_address_02()
-{
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
-
- ret = location_get_address(NULL, &addr, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_address_03()
-{
- LocationAccuracy *acc = NULL;
- ret = location_get_address(loc, NULL, &acc);
- tet_printf("Returned value: %d", ret);
- if(ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_address_from_position.c b/TC/unit/utc_location_get_address_from_position.c
deleted file mode 100644
index cb16f38..0000000
--- a/TC/unit/utc_location_get_address_from_position.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_address_from_position_01();
-static void utc_location_get_address_from_position_02();
-static void utc_location_get_address_from_position_03();
-static void utc_location_get_address_from_position_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_address_from_position_01,1},
- {utc_location_get_address_from_position_02,2},
- {utc_location_get_address_from_position_03,3},
- {utc_location_get_address_from_position_04,4},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-LocationObject* loc;
-int ret;
-int isNetStarted = 0;
-int g_state = 0;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
-
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_get_address_from_position_01()
-{
- LocationPosition *pos = location_position_new(0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
- ret = location_get_address_from_position(loc, pos, &addr, &acc);
- location_position_free(pos);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE ||
- ret == LOCATION_ERROR_CONFIGURATION) {
- location_address_free(addr);
- location_accuracy_free(acc);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_address_from_position_02()
-{
- LocationPosition *pos = location_position_new(0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
-
- ret = location_get_address_from_position(NULL, pos, &addr, &acc);
- location_position_free(pos);
- location_address_free(addr);
- location_accuracy_free(acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
- static void
-utc_location_get_address_from_position_03()
-{
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
- ret = location_get_address_from_position(loc, NULL, &addr, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
- static void
-utc_location_get_address_from_position_04()
-{
- LocationAccuracy *acc = NULL;
- LocationPosition *pos = location_position_new(0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_get_address_from_position(loc, pos, NULL, &acc);
- location_position_free(pos);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_last_known_position.c b/TC/unit/utc_location_get_last_known_position.c
deleted file mode 100644
index ae1fda3..0000000
--- a/TC/unit/utc_location_get_last_known_position.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_last_known_position_01();
-static void utc_location_get_last_known_position_02();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_last_known_position_01,1},
- {utc_location_get_last_known_position_02,2},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- ret = location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- if( loc )
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_get_last_known_position_01()
-{
- int ret = 0;
- LocationLastPosition last_known_position = {0, };
-
- ret = location_get_last_known_position(loc, LOCATION_METHOD_HYBRID, &last_known_position);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_known_position_02()
-{
- int ret = 0;
- LocationLastPosition last_known_position = {0, };
- ret = location_get_last_known_position(NULL, LOCATION_METHOD_HYBRID, &last_known_position);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
diff --git a/TC/unit/utc_location_get_last_position.c b/TC/unit/utc_location_get_last_position.c
deleted file mode 100644
index 59c3b1d..0000000
--- a/TC/unit/utc_location_get_last_position.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_last_position_01();
-static void utc_location_get_last_position_02();
-static void utc_location_get_last_position_03();
-static void utc_location_get_last_position_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_last_position_01,1},
- {utc_location_get_last_position_02,2},
- {utc_location_get_last_position_03,3},
- {utc_location_get_last_position_04,4},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_get_last_position_01()
-{
- LocationPosition *last_pos = NULL;
- LocationAccuracy *last_acc = NULL;
-
- ret = location_get_last_position (loc, LOCATION_METHOD_GPS, &last_pos, &last_acc);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_position_02()
-{
- LocationAccuracy *last_acc = NULL;
- LocationPosition *last_pos = NULL;
-
- ret = location_get_last_position (NULL, LOCATION_METHOD_HYBRID, &last_pos, &last_acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_position_03()
-{
- LocationAccuracy *last_acc = NULL;
- ret = location_get_last_position (loc, LOCATION_METHOD_GPS, NULL, &last_acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_position_04()
-{
- LocationPosition *last_pos = NULL;
- ret = location_get_last_position (loc, LOCATION_METHOD_GPS, &last_pos, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_last_satellite.c b/TC/unit/utc_location_get_last_satellite.c
deleted file mode 100644
index 48ed49f..0000000
--- a/TC/unit/utc_location_get_last_satellite.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_last_satellite_01();
-static void utc_location_get_last_satellite_02();
-static void utc_location_get_last_satellite_03();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_last_satellite_01,1},
- {utc_location_get_last_satellite_02,2},
- {utc_location_get_last_satellite_03,3},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_get_last_satellite_01()
-{
- int ret = 0;
- LocationSatellite *last_sat = NULL;
-
- ret = location_get_last_satellite (loc, &last_sat);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- location_satellite_free(last_sat);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
-
-}
-
-static void
-utc_location_get_last_satellite_02()
-{
- LocationSatellite *last_sat = NULL;
- ret = location_get_last_satellite (NULL, &last_sat);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_satellite_03()
-{
- ret = location_get_last_satellite (loc, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_last_velocity.c b/TC/unit/utc_location_get_last_velocity.c
deleted file mode 100644
index 74d0e01..0000000
--- a/TC/unit/utc_location_get_last_velocity.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_last_velocity_01();
-static void utc_location_get_last_velocity_02();
-static void utc_location_get_last_velocity_03();
-static void utc_location_get_last_velocity_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_last_velocity_01,1},
- {utc_location_get_last_velocity_02,2},
- {utc_location_get_last_velocity_03,3},
- {utc_location_get_last_velocity_04,4},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-
-static void
-utc_location_get_last_velocity_01()
-{
- LocationVelocity *last_vel = NULL;
- LocationAccuracy *last_acc = NULL;
- ret = location_get_last_velocity (loc, &last_vel, &last_acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- location_velocity_free (last_vel);
- location_accuracy_free (last_acc);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
-
-}
-
-
-static void
-utc_location_get_last_velocity_02()
-{
- LocationVelocity *last_vel = NULL;
- LocationAccuracy *last_acc = NULL;
- ret = location_get_last_velocity (NULL, &last_vel, &last_acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_velocity_03()
-{
- LocationAccuracy *last_acc = NULL;
- ret = location_get_velocity (loc, NULL, &last_acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_last_velocity_04()
-{
- LocationVelocity *last_vel = NULL;
- ret = location_get_velocity (loc, &last_vel, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_position.c b/TC/unit/utc_location_get_position.c
deleted file mode 100644
index 3590fff..0000000
--- a/TC/unit/utc_location_get_position.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_position_01();
-static void utc_location_get_position_02();
-static void utc_location_get_position_03();
-static void utc_location_get_position_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_position_01,1},
- {utc_location_get_position_02,2},
- {utc_location_get_position_03,3},
- {utc_location_get_position_04,4},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-_get_position (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationAccuracy *acc = NULL;
- LocationPosition *pos = NULL;
- LocationObject *loc = (LocationObject*)userdata;
-
- ret = location_get_position (loc, &pos, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- location_position_free (pos);
- location_accuracy_free (acc);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_position_01()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_position), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_get_position_02()
-{
- LocationAccuracy *acc = NULL;
- LocationPosition *pos = NULL;
-
- ret = location_get_position (NULL, &pos, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_03()
-{
- LocationAccuracy *acc = NULL;
- ret = location_get_position (loc, NULL, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_04()
-{
- LocationPosition *pos = NULL;
- ret = location_get_position (loc, &pos, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_position_from_address.c b/TC/unit/utc_location_get_position_from_address.c
deleted file mode 100644
index a3c5e6e..0000000
--- a/TC/unit/utc_location_get_position_from_address.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <gconf/gconf-client.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_position_from_address_01();
-static void utc_location_get_position_from_address_02();
-static void utc_location_get_position_from_address_03();
-static void utc_location_get_position_from_address_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_position_from_address_01,1},
- {utc_location_get_position_from_address_02,2},
- {utc_location_get_position_from_address_03,3},
- {utc_location_get_position_from_address_04,4},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-LocationObject* loc;
-int ret;
-int isNetStarted = 0;
-int g_state = 0;
-gboolean is_found = FALSE;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
-
- loop = g_main_loop_new(NULL,FALSE);
-
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void comp_position (gpointer data, gpointer user_data)
-{
- if (!data) return;
-
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- if (37.325276 <= pos->latitude && pos->latitude <= 37.345276 &&
- -121.900059 <= pos->longitude && pos->longitude<= -121.880059) {
- is_found = TRUE;
- }
-
- location_position_free(pos);
- }
-}
-
-static void free_accuracy (gpointer data, gpointer user_data)
-{
- if (!data) return;
-
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) location_accuracy_free(acc);
-}
-
-static void
-utc_location_get_position_from_address_01()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- ret = location_get_position_from_address (loc, addr, &pos_list, &acc_list);
- location_address_free(addr);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- is_found = FALSE;
- g_list_foreach (pos_list, comp_position, NULL);
- g_list_foreach (acc_list, free_accuracy, NULL);
- if (is_found)
- tet_result(TET_PASS);
- else
- tet_result(TET_FAIL);
- } else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_address_02()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- ret = location_get_position_from_address (NULL, addr, &pos_list, &acc_list);
- location_address_free(addr);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_address_03()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- ret = location_get_position_from_address(loc, NULL, &pos_list, &acc_list);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_address_04()
-{
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- GList *acc_list = NULL;
- ret = location_get_position_from_address(loc, addr, NULL, &acc_list);
- location_address_free (addr);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_position_from_freeformed_address.c b/TC/unit/utc_location_get_position_from_freeformed_address.c
deleted file mode 100644
index 6496db8..0000000
--- a/TC/unit/utc_location_get_position_from_freeformed_address.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_position_from_freeformed_address_01();
-static void utc_location_get_position_from_freeformed_address_02();
-static void utc_location_get_position_from_freeformed_address_03();
-static void utc_location_get_position_from_freeformed_address_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_position_from_freeformed_address_01,1},
- {utc_location_get_position_from_freeformed_address_02,2},
- {utc_location_get_position_from_freeformed_address_03,3},
- {utc_location_get_position_from_freeformed_address_04,4},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-LocationObject* loc;
-int ret;
-int isNetStarted = 0;
-gboolean is_found = FALSE;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
-
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void comp_position (gpointer data, gpointer user_data)
-{
- if (!data) return;
- LocationPosition *pos = (LocationPosition *)data;
- if (pos) {
- if (37.325276 <= pos->latitude && pos->latitude <= 37.345276 &&
- -121.900059 <= pos->longitude && pos->longitude<= -121.880059) {
- is_found = TRUE;
- }
- location_position_free (pos);
- }
-}
-
-static void free_accuracy (gpointer data, gpointer user_data)
-{
- if (!data) return;
-
- LocationAccuracy *acc = (LocationAccuracy *)data;
- if (acc) location_accuracy_free(acc);
-}
-
-static void
-utc_location_get_position_from_freeformed_address_01()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- char* addr_str = g_strdup("4 N 2nd Street 95113");
- ret = location_get_position_from_freeformed_address(loc, addr_str, &pos_list, &acc_list);
- g_free(addr_str);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE ) {
- g_list_foreach (pos_list, comp_position, NULL);
- g_list_foreach (acc_list, free_accuracy, NULL);
- if (is_found == TRUE)
- tet_result(TET_PASS);
- else
- tet_result(TET_FAIL);
- }
- else
- tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_freeformed_address_02()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- char* addr_str = g_strdup("4 N 2nd Street 95113");
- ret = location_get_position_from_freeformed_address(NULL, addr_str, &pos_list, &acc_list);
- g_free(addr_str);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_freeformed_address_03()
-{
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- ret = location_get_position_from_freeformed_address(loc, NULL, &pos_list, &acc_list);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_position_from_freeformed_address_04()
-{
- GList *acc_list = NULL;
- char* addr_str = g_strdup("4 N 2nd Street 95113");
- ret = location_get_position_from_freeformed_address(loc, addr_str, NULL, &acc_list);
- g_free (addr_str);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
diff --git a/TC/unit/utc_location_get_satellite.c b/TC/unit/utc_location_get_satellite.c
deleted file mode 100644
index 3f906a0..0000000
--- a/TC/unit/utc_location_get_satellite.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_satellite_01();
-static void utc_location_get_satellite_02();
-static void utc_location_get_satellite_03();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_satellite_01,1},
- {utc_location_get_satellite_02,2},
- {utc_location_get_satellite_03,3},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-_get_satellite (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationSatellite *sat = NULL;
- LocationObject *loc = (LocationObject*)userdata;
-
- ret = location_get_satellite (loc, &sat);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- location_satellite_free(sat);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_satellite_01()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_satellite), loc);
- g_timeout_add_seconds(60, exit_loop, loop);
- g_main_loop_run (loop);
-}
-
-static void
-utc_location_get_satellite_02()
-{
- LocationSatellite *sat = NULL;
- ret = location_get_satellite (NULL, &sat);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_satellite_03()
-{
- LocationSatellite *sat = NULL;
- ret = location_get_satellite (loc, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_get_velocity.c b/TC/unit/utc_location_get_velocity.c
deleted file mode 100644
index cd4c803..0000000
--- a/TC/unit/utc_location_get_velocity.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_get_velocity_01();
-static void utc_location_get_velocity_02();
-static void utc_location_get_velocity_03();
-static void utc_location_get_velocity_04();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_get_velocity_01,1},
- {utc_location_get_velocity_02,2},
- {utc_location_get_velocity_03,3},
- {utc_location_get_velocity_04,4},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-
-static void
-_get_velocity (GObject *self,
- guint _status,
- gpointer userdata)
-{
- LocationVelocity *vel = NULL;
- LocationAccuracy *acc = NULL;
- LocationObject *loc = (LocationObject*)userdata;
- ret = location_get_velocity (loc, &vel, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) {
- location_velocity_free (vel);
- location_accuracy_free (acc);
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_get_velocity_01()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_get_velocity), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
-
-
-static void
-utc_location_get_velocity_02()
-{
- LocationVelocity *vel = NULL;
- LocationAccuracy *acc = NULL;
- ret = location_get_velocity (NULL, &vel, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_velocity_03()
-{
- LocationAccuracy *acc = NULL;
- ret = location_get_velocity (loc, NULL, &acc);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_get_velocity_04()
-{
- LocationVelocity *vel = NULL;
- ret = location_get_velocity (loc, &vel, NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_init.c b/TC/unit/utc_location_init.c
deleted file mode 100644
index a0efe5a..0000000
--- a/TC/unit/utc_location_init.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_init();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_init,1},
- {NULL,0},
-};
-
-int ret;
-
-static void startup()
-{
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_init()
-{
- ret = location_init();
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_location_new.c b/TC/unit/utc_location_new.c
deleted file mode 100644
index ee33c6b..0000000
--- a/TC/unit/utc_location_new.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_new_01();
-static void utc_location_new_02();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_new_01,1},
- {utc_location_new_02,1},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- ret = location_init();
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- if (loc) location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_new_01()
-{
- loc = location_new(LOCATION_METHOD_GPS);
- if (loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- location_free(loc);
-}
-
-static void
-utc_location_new_02()
-{
- loc = location_new(-1);
- if (!loc) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
diff --git a/TC/unit/utc_location_search_poi.c b/TC/unit/utc_location_search_poi.c
deleted file mode 100644
index ce84a31..0000000
--- a/TC/unit/utc_location_search_poi.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-#include <location-map-service.h>
-#include <location-landmark-ext.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_search_poi_01();
-static void utc_location_search_poi_02();
-static void utc_location_search_poi_03();
-static void utc_location_search_poi_04();
-static void utc_location_search_poi_05();
-static void utc_location_search_poi_06();
-static void utc_location_search_poi_07();
-static void utc_location_search_poi_08();
-static void utc_location_search_poi_09();
-static void utc_location_search_poi_10();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_search_poi_01,1},
- {utc_location_search_poi_02,2},
- {utc_location_search_poi_03,3},
- {utc_location_search_poi_04,4},
- {utc_location_search_poi_05,5},
- {utc_location_search_poi_06,6},
- {utc_location_search_poi_07,7},
- {utc_location_search_poi_08,8},
- {utc_location_search_poi_09,9},
- {utc_location_search_poi_10,10},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-LocationObject* loc;
-int ret;
-int isNetStarted = 0;
-
-static gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- return FALSE;
-}
-
-static gboolean
-exit_loop_fail (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
-
- loop = g_main_loop_new(NULL,FALSE);
- g_main_loop_run (loop);
-
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void __location_POI_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- tet_printf("\n===== __location_POI_cb ======\n");
- if (error != LOCATION_ERROR_NONE) {
- tet_result(TET_FAIL);
- tet_printf("Failed :%d\n", error);
- }
-
- if (landmark_list) tet_result(TET_PASS);
- g_main_loop_quit (loop);
-}
-
-
-static void
-utc_location_search_poi_01()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("Keyword-cafe, Max - 10 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("KEYWORD");
- gchar *value = g_strdup("cafe");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 10);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_DESC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret != LOCATION_ERROR_NONE) {
- tet_result(TET_FAIL);
- tet_printf("Fail to search POI. Error[%d]\n", ret);
- } else {
- g_timeout_add_seconds(60, exit_loop_fail, NULL);
- tet_printf("Seach POI sucess, req_id %d\n", req_id);
- }
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_02()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("Category-restaurant, Max - 10 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("CATEGORY");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 10);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_DESC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret != LOCATION_ERROR_NONE) {
- tet_result(TET_FAIL);
- tet_printf("Fail to search POI. Error[%d]\n", ret);
- } else {
- g_timeout_add_seconds(60, exit_loop_fail, NULL);
- tet_printf("Seach POI sucess, req_id %d\n", req_id);
- }
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_03()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-cafe, Max - 20 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("cafe");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 20);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret != LOCATION_ERROR_NONE) {
- tet_result(TET_FAIL);
- tet_printf("Fail to search POI. Error[%d]\n", ret);
- } else {
- g_timeout_add_seconds(60, exit_loop_fail, NULL);
- tet_printf("Seach POI sucess, req_id %d\n", req_id);
- }
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_04()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret != LOCATION_ERROR_NONE) {
- tet_result(TET_FAIL);
- tet_printf("Fail to search POI. Error[%d]\n", ret);
- } else {
- g_timeout_add_seconds(60, exit_loop_fail, NULL);
- tet_printf("Seach POI sucess, req_id %d\n", req_id);
- }
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_05()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(NULL, filter, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_06()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, NULL, position, pref, __location_POI_cb, NULL, &req_id);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_07()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, NULL, __location_POI_cb, NULL, &req_id);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
- location_poi_filter_free(filter);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_08()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_search_poi(loc, filter, NULL, pref, __location_POI_cb, NULL, &req_id);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
-}
-
-static void
-utc_location_search_poi_09()
-{
- guint req_id = 0;
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, NULL, NULL, &req_id);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
-
-static void
-utc_location_search_poi_10()
-{
- int ret = 0;
- tet_printf("POIName-restaurant, Max - 50 and sort by Distance");
- LocationPOIFilter *filter = location_poi_filter_new();
- gchar *key = g_strdup("POIName");
- gchar *value = g_strdup("restaurant");
- location_poi_filter_set(filter, key, value);
-
- LocationPOIPreference *pref = location_poi_pref_new();
- location_poi_pref_set_max_result(pref, 50);
- gchar *item = g_strdup("Distance");
- location_poi_pref_set_sort_by(pref, item);
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- LocationPosition *position = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
-
- ret = location_search_poi(loc, filter, position, pref, __location_POI_cb, NULL, NULL);
- if(ret == LOCATION_ERROR_PARAMETER) {
- tet_result(TET_PASS);
- } else {
- tet_result(TET_FAIL);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(position);
-}
diff --git a/TC/unit/utc_location_start.c b/TC/unit/utc_location_start.c
deleted file mode 100644
index a4bf54c..0000000
--- a/TC/unit/utc_location_start.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_start_01();
-static void utc_location_start_02();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_start_01,1},
- {utc_location_start_02,2},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- ret = location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- if( loc )
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_start_01()
-{
- ret = location_start(loc);
-
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- location_stop(loc);
-}
-
-static void
-utc_location_start_02()
-{
- ret = location_start(NULL);
-
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
diff --git a/TC/unit/utc_location_stop.c b/TC/unit/utc_location_stop.c
deleted file mode 100644
index d879480..0000000
--- a/TC/unit/utc_location_stop.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_stop_01();
-static void utc_location_stop_02();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_stop_01,1},
- {utc_location_stop_02,2},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- ret = location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- ret = location_start(loc);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- if( loc ){
- location_stop(loc);
- location_free(loc);
- }
- tet_printf("\n TC End");
-}
-
-static void
-utc_location_stop_01()
-{
- ret = location_stop(loc);
-
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_NONE) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
-static void
-utc_location_stop_02()
-{
- location_start(loc);
- ret = location_stop(NULL);
- tet_printf("Returned value: %d", ret);
- if (ret == LOCATION_ERROR_PARAMETER) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
-
diff --git a/TC/unit/utc_properties_boundary.c b/TC/unit/utc_properties_boundary.c
deleted file mode 100644
index ae8a422..0000000
--- a/TC/unit/utc_properties_boundary.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-#include "test_common.c"
-
-static gboolean g_is_found = FALSE;
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_set_boundary_in_suwonHQ();
-static void utc_get_boundary_in_suwonHQ();
-
-struct tet_testlist tet_testlist[] = {
- {utc_set_boundary_in_suwonHQ,1},
- {utc_get_boundary_in_suwonHQ,2},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void comp_boundary(LocationBoundary *bound, gpointer user_data)
-{
- LocationBoundary *check_bound = (LocationBoundary *) user_data;
-
- if(bound && bound->type == check_bound->type) {
- switch(bound->type) {
- case LOCATION_BOUNDARY_RECT:
- if(bound->rect.right_bottom->latitude == check_bound->rect.right_bottom->latitude &&
- bound->rect.right_bottom->longitude == check_bound->rect.right_bottom->longitude &&
- bound->rect.left_top->latitude == check_bound->rect.left_top->latitude &&
- bound->rect.left_top->longitude == check_bound->rect.left_top->longitude ){
- g_is_found = TRUE;
- }
- break;
-
- default:
- break;
- }
- }
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_set_boundary_in_suwonHQ()
-{
- int ret = 0;
- LocationPosition *rb = location_position_new(0, 37.258, 127.056, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 37.260, 127.054, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
-
- ret = location_boundary_add(loc, bound);
- if (!ret) {
- tet_result(TET_PASS);
- } else tet_result(TET_FAIL);
-
- location_position_free (rb);
- location_position_free (lt);
- location_boundary_free(bound);
-}
-
-static void
-utc_get_boundary_in_suwonHQ()
-{
- LocationPosition *rb = location_position_new(0, 37.258, 127.056, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 37.260, 127.054, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
-
- g_is_found = FALSE;
- location_boundary_foreach(loc, comp_boundary, bound);
- if(g_is_found) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-
- location_position_free (rb);
- location_position_free (lt);
- location_boundary_free (bound);
-}
diff --git a/TC/unit/utc_properties_method.c b/TC/unit/utc_properties_method.c
deleted file mode 100644
index bdb3430..0000000
--- a/TC/unit/utc_properties_method.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_get_method();
-
-struct tet_testlist tet_testlist[] = {
- {utc_get_method,1},
- {NULL,0},
-};
-
-int ret;
-LocationObject* loc;
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-utc_get_method()
-{
- LocationMethod method;
- g_object_get(loc, "method", &method, NULL);
- if (method == LOCATION_METHOD_GPS) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
-}
diff --git a/TC/unit/utc_signals_service_disabled.c b/TC/unit/utc_signals_service_disabled.c
deleted file mode 100644
index e8a44b1..0000000
--- a/TC/unit/utc_signals_service_disabled.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_svc_disabled();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_svc_disabled,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-cb_enabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- location_stop(loc);
-}
-
-static void
-cb_disabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- if( LOCATION_STATUS_NO_FIX <= _status && _status <= LOCATION_STATUS_3D_FIX) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_svc_disabled()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(cb_enabled), loc);
- g_signal_connect (loc, "service-disabled", G_CALLBACK(cb_disabled), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-
-}
diff --git a/TC/unit/utc_signals_service_enabled.c b/TC/unit/utc_signals_service_enabled.c
deleted file mode 100644
index 02cea2a..0000000
--- a/TC/unit/utc_signals_service_enabled.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_svc_enabled();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_svc_enabled,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-_cb_svc_enabled (GObject *self,
- guint _status,
- gpointer userdata)
-{
- if (LOCATION_STATUS_NO_FIX <= _status && _status <= LOCATION_STATUS_3D_FIX) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit(loop);
-}
-
-static void
-utc_location_svc_enabled()
-{
- g_signal_connect (loc, "service-enabled", G_CALLBACK(_cb_svc_enabled), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
diff --git a/TC/unit/utc_signals_service_updated.c b/TC/unit/utc_signals_service_updated.c
deleted file mode 100644
index 737fd11..0000000
--- a/TC/unit/utc_signals_service_updated.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_location_svc_updated();
-
-struct tet_testlist tet_testlist[] = {
- {utc_location_svc_updated,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-cb_updated (GObject *self,
- guint type,
- gpointer data,
- gpointer accuracy,
- gpointer userdata)
-{
- if ( POSITION_UPDATED <= type && type <= REVERSEGEOCODE_UPDATED) tet_result(TET_PASS);
- else tet_result(TET_FAIL);
- g_main_loop_quit (loop);
-}
-
-static void
-utc_location_svc_updated()
-{
- g_signal_connect (loc, "service-updated", G_CALLBACK(cb_updated), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
diff --git a/TC/unit/utc_signals_zone_in.c b/TC/unit/utc_signals_zone_in.c
deleted file mode 100644
index e69f6f8..0000000
--- a/TC/unit/utc_signals_zone_in.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_zone_in();
-
-struct tet_testlist tet_testlist[] = {
- {utc_zone_in,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
-
- LocationPosition *rb = location_position_new(0, 37.254, 127.057, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 37.261, 127.050, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
- location_boundary_add(loc, bound);
-
- location_position_free (rb);
- location_position_free (lt);
- location_boundary_free (bound);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-cb_zone_in(LocationObject *self,
- guint type,
- gpointer position,
- gpointer accuracy)
-{
- LocationPosition *pos = (LocationPosition*) position;
-
- if( (37.255 <= pos->latitude && pos->latitude <= 37.265) &&
- (127.052 <= pos->longitude && pos->longitude <= 127.058)) tet_result(TET_PASS); // I am in Suwon HQ
- else tet_result(TET_FAIL);
- g_main_loop_quit(loop);
-}
-
-static void
-utc_zone_in()
-{
- g_signal_connect (loc, "zone-in", G_CALLBACK(cb_zone_in), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
diff --git a/TC/unit/utc_signals_zone_out.c b/TC/unit/utc_signals_zone_out.c
deleted file mode 100644
index 6eee476..0000000
--- a/TC/unit/utc_signals_zone_out.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tet_api.h>
-#include <glib.h>
-#include <location.h>
-
-static void startup(), cleanup();
-void (*tet_startup) () = startup;
-void (*tet_cleanup) () = cleanup;
-
-static void utc_zone_out();
-
-struct tet_testlist tet_testlist[] = {
- {utc_zone_out,1},
- {NULL,0},
-};
-
-static GMainLoop *loop = NULL;
-int ret;
-LocationObject* loc;
-
-gboolean
-exit_loop (gpointer data)
-{
- g_main_loop_quit (loop);
- tet_result(TET_FAIL);
- return FALSE;
-}
-
-static void startup()
-{
- location_init();
- loc = location_new(LOCATION_METHOD_GPS);
- location_start(loc);
- loop = g_main_loop_new(NULL,FALSE);
-
- LocationPosition *rb = location_position_new(0, 36.395, 25.41, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition *lt = location_position_new(0, 36.413, 25.388, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary* bound = location_boundary_new_for_rect(lt, rb);
- location_boundary_add(loc, bound);
-
- location_position_free (rb);
- location_position_free (lt);
- location_boundary_free (bound);
- tet_printf("\n TC startup");
-}
-
-static void cleanup()
-{
- location_stop(loc);
- location_free(loc);
- tet_printf("\n TC End");
-}
-
-static void
-_cb_zone_out(LocationObject *self,
- guint type,
- gpointer position,
- gpointer accuracy)
-{
- LocationPosition *pos = (LocationPosition*) position;
-
- if( (37.255 <= pos->latitude && pos->latitude <= 37.265) &&
- (27.052 <= pos->longitude && pos->longitude <= 127.060) ) tet_result(TET_PASS); // I am in Suwon HQ
- else tet_result(TET_FAIL);
- g_main_loop_quit(loop);
-}
-
-
-static void
-utc_zone_out()
-{
- g_signal_connect (loc, "zone-out", G_CALLBACK(_cb_zone_out), loc);
- g_timeout_add_seconds(60, exit_loop, NULL);
- g_main_loop_run (loop);
-}
diff --git a/configure.ac b/configure.ac
index 06e7dfd..b7fb42a 100755..100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,14 +22,25 @@ if test "x$GCC" = "xyes"; then
LDFLAGS="$LDFLAGS -Wl,-z,defs -Wl,--as-needed -Wl,--hash-style=both"
fi
+AC_ARG_ENABLE([docomo-location],
+ [AC_HELP_STRING([--enable-docomo-location],[docomo feature enable [default=no]])],
+ [case "${enableval}" in
+ yes) enable_dcm=yes ;;
+ no) enable_dcm=no ;;
+ *) AC_MSG_ERROR([Bad value ${enableval} for --enable-docomo-location]) ;;
+ esac],[enable_dcm=no])
+if ([test "x$enable_dcm" = xyes]); then
+ CFLAGS="$CFLAGS -DDOCOMO_FEATURE"
+fi
+
# Add -g option to CFLAGS
AC_ARG_ENABLE([debug],
- [AC_HELP_STRING([--enable-debug],[turn on debugging [default=no]])],
- [case "${enableval}" in
- yes) enable_dbg=yes ;;
- no) enable_dbg=no ;;
- *) AC_MSG_ERROR([Bad value ${enableval} for --enable-debug]) ;;
- esac],[enable_dbg=no])
+ [AC_HELP_STRING([--enable-debug],[turn on debugging [default=no]])],
+ [case "${enableval}" in
+ yes) enable_dbg=yes ;;
+ no) enable_dbg=no ;;
+ *) AC_MSG_ERROR([Bad value ${enableval} for --enable-debug]) ;;
+ esac],[enable_dbg=no])
if ([test "x$enable_dbg" = xyes]); then
CFLAGS="$CFLAGS -g"
fi
@@ -50,22 +61,22 @@ AC_COMPILE_IFELSE(
AC_MSG_RESULT($has_visibility)
# Check dependencies
-PKG_CHECK_MODULES(LOCATION, [glib-2.0 gobject-2.0 dbus-glib-1 gmodule-2.0 vconf vconf-internal-keys location-appman])
+PKG_CHECK_MODULES(LOCATION, [glib-2.0 gobject-2.0 gmodule-2.0 vconf vconf-internal-keys capi-appfw-app-manager capi-appfw-package-manager pkgmgr-info privacy-manager-client])
AC_SUBST(LOCATION_LIBS)
AC_SUBST(LOCATION_CFLAGS)
-#PKG_CHECK_MODULES(TEST, [glib-2.0 gconf-2.0 json-glib-1.0])
-#AC_SUBST(TEST_LIBS)
-#AC_SUBST(TEST_CFLAGS)
+PKG_CHECK_MODULES(TEST, [glib-2.0 json-glib-1.0 lbs-dbus])
+AC_SUBST(TEST_LIBS)
+AC_SUBST(TEST_CFLAGS)
# Check dlog libraries
AC_ARG_ENABLE([dlog],
- [AC_HELP_STRING([--enable-dlog],[show dlog message [default=no]])],
- [case "${enableval}" in
- yes) enable_dlog=yes ;;
- no) enable_dlog=no ;;
- *) AC_MSG_ERROR([Bad value ${enableval} for --enable-dlog]) ;;
- esac],[enable_dlog=no])
+ [AC_HELP_STRING([--enable-dlog],[show dlog message [default=no]])],
+ [case "${enableval}" in
+ yes) enable_dlog=yes ;;
+ no) enable_dlog=no ;;
+ *) AC_MSG_ERROR([Bad value ${enableval} for --enable-dlog]) ;;
+ esac],[enable_dlog=no])
if ([test "x$enable_dlog" = xyes]); then
PKG_CHECK_MODULES(DLOG, [dlog], have_dlog="yes", have_dlog="no")
AC_SUBST(DLOG_LIBS)
@@ -82,8 +93,8 @@ location.pc
Makefile
location/Makefile
location/manager/Makefile
-location/map-service/Makefile
location/module/Makefile
+tests/Makefile
])
AC_OUTPUT
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index c96f215..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,620 +0,0 @@
-libslp-location (0.3.39-1) unstable; urgency=low
-
- * Fix a crash after changes that velocity is updated before position.
- * Tag: libslp-location_0.3.39-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 31 Aug 2012 19:02:39 +0900
-
-libslp-location (0.3.38-1) unstable; urgency=low
-
- * Add the parameter, LocationMapPref in Geocoder
- * Tag: libslp-location_0.3.38-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 13 Aug 2012 15:52:07 +0900
-
-libslp-location (0.3.37-1) unstable; urgency=low
-
- * Support multi-provider
- * Tag: libslp-location_0.3.37-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 07 Aug 2012 21:19:19 +0900
-
-libslp-location (0.3.36-6) unstable; urgency=low
-
- * Fix N_SE-4475, the time difference was occured between a positon and a velocity
- * Tag: libslp-location_0.3.36-6
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 03 Aug 2012 22:58:01 +0900
-
-libslp-location (0.3.36-5) unstable; urgency=low
-
- * Seperate map service from location service.
- * Tag: libslp-location_0.3.36-5
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 26 Jul 2012 14:47:16 +0900
-
-libslp-location (0.3.36-4) unstable; urgency=low
-
- * Fix the bug that satellite_callback was periodically called even when location_start was failed
- * Tag: libslp-location_0.3.36-4
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 26 Jul 2012 13:14:32 +0900
-
-libslp-location (0.3.36-3) unstable; urgency=low
-
- * Check permission when calling location_start.
- * Tag: libslp-location_0.3.36-3
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 17 Jul 2012 20:59:24 +0900
-
-libslp-location (0.3.36-2) unstable; urgency=low
-
- * Apply new glib and add map-service-test
- * Tag: libslp-location_0.3.36-2
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 10 Jul 2012 15:52:07 +0900
-
-libslp-location (0.3.36-1) unstable; urgency=low
-
- * support location application list in setting
- * Tag: libslp-location_0.3.36-1
-
- -- Genie Kim <daejins.kim@samsung.com> Sat, 07 Jul 2012 19:44:10 +0900
-
-libslp-location (0.3.35-6) unstable; urgency=low
-
- * Fix a bug when creating a boundary
- * Tag: libslp-location_0.3.35-6
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 29 Jun 2012 15:15:40 +0900
-
-libslp-location (0.3.35-5) unstable; urgency=low
-
- * Fix memory leak when finalizing an object.
- * Tag: libslp-location_0.3.35-5
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 15 Jun 2012 16:05:29 +0900
-
-libslp-location (0.3.35-4) unstable; urgency=low
-
- * Do not check returned value after calling vconf_ignore_key_changed and vconf_notify_key_changed
- * Tag: libslp-location_0.3.35-4
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 14 Jun 2012 11:12:54 +0900
-
-libslp-location (0.3.35-3) unstable; urgency=low
-
- * Fix bugs, a failure to get wps positioning and receiving satellite callback after location_stop()
- * Tag: libslp-location_0.3.35-3
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 12 Jun 2012 17:00:25 +0900
-
-libslp-location (0.3.35-2) unstable; urgency=low
-
- * Remove both LOCATION_METHOD_IPS and LOCATION_METHOD_SPS & support location_is_supported_method for LOCATION_METHOD_CPS
- * Tag: libslp-location_0.3.35-2
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 29 May 2012 11:16:17 +0900
-
-libslp-location (0.3.35-1) unstable; urgency=low
-
- * Support CPS Method
- * Tag: libslp-location_0.3.35-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 24 May 2012 19:01:08 +0900
-
-libslp-location (0.3.34-17) unstable; urgency=low
-
- * fix a bug when calling location_route_step_set_geometry
- * Tag: libslp-location_0.3.34-17
-
- -- Genie Kim <daejins.kim@samsung.com> Fri, 18 May 2012 19:20:33 +0900
-
-libslp-location (0.3.34-16) unstable; urgency=low
-
- * Enable to set each interval of a position, a velocity and satellite
- * change vconf keys
- * Tag: libslp-location_0.3.34-16
-
- -- Genie Kim <daejins.kim@samsung.com> Tue, 15 May 2012 19:49:10 +0900
-
-libslp-location (0.3.34-15) unstable; urgency=low
-
- * Update current method whenever the callback callback, hybrid_service_updated is called in hybrid.
- * Tag: libslp-location_0.3.34-15
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 10 May 2012 14:49:33 +0900
-
-libslp-location (0.3.34-14) unstable; urgency=low
-
- * ignore notify when a method (gps, wps or sps) is disposed.
- * Tag: libslp-location_0.3.34-14
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 26 Apr 2012 21:09:41 +0900
-
-libslp-location (0.3.34-13) unstable; urgency=low
-
- * The result was wrong when location_boundary_if_inside was called
- * Tag: libslp-location_0.3.34-13
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 02 Apr 2012 16:59:08 +0900
-
-libslp-location (0.3.34-12) unstable; urgency=low
-
- * Fix the bug that get_last_position of WPS was failed on emulator.
- * Move the fuctionality to location module
- * Tag: libslp-location_0.3.34-12
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 27 Mar 2012 11:09:07 +0900
-
-libslp-location (0.3.34-11) unstable; urgency=low
-
- * Add location_route_step_set_transport_mode / location_route_step_get_transport_mode
- * Tag: libslp-location_0.3.34-11
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 26 Mar 2012 17:00:48 +0900
-
-libslp-location (0.3.34-10) unstable; urgency=low
-
- * Check param's range in funcs.
- * Tag: libslp-location_0.3.34-10
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 22 Mar 2012 13:18:42 +0900
-
-libslp-location (0.3.34-9) unstable; urgency=low
-
- * Fix the bug that location_get_map_service_pref returned fail
- * Tag: libslp-location_0.3.34-9
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 20 Mar 2012 22:15:17 +0900
-
-libslp-location (0.3.34-8) unstable; urgency=low
-
- * modity TC script and copy satellite info with timestamp
- * Tag: libslp-location_0.3.34-8
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 19 Mar 2012 20:49:24 +0900
-
-libslp-location (0.3.34-7) unstable; urgency=low
-
- * add libgconf-dbus-dev in control
- * Tag: libslp-location_0.3.34-7
-
- -- Genie Kim <daejins.kim@samsung.com> Fri, 16 Mar 2012 11:33:54 +0900
-
-libslp-location (0.3.34-6) unstable; urgency=low
-
- * Support Capability APIs
- * Tag: libslp-location_0.3.34-6
-
- -- Minjune Kim <sena06.kim@samsung.com> Wed, 14 Mar 2012 20:35:31 +0900
-
-libslp-location (0.3.34-5) unstable; urgency=low
-
- * Add dbus_g_thread_init & g_thread_init to location_init
- * Tag: libslp-location_0.3.34-5
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 09 Mar 2012 16:29:07 +0900
-
-libslp-location (0.3.34-4) unstable; urgency=low
-
- * Change a wps_start to support an emulator.
- * Tag: libslp-location_0.3.34-4
-
- -- Minjune Kim <sena06.kim@samsung.com> Wed, 07 Mar 2012 10:59:54 +0900
-
-libslp-location (0.3.34-3) unstable; urgency=low
-
- * Add POI func & Route prototype
- * Implement get_last_xxx & Update satellite info
- * Tag: libslp-location_0.3.34-3
-
- -- Genie Kim <daejins.kim@samsung.com> Mon, 20 Feb 2012 20:23:01 +0900
-
-libslp-location (0.3.34-2) unstable; urgency=low
-
- * Add location_get_last_XXX and location_get_satellite proto. Add timestamp on satellite info
- * Add TC
- * Tag: libslp-location_0.3.34-2
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 13 Feb 2012 21:03:22 +0900
-
-libslp-location (0.3.34-1) unstable; urgency=low
-
- * Support to get multi positions using geocode service.
- * Correct typo.
- * Tag: libslp-location_0.3.34-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 03 Feb 2012 15:01:49 +0900
-
-libslp-location (0.3.33-2) unstable; urgency=low
-
- * Remove a needless conditional code.
- * Tag: libslp-location_0.3.33-2
-
- -- Minjune Kim <sena06.kim@samsung.com> Sun, 29 Jan 2012 09:48:48 +0900
-
-libslp-location (0.3.33-1) unstable; urgency=low
-
- * Enable to get last known position for each method.
- * Tag: libslp-location_0.3.33-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 19 Jan 2012 19:44:12 +0900
-
-libslp-location (0.3.32-1) unstable; urgency=low
-
- * Fix a bug that a module is not started when a service turns on.
- * Tag: libslp-location_0.3.32-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Fri, 06 Jan 2012 17:10:12 +0900
-
-libslp-location (0.3.31-2) unstable; urgency=low
-
- * check a method before creating its object.
- * Tag: libslp-location_0.3.31-2
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 19 Dec 2011 21:34:46 +0900
-
-libslp-location (0.3.31-1) unstable; urgency=low
-
- * change default value of location serverce from 'On' to 'Off'
- * Tag: libslp-location_0.3.31-1
-
- -- Genie Kim <daejins.kim@samsung.com> Thu, 08 Dec 2011 20:08:49 +0900
-
-libslp-location (0.3.30-1) unstable; urgency=low
-
- * add an empty body of location_send_command & support exception case
- * Tag: libslp-location_0.3.30-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Tue, 06 Dec 2011 17:05:16 +0900
-
-libslp-location (0.3.29-1) unstable; urgency=low
-
- * Support multi boundaries & add new API, location_is_enabled_gps
- * Tag: libslp-location_0.3.29-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Thu, 03 Nov 2011 22:16:21 +0900
-
-libslp-location (0.3.28-1) unstable; urgency=low
-
- * fix the bug that the last value of logitude was truncated.
- * Tag: libslp-location_0.3.28-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Wed, 02 Nov 2011 14:42:03 +0900
-
-libslp-location (0.3.27-1) unstable; urgency=low
-
- * fix the bug that libslp-location returns 0,0 instead of error when a last postion(VCONF) is null
- * Tag: libslp-location_0.3.27-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Mon, 31 Oct 2011 11:17:21 +0900
-
-libslp-location (0.3.26-1) unstable; urgency=low
-
- * vconf key is changed and use time_t for timestamp
- * Tag: libslp-location_0.3.26-1
-
- -- Genie Kim <daejins.kim@samsung.com> Mon, 17 Oct 2011 13:29:19 +0900
-
-libslp-location (0.3.25-1) unstable; urgency=low
-
- * add location_is_supported_method, location_send_command & update_interval
- * Tag: libslp-location_0.3.25-1
-
- -- Minjune Kim <sena06.kim@samsung.com> Wed, 12 Oct 2011 12:36:45 +0900
-
-libslp-location (0.3.24-1) unstable; urgency=low
-
- * add location_get_last_known_position & fix prevent defect
- * Tag: libslp-location_0.3.24-1
-
- -- Genie Kim <daejins.kim@samsung.com> Thu, 29 Sep 2011 21:37:27 +0900
-
-libslp-location (0.3.23-2) unstable; urgency=low
-
- * change maintainer in boilerplate
- * Tag: libslp-location_0.3.23-2
-
- -- Genie Kim <daejins.kim@samsung.com> Wed, 20 Jul 2011 17:56:38 +0900
-
-libslp-location (0.3.23-1) unstable; urgency=low
-
- * Vconfkey value is changed by new UI guide
- * Tag: libslp-location_0.3.23-1
-
- -- Genie Kim <daejins.kim@samsung.com> Fri, 01 Jul 2011 17:42:34 +0900
-
-libslp-location (0.3.22-1) unstable; urgency=low
-
- * Release New Location APIs
- * Tag: libslp-location_0.3.22-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Wed, 20 Apr 2011 11:07:38 +0900
-
-libslp-location (0.2.22-1) unstable; urgency=low
-
- * Bug fix when hybrid exit
- * Tag: libslp-location_0.2.22-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Thu, 10 Mar 2011 19:44:07 +0900
-
-libslp-location (0.2.21-1) unstable; urgency=low
-
- * Always update GPS data to PDR in hybrid mode & change some names
- * Tag: libslp-location_0.2.21-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Thu, 10 Mar 2011 14:52:09 +0900
-
-libslp-location (0.2.20-1) unstable; urgency=low
-
- * Location eanbled by UX guide
- * Tag: libslp-location_0.2.20-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Mon, 07 Mar 2011 21:01:50 +0900
-
-libslp-location (0.2.19-2) unstable; urgency=low
-
- * Release again for sbox i386 build
- * Tag: libslp-location_0.2.19-1
-
- -- sangho park <sangho.g.park@samsung.com> Tue, 22 Feb 2011 13:57:22 +0900
-
-libslp-location (0.2.18-2) unstable; urgency=low
-
- * Fix depends for Sbox1
- * Tag: libslp-location_0.2.18-2
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Thu, 17 Feb 2011 20:07:52 +0900
-
-libslp-location (0.2.18-1) unstable; urgency=low
-
- * Add SPS object/module
- * Tag: libslp-location_0.2.18-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Wed, 16 Feb 2011 16:52:43 +0900
-
-libslp-location (0.2.17-1) unstable; urgency=low
-
- * Apply prevent & Fix PG
- * Tag: libslp-location_0.2.17-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Tue, 08 Feb 2011 13:04:34 +0900
-
-libslp-location (0.2.16-2) unstable; urgency=low
-
- * Add prevent & Fix accuracy
- * Tag: libslp-location_0.2.16-2
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Tue, 25 Jan 2011 17:12:01 +0900
-
-libslp-location (0.2.16-1) unstable; urgency=low
-
- * Add CPS/IPS & Async address API & Appy vconf security
- * Tag: libslp-location_0.2.16-1
-
- -- Tae-Hwan Kim <the81.kim@samsung.com> Wed, 19 Jan 2011 11:39:22 +0900
-
-libslp-location (0.2.15-1) unstable; urgency=low
-
- * Apply TC recomm. & change default setting value to 0
- * Tag: libslp-location_0.2.15-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Thu, 06 Jan 2011 10:21:04 +0900
-
-libslp-location (0.2.14-1) unstable; urgency=low
-
- * Change plugin & guide & Fix TC
- * Tag: libslp-location_0.2.14-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 20 Dec 2010 17:27:55 +0900
-
-libslp-location (0.2.13-0) unstable; urgency=low
-
- * Fix build dependency
- * Tag: libslp-location_0.2.13-0
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 13 Dec 2010 13:03:30 +0900
-
-libslp-location (0.2.12-0) unstable; urgency=low
-
- * Fix plugin & guide & add setting feature
- * Tag: libslp-location_0.2.12-0
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 13 Dec 2010 09:40:53 +0900
-
-libslp-location (0.2.11-0) unstable; urgency=low
-
- * Add hybri mode & Fix some bugs
- * Tag: libslp-location_0.2.11-0
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 29 Nov 2010 10:57:57 +0900
-
-libslp-location (0.2.10-0) unstable; urgency=low
-
- * Fix minor bugs
- * Tag: libslp-location_0.2.10-0
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Wed, 24 Nov 2010 23:26:37 +0900
-
-libslp-location (0.2.9-1) unstable; urgency=low
-
- * Remove caching
- * Tag: libslp-location_0.2.9-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 23 Nov 2010 14:29:20 +0900
-
-libslp-location (0.2.8-1) unstable; urgency=low
-
- * Fix plugin priority & Fix sample code bug
- * Tag: libslp-location_0.2.8-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Wed, 10 Nov 2010 21:46:03 +0900
-
-libslp-location (0.2.7-1) unstable; urgency=low
-
- * Add geocode object & Enable wps object
- * Tag: libslp-location_0.2.7-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 08 Nov 2010 23:03:50 +0900
-
-libslp-location (0.1.7-1) unstable; urgency=low
-
- * Remove unnecessary dependencies(geoclue-skyhook,gpsd ..)
- * Tag: libslp-location_0.1.7-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 01 Nov 2010 13:53:11 +0900
-
-libslp-location (0.1.6-1) unstable; urgency=low
-
- * Fix dependency
- * Tag: libslp-location_0.1.6-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Sun, 31 Oct 2010 16:59:48 +0900
-
-libslp-location (0.1.5-1) unstable; urgency=low
-
- * Fix for limo
- * Tag: libslp-location_0.1.5-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 29 Oct 2010 16:26:43 +0900
-
-libslp-location (0.1.4-2) unstable; urgency=low
-
- * Remove version field for limo
- * Tag: libslp-location_0.1.4-2
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 29 Oct 2010 14:50:42 +0900
-
-libslp-location (0.1.4-1) unstable; urgency=low
-
- * Add version field in control
- * Tag: libslp-location_0.1.4-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 29 Oct 2010 14:18:01 +0900
-
-libslp-location (0.1.3-1) unstable; urgency=low
-
- * Fix PG & sample, Change signal emission
- * Tag: libslp-location_0.1.3-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 29 Oct 2010 13:49:11 +0900
-
-libslp-location (0.1.2-1) unstable; urgency=low
-
- * Add more bolier plate
- * Tag: libslp-location_0.1.2-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 26 Oct 2010 16:40:31 +0900
-
-libslp-location (0.1.1-1) unstable; urgency=low
-
- * Fix for PG & Doxygen & Limo Contrib.
- * Tag: libslp-location_0.1.1-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 26 Oct 2010 12:22:16 +0900
-
-libslp-location (0.1.0-15) unstable; urgency=low
-
- * Update programming guide & test case for address APIs
- * Tag: libslp-location_0.1.0-15
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Sat, 16 Oct 2010 20:53:38 +0900
-
-libslp-location (0.1.0-14) unstable; urgency=low
-
- * Adapt to libdecarta
- * Tag: libslp-location_0.1.0-14
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 11 Oct 2010 22:33:14 +0900
-
-libslp-location (0.1.0-13) unstable; urgency=low
-
- * Add input parameter error handling & Change TC
- * Tag: libslp-location_0.1.0-13
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 27 Sep 2010 20:03:09 +0900
-
-libslp-location (0.1.0-12) unstable; urgency=low
-
- * Fix in zone in/out & Add more test case
- * Tag: libslp-location_0.1.0-12
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 17 Sep 2010 16:56:35 +0900
-
-libslp-location (0.1.0-11) unstable; urgency=low
-
- * Add glib-genmarshal & Remove marshal source/header
- * Tag: libslp-location_0.1.0-11
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 14 Sep 2010 10:18:37 +0900
-
-libslp-location (0.1.0-10) unstable; urgency=low
-
- * Change programming guide & doxygen comments
- * Tag: libslp-location_0.1.0-10
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Fri, 10 Sep 2010 14:52:24 +0900
-
-libslp-location (0.1.0-9) unstable; urgency=low
-
- * Change programming guilde & Add sample codes
- * Tag: libslp-location_0.1.0-9
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Thu, 09 Sep 2010 17:50:27 +0900
-
-libslp-location (0.1.0-8) unstable; urgency=low
-
- * Add zone in/out & boundary feature
- * Tag: libslp-location_0.1.0-8
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 06 Sep 2010 10:57:08 +0900
-
-libslp-location (0.1.0-7) unstable; urgency=low
-
- * Adapt to geoclue change
- * Tag: libslp-location_0.1.0-7
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Sat, 04 Sep 2010 19:40:16 +0900
-
-libslp-location (0.1.0-6) unstable; urgency=low
-
- * Change programming guide & test application
- * Tag: libslp-location_0.1.0-6
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Wed, 01 Sep 2010 20:07:34 +0900
-
-libslp-location (0.1.0-5) unstable; urgency=low
-
- * Change fw name in doxygen & release again
- * Tag: libslp-location_0.1.0-5
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 31 Aug 2010 23:28:12 +0900
-
-libslp-location (0.1.0-4) unstable; urgency=low
-
- * Add doxygen & change API return value to integer
- * Tag: libslp-location_0.1.0-4
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Tue, 31 Aug 2010 22:09:35 +0900
-
-libslp-location (0.1.0-3) unstable; urgency=low
-
- * Change header dependency for relase
- * Tag: libslp-location_0.1.0-3
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 30 Aug 2010 20:58:04 +0900
-
-libslp-location (0.1.0-2) unstable; urgency=low
-
- * Fix header include & Release again
- * Tag: libslp-location_0.1.0-2
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 30 Aug 2010 17:51:44 +0900
-
-libslp-location (0.1.0-1) unstable; urgency=low
-
- * Initial version
- * Tag: libslp-location_0.1.0-1
-
- -- Tae-hwan Kim <the81.kim@samsung.com> Mon, 30 Aug 2010 12:01:05 +0900
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index 7ed6ff8..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/debian/control b/debian/control
deleted file mode 100755
index 22b0c80..0000000
--- a/debian/control
+++ /dev/null
@@ -1,31 +0,0 @@
-Source: libslp-location
-Section: libs
-Priority: extra
-Maintainer: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>, Genie kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
-Uploaders: Genie Kim <daejins.kim@samsung.com>
-Build-Depends: debhelper (>= 5), libglib2.0-dev, libdbus-glib-1-dev, dlog-dev, libvconf-dev, libvconf-keys-dev, vconf-internal-keys-dev, libjson-glib-dev, libgconf-dbus-dev
-Standards-Version: 3.7.2
-Homepage: N/A
-
-Package: libslp-location
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libglib2.0-0, libdlog-0, libvconf-0
-Description: Location Based Service (Shared Object)
- Location Based Service Libraries
-
-Package: libslp-location-dev
-Section: libdevel
-Architecture: any
-XB-Generate-Docs: yes
-XB-Public-Package: yes
-Depends: ${shlibs:Depends}, ${misc:Depends}, libslp-location (= ${binary:Version}), libglib2.0-dev, dlog-dev, libvconf-dev
-Description: Location Based Service (Development files)
- Location Based Service Development Package
-
-Package: libslp-location-dbg
-Section: debug
-Architecture: any
-Depends: ${misc:Depends}, libslp-location (= ${binary:Version})
-Description: Location Based Service (Unstripped Object)
- Location Based Service Library Debug Package
diff --git a/debian/libslp-location-dev.install b/debian/libslp-location-dev.install
deleted file mode 100644
index f31bdab..0000000
--- a/debian/libslp-location-dev.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/include/*
-usr/lib/pkgconfig/*
-usr/lib/*.la
diff --git a/debian/libslp-location.install b/debian/libslp-location.install
deleted file mode 100644
index d34bd90..0000000
--- a/debian/libslp-location.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*.so*
diff --git a/debian/libslp-location.postinst b/debian/libslp-location.postinst
deleted file mode 100755
index d3e98d7..0000000
--- a/debian/libslp-location.postinst
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-#setting
-vconftool set -t int db/location/last/gps/Timestamp "0" -f
-vconftool set -t double db/location/last/gps/Latitude "0.0" -f
-vconftool set -t double db/location/last/gps/Longitude "0.0" -f
-vconftool set -t double db/location/last/gps/Altitude "0.0" -f
-vconftool set -t double db/location/last/gps/HorAccuracy "0.0" -f
-vconftool set -t double db/location/last/gps/VerAccuracy "0.0" -f
-vconftool set -t double db/location/last/gps/Speed "0.0" -f
-vconftool set -t double db/location/last/gps/Direction "0.0" -f
-vconftool set -t int db/location/last/wps/Timestamp "0" -f
-vconftool set -t double db/location/last/wps/Latitude "0.0" -f
-vconftool set -t double db/location/last/wps/Longitude "0.0" -f
-vconftool set -t double db/location/last/wps/Altitude "0.0" -f
-vconftool set -t double db/location/last/wps/HorAccuracy "0.0" -f
-vconftool set -t double db/location/last/wps/Speed "0.0" -f
-vconftool set -t double db/location/last/wps/Direction "0.0" -f
-vconftool set -t int db/location/last/cps/Timestamp "0" -f
-vconftool set -t double db/location/last/cps/Latitude "0.0" -f
-vconftool set -t double db/location/last/cps/Longitude "0.0" -f
-vconftool set -t double db/location/last/cps/Altitude "0.0" -f
-vconftool set -t double db/location/last/cps/HorAccuracy "0.0" -f
-if [ "${USER}" = "root" ]
-then
-vconftool set -t int db/location/setting/GpsEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/AgpsEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/NetworkEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/SensorEnabled "0" -g 6514 -f
-else
-
-vconftool set -t int db/location/setting/GpsEnabled "0" -g -f
-vconftool set -t int db/location/setting/AgpsEnabled "0" -f
-vconftool set -t int db/location/setting/NetworkEnabled "0" -f
-vconftool set -t int db/location/setting/SensorEnabled "0" -f
-fi
-
-sync
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index c997f77..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-LDFLAGS ?=
-PREFIX ?= /usr
-DATADIR ?= /opt
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
- CXXFLAGS += -O0
-else
- CFLAGS += -O2
- CXXFLAGS += -O2
-endif
-
-configure: configure-stamp
-configure-stamp:
- dh_testdir
- ./autogen.sh
- # Add here commands to configure the package.
- ./configure --prefix=$(PREFIX) --enable-dlog --enable-debug
-
- touch configure-stamp
-
-build: build-stamp
-
-build-stamp: configure-stamp
- dh_testdir
-
- # Add here commands to compile the package.
- $(MAKE)
-
- for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
- cat $$f > $${f%.in}; \
- sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
- sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
- done
-
- touch $@
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
-
- # Add here commands to clean up after the build process.
- - $(MAKE) clean
-
- rm -rf CMakeCache.txt
- rm -rf CMakeFiles
- rm -rf cmake_install.cmake
- rm -rf Makefile
- rm -rf install_manifest.txt
- rm -rf *.so
- rm -f pkgconfig/lbs-location.pc
- rm -rf location/*.o
- rm -rf location/*.lo
- rm -rf location/*.la
- rm -rf tests/.lib
-
- for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
- rm -f $${f%.in}; \
- done
-
- dh_clean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- # Add here commands to install the package into debian/wavplayer.
- $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
- dh_installchangelogs
-# dh_installdocs
- dh_installexamples
- dh_install --sourcedir=debian/tmp
-# dh_installmenu
-# dh_installdebconf
-# dh_installlogrotate
-# dh_installemacsen
-# dh_installpam
-# dh_installmime
-# dh_python
-# dh_installinit
-# dh_installcron
-# dh_installinfo
- dh_installman
- dh_link
-# dh_strip
- dh_strip --dbg-package=libslp-location-dbg
- dh_compress
- dh_fixperms
-# dh_perl
- dh_makeshlibs
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/image/SLP_Location_PG.h b/image/SLP_Location_PG.h
index aeada25..532091a 100755
--- a/image/SLP_Location_PG.h
+++ b/image/SLP_Location_PG.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/libslp-location.manifest b/libslp-location.manifest
new file mode 100644
index 0000000..97e8c31
--- /dev/null
+++ b/libslp-location.manifest
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
diff --git a/location.pc.in b/location.pc.in
index a9a8641..87d2aa4 100644
--- a/location.pc.in
+++ b/location.pc.in
@@ -1,13 +1,11 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-datarootdir = @datarootdir@
-datadir=@datadir@
+prefix=@PREFIX@
+exec_prefix=/usr
+libdir=/usr/lib
+includedir=/usr/include/location
Name: location
Description: SLP Location FW
-Requires: glib-2.0 gobject-2.0 gmodule-2.0 vconf location-appman
+Requires: glib-2.0 gobject-2.0 gmodule-2.0 vconf
Version: @VERSION@
Libs: -L${libdir} -lSLP-location
Cflags: -I${includedir} -I${includedir}/location
diff --git a/location/CMakeLists.txt b/location/CMakeLists.txt
new file mode 100644
index 0000000..0fe5454
--- /dev/null
+++ b/location/CMakeLists.txt
@@ -0,0 +1,86 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(location C)
+
+SET(LIB_NAME "SLP-location")
+SET(INC_DIR "include")
+SET(MANAGER_DIR "manager")
+SET(MODULE_DIR "module")
+
+
+
+INCLUDE_DIRECTORIES(
+ ${INC_DIR}
+ ${MANAGER_DIR}
+ ${MODULE_DIR}
+)
+
+### Build ###
+SET(SRCS
+ ${MANAGER_DIR}/location.c
+ ${MANAGER_DIR}/location-marshal.c
+ ${MANAGER_DIR}/location-ielement.c
+ ${MANAGER_DIR}/location-setting.c
+ ${MANAGER_DIR}/location-position.c
+ ${MANAGER_DIR}/location-batch.c
+ ${MANAGER_DIR}/location-velocity.c
+ ${MANAGER_DIR}/location-accuracy.c
+ ${MANAGER_DIR}/location-boundary.c
+ ${MANAGER_DIR}/location-satellite.c
+ ${MANAGER_DIR}/location-signaling-util.c
+ ${MANAGER_DIR}/location-common-util.c
+ ${MANAGER_DIR}/location-gps.c
+ ${MANAGER_DIR}/location-wps.c
+ ${MANAGER_DIR}/location-hybrid.c
+ ${MANAGER_DIR}/location-privacy.c
+
+ ${MODULE_DIR}/module-internal.c
+)
+
+SET (INSTALL_HEADERS
+ ${INC_DIR}/location-types.h
+
+ ${MANAGER_DIR}/location.h
+ ${MANAGER_DIR}/location-position.h
+ ${MANAGER_DIR}/location-batch.h
+ ${MANAGER_DIR}/location-velocity.h
+ ${MANAGER_DIR}/location-accuracy.h
+ ${MANAGER_DIR}/location-boundary.h
+ ${MANAGER_DIR}/location-satellite.h
+
+ ${MODULE_DIR}/location-module.h
+)
+
+ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS})
+TARGET_LINK_LIBRARIES(${LIB_NAME} ${pkgs_LDFLAGS} -lm)
+SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1)
+
+IF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MANAGER_DIR}/location-marshal.c)
+ MESSAGE ("")
+ MESSAGE ("<<< Generating location-marshal.c >>>")
+
+ EXECUTE_PROCESS(
+ COMMAND glib-genmarshal --header --prefix=location ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.list
+ OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.h
+ )
+
+ EXECUTE_PROCESS(
+ COMMAND glib-genmarshal --body --prefix=location ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.list
+ OUTPUT_VARIABLE marshal_var
+ )
+
+ EXECUTE_PROCESS(
+ COMMAND echo "#include \"location-marshal.h\" ${marshal_var}"
+ OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.c
+ )
+
+ENDIF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MANAGER_DIR}/location-marshal.c)
+
+INSTALL(TARGETS ${LIB_NAME} DESTINATION lib COMPONENT Runtime)
+#INSTALL(DIRECTORY manager module DESTINATION
+# "include/${PROJECT_NAME}" FILES_MATCHING PATTERN "*.h")
+#FOREACH(ITEM ${INCLUDE_DIRECTORIES})
+
+FOREACH(ITEM IN ITEMS ${INSTALL_HEADERS})
+ MESSAGE ("${ITEM}")
+ INSTALL(FILES ${ITEM} DESTINATION include/${PROJECT_NAME})
+ENDFOREACH()
diff --git a/location/Makefile.am b/location/Makefile.am
index b4ada5b..7b7d369 100755..100644
--- a/location/Makefile.am
+++ b/location/Makefile.am
@@ -1,15 +1,12 @@
-SUBDIRS = manager map-service module
+SUBDIRS = manager module
lib_LTLIBRARIES = libSLP-location.la
COMMON_HEADER_DIR = include
MANAGER_DIR = manager
-MAP_SERVICE_DIR = map-service
MODULE_DIR = module
libSLP_location_la_SOURCES = \
- ${MANAGER_DIR}/location.c\
- ${MAP_SERVICE_DIR}/location-map-service.c
-
+ ${MANAGER_DIR}/location.c
libSLP_location_la_CFLAGS = \
-fPIC\
@@ -17,12 +14,10 @@ libSLP_location_la_CFLAGS = \
-I${srcdir}/include \
-I${srcdir}/${MANAGER_DIR} \
-I${srcdir}/${MODULE_DIR} \
- -I${srcdir}/${MAP_SERVICE_DIR} \
$(LOCATION_CFLAGS)
libSLP_location_la_LIBADD = \
${MANAGER_DIR}/liblocation-manager.la \
- ${MAP_SERVICE_DIR}/liblocation-map-service.la \
${MODULE_DIR}/liblocation-module.la \
-lm\
$(LOCATION_LIBS)
@@ -30,21 +25,11 @@ libSLP_location_la_LIBADD = \
libSLP_location_includedir = $(includedir)/location
libSLP_location_include_HEADERS = \
${COMMON_HEADER_DIR}/location-types.h \
- ${COMMON_HEADER_DIR}/location-map-types.h \
- ${MANAGER_DIR}/location.h \
- ${MANAGER_DIR}/location-position.h \
- ${MANAGER_DIR}/location-velocity.h \
- ${MANAGER_DIR}/location-accuracy.h \
- ${MANAGER_DIR}/location-boundary.h \
- ${MANAGER_DIR}/location-satellite.h \
- ${MAP_SERVICE_DIR}/location-address.h \
- ${MAP_SERVICE_DIR}/location-map-service.h \
- ${MAP_SERVICE_DIR}/location-map-service-ext.h \
- ${MAP_SERVICE_DIR}/location-poi.h \
- ${MAP_SERVICE_DIR}/location-route.h \
- ${MAP_SERVICE_DIR}/location-route-ext.h \
- ${MAP_SERVICE_DIR}/location-geocode.h \
- ${MAP_SERVICE_DIR}/location-map-pref.h \
- ${MAP_SERVICE_DIR}/location-landmark.h \
- ${MAP_SERVICE_DIR}/location-landmark-ext.h \
+ ${MANAGER_DIR}/location.h \
+ ${MANAGER_DIR}/location-position.h \
+ ${MANAGER_DIR}/location-batch.h \
+ ${MANAGER_DIR}/location-velocity.h \
+ ${MANAGER_DIR}/location-accuracy.h \
+ ${MANAGER_DIR}/location-boundary.h \
+ ${MANAGER_DIR}/location-satellite.h \
${MODULE_DIR}/location-module.h
diff --git a/location/include/location-log.h b/location/include/location-log.h
index ebc2448..47f841e 100644
--- a/location/include/location-log.h
+++ b/location/include/location-log.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,25 +27,19 @@
* @brief This file contains macro functions for logging.
*/
-#define TAG_LOCATION "location"
+/* Tag defines */
+#define TAG_LOCATION_FWK "LOCATION"
-#ifdef LOCATION_DLOG_DEBUG // if debug mode, show filename & line number
#include <dlog.h>
-#define LOCATION_LOGD(fmt,args...) SLOG(LOG_DEBUG, TAG_LOCATION, "[%-15s:%-4d:%-27s]"fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args)
-#define LOCATION_LOGW(fmt,args...) SLOG(LOG_WARN, TAG_LOCATION, "[%-15s:%-4d:%-27s]"fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args)
-#define LOCATION_LOGI(fmt,args...) SLOG(LOG_INFO, TAG_LOCATION, "[%-15s:%-4d:%-27s]"fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args)
-#define LOCATION_LOGE(fmt,args...) SLOG(LOG_ERROR, TAG_LOCATION, "[%-15s:%-4d:%-27s]"fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args)
-#elif LOCATION_DLOG_RELEASE // if release mode, do not show filename & line number
-#include <dlog.h>
-#define LOCATION_LOGD(fmt,args...) SLOG(LOG_DEBUG, TAG_LOCATION, fmt"\n", ##args)
-#define LOCATION_LOGW(fmt,args...) SLOG(LOG_WARN, TAG_LOCATION, fmt"\n", ##args)
-#define LOCATION_LOGI(fmt,args...) SLOG(LOG_INFO, TAG_LOCATION, fmt"\n", ##args)
-#define LOCATION_LOGE(fmt,args...) SLOG(LOG_ERROR, TAG_LOCATION, fmt"\n", ##args)
-#else // if do not use dlog
-#define LOCATION_LOGD(...) g_debug(__VA_ARGS__);
-#define LOCATION_LOGW(...) g_warning(__VA_ARGS__);
-#define LOCATION_LOGI(...) g_message(__VA_ARGS__);
-#define LOCATION_LOGE(...) g_error(__VA_ARGS__);
+#ifdef LOG_TAG
+#undef LOG_TAG
+#define LOG_TAG TAG_LOCATION_FWK
#endif
+#define LOCATION_LOGD(fmt,args...) LOGD(fmt, ##args)
+#define LOCATION_LOGW(fmt,args...) LOGW(fmt, ##args)
+#define LOCATION_LOGI(fmt,args...) LOGI(fmt, ##args)
+#define LOCATION_LOGE(fmt,args...) LOGE(fmt, ##args)
+#define LOCATION_SECLOG(fmt,args...) SECURE_LOGW(fmt, ##args)
+
#endif
diff --git a/location/include/location-map-types.h b/location/include/location-map-types.h
deleted file mode 100644
index c36d788..0000000
--- a/location/include/location-map-types.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_MAP_TYPES_H__
-#define __LOCATION_MAP_TYPES_H__
-
-#include <glib.h>
-#include <glib-object.h>
-#include <location-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-map-types.h
- * @brief This file contains the Location related structure, enumeration, and asynchronous function definitions.
- * @addtogroup LocationFW
- * @{
- * @defgroup LocationMapTypes Location Map Types
- * @brief This sub module provides structure, enumeration, and asynchronous function definitions.
- * @addtogroup LocationMapTypes
- * @{
- */
-
-typedef enum {
- MAP_SERVICE_PREF_LANGUAGE,
- MAP_SERVICE_PREF_DISTANCE_UNIT,
-
- MAP_SERVICE_PREF_PROPERTY,
-
- MAP_SERVICE_GEOCODE_TYPE,
- MAP_SERVICE_REVERSE_GEOCODE_TYPE,
-
- MAP_SERVICE_POI_TYPE,
- MAP_SERVICE_POI_SEARCH_BY_ADDRESS,
- MAP_SERVICE_POI_SEARCH_BY_FREEFORM_ADDRESS,
- MAP_SERVICE_POI_SEARCH_BY_CIRCLE_BOUNDARY,
- MAP_SERVICE_POI_SEARCH_BY_RECT_BOUNDARY,
- MAP_SERVICE_POI_SEARCH_BY_POLYGON_BOUNDARY,
- MAP_SERVICE_POI_PREF_SORT_BY,
- MAP_SERVICE_POI_PREF_PROPERTY,
- MAP_SERVICE_POI_FILTER,
- MAP_SERVICE_POI_FILTER_CATEGORY,
-
- MAP_SERVICE_ROUTE_REQUEST_FREEFORM_ADDR_TO_AVOID,
- MAP_SERVICE_ROUTE_REQUEST_STRUCTED_ADDR_TO_AVOID,
- MAP_SERVICE_ROUTE_REQUEST_CIRCLE_AREA_TO_AVOID,
- MAP_SERVICE_ROUTE_REQUEST_RECT_AREA_TO_AVOID,
- MAP_SERVICE_ROUTE_REQUEST_POLYGON_AREA_TO_AVOID,
- MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID,
- MAP_SERVICE_ROUTE_PREF_TYPE,
- MAP_SERVICE_ROUTE_PREF_TRANSPORT_MODE,
- MAP_SERVICE_ROUTE_PREF_GEOMETRY_BOUNDING_BOX,
- MAP_SERVICE_ROUTE_PREF_GEOMETRY_RETRIEVAL,
- MAP_SERVICE_ROUTE_PREF_INSTRUCTION_GEOMETRY,
- MAP_SERVICE_ROUTE_PREF_INSTRUCTION_BOUNDING_BOX,
- MAP_SERVICE_ROUTE_PREF_INSTRUCTION_RETRIEVAL,
- MAP_SERVICE_ROUTE_PREF_REALTIME_TRAFFIC,
- MAP_SERVICE_ROUTE_PREF_PROPERTY,
- MAP_SERVICE_ROUTE_DISTANCE_UNIT,
- MAP_SERVICE_ROUTE_PROPERTY,
- MAP_SERVICE_ROUTE_SEGMENT_PROPERTY,
- MAP_SERVICE_ROUTE_STEP_PROPERTY,
- MAP_SERVICE_TYPE_MAX
-
-} LocationMapServiceType;
-
-/**
- * @brief Location Map Object redefined by GObject.
- */
-typedef GObject LocationMapObject;
-
-/**
- * @brief This represents address information such as building number, street name, etc.
- */
-typedef struct _LocationAddress LocationAddress;
-
-/**
- * @brief This represents a structure of Location Map Preference.
- */
-typedef struct _LocationMapPref LocationMapPref;
-
-/**
- * @brief This represents a structure of Location POI filter.
- */
-typedef struct _LocationPOIFilter LocationPOIFilter;
-
-/**
- * @brief This represents a structure of Location POI preference.
- */
-typedef struct _LocationPOIPreference LocationPOIPreference;
-
-/**
- * @brief This represents a structure of Landmark information.
- */
-typedef struct _LocationLandmark LocationLandmark;
-
-/**
- * @brief This represents a structure of Landmark Url.
- */
-typedef struct _LocationLandmarkUrl LocationLandmarkUrl;
-
-/**
- * @brief This represents a structure of Location route preference.
- */
-typedef struct _LocationRoutePreference LocationRoutePreference;
-
-/**
- * @brief This represents a structure of Location route.
- */
-typedef struct _LocationRoute LocationRoute;
-
-/**
- * @brief This represents a structure of Location route segment.
- */
-typedef struct _LocationRouteSegment LocationRouteSegment;
-
-/**
- * @brief This represents a structure of Location route step.
- */
-typedef struct _LocationRouteStep LocationRouteStep;
-
-/**
- * @brief This represents callback function which will be called to give position information.
- */
-typedef void (*LocationPositionCB)(LocationError error, GList *position_list, GList *accuracy_list, gpointer userdata);
-
-/**
- * @brief This represents callback function which will be called to give address information.
- */
-typedef void (*LocationAddressCB)(LocationError error, LocationAddress *address, LocationAccuracy *acc, gpointer userdata);
-
-/**
- * @brief This represents callback function which will be called to give POI information.
- */
-typedef void (*LocationPOICB)(LocationError error, guint req_id, GList *landmark_list, gchar *error_code, gchar *error_msg, gpointer userdata);
-
-/**
- * @brief This represents callback function which will be called to give Route information.
- */
-typedef void (*LocationRouteCB)(LocationError error, guint req_id, GList *route_list, gchar *error_code, gchar *error_msg, gpointer userdata);
-
-/**
- * @}@}
- */
-
-G_END_DECLS
-
-#endif /* __LOCATION_MAP_TYPES_H__ */
diff --git a/location/include/location-types.h b/location/include/location-types.h
index f51ccd3..f27c0e5 100644..100755
--- a/location/include/location-types.h
+++ b/location/include/location-types.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,21 +38,22 @@ G_BEGIN_DECLS
* @{
*/
-
/**
* @brief This represents the returned error code of used functions.
*/
typedef enum {
- LOCATION_ERROR_NONE = 0, ///< Success.
- LOCATION_ERROR_NOT_ALLOWED, ///< Location servie is not allowed.
- LOCATION_ERROR_NOT_AVAILABLE, ///< Location service is not available.
- LOCATION_ERROR_NETWORK_FAILED, ///< Network is not available.
- LOCATION_ERROR_NETWORK_NOT_CONNECTED, ///< Network is not connected.
- LOCATION_ERROR_CONFIGURATION, ///< Configuration setting is not correct.
- LOCATION_ERROR_PARAMETER, ///< Input parameter is not correct.
- LOCATION_ERROR_NOT_FOUND, ///< Output is not found.
- LOCATION_ERROR_NOT_SUPPORTED, ///< Not supported.
- LOCATION_ERROR_UNKNOWN, ///< Unknown error.
+ LOCATION_ERROR_NONE = 0, ///< Success.
+ LOCATION_ERROR_NOT_ALLOWED, ///< Location servie is not allowed from privacy settings.
+ LOCATION_ERROR_NOT_AVAILABLE, ///< Location service is not available.
+ LOCATION_ERROR_NETWORK_FAILED, ///< Network is not available.
+ LOCATION_ERROR_NETWORK_NOT_CONNECTED, ///< Network is not connected.
+ LOCATION_ERROR_CONFIGURATION, ///< Configuration setting is not correct.
+ LOCATION_ERROR_PARAMETER, ///< Input parameter is not correct.
+ LOCATION_ERROR_NOT_FOUND, ///< Output is not found.
+ LOCATION_ERROR_NOT_SUPPORTED, ///< Not supported.
+ LOCATION_ERROR_UNKNOWN, ///< Unknown error.
+ LOCATION_ERROR_SETTING_OFF, ///< Location service(GPS/WPS) is off in location settings.
+ LOCATION_ERROR_SECURITY_DENIED, ///< System disables location service.
} LocationError;
/**
@@ -60,24 +61,33 @@ typedef enum {
*/
typedef enum
{
- LOCATION_METHOD_NONE = -1, ///< Undefined method.
- LOCATION_METHOD_HYBRID = 0, ///< This method selects best method.
- LOCATION_METHOD_GPS, ///< This method uses Global Positioning System.
- LOCATION_METHOD_WPS, ///< This method uses Wifi Positioning System.
- LOCATION_METHOD_CPS, ///< This method uses cell ID of base station.
+ LOCATION_METHOD_NONE = -1, ///< Undefined method.
+ LOCATION_METHOD_HYBRID = 0, ///< This method selects best method.
+ LOCATION_METHOD_GPS, ///< This method uses Global Positioning System.
+ LOCATION_METHOD_WPS, ///< This method uses Wifi Positioning System.
+ LOCATION_METHOD_MAX, ///< The numer of methods
} LocationMethod;
/**
- * @brief This represents the update type given by signal callback.
+ * @brief This represents the update type given by signal callback.
*/
typedef enum {
- UPDATE_TYPE_NONE = -1, ///< Undefined update type.
- POSITION_UPDATED = 0, ///< This type is used when position information is updated.
- VELOCITY_UPDATED, ///< This type is used when velocity information is updated.
- SATELLITE_UPDATED, ///< This type is used when satellite information is updated.
+ UPDATE_TYPE_NONE = -1, ///< Undefined update type.
+ POSITION_UPDATED = 0, ///< This type is used when position information is updated.
+ VELOCITY_UPDATED, ///< This type is used when velocity information is updated.
+ SATELLITE_UPDATED, ///< This type is used when satellite information is updated.
} LocationUpdateType;
/**
+ * @brief This represents the state whether an application is able to use location service
+ */
+typedef enum {
+ LOCATION_ACCESS_NONE, ///< An application is not registered.
+ LOCATION_ACCESS_DENIED, ///< An application is not permited to use location service.
+ LOCATION_ACCESS_ALLOWED, ///< An application is able to use location service.
+} LocationAccessState;
+
+/**
* @brief Location object redefined by GObject.
*/
typedef GObject LocationObject;
@@ -85,33 +95,40 @@ typedef GObject LocationObject;
/**
* @brief This represents position information such as latitude-longitude-altitude values and timestamp.
*/
-typedef struct _LocationPosition LocationPosition;
+typedef struct _LocationPosition LocationPosition;
/**
* @brief This represents last known position information such as latitude-longitude values and accuracy. \n
- * This would be deprecated soon.
+ * This would be deprecated soon.
*/
-typedef struct _LocationLastPosition LocationLastPosition;
+typedef struct _LocationLastPosition LocationLastPosition;
+
+/**
+ * @brief This represents location batch information such as Position, Satellite and Accuracy.
+ */
+typedef struct _LocationBatch LocationBatch;
/**
* @brief This represents position information such as number of satellites in used or in view.
*/
-typedef struct _LocationSatellite LocationSatellite;
+typedef struct _LocationSatellite LocationSatellite;
/**
* @brief This represents velocity information such as as speed, direction, climb.
*/
-typedef struct _LocationVelocity LocationVelocity;
+typedef struct _LocationVelocity LocationVelocity;
/**
* @brief This represents location accuracy information such as accuracy level, horizontal and vertical accuracy.
*/
-typedef struct _LocationAccuracy LocationAccuracy;
+typedef struct _LocationAccuracy LocationAccuracy;
/**
* @brief This represents boundary information such as rectangular or circle area.
*/
-typedef struct _LocationBoundary LocationBoundary;
+typedef struct _LocationBoundary LocationBoundary;
+
+typedef void (*LocationSettingCb) (LocationMethod method, gboolean enable, void *user_data);
/**
* @}@}
diff --git a/location/manager/Makefile.am b/location/manager/Makefile.am
index cce6736..401b620 100644
--- a/location/manager/Makefile.am
+++ b/location/manager/Makefile.am
@@ -1,41 +1,42 @@
-noinst_LTLIBRARIES = liblocation-manager.la
-
-COMMON_HEADER_DIR = include
-MANAGER_DIR = manager
-MAP_SERVICE_DIR = map-service
-MODULE_DIR = module
-
-liblocation_manager_la_SOURCES = \
- location-marshal.c \
- location-marshal.h \
- location-ielement.c \
- location-setting.c \
- location-position.c \
- location-velocity.c \
- location-accuracy.c \
- location-boundary.c \
- location-satellite.c \
- location-signaling-util.c \
- location-common-util.c \
- location-gps.c \
- location-wps.c \
- location-cps.c \
- location-hybrid.c
-
-liblocation_manager_la_CFLAGS = \
- -fPIC\
- -I${srcdir} \
- -I${srcdir}/.. \
- -I${srcdir}/../include \
- -I${srcdir}/../${MANAGER_DIR} \
- -I${srcdir}/../${MODULE_DIR} \
- -I${srcdir}/../${MAP_SERVICE_DIR} \
- $(LOCATION_CFLAGS)
-
-EXTRA_DIST = \
- location-marshal.list
-
-location-marshal.h: location-marshal.list $(GLIB_GENMARSHAL)
- $(GLIB_GENMARSHAL) $< --header --prefix=location > $@
-location-marshal.c: location-marshal.list location-marshal.h $(GLIB_GENMARSHAL)
- echo "#include \"location-marshal.h\"" > $@ && $(GLIB_GENMARSHAL) location-marshal.list --body --prefix=location >> $@
+noinst_LTLIBRARIES = liblocation-manager.la
+
+COMMON_HEADER_DIR = include
+MANAGER_DIR = manager
+MAP_SERVICE_DIR = map-service
+MODULE_DIR = module
+
+liblocation_manager_la_SOURCES = \
+ location-marshal.c \
+ location-marshal.h \
+ location-ielement.c \
+ location-setting.c \
+ location-position.c \
+ location-batch.c \
+ location-velocity.c \
+ location-accuracy.c \
+ location-boundary.c \
+ location-satellite.c \
+ location-signaling-util.c \
+ location-common-util.c \
+ location-gps.c \
+ location-wps.c \
+ location-hybrid.c \
+ location-privacy.c
+
+liblocation_manager_la_CFLAGS = \
+ -fPIC\
+ -I${srcdir} \
+ -I${srcdir}/.. \
+ -I${srcdir}/../include \
+ -I${srcdir}/../${MANAGER_DIR} \
+ -I${srcdir}/../${MAP_SERVICE_DIR} \
+ -I${srcdir}/../${MODULE_DIR} \
+ $(LOCATION_CFLAGS)
+
+EXTRA_DIST = \
+ location-marshal.list
+
+location-marshal.h: location-marshal.list $(GLIB_GENMARSHAL)
+ $(GLIB_GENMARSHAL) $< --header --prefix=location > $@
+location-marshal.c: location-marshal.list location-marshal.h $(GLIB_GENMARSHAL)
+ echo "#include \"location-marshal.h\"" > $@ && $(GLIB_GENMARSHAL) location-marshal.list --body --prefix=location >> $@
diff --git a/location/manager/location-accuracy.c b/location/manager/location-accuracy.c
index 327e883..0a5dac7 100644..100755
--- a/location/manager/location-accuracy.c
+++ b/location/manager/location-accuracy.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,6 +46,8 @@ location_accuracy_new (LocationAccuracyLevel level,
gdouble vertical_accuracy)
{
LocationAccuracy* accuracy = g_slice_new0 (LocationAccuracy);
+ g_return_val_if_fail(accuracy, NULL);
+
accuracy->level = level;
accuracy->horizontal_accuracy = horizontal_accuracy;
accuracy->vertical_accuracy = vertical_accuracy;
@@ -61,20 +63,22 @@ location_accuracy_free (LocationAccuracy* accuracy)
}
static int
-comp_int(int a, int b){
+comp_int(int a, int b)
+{
if (a < b) return -1;
if (a == b) return 0;
return 1;
}
static int
-comp_double_reverse(double a, double b) {
- if (a > b) return -1;
- else if (a == b) return 0;
- return 1;
+comp_double_reverse(double a, double b)
+{
+ if (a > b) return -1;
+ else if (a == b) return 0;
+ return 1;
}
-int
+EXPORT_API int
location_accuracy_level_compare(const LocationAccuracy *accuracy1, const LocationAccuracy *accuracy2)
{
g_return_val_if_fail(accuracy1, -1);
@@ -100,6 +104,6 @@ location_accuracy_copy (const LocationAccuracy *accuracy)
{
g_return_val_if_fail(accuracy, NULL);
return location_accuracy_new(accuracy->level,
- accuracy->horizontal_accuracy,
- accuracy->vertical_accuracy);
+ accuracy->horizontal_accuracy,
+ accuracy->vertical_accuracy);
}
diff --git a/location/manager/location-accuracy.h b/location/manager/location-accuracy.h
index f257705..4d4270d 100644
--- a/location/manager/location-accuracy.h
+++ b/location/manager/location-accuracy.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,13 +47,13 @@ GType location_accuracy_get_type(void);
* @brief This represents the approximate accuracy level of given information.
*/
typedef enum {
- LOCATION_ACCURACY_LEVEL_NONE = 0, ///< Invalid data.
- LOCATION_ACCURACY_LEVEL_COUNTRY, ///< Country accuracy level->
- LOCATION_ACCURACY_LEVEL_REGION, ///< Regional accuracy level->
- LOCATION_ACCURACY_LEVEL_LOCALITY, ///< Local accuracy level->
- LOCATION_ACCURACY_LEVEL_POSTALCODE, ///< Postal accuracy level->
- LOCATION_ACCURACY_LEVEL_STREET, ///< Street accuracy level->
- LOCATION_ACCURACY_LEVEL_DETAILED, ///< Detailed accuracy level->
+ LOCATION_ACCURACY_LEVEL_NONE = 0, ///< Invalid data.
+ LOCATION_ACCURACY_LEVEL_COUNTRY, ///< Country accuracy level->
+ LOCATION_ACCURACY_LEVEL_REGION, ///< Regional accuracy level->
+ LOCATION_ACCURACY_LEVEL_LOCALITY, ///< Local accuracy level->
+ LOCATION_ACCURACY_LEVEL_POSTALCODE, ///< Postal accuracy level->
+ LOCATION_ACCURACY_LEVEL_STREET, ///< Street accuracy level->
+ LOCATION_ACCURACY_LEVEL_DETAILED, ///< Detailed accuracy level->
} LocationAccuracyLevel;
/**
@@ -61,41 +61,41 @@ typedef enum {
*/
struct _LocationAccuracy
{
- LocationAccuracyLevel level; ///< The accuracy level of the location information.
- gdouble horizontal_accuracy; ///< The horizontal position uncertainty of the location in meters.
- gdouble vertical_accuracy; ///< The vertical position uncertainty of the location in meters.
+ LocationAccuracyLevel level; ///< The accuracy level of the location information.
+ gdouble horizontal_accuracy; ///< The horizontal position uncertainty of the location in meters.
+ gdouble vertical_accuracy; ///< The vertical position uncertainty of the location in meters.
};
/**
- * @brief Create a new #LocationAccuracy with given information.
+ * @brief Create a new #LocationAccuracy with given information.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] level - The accuracy level of the location information.
- * @param [in] horizontal_accuracy - The horizontal position uncertainty of the location in meters.
- * @param [in] vertical_accuracy - The vertical position uncertainty of the location in meters.
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] level - The accuracy level of the location information.
+ * @param [in] horizontal_accuracy - The horizontal position uncertainty of the location in meters.
+ * @param [in] vertical_accuracy - The vertical position uncertainty of the location in meters.
* @return a new #LocationAccuracy
* @retval NULL if error occured
*/
LocationAccuracy *location_accuracy_new (LocationAccuracyLevel level, gdouble horizontal_accuracy, gdouble vertical_accuracy);
/**
- * @brief Free a #LocationAccuracy.
+ * @brief Free a #LocationAccuracy.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] accuracy - a #LocationAccuracy.
* @return None.
*/
void location_accuracy_free (LocationAccuracy *accuracy);
/**
- * @brief Compare for two accuracys.
+ * @brief Compare for two accuracys.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] accuracy1 - a #LocationAccuracy
- * @param [in] accuracy2 - another #LocationAccuracy
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] accuracy1 - a #LocationAccuracy
+ * @param [in] accuracy2 - another #LocationAccuracy
* @return integer
* @retval\n
* 0 - if the accuracy match\n
@@ -105,12 +105,12 @@ void location_accuracy_free (LocationAccuracy *accuracy);
int location_accuracy_compare (const LocationAccuracy *accuracy1, const LocationAccuracy *accuracy2);
/**
- * @brief Compare for two accuracys' level.
+ * @brief Compare for two accuracys' level.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] accuracy1 - a #LocationAccuracy
- * @param [in] accuracy2 - another #LocationAccuracy
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] accuracy1 - a #LocationAccuracy
+ * @param [in] accuracy2 - another #LocationAccuracy
* @return integer
* @retval\n
* 0 - if the accuracy match\n
@@ -120,11 +120,11 @@ int location_accuracy_compare (const LocationAccuracy *accuracy1, const Location
int location_accuracy_level_compare(const LocationAccuracy *accuracy1, const LocationAccuracy *accuracy2);
/**
- * @brief Makes a copy of #LocationAccuracy
+ * @brief Makes a copy of #LocationAccuracy
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] accuracy - a #LocationAccuracy
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] accuracy - a #LocationAccuracy
* @return a new #LocationAccuracy
* @retval NULL if error occured
*/
diff --git a/location/manager/location-batch.c b/location/manager/location-batch.c
new file mode 100755
index 0000000..94ce8ae
--- /dev/null
+++ b/location/manager/location-batch.c
@@ -0,0 +1,197 @@
+/*
+ * libslp-location
+ *
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define MAX_BATCH_ITEM 8
+#define BATCH_SENTENCE_SIZE 256
+#define BATCH_LOG "/opt/usr/media/lbs-server/location_batch.log"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include "location-batch.h"
+#include "location-log.h"
+
+
+EXPORT_API LocationBatch*
+location_batch_new (int num_of_location)
+{
+ LocationBatch* batch = g_slice_new0(LocationBatch);
+ g_return_val_if_fail(batch, NULL);
+
+ batch->num_of_location = num_of_location;
+ batch->batch_data = g_new0(LocationBatchDetail, batch->num_of_location);
+ return batch;
+}
+
+EXPORT_API gboolean
+location_set_batch_parse_details (LocationBatch *batch, char* location_info, int i)
+{
+ g_return_val_if_fail(batch, FALSE);
+ g_return_val_if_fail(batch->batch_data, FALSE);
+
+ char location[128] = {0,};
+ char *last_location[MAX_BATCH_ITEM] = {0,};
+ char *last = NULL;
+ int index = 0;
+
+ snprintf(location, sizeof(location), "%s", location_info);
+
+ last_location[index] = (char *)strtok_r(location, ";", &last);
+ while (last_location[index++] != NULL) {
+ if (index == MAX_BATCH_ITEM)
+ break;
+ last_location[index] = (char *)strtok_r(NULL, ";", &last);
+ }
+ index = 0;
+
+ batch->batch_data[i].timestamp = strtod(last_location[index++], NULL);
+ batch->batch_data[i].latitude = strtod(last_location[index++], NULL);
+ batch->batch_data[i].longitude = strtod(last_location[index++], NULL);
+ batch->batch_data[i].altitude = strtod(last_location[index++], NULL);
+ batch->batch_data[i].speed = strtod(last_location[index++], NULL);
+ batch->batch_data[i].direction = strtod(last_location[index++], NULL);
+ batch->batch_data[i].horizontal_accuracy= strtod(last_location[index++], NULL);
+ batch->batch_data[i].vertical_accuracy = strtod(last_location[index++], NULL);
+
+ return TRUE;
+}
+
+EXPORT_API LocationBatch*
+location_get_batch_file (int num_of_location)
+{
+ LOCATION_LOGD("location_get_batch_file [num_of_location = %d]", num_of_location);
+ LocationBatch* batch = location_batch_new(num_of_location);
+ batch->num_of_location = num_of_location;
+
+ FILE *fd = fopen(BATCH_LOG, "r");
+ if (fd != NULL) {
+ char buf[BATCH_SENTENCE_SIZE] = { 0, };
+ int i = 0;
+
+ for (i = 0; i < num_of_location; i++) {
+ if (fgets(buf, BATCH_SENTENCE_SIZE, fd) != NULL) {
+ location_set_batch_parse_details(batch, buf, i);
+ }
+
+ }
+ fclose(fd);
+ }
+ else {
+ LOCATION_LOGE("Batch fd is NULL");
+ }
+ return batch;
+}
+
+EXPORT_API LocationBatch*
+location_batch_copy (const LocationBatch *batch)
+{
+ g_return_val_if_fail(batch, NULL);
+ LocationBatch* batch_dup = location_batch_new(batch->num_of_location);
+ batch_dup->num_of_location = batch->num_of_location;
+ int i = 0;
+ for (i = 0 ; i < batch_dup->num_of_location; i++)
+ location_set_batch_details(batch_dup, i,
+ batch->batch_data[i].latitude,
+ batch->batch_data[i].longitude,
+ batch->batch_data[i].altitude,
+ batch->batch_data[i].speed,
+ batch->batch_data[i].direction,
+ batch->batch_data[i].horizontal_accuracy,
+ batch->batch_data[i].vertical_accuracy,
+ batch->batch_data[i].timestamp);
+ return batch_dup;
+}
+
+EXPORT_API gboolean
+location_get_batch_details (const LocationBatch *batch,
+ guint index,
+ gdouble *latitude,
+ gdouble *longitude,
+ gdouble *altitude,
+ gdouble *speed,
+ gdouble *direction,
+ gdouble *h_accuracy,
+ gdouble *v_accuracy,
+ guint *timestamp)
+{
+ g_return_val_if_fail(batch, FALSE);
+ g_return_val_if_fail(latitude, FALSE);
+ g_return_val_if_fail(longitude, FALSE);
+ g_return_val_if_fail(altitude, FALSE);
+ g_return_val_if_fail(speed, FALSE);
+ g_return_val_if_fail(direction, FALSE);
+ g_return_val_if_fail(h_accuracy, FALSE);
+ g_return_val_if_fail(v_accuracy, FALSE);
+ g_return_val_if_fail(timestamp, FALSE);
+ g_return_val_if_fail(batch->batch_data, FALSE);
+
+ *latitude = batch->batch_data[index].latitude;
+ *longitude = batch->batch_data[index].longitude;
+ *altitude = batch->batch_data[index].altitude;
+ *speed = batch->batch_data[index].speed;
+ *direction = batch->batch_data[index].direction;
+ *h_accuracy = batch->batch_data[index].horizontal_accuracy;
+ *v_accuracy = batch->batch_data[index].vertical_accuracy;
+ *timestamp = batch->batch_data[index].timestamp;
+
+ return TRUE;
+}
+
+EXPORT_API gboolean
+location_set_batch_details (LocationBatch *batch,
+ guint index,
+ gdouble latitude,
+ gdouble longitude,
+ gdouble altitude,
+ gdouble speed,
+ gdouble direction,
+ gdouble h_accuracy,
+ gdouble v_accuracy,
+ guint timestamp)
+{
+ g_return_val_if_fail(batch, FALSE);
+ g_return_val_if_fail(batch->batch_data, FALSE);
+ g_return_val_if_fail(index < batch->num_of_location, FALSE);
+
+ batch->batch_data[index].latitude = latitude;
+ batch->batch_data[index].longitude = longitude;
+ batch->batch_data[index].altitude = altitude;
+ batch->batch_data[index].speed = speed;
+ batch->batch_data[index].direction = direction;
+ batch->batch_data[index].horizontal_accuracy = h_accuracy;
+ batch->batch_data[index].vertical_accuracy = v_accuracy;
+ batch->batch_data[index].timestamp = timestamp;
+
+ return TRUE;
+}
+
+EXPORT_API void
+location_batch_free (LocationBatch* batch)
+{
+ g_return_if_fail(batch);
+ g_free(batch->batch_data);
+ g_slice_free(LocationBatch, batch);
+}
+
diff --git a/location/manager/location-batch.h b/location/manager/location-batch.h
new file mode 100644
index 0000000..be89230
--- /dev/null
+++ b/location/manager/location-batch.h
@@ -0,0 +1,90 @@
+/*
+ * libslp-location
+ *
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCATION_BATCH_H_
+#define __LOCATION_BATCH_H_
+
+#include <location-types.h>
+
+G_BEGIN_DECLS
+
+GType location_batch_get_type (void);
+#define LOCATION_TYPE_BATCH (location_batch_get_type ())
+
+/**
+ * @file location-batch.h
+ * @brief This file contains the internal definitions and structures related to batch information.
+ */
+/**
+ * @addtogroup LocationAPI
+ * @{
+ * @defgroup LocationAPIBatch Location Batch
+ * @breif This provides APIs related to Location Batch
+ * @addtogroup LocationAPIBatch
+ * @{
+ */
+
+/**
+ * TBD
+ */
+typedef struct {
+ guint timestamp; ///< Time stamp.
+ guint level; ///< Level.
+ gdouble latitude; ///< Latitude data.
+ gdouble longitude; ///< Longitude data.
+ gdouble altitude; ///< Altitude data.
+ gdouble horizontal_accuracy; ///< Horizontal accuracy data.
+ gdouble vertical_accuracy; ///< Vertical accuracy data.
+ gdouble speed; ///< The speed over ground. (km/h)
+ gdouble direction; ///< The course made in degrees relative to true north. The value is always in the range [0.0, 360.0] degree.
+ gdouble climb; ///< The vertical speed. (km/h)
+} LocationBatchDetail;
+
+/**
+ * TBD
+ */
+struct _LocationBatch
+{
+ guint num_of_location; ///< The number of location batch.
+ LocationBatchDetail* batch_data;
+};
+
+LocationBatch*location_batch_new (int num_of_location);
+
+gboolean location_set_batch_parse_details(LocationBatch *batch, char* location_info, int i);
+
+gboolean location_get_batch_details(const LocationBatch *batch, guint index, gdouble *latitude, gdouble *longitude, gdouble *altitude, gdouble *speed, gdouble *direction, gdouble *h_accuracy, gdouble *v_accuracy, guint *timestamp);
+
+gboolean location_set_batch_details(LocationBatch *batch, guint index, gdouble latitude, gdouble longitude, gdouble altitude, gdouble speed, gdouble direction, gdouble h_accuracy, gdouble v_accuracy, guint timestamp);
+
+LocationBatch *location_batch_copy (const LocationBatch *batch);
+
+LocationBatch* location_get_batch_file (int num_of_location);
+
+void location_batch_free (LocationBatch* batch);
+
+/**
+ * @} @}
+ */
+
+G_END_DECLS
+
+#endif
diff --git a/location/manager/location-boundary.c b/location/manager/location-boundary.c
index 1ce61f2..f357039 100644..100755
--- a/location/manager/location-boundary.c
+++ b/location/manager/location-boundary.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
/*
* location_boundary_if_inside(LocationBoundary* boundary,
- * LocationPosition* position)
+ * LocationPosition* position)
* code from
*
* Copyright (c) 1970-2003, Wm. Randolph Franklin
@@ -50,6 +50,12 @@
* IN THE SOFTWARE.
*/
+/*
+ * location_boundary_get_center_position (LocationBoundary *boundary)
+ * algorithm from http://en.wikipedia.org/wiki/Centroid
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -57,6 +63,7 @@
#include <math.h>
#include <string.h>
#include "location-boundary.h"
+#include "location-common-util.h"
#include "location-log.h"
GType
@@ -93,7 +100,6 @@ static void _free_polygon_position(gpointer data)
location_position_free(position);
}
-
EXPORT_API LocationBoundary *
location_boundary_new_for_rect (LocationPosition* left_top,
LocationPosition* right_bottom)
@@ -104,7 +110,7 @@ location_boundary_new_for_rect (LocationPosition* left_top,
gdouble lon_interval = right_bottom->longitude - left_top->longitude;
if(lon_interval < 180 && lon_interval > -180) {
- if(right_bottom->longitude <= left_top->longitude || right_bottom->latitude <= left_top->latitude)
+ if(right_bottom->longitude <= left_top->longitude || right_bottom->latitude >= left_top->latitude)
return NULL;
}
else {
@@ -113,6 +119,8 @@ location_boundary_new_for_rect (LocationPosition* left_top,
}
LocationBoundary* boundary = g_slice_new0 (LocationBoundary);
+ g_return_val_if_fail(boundary, NULL);
+
boundary->type = LOCATION_BOUNDARY_RECT;
boundary->rect.left_top = location_position_copy(left_top);
boundary->rect.right_bottom = location_position_copy(right_bottom);
@@ -126,6 +134,8 @@ location_boundary_new_for_circle (LocationPosition* center,
g_return_val_if_fail(center, NULL);
g_return_val_if_fail(radius > 0, NULL);
LocationBoundary* boundary = g_slice_new0 (LocationBoundary);
+ g_return_val_if_fail(boundary, NULL);
+
boundary->type = LOCATION_BOUNDARY_CIRCLE;
boundary->circle.center = location_position_copy(center);
boundary->circle.radius = radius;
@@ -139,6 +149,7 @@ location_boundary_new_for_polygon(GList *position_list)
g_return_val_if_fail(g_list_length(position_list) > 2, NULL);
LocationBoundary *boundary = g_slice_new0 (LocationBoundary);
+ g_return_val_if_fail(boundary, NULL);
g_list_foreach(position_list, (GFunc)_append_polygon_position, boundary);
boundary->type = LOCATION_BOUNDARY_POLYGON;
@@ -177,7 +188,6 @@ location_boundary_copy (const LocationBoundary* boundary)
return NULL;
}
-
EXPORT_API gboolean
location_boundary_if_inside (LocationBoundary* boundary,
LocationPosition* position)
@@ -188,7 +198,6 @@ location_boundary_if_inside (LocationBoundary* boundary,
gboolean is_inside = FALSE;
switch(boundary->type) {
-
case LOCATION_BOUNDARY_RECT: {
gdouble y = position->latitude;
gdouble x = position->longitude;
@@ -221,7 +230,7 @@ location_boundary_if_inside (LocationBoundary* boundary,
center.longitude = boundary->circle.center->longitude;
location_get_distance(&center, position, &distance);
- if (distance < boundary->circle.radius){
+ if (distance < boundary->circle.radius){
LOCATION_LOGD("\tInside Circle boundary");
is_inside = TRUE;
}
@@ -229,20 +238,16 @@ location_boundary_if_inside (LocationBoundary* boundary,
}
case LOCATION_BOUNDARY_POLYGON: {
- int i, j;
double interval_x = 0.0, interval_y = 0.0;
double x0, y0;
gboolean edge_area;
int crossing_num = 0;
GList *position_list = boundary->polygon.position_list;
- int count = g_list_length(position_list);
GList *pos1_list = NULL;
GList *pos2_list = NULL;
LocationPosition* pos1 = NULL;
LocationPosition* pos2 = NULL;
- i = 0;
- j = count - 1;
pos1_list = g_list_first(position_list);
pos2_list = g_list_last(position_list);
while(pos1_list) {
@@ -314,12 +319,19 @@ location_boundary_add(const LocationObject *obj, const LocationBoundary *boundar
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (boundary, LOCATION_ERROR_PARAMETER);
- GList *boundary_list = NULL;
+ GList *boundary_priv_list = NULL;
- boundary_list = g_list_append(boundary_list, (gpointer) boundary);
+ LocationBoundaryPrivate *priv = g_slice_new0(LocationBoundaryPrivate);
+ g_return_val_if_fail (priv, LOCATION_ERROR_PARAMETER);
- g_object_set(G_OBJECT(obj), "boundary", boundary_list, NULL);
+ priv->boundary = location_boundary_copy(boundary);
+ priv->zone_status = ZONE_STATUS_NONE;
+ boundary_priv_list = g_list_append(boundary_priv_list, (gpointer) priv);
+
+ g_object_set(G_OBJECT(obj), "boundary", boundary_priv_list, NULL);
+
+ g_list_free(boundary_priv_list);
return LOCATION_ERROR_NONE;
}
@@ -341,16 +353,27 @@ location_boundary_foreach(const LocationObject *obj, LocationBoundaryFunc func,
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (func, LOCATION_ERROR_PARAMETER);
+ int index = 0;
+ GList * boundary_priv_list = NULL;
GList * boundary_list = NULL;
+ LocationBoundaryPrivate *priv;
- g_object_get(G_OBJECT(obj), "boundary", &boundary_list, NULL);
+ g_object_get(G_OBJECT(obj), "boundary", &boundary_priv_list, NULL);
- if (boundary_list == NULL) {
+ if (boundary_priv_list == NULL) {
LOCATION_LOGD("There is no boundary.");
return LOCATION_ERROR_UNKNOWN;
}
+
+ while((priv = (LocationBoundaryPrivate *)g_list_nth_data(boundary_priv_list, index))!= NULL) {
+ boundary_list = g_list_append(boundary_list, (gpointer) priv->boundary);
+ index++;
+ }
+
g_list_foreach(boundary_list, (GFunc)func, user_data);
+ g_list_free(boundary_list);
+
return LOCATION_ERROR_NONE;
}
@@ -367,7 +390,76 @@ EXPORT_API LocationPosition *
location_boundary_get_center_position (LocationBoundary *boundary)
{
g_return_val_if_fail (boundary, NULL);
+
LocationPosition *center = NULL;
+ switch(boundary->type) {
+ case LOCATION_BOUNDARY_RECT: {
+ gdouble latitude, longitude, altitude;
+ latitude = (boundary->rect.left_top->latitude + boundary->rect.right_bottom->latitude) / 2.0;
+ longitude = (boundary->rect.left_top->longitude + boundary->rect.right_bottom->longitude) / 2.0;
+ altitude = (boundary->rect.left_top->altitude + boundary->rect.right_bottom->altitude) / 2.0;
+
+ center = location_position_new(boundary->rect.left_top->timestamp, latitude, longitude, altitude, boundary->rect.left_top->status);
+ break;
+ }
+ case LOCATION_BOUNDARY_CIRCLE: {
+ center = location_position_copy(boundary->circle.center);
+ break;
+ }
+ case LOCATION_BOUNDARY_POLYGON: {
+ gdouble center_latitude = 0.0;
+ gdouble center_longitude = 0.0;
+ gdouble area = 0.0;
+
+ gdouble x1, y1;
+ gdouble x2, y2;
+ GList *position_list = boundary->polygon.position_list;
+ GList *pos1_list = g_list_first(position_list);
+ GList *pos2_list = g_list_next(pos1_list);
+ LocationPosition* pos1 = NULL;
+ LocationPosition* pos2 = NULL;
+
+ while(pos2_list) {
+ pos1 = pos1_list->data;
+ pos2 = pos2_list->data;
+
+ x1 = pos1->latitude + 90.0;
+ y1 = pos1->longitude + 180.0;
+ x2 = pos2->latitude + 90.0;
+ y2 = pos2->longitude + 180.0;
+
+ center_latitude += (x1 + x2) * (x1*y2 - x2*y1);
+ center_longitude += (y1 + y2) * (x1*y2 - x2*y1);
+ area += x1*y2 - x2*y1;
+
+ pos1_list = pos2_list;
+ pos2_list = g_list_next(pos2_list);
+ }
+
+ pos2_list = g_list_first(position_list);
+ pos1 = pos1_list->data;
+ pos2 = pos2_list->data;
+
+ x1 = pos1->latitude + 90.0;
+ y1 = pos1->longitude + 180.0;
+ x2 = pos2->latitude + 90.0;
+ y2 = pos2->longitude + 180.0;
+
+ center_latitude += (x1 + x2) * (x1*y2 - x2*y1);
+ center_longitude += (y1 + y2) * (x1*y2 - x2*y1);
+ area += x1*y2 - x2*y1;
+
+ area = fabs(area / 2.0);
+ if (area != 0) {
+ center_latitude = (center_latitude - 90.0) / (6.0 * area);
+ center_longitude = (center_longitude - 180.0) / (6.0 * area);
+ center = location_position_new(0, center_latitude, center_longitude, 0, LOCATION_STATUS_2D_FIX);
+ }
+ break;
+ }
+ default:
+ break;
+ }
return center;
}
diff --git a/location/manager/location-boundary.h b/location/manager/location-boundary.h
index c3603ef..1fca56e 100644
--- a/location/manager/location-boundary.h
+++ b/location/manager/location-boundary.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,7 +30,6 @@ G_BEGIN_DECLS
GType location_boundary_get_type (void);
#define LOCATION_TYPE_BOUNDARY (location_boundary_get_type ())
-
/**
* @file location-boundary.h
* @brief This file contains the definitions, structures, and functions related to boundary information.
@@ -54,9 +53,9 @@ typedef void (*LocationBoundaryFunc) (LocationBoundary *boundary, gpointer user_
* @brief This represents used geographical type, and supports rectangle or circle area.
*/
typedef enum {
- LOCATION_BOUNDARY_NONE = 0, ///< Undefined geographical area type.
- LOCATION_BOUNDARY_RECT, ///< Rectangular geographical area type.
- LOCATION_BOUNDARY_CIRCLE, ///< Circle geographical area type.
+ LOCATION_BOUNDARY_NONE = 0, ///< Undefined geographical area type.
+ LOCATION_BOUNDARY_RECT, ///< Rectangular geographical area type.
+ LOCATION_BOUNDARY_CIRCLE, ///< Circle geographical area type.
LOCATION_BOUNDARY_POLYGON ///< Polygon geographical area type.
} LocationBoundaryType;
@@ -64,88 +63,88 @@ typedef enum {
* @brief This represents a rectangular geographical area.
*/
typedef struct {
- LocationPosition* left_top; ///< The left top position of rectangle.
- LocationPosition* right_bottom; ///< The right bottom position of rectangle.
+ LocationPosition* left_top; ///< The left top position of rectangle.
+ LocationPosition* right_bottom; ///< The right bottom position of rectangle.
} LocationRect;
/**
* @brief This represents a circle geographical area with center geographic position and radius.
*/
typedef struct {
- LocationPosition* center; ///< The center position of a circle.
- gdouble radius; ///< The radius of a circle.
+ LocationPosition* center; ///< The center position of a circle.
+ gdouble radius; ///< The radius of a circle.
} LocationCircle;
/**
* @brief This represents a polygon geographical area.
*/
typedef struct {
- GList *position_list; ///< The collection of positions
+ GList *position_list; ///< The collection of positions
} LocationPolygon;
/**
* @brief This represents boundary information such as rectangular or circle area.
*/
struct _LocationBoundary{
- LocationBoundaryType type; ///< The boundary type of this information.
+ LocationBoundaryType type; ///< The boundary type of this information.
union {
- LocationRect rect; ///< The geographical information of a rectangle.
- LocationCircle circle; ///< The geographical information of a circle.
- LocationPolygon polygon; ///< The geographical information of a polygon.
+ LocationRect rect; ///< The geographical information of a rectangle.
+ LocationCircle circle; ///< The geographical information of a circle.
+ LocationPolygon polygon; ///< The geographical information of a polygon.
};
};
/**
- * @brief Create a rectangular type of new #LocationBoundary with given information.
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] left_top - left top position.
- * @param [in] right_bottom - right bottom position.
+ * @brief Create a rectangular type of new #LocationBoundary with given information.
+ * @remarks None.
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] left_top - left top position.
+ * @param [in] right_bottom - right bottom position.
* @return a new #LocationBoundary
* @retval NULL if error occured
*/
LocationBoundary *location_boundary_new_for_rect (LocationPosition *left_top, LocationPosition *right_bottom);
/**
- * @brief Create a circle type of new #LocationBoundary with given information.
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] center - center position.
- * @param [in] radius - radius.
+ * @brief Create a circle type of new #LocationBoundary with given information.
+ * @remarks None.
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] center - center position.
+ * @param [in] radius - radius.
* @return a new #LocationBoundary
* @retval NULL if error occured
*/
LocationBoundary *location_boundary_new_for_circle (LocationPosition *center, gdouble radius);
/**
- * @brief Create a polygon type of new #LocationBoundary with given information.
+ * @brief Create a polygon type of new #LocationBoundary with given information.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] position_list - the list of positions.
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] position_list - the list of positions.
* @return a new #LocationBoundary
* @retval NULL if error occured
*/
LocationBoundary *location_boundary_new_for_polygon(GList *position_list);
/**
- * @brief Free a #LocationBoundary.
+ * @brief Free a #LocationBoundary.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] boundary - a #LocationBoundary.
* @return None.
*/
void location_boundary_free (LocationBoundary *boundary);
/**
- * @brief Makes a copy of #LocationBoundary
+ * @brief Makes a copy of #LocationBoundary
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] boundary - a #LocationBoundary
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] boundary - a #LocationBoundary
* @return a new #LocationBoundary
* @retval NULL if error occured
*/
@@ -156,25 +155,25 @@ LocationBoundary *location_boundary_copy (const LocationBoundary* boundary);
* Add Boundary on LocationFW.
* You should call this fuction when you want to receive a crossing signal(zone-in/zone-out) from #LocationBoundary.
* @remarks It supports multi-boundaries. \n
- However a duplicated boundary would not be allowed.
+ However a duplicated boundary would not be allowed.
* @pre
* #location_new should be called before.\n
* @post None.
- * @param [in] obj - a #LocationObject
- * @param [in] boundary - a #LocationBoundary
+ * @param [in] obj - a #LocationObject
+ * @param [in] boundary - a #LocationBoundary
* @return int
- * @retval 0 Success
+ * @retval 0 Success
* Please refer #LocationError for more information.
* @par Example
* @code
#include <location.h>
-static void cb_zone_in (GObject *self, guint type, gpointer position, gpointer accuracy)
+static void cb_zone_in (GObject *self, gpointer boundary, gpointer position, gpointer accuracy, gpointer user_data)
{
g_printf ("[zone-in] position - lat: %f, long: %f", position->latitude, position->longitude);
}
-static void cb_zone_out (GObject *self, guint type, gpointer position, gpointer accuracy)
+static void cb_zone_out (GObject *self, gpointer boundary, gpointer position, gpointer accuracy, gpointer user_data)
{
g_printf ("[zone-out] position - lat: %f, long: %f", position->latitude, position->longitude);
}
@@ -206,10 +205,10 @@ int location_boundary_add(const LocationObject *obj, const LocationBoundary *bou
* @pre
* #location_init should be called before.\n
* @post None.
- * @param [in] obj - a #LocationObject
- * @param [in] boundary - a #LocationBoundary
+ * @param [in] obj - a #LocationObject
+ * @param [in] boundary - a #LocationBoundary
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @par Example
@@ -241,11 +240,11 @@ int location_boundary_remove(const LocationObject *obj, const LocationBoundary *
* @pre
* #location_init should be called before.\n
* @post None.
- * @param [in] obj - a #LocationObject
- * @param [in] func - a #LocationBoundaryFunc
- * @param [in] user_data - a #void
+ * @param [in] obj - a #LocationObject
+ * @param [in] func - a #LocationBoundaryFunc
+ * @param [in] user_data - a #void
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @par Example
@@ -270,11 +269,11 @@ int location_boundary_foreach(const LocationObject *obj, LocationBoundaryFunc fu
/**
- * @brief Check if #LocationPosition is inside #LocationBoundary.
+ * @brief Check if #LocationPosition is inside #LocationBoundary.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.* @param [in] boundary - a #LocationBoundary
- * @param [in] position - a #LocationPosition
+ * @pre #location_init should be called before.\n
+ * @post None.* @param [in] boundary - a #LocationBoundary
+ * @param [in] position - a #LocationPosition
* @return gboolean
* @retval\n
* TRUE - if inside\n
diff --git a/location/manager/location-common-util.c b/location/manager/location-common-util.c
index 4e178d0..bb48962 100644..100755
--- a/location/manager/location-common-util.c
+++ b/location/manager/location-common-util.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,58 +24,23 @@
#endif
#include <stdio.h>
+#include <string.h>
#include <sys/types.h>
#include <unistd.h>
-#include <location-appman.h>
#include "location.h"
#include "location-common-util.h"
#include "location-setting.h"
#include "location-log.h"
-
-int location_application_enabled (void)
+int location_application_get_authority (void)
{
- pid_t pid = getpid();
- location_appman_s *appman;
- int enabled;
- int found;
- time_t timestamp;
-
- if (TRUE == location_appman_check_developer_mode()) {
- LOCATION_LOGE("Location is Enabled");
- return TRUE;
- }
-
- if (location_appman_get_package_by_pid(pid, &appman) != LOCATION_APPMAN_ERROR_NONE) {
- LOCATION_LOGE("Fail to location_appman_get_package_by_pid");
- return FALSE;
- }
-
- if (location_appman_find_package(appman->package, &found) != LOCATION_APPMAN_ERROR_NONE) {
- LOCATION_LOGE("Cannot find package [%s]", appman->package);
- return FALSE;
- }
-
- if (found == LOCATION_APPMAN_PACKAGE_NOTFOUND) {
- LOCATION_LOGD("First time to use location [%s]", appman->package);
- if (location_appman_register_package(appman) != LOCATION_APPMAN_ERROR_NONE) {
- LOCATION_LOGE("Fail to register [%s]", appman->package);
- return FALSE;
- }
- } else {
- LOCATION_LOGD("[%s] is already registered. Update recently used time", appman->package);
- time(&timestamp);
- if (location_appman_set_recently_used(appman->package, timestamp) != LOCATION_APPMAN_ERROR_NONE) {
- LOCATION_LOGD("Cannot update recently used time");
- }
- }
+ return LOCATION_APP_ON;
+}
- if (location_appman_is_enabled(appman->package, &enabled) != LOCATION_APPMAN_ERROR_NONE) {
- LOCATION_LOGE("Fail to location_appman_is_enabled");
- return FALSE;
- }
- return enabled;
+int location_application_set_authority (int auth)
+{
+ return LOCATION_ERROR_NONE;
}
static gint compare_position (gconstpointer a, gconstpointer b)
@@ -98,48 +63,47 @@ boundary_compare (gconstpointer comp1, gconstpointer comp2)
int ret = -1;
- LocationBoundary *boundary1 = (LocationBoundary *)comp1;
- LocationBoundary *boundary2 = (LocationBoundary *)comp2;
+ LocationBoundaryPrivate *priv1 = (LocationBoundaryPrivate *)comp1;
+ LocationBoundaryPrivate *priv2 = (LocationBoundaryPrivate *)comp2;
- if (boundary1->type == boundary2->type) {
- switch (boundary1->type) {
+ if (priv1->boundary->type == priv2->boundary->type) {
+ switch (priv1->boundary->type) {
case LOCATION_BOUNDARY_CIRCLE: {
- if (location_position_equal(boundary1->circle.center, boundary2->circle.center)
- && boundary1->circle.radius == boundary2->circle.radius) {
+ if (location_position_equal(priv1->boundary->circle.center, priv2->boundary->circle.center)
+ && priv1->boundary->circle.radius == priv2->boundary->circle.radius) {
ret = 0;
}
break;
}
case LOCATION_BOUNDARY_RECT: {
- if (location_position_equal(boundary1->rect.left_top, boundary2->rect.left_top)
- && location_position_equal(boundary1->rect.right_bottom, boundary2->rect.right_bottom)) {
+ if (location_position_equal(priv1->boundary->rect.left_top, priv2->boundary->rect.left_top)
+ && location_position_equal(priv1->boundary->rect.right_bottom, priv2->boundary->rect.right_bottom)) {
ret = 0;
}
break;
}
case LOCATION_BOUNDARY_POLYGON: {
-
GList *boundary1_next = NULL;
GList *boundary2_start = NULL, *boundary2_prev = NULL, *boundary2_next = NULL;
- if (g_list_length(boundary1->polygon.position_list) != g_list_length(boundary2->polygon.position_list)) {
+ if (g_list_length(priv1->boundary->polygon.position_list) != g_list_length(priv2->boundary->polygon.position_list)) {
return -1;
}
// Find a matching index of Boundary2 with Boundary1's 1st postion.
- boundary2_start = g_list_find_custom(boundary2->polygon.position_list, g_list_nth_data(boundary1->polygon.position_list, 0), (GCompareFunc) compare_position);
+ boundary2_start = g_list_find_custom(priv2->boundary->polygon.position_list, g_list_nth_data(priv1->boundary->polygon.position_list, 0), (GCompareFunc) compare_position);
if (boundary2_start == NULL) return -1;
boundary2_prev = g_list_previous(boundary2_start);
boundary2_next = g_list_next(boundary2_start);
- if (boundary2_prev == NULL) boundary2_prev = g_list_last(boundary2->polygon.position_list);
- if (boundary2_next == NULL) boundary2_next = g_list_first(boundary2->polygon.position_list);
+ if (boundary2_prev == NULL) boundary2_prev = g_list_last(priv2->boundary->polygon.position_list);
+ if (boundary2_next == NULL) boundary2_next = g_list_first(priv2->boundary->polygon.position_list);
- boundary1_next = g_list_next(boundary1->polygon.position_list);
- if (location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*)boundary2_prev->data) == TRUE){
+ boundary1_next = g_list_next(priv1->boundary->polygon.position_list);
+ if (boundary1_next && location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*)boundary2_prev->data) == TRUE){
boundary1_next = g_list_next(boundary1_next);
while (boundary1_next) {
boundary2_prev = g_list_previous(boundary2_prev);
- if (boundary2_prev == NULL) boundary2_prev = g_list_last(boundary2->polygon.position_list);
+ if (boundary2_prev == NULL) boundary2_prev = g_list_last(priv2->boundary->polygon.position_list);
if (location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*) boundary2_prev->data) == FALSE){
return -1;
}
@@ -147,11 +111,11 @@ boundary_compare (gconstpointer comp1, gconstpointer comp2)
}
ret = 0;
}
- else if (location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*)boundary2_next->data) == TRUE) {
+ else if (boundary1_next && location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*)boundary2_next->data) == TRUE) {
boundary1_next = g_list_next(boundary1_next);
while(boundary1_next) {
boundary2_next = g_list_next(boundary2_next);
- if (boundary2_next == NULL) boundary2_next = g_list_first(boundary2->polygon.position_list);
+ if (boundary2_next == NULL) boundary2_next = g_list_first(priv2->boundary->polygon.position_list);
if (location_position_equal((LocationPosition*)boundary1_next->data, (LocationPosition*) boundary2_next->data) == FALSE){
return -1;
}
@@ -175,41 +139,51 @@ boundary_compare (gconstpointer comp1, gconstpointer comp2)
return ret;
}
-int set_prop_boundary(GList **prev_boundary_list, GList *new_boundary_list)
+int set_prop_boundary(GList **prev_boundary_priv_list, GList *new_boundary_priv_list)
{
- g_return_val_if_fail(new_boundary_list, LOCATION_ERROR_PARAMETER);
+ LOCATION_LOGD("ENTER >>>");
+ g_return_val_if_fail(new_boundary_priv_list, LOCATION_ERROR_PARAMETER);
- int index;
+ int index = 0;
GList *check_list = NULL;
- LocationBoundary *new_boundary = NULL;
- LocationBoundary *copy_boundary = NULL;
-
- index = 0;
- while((new_boundary = (LocationBoundary*) g_list_nth_data(new_boundary_list, index)) != NULL) {
+ LocationBoundaryPrivate *new_priv = NULL;
- check_list = g_list_find_custom(*prev_boundary_list, new_boundary, (GCompareFunc)boundary_compare);
+ while((new_priv = (LocationBoundaryPrivate *) g_list_nth_data(new_boundary_priv_list, index)) != NULL) {
+ *prev_boundary_priv_list = g_list_first(*prev_boundary_priv_list);
+ check_list = g_list_find_custom(*prev_boundary_priv_list, new_priv, (GCompareFunc)boundary_compare);
if (check_list == NULL) {
- LOCATION_LOGD("Set Prop >> boundary type: [%d]", new_boundary->type);
- copy_boundary = location_boundary_copy(new_boundary);
- *prev_boundary_list = g_list_append(*prev_boundary_list, copy_boundary);
+ LocationBoundaryPrivate *copy_priv = g_slice_new0(LocationBoundaryPrivate);
+ if (!copy_priv) break;
+ copy_priv->boundary = location_boundary_copy(new_priv->boundary);
+ if (!copy_priv->boundary) break;
+ copy_priv->zone_status = new_priv->zone_status;
+ *prev_boundary_priv_list = g_list_append(*prev_boundary_priv_list, copy_priv);
+
+ LOCATION_LOGD("copy_priv: %p, copy_priv->boundary: %p, copy_priv->boundary->type: %d",
+ copy_priv, copy_priv->boundary, copy_priv->boundary->type);
}
+ location_boundary_free(new_priv->boundary);
index++;
}
- *prev_boundary_list = g_list_first(*prev_boundary_list);
+ LOCATION_LOGD("EXIT <<<");
return LOCATION_ERROR_NONE;
}
-
-
int set_prop_removal_boundary(GList **prev_boundary_list, LocationBoundary* boundary)
{
+ LOCATION_LOGD("ENTER >>>");
g_return_val_if_fail(*prev_boundary_list, LOCATION_ERROR_PARAMETER);
GList *check_list = NULL;
+ LocationBoundaryPrivate *remove_priv = g_slice_new0(LocationBoundaryPrivate);
+ g_return_val_if_fail(remove_priv, LOCATION_ERROR_PARAMETER);
+
+ remove_priv->boundary = location_boundary_copy(boundary);
+ g_return_val_if_fail(remove_priv->boundary, LOCATION_ERROR_PARAMETER);
- check_list = g_list_find_custom (*prev_boundary_list, boundary, (GCompareFunc) boundary_compare);
+ check_list = g_list_find_custom (*prev_boundary_list, remove_priv, (GCompareFunc) boundary_compare);
if (check_list) {
LOCATION_LOGD("Found");
*prev_boundary_list = g_list_delete_link(*prev_boundary_list, check_list);
@@ -221,13 +195,17 @@ int set_prop_removal_boundary(GList **prev_boundary_list, LocationBoundary* boun
*prev_boundary_list = NULL;
}
+ location_boundary_free(remove_priv->boundary);
+ g_slice_free(LocationBoundaryPrivate, remove_priv);
+
+ LOCATION_LOGD("EXIT <<<");
return LOCATION_ERROR_NONE;
}
void free_boundary_list (gpointer data)
{
- LocationBoundary *boundary = (LocationBoundary *)data;
+ LocationBoundaryPrivate *priv= (LocationBoundaryPrivate *)data;
- location_boundary_free(boundary);
+ location_boundary_free(priv->boundary);
+ g_slice_free(LocationBoundaryPrivate, priv);
}
-
diff --git a/location/manager/location-common-util.h b/location/manager/location-common-util.h
index 4ed94fd..08585b7 100644
--- a/location/manager/location-common-util.h
+++ b/location/manager/location-common-util.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,6 +24,11 @@
#include <location.h>
#include <location-ielement.h>
+#include <location-boundary.h>
+
+#define CAPP 1
+#define WEBAPP 2
+#define CPPAPP 3
/**
* @file location-common-util.h
@@ -32,8 +37,25 @@
G_BEGIN_DECLS
-int location_application_manager (void);
-int location_application_enabled (void);
+typedef enum {
+ LOCATION_APP_OFF = 0,
+ LOCATION_APP_ON,
+ LOCATION_APP_NOT_FOUND
+} LOCATION_APP_STATE;
+
+typedef enum {
+ ZONE_STATUS_NONE = 0,
+ ZONE_STATUS_IN,
+ ZONE_STATUS_OUT,
+} ZoneStatus;
+
+typedef struct _LocationBoundaryPrivate {
+ LocationBoundary *boundary;
+ ZoneStatus zone_status;
+} LocationBoundaryPrivate;
+
+int location_application_get_authority(void);
+int location_application_set_authority (int auth);
int set_prop_boundary(GList **prev_boundary_list, GList *new_boundary_list);
int set_prop_removal_boundary(GList **prev_boundary_list, LocationBoundary *boundary);
diff --git a/location/manager/location-cps.c b/location/manager/location-cps.c
deleted file mode 100644
index 5b76627..0000000
--- a/location/manager/location-cps.c
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-setting.h"
-#include "location-log.h"
-
-#include "module-internal.h"
-
-#include "location-cps.h"
-#include "location-marshal.h"
-#include "location-ielement.h"
-#include "location-signaling-util.h"
-#include "location-common-util.h"
-
-typedef struct _LocationCpsPrivate {
- LocationCpsMod *mod;
- gboolean is_started;
- gboolean set_noti;
- gboolean enabled;
- guint pos_updated_timestamp;
- guint pos_interval;
- guint vel_updated_timestamp;
- guint vel_interval;
- LocationPosition *pos;
- LocationVelocity *vel;
- LocationAccuracy *acc;
- GList *boundary_list;
- ZoneStatus zone_status;
- guint pos_timer;
- guint vel_timer;
-} LocationCpsPrivate;
-
-enum {
- PROP_0,
- PROP_METHOD_TYPE,
- PROP_POS_INTERVAL,
- PROP_VEL_INTERVAL,
- PROP_BOUNDARY,
- PROP_REMOVAL_BOUNDARY,
- PROP_MAX
-};
-
-static guint32 signals[LAST_SIGNAL] = {0, };
-static GParamSpec *properties[PROP_MAX] = {NULL, };
-
-
-#define GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LOCATION_TYPE_CPS, LocationCpsPrivate))
-
-static void location_ielement_interface_init (LocationIElementInterface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (LocationCps, location_cps, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
- location_ielement_interface_init));
-
-static gboolean
-_position_timeout_cb (gpointer data)
-{
- GObject *object = (GObject *)data;
- LocationCpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
-
- LocationPosition *pos = NULL;
- LocationAccuracy *acc = NULL;
-
- if (priv->pos) {
- pos = location_position_copy(priv->pos);
- }
- else {
- pos = location_position_new (0, 0.0, 0.0, 0.0, LOCATION_STATUS_NO_FIX);
- }
-
- if (priv->acc) {
- acc = location_accuracy_copy (priv->acc);
- }
- else {
- acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
- }
-
- LOCATION_LOGD("VELOCITY SERVICE_UPDATED");
- g_signal_emit(object, signals[SERVICE_UPDATED], 0, POSITION_UPDATED, pos, acc);
-
- location_position_free (pos);
- location_accuracy_free (acc);
-
- return TRUE;
-}
-
-static gboolean
-_velocity_timeout_cb (gpointer data)
-{
- GObject *object = (GObject *)data;
- LocationCpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
-
- LocationVelocity *vel = NULL;
- LocationAccuracy *acc = NULL;
-
- if (priv->vel) {
- vel = location_velocity_copy(priv->vel);
- }
- else {
- vel = location_velocity_new (0, 0.0, 0.0, 0.0);
- }
-
- if (priv->acc) {
- acc = location_accuracy_copy (priv->acc);
- }
- else {
- acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
- }
-
- LOCATION_LOGD("VELOCITY SERVICE_UPDATED");
- g_signal_emit(object, signals[SERVICE_UPDATED], 0, VELOCITY_UPDATED, vel, acc);
-
- location_velocity_free (vel);
- location_accuracy_free (acc);
-
- return TRUE;
-}
-
-static void
-cps_status_cb (gboolean enabled,
- LocationStatus status,
- gpointer self)
-{
- LOCATION_LOGD("cps_status_cb");
- g_return_if_fail(self);
- LocationCpsPrivate* priv = GET_PRIVATE(self);
- enable_signaling(self, signals, &(priv->enabled), enabled, status);
- if (!priv->enabled) {
- if (priv->pos_timer) {
- g_source_remove(g_source_remove(priv->pos_timer));
- priv->pos_timer = 0;
- }
- if (priv->vel_timer) {
- g_source_remove(g_source_remove(priv->vel_timer));
- priv->vel_timer = 0;
- }
- }
-}
-
-static void
-cps_position_cb (gboolean enabled,
- LocationPosition *pos,
- LocationAccuracy *acc,
- gpointer self)
-{
- LOCATION_LOGD("cps_position_cb");
- g_return_if_fail(self);
- g_return_if_fail(pos);
- g_return_if_fail(acc);
- LocationCpsPrivate* priv = GET_PRIVATE(self);
-
- if (enabled && !priv->enabled) {
- if (!priv->pos_timer) priv->pos_timer = g_timeout_add_seconds (priv->pos_interval, _position_timeout_cb, self);
- if (!priv->vel_timer) priv->vel_timer = g_timeout_add_seconds (priv->vel_interval, _velocity_timeout_cb, self);
- }
-
- enable_signaling(self, signals, &(priv->enabled), enabled, pos->status);
- position_signaling(self, signals, &(priv->enabled), priv->pos_interval, FALSE, &(priv->pos_updated_timestamp), &(priv->pos), priv->boundary_list, &(priv->zone_status), pos, acc);
-}
-
-static void
-cps_velocity_cb(gboolean enabled,
- LocationVelocity *vel,
- LocationAccuracy *acc,
- gpointer self)
-{
- LOCATION_LOGD("cps_velocity_cb");
- g_return_if_fail(self);
- LocationCpsPrivate* priv = GET_PRIVATE(self);
- velocity_signaling(self, signals, &(priv->enabled), priv->vel_interval, FALSE, &(priv->vel_updated_timestamp), &(priv->vel), &(priv->acc), vel, acc);
-}
-
-static void
-location_setting_cps_cb (keynode_t *key,
- gpointer self)
-{
- LOCATION_LOGD("location_setting_cps_cb");
- g_return_if_fail (key);
- g_return_if_fail (self);
-
- LocationCpsPrivate *priv = GET_PRIVATE(self);
- g_return_if_fail (priv->mod);
- g_return_if_fail (priv->mod->handler);
-
- int ret = LOCATION_ERROR_NONE;
-
- if (location_setting_get_key_val (key) == 0) {
- if (priv->mod->ops.stop && priv->is_started) {
- ret = priv->mod->ops.stop (priv->mod->handler);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
- }
- }
- }
- else {
- if (1 == location_setting_get_int (VCONFKEY_LOCATION_NETWORK_ENABLED) && priv->mod->ops.start && !priv->is_started) {
- LOCATION_LOGD("location resumed by setting");
- ret = priv->mod->ops.start (priv->mod->handler, cps_status_cb, cps_position_cb, cps_velocity_cb, NULL, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
- }
- }
- }
-}
-
-static void
-location_cps_dispose (GObject *gobject)
-{
- LOCATION_LOGD("location_cps_dispose");
-
- LocationCpsPrivate *priv = GET_PRIVATE(gobject);
- if (priv->set_noti == TRUE) {
- location_setting_ignore_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_cps_cb);
- priv->set_noti = FALSE;
- }
-
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = 0;
- }
-
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = 0;
- }
-
- G_OBJECT_CLASS (location_cps_parent_class)->dispose (gobject);
-}
-
-static void
-location_cps_finalize (GObject *gobject)
-{
- LOCATION_LOGD("location_cps_finalize");
- LocationCpsPrivate* priv = GET_PRIVATE(gobject);
- module_free(priv->mod, "cps");
- priv->mod = NULL;
-
- if (priv->boundary_list) {
- g_list_free_full (priv->boundary_list, free_boundary_list);
- priv->boundary_list = NULL;
- }
-
- if (priv->pos) {
- location_position_free(priv->pos);
- priv->pos = NULL;
- }
-
- if (priv->vel) {
- location_velocity_free(priv->vel);
- priv->vel = NULL;
- }
-
- if (priv->acc) {
- location_accuracy_free(priv->acc);
- priv->acc = NULL;
- }
-
- G_OBJECT_CLASS (location_cps_parent_class)->finalize (gobject);
-}
-
-static void
-location_cps_set_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- LocationCpsPrivate *priv = GET_PRIVATE(object);
-
- int ret = 0;
-
- switch (property_id) {
- case PROP_BOUNDARY:{
- GList *boundary_list = (GList *)g_list_copy(g_value_get_pointer(value));
- ret = set_prop_boundary(&priv->boundary_list, boundary_list);
- if(ret != 0) LOCATION_LOGD("Set boundary. Error[%d]", ret);
- break;
- }
- case PROP_REMOVAL_BOUNDARY: {
- LocationBoundary *req_boundary = (LocationBoundary*) g_value_dup_boxed(value);
- ret = set_prop_removal_boundary(&priv->boundary_list, req_boundary);
- if(ret != 0) LOCATION_LOGD("Set removal boundary. Error[%d]", ret);
- break;
- }
- case PROP_POS_INTERVAL: {
- guint interval = g_value_get_uint (value);
-
- if (interval > 0) {
- if (interval < LOCATION_UPDATE_INTERVAL_MAX)
- priv->pos_interval = interval;
- else
- priv->pos_interval = (guint) LOCATION_UPDATE_INTERVAL_MAX;
- }
- else {
- priv->pos_interval = (guint) LOCATION_UPDATE_INTERVAL_DEFAULT;
- }
-
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = g_timeout_add_seconds (priv->pos_interval, _position_timeout_cb, object);
- }
-
- break;
- }
-
- case PROP_VEL_INTERVAL: {
- guint interval = g_value_get_uint(value);
- if(interval > 0) {
- if(interval < LOCATION_UPDATE_INTERVAL_MAX)
- priv->vel_interval = interval;
- else
- priv->vel_interval = (guint)LOCATION_UPDATE_INTERVAL_MAX;
- }
- else
- priv->vel_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
-
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = g_timeout_add_seconds (priv->vel_interval, _velocity_timeout_cb, object);
- }
-
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-location_cps_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- LocationCpsPrivate *priv = GET_PRIVATE (object);
-
- switch (property_id){
- case PROP_METHOD_TYPE:
- g_value_set_int(value, LOCATION_METHOD_CPS);
- break;
- case PROP_BOUNDARY:
- g_value_set_pointer(value, g_list_first(priv->boundary_list));
- break;
- case PROP_POS_INTERVAL: {
- g_value_set_uint (value, priv->pos_interval);
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static int
-location_cps_start (LocationCps *self)
-{
- LOCATION_LOGD("location_cps_start");
-
- LocationCpsPrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
-
- if (priv->is_started == TRUE) return LOCATION_ERROR_NONE;
-
- int ret = LOCATION_ERROR_NONE;
-
- if (!location_setting_get_int (VCONFKEY_LOCATION_NETWORK_ENABLED)) {
- ret = LOCATION_ERROR_NOT_ALLOWED;
- }
- else {
- ret = priv->mod->ops.start (priv->mod->handler, cps_status_cb, cps_position_cb, cps_velocity_cb, NULL, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
- }
- else {
- return ret;
- }
- }
-
- if (priv->set_noti == FALSE) {
- location_setting_add_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_cps_cb, self);
- priv->set_noti = TRUE;
- }
-
- return ret;
-}
-
-static int
-location_cps_stop (LocationCps *self)
-{
- LOCATION_LOGD("location_cps_stop");
- LocationCpsPrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.stop, LOCATION_ERROR_NOT_AVAILABLE);
-
- int ret = LOCATION_ERROR_NONE;
-
- if (priv->is_started == TRUE) {
- ret = priv->mod->ops.stop (priv->mod->handler);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
- }
- else {
- return ret;
- }
- }
-
- if (priv->set_noti == TRUE) {
- location_setting_ignore_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_cps_cb);
- priv->set_noti = FALSE;
- }
-
- return ret;
-}
-
-static int
-location_cps_get_position (LocationCps *self,
- LocationPosition **position,
- LocationAccuracy **accuracy)
-{
- int ret = LOCATION_ERROR_NOT_AVAILABLE;
- LOCATION_LOGD("location_cps_get_position");
-
- LocationCpsPrivate *priv = GET_PRIVATE (self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
-
- setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
-
- if (priv->pos) {
- *position = location_position_copy (priv->pos);
- ret = LOCATION_ERROR_NONE;
- }
-
- if (priv->acc) {
- }
- else {
- *accuracy = location_accuracy_copy (priv->acc);
- }
-
- return ret;
-}
-
-static int
-location_cps_get_last_position (LocationCps *self,
- LocationPosition **position,
- LocationAccuracy **accuracy)
-{
- LOCATION_LOGD("location_cps_get_last_position");
-
- /* Do not need to check GPS_ENABLED and NETWORK_ENABLED */
-
- LocationCpsPrivate *priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
-
- LocModCpsOps ops = priv->mod->ops;
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
-
- return ops.get_last_position (priv->mod->handler, position, accuracy);
-}
-
-static int
-location_cps_get_velocity (LocationCps *self,
- LocationVelocity **velocity,
- LocationAccuracy **accuracy)
-{
- LOCATION_LOGD("location_cps_get_velocity");
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-static int
-location_cps_get_last_velocity (LocationCps *self,
- LocationVelocity **velocity,
- LocationAccuracy **accuracy)
-{
- LOCATION_LOGD("location_cps_get_last_velocity");
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-static int
-location_cps_get_satellite (LocationCps *self,
- LocationSatellite **satellite)
-{
- LOCATION_LOGD("location_cps_get_satellite");
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-static int
-location_cps_get_last_satellite (LocationCps *self)
-{
- LOCATION_LOGD("location_cps_get_last_satellite");
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-static void
-location_ielement_interface_init (LocationIElementInterface *iface)
-{
- iface->start = (TYPE_START_FUNC) location_cps_start;
- iface->stop = (TYPE_STOP_FUNC) location_cps_stop;
- iface->get_position = (TYPE_GET_POSITION) location_cps_get_position;
- iface->get_last_position = (TYPE_GET_POSITION) location_cps_get_last_position;
- iface->get_velocity = (TYPE_GET_VELOCITY) location_cps_get_velocity;
- iface->get_last_velocity = (TYPE_GET_VELOCITY)location_cps_get_last_velocity;
- iface->get_satellite = (TYPE_GET_SATELLITE)location_cps_get_satellite;
- iface->get_last_satellite = (TYPE_GET_SATELLITE)location_cps_get_last_satellite;
-}
-
-static void
-location_cps_init (LocationCps *self)
-{
- LOCATION_LOGD("location_cps_init");
- LocationCpsPrivate* priv = GET_PRIVATE(self);
-
- priv->mod = (LocationCpsMod*)module_new("cps");
- if(!priv->mod) LOCATION_LOGW("module loading failed");
-
- priv->is_started = FALSE;
- priv->set_noti = FALSE;
- priv->enabled = FALSE;
-
- priv->pos_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
- priv->vel_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
-
- priv->pos_updated_timestamp = 0;
- priv->vel_updated_timestamp = 0;
-
- priv->pos = NULL;
- priv->acc = NULL;
- priv->vel = NULL;
- priv->zone_status = ZONE_STATUS_NONE;
- priv->boundary_list = NULL;
-
- priv->pos_timer = 0;
- priv->vel_timer = 0;
-}
-
-static void
-location_cps_class_init (LocationCpsClass *klass)
-{
- LOCATION_LOGD("location_cps_class_init");
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->get_property = location_cps_get_property;
- gobject_class->set_property = location_cps_set_property;
-
- gobject_class->dispose = location_cps_dispose;
- gobject_class->finalize = location_cps_finalize;
-
- g_type_class_add_private (klass, sizeof (LocationCpsPrivate));
-
- signals[SERVICE_ENABLED] = g_signal_new ("service-enabled",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_NO_RECURSE,
- G_STRUCT_OFFSET (LocationCpsClass, enabled),
- NULL, NULL,
- location_VOID__UINT,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
-
- signals[SERVICE_DISABLED] = g_signal_new ("service-disabled",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_NO_RECURSE,
- G_STRUCT_OFFSET (LocationCpsClass, disabled),
- NULL, NULL,
- location_VOID__UINT,
- G_TYPE_NONE, 1,
- G_TYPE_UINT);
-
- signals[SERVICE_UPDATED] = g_signal_new ("service-updated",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_NO_RECURSE,
- G_STRUCT_OFFSET (LocationCpsClass, updated),
- NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
- G_TYPE_NONE, 3,
- G_TYPE_UINT,
- G_TYPE_POINTER,
- G_TYPE_POINTER);
-
- signals[ZONE_IN] = g_signal_new ("zone-in",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_NO_RECURSE,
- G_STRUCT_OFFSET (LocationCpsClass, zone_in),
- NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
- G_TYPE_NONE, 3,
- G_TYPE_UINT,
- G_TYPE_POINTER,
- G_TYPE_POINTER);
-
- signals[ZONE_OUT] = g_signal_new ("zone-out",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST |
- G_SIGNAL_NO_RECURSE,
- G_STRUCT_OFFSET (LocationCpsClass, zone_out),
- NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
- G_TYPE_NONE, 3,
- G_TYPE_UINT,
- G_TYPE_POINTER,
- G_TYPE_POINTER);
-
- properties[PROP_METHOD_TYPE] = g_param_spec_int ("method",
- "method type",
- "location method type name",
- LOCATION_METHOD_CPS,
- LOCATION_METHOD_CPS,
- LOCATION_METHOD_CPS,
- G_PARAM_READABLE);
-
- properties[PROP_POS_INTERVAL] = g_param_spec_uint ("pos-interval",
- "cps position interval prop",
- "cps position interval data",
- LOCATION_UPDATE_INTERVAL_MIN,
- LOCATION_UPDATE_INTERVAL_MAX,
- LOCATION_UPDATE_INTERVAL_DEFAULT,
- G_PARAM_READWRITE);
-
- properties[PROP_VEL_INTERVAL] = g_param_spec_uint ("vel-interval",
- "cps velocity interval prop",
- "cps velocity interval data",
- LOCATION_UPDATE_INTERVAL_MIN,
- LOCATION_UPDATE_INTERVAL_MAX,
- LOCATION_UPDATE_INTERVAL_DEFAULT,
- G_PARAM_READWRITE);
-
- properties[PROP_BOUNDARY] = g_param_spec_pointer ("boundary",
- "cps boundary prop",
- "cps boundary data",
- G_PARAM_READWRITE);
-
- properties[PROP_REMOVAL_BOUNDARY] = g_param_spec_boxed("removal-boundary",
- "cps removal boundary prop",
- "cps removal boundary data",
- LOCATION_TYPE_BOUNDARY,
- G_PARAM_READWRITE);
-
- g_object_class_install_properties (gobject_class,
- PROP_MAX,
- properties);
-
-}
diff --git a/location/manager/location-cps.h b/location/manager/location-cps.h
deleted file mode 100644
index b628181..0000000
--- a/location/manager/location-cps.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_CPS_H__
-#define __LOCATION_CPS_H__
-
-#include <glib-object.h>
-
-/**
- * @file location-cps.h
- * @brief This file contains the internal definitions and structures related to CPS.
- */
-
-G_BEGIN_DECLS
-
-#define LOCATION_TYPE_CPS (location_cps_get_type ())
-#define LOCATION_CPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_CPS, LocationCps))
-#define LOCATION_IS_CPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_CPS))
-#define LOCATION_CPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_CPS, LocationCpsClass))
-#define LOCATION_IS_CPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_CPS))
-#define LOCATION_CPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_CPS, LocationCpsClass))
-
-typedef struct _LocationCps LocationCps;
-typedef struct _LocationCpsClass LocationCpsClass;
-
-struct _LocationCps
-{
- GObject parent_instance;
-};
-
-struct _LocationCpsClass
-{
- GObjectClass parent_class;
-
- void (* enabled) (guint type);
- void (* disabled) (guint type);
- void (* updated) (guint type, gpointer data);
- void (* zone_in) (guint type, gpointer position, gpointer boundary);
- void (* zone_out) (guint type, gpointer position, gpointer boundary);
-};
-
-GType location_cps_get_type (void);
-
-G_END_DECLS
-
-#endif
diff --git a/location/manager/location-gps.c b/location/manager/location-gps.c
index a3b44ec..cd0fe13 100644..100755
--- a/location/manager/location-gps.c
+++ b/location/manager/location-gps.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@
#include "config.h"
#endif
+#include <app_manager.h>
#include "location-setting.h"
#include "location-log.h"
@@ -33,40 +34,46 @@
#include "location-ielement.h"
#include "location-signaling-util.h"
#include "location-common-util.h"
+#include "location-privacy.h"
#include <vconf-internal-location-keys.h>
typedef struct _LocationGpsPrivate {
- LocationGpsMod* mod;
- gboolean is_started;
- gboolean set_noti;
- gboolean enabled;
- guint pos_updated_timestamp;
- guint pos_interval;
- guint vel_updated_timestamp;
- guint vel_interval;
- guint sat_updated_timestamp;
- guint sat_interval;
- LocationPosition* pos;
- LocationVelocity* vel;
- LocationAccuracy* acc;
- GList* boundary_list;
- ZoneStatus zone_status;
- LocationSatellite* sat;
-
- guint pos_timer;
- guint vel_timer;
-
+ LocationGpsMod *mod;
+ GMutex mutex;
+ gboolean is_started;
+ guint app_type;
+ gboolean set_noti;
+ gboolean enabled;
+ guint pos_updated_timestamp;
+ guint pos_interval;
+ guint vel_updated_timestamp;
+ guint vel_interval;
+ guint sat_updated_timestamp;
+ guint sat_interval;
+ guint loc_timeout;
+ guint batch_interval;
+ guint batch_period;
+ LocationPosition *pos;
+ LocationBatch *batch;
+ LocationVelocity *vel;
+ LocationAccuracy *acc;
+ LocationSatellite *sat;
+ GList *boundary_list;
+ guint pos_searching_timer;
+ guint vel_searching_timer;
} LocationGpsPrivate;
enum {
PROP_0,
- PROP_DEV_NAME,
PROP_METHOD_TYPE,
+ PROP_IS_STARTED,
PROP_LAST_POSITION,
PROP_POS_INTERVAL,
PROP_VEL_INTERVAL,
PROP_SAT_INTERVAL,
+ PROP_BATCH_INTERVAL,
+ PROP_BATCH_PERIOD,
PROP_BOUNDARY,
PROP_REMOVAL_BOUNDARY,
PROP_NMEA,
@@ -82,34 +89,31 @@ static GParamSpec *properties[PROP_MAX] = {NULL, };
static void location_ielement_interface_init (LocationIElementInterface *iface);
G_DEFINE_TYPE_WITH_CODE (LocationGps, location_gps, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
- location_ielement_interface_init));
+ G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
+ location_ielement_interface_init));
static gboolean
_position_timeout_cb (gpointer data)
{
GObject *object = (GObject *)data;
LocationGpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
+ g_return_val_if_fail(priv, FALSE);
LocationPosition *pos = NULL;
LocationAccuracy *acc = NULL;
if (priv->pos) {
pos = location_position_copy(priv->pos);
- }
- else {
+ } else {
pos = location_position_new (0, 0.0, 0.0, 0.0, LOCATION_STATUS_NO_FIX);
}
if (priv->acc) {
acc = location_accuracy_copy (priv->acc);
- }
- else {
+ } else {
acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
}
- LOCATION_LOGD("POSITION SERVICE_UPDATED");
g_signal_emit(object, signals[SERVICE_UPDATED], 0, POSITION_UPDATED, pos, acc);
location_position_free (pos);
@@ -123,26 +127,23 @@ _velocity_timeout_cb (gpointer data)
{
GObject *object = (GObject *)data;
LocationGpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
+ g_return_val_if_fail(priv, FALSE);
LocationVelocity *vel = NULL;
LocationAccuracy *acc = NULL;
if (priv->vel) {
vel = location_velocity_copy(priv->vel);
- }
- else {
+ } else {
vel = location_velocity_new (0, 0.0, 0.0, 0.0);
}
if (priv->acc) {
acc = location_accuracy_copy (priv->acc);
- }
- else {
+ } else {
acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
}
- LOCATION_LOGD("VELOCITY SERVICE_UPDATED");
g_signal_emit(object, signals[SERVICE_UPDATED], 0, VELOCITY_UPDATED, vel, acc);
location_velocity_free (vel);
@@ -152,6 +153,69 @@ _velocity_timeout_cb (gpointer data)
}
static void
+__reset_pos_data_from_priv(LocationGpsPrivate *priv)
+{
+ LOCATION_LOGD("__reset_pos_data_from_priv");
+ g_return_if_fail(priv);
+
+ if (priv->pos) {
+ location_position_free(priv->pos);
+ priv->pos = NULL;
+ }
+
+ if (priv->batch) {
+ location_batch_free(priv->batch);
+ priv->batch = NULL;
+ }
+
+ if (priv->vel) {
+ location_velocity_free(priv->vel);
+ priv->vel = NULL;
+ }
+
+ if (priv->sat) {
+ location_satellite_free(priv->sat);
+ priv->sat = NULL;
+ }
+
+ if (priv->acc) {
+ location_accuracy_free(priv->acc);
+ priv->acc = NULL;
+ }
+ priv->pos_updated_timestamp = 0;
+ priv->vel_updated_timestamp = 0;
+ priv->sat_updated_timestamp = 0;
+}
+
+static gboolean
+__get_started (gpointer self)
+{
+ g_return_val_if_fail(self, FALSE);
+
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, FALSE);
+
+ return priv->is_started;
+}
+
+static int
+__set_started (gpointer self, gboolean started)
+{
+ g_return_val_if_fail(self, -1);
+
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, -1);
+
+ if (priv->is_started != started) {
+ g_mutex_lock(&priv->mutex);
+ priv->is_started = started;
+ g_mutex_unlock(&priv->mutex);
+ }
+
+ return 0;
+}
+
+static void
gps_status_cb (gboolean enabled,
LocationStatus status,
gpointer self)
@@ -159,43 +223,66 @@ gps_status_cb (gboolean enabled,
LOCATION_LOGD("gps_status_cb");
g_return_if_fail(self);
LocationGpsPrivate* priv = GET_PRIVATE(self);
- enable_signaling(self, signals, &(priv->enabled), enabled, status);
-
- if (!priv->enabled) {
- if (priv->pos_timer) g_source_remove (priv->pos_timer);
- if (priv->vel_timer) g_source_remove (priv->vel_timer);
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ g_return_if_fail(priv);
+ if (!priv->enabled && enabled) { // Update satellite at searching status.
+ if (priv->pos_searching_timer) g_source_remove (priv->pos_searching_timer);
+ if (priv->vel_searching_timer) g_source_remove (priv->vel_searching_timer);
+ priv->pos_searching_timer = 0;
+ priv->vel_searching_timer = 0;
+ return; // Ignored: Support to get position at enabled callback
+ } else if (priv->enabled == TRUE && enabled == FALSE) {
+ __set_started(self, FALSE);
+ enable_signaling(self, signals, &(priv->enabled), enabled, status);
}
}
static void
-gps_position_cb (gboolean enabled,
+gps_location_cb (gboolean enabled,
LocationPosition *pos,
+ LocationVelocity *vel,
LocationAccuracy *acc,
gpointer self)
{
- LOCATION_LOGD("gps_position_cb");
g_return_if_fail(self);
g_return_if_fail(pos);
+ g_return_if_fail(vel);
g_return_if_fail(acc);
- LocationGpsPrivate* priv = GET_PRIVATE(self);
-
- enable_signaling(self, signals, &(priv->enabled), enabled, pos->status);
- position_signaling(self, signals, &(priv->enabled), priv->pos_interval, TRUE, &(priv->pos_updated_timestamp), &(priv->pos), priv->boundary_list, &(priv->zone_status), pos, acc);
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
+
+ location_signaling(self,
+ signals,
+ enabled, // previous status
+ priv->boundary_list,
+ pos,
+ vel,
+ acc,
+ priv->pos_interval,
+ priv->vel_interval,
+ &(priv->enabled),
+ &(priv->pos_updated_timestamp),
+ &(priv->vel_updated_timestamp),
+ &(priv->pos),
+ &(priv->vel),
+ &(priv->acc));
}
static void
-gps_velocity_cb (gboolean enabled,
- LocationVelocity *vel,
- LocationAccuracy *acc,
+gps_batch_cb (gboolean enabled,
+ guint num_of_location,
gpointer self)
{
- LOCATION_LOGD("gps_velocity_cb");
g_return_if_fail(self);
LocationGpsPrivate* priv = GET_PRIVATE(self);
- velocity_signaling(self, signals, &(priv->enabled), priv->vel_interval, TRUE, &(priv->vel_updated_timestamp), &(priv->vel), &(priv->acc), vel, acc);
+ g_return_if_fail(priv);
+
+ if (priv->batch != NULL) {
+ location_batch_free(priv->batch);
+ }
+ priv->batch = location_get_batch_file(num_of_location);
+
+ g_signal_emit (self, signals[BATCH_UPDATED], 0, num_of_location);
}
static void
@@ -203,9 +290,10 @@ gps_satellite_cb (gboolean enabled,
LocationSatellite *sat,
gpointer self)
{
- LOCATION_LOGD("gps_satellite_cb");
g_return_if_fail(self);
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
+
satellite_signaling(self, signals, &(priv->enabled), priv->sat_interval, TRUE, &(priv->sat_updated_timestamp), &(priv->sat), sat);
}
@@ -216,18 +304,18 @@ location_setting_search_cb (keynode_t *key, gpointer self)
g_return_if_fail(key);
g_return_if_fail(self);
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
g_return_if_fail (priv->mod);
g_return_if_fail (priv->mod->handler);
if (location_setting_get_key_val(key) == VCONFKEY_LOCATION_GPS_SEARCHING) {
- if (!priv->pos_timer) priv->pos_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, self);
- if (!priv->vel_timer) priv->vel_timer = g_timeout_add (priv->vel_interval * 1000, _velocity_timeout_cb, self);
- }
- else {
- if (priv->pos_timer) g_source_remove (priv->pos_timer);
- if (priv->vel_timer) g_source_remove (priv->vel_timer);
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ if (!priv->pos_searching_timer) priv->pos_searching_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, self);
+ if (!priv->vel_searching_timer) priv->vel_searching_timer = g_timeout_add (priv->vel_interval * 1000, _velocity_timeout_cb, self);
+ } else {
+ if (priv->pos_searching_timer) g_source_remove (priv->pos_searching_timer);
+ if (priv->vel_searching_timer) g_source_remove (priv->vel_searching_timer);
+ priv->pos_searching_timer = 0;
+ priv->vel_searching_timer = 0;
}
}
@@ -239,23 +327,29 @@ location_setting_gps_cb (keynode_t *key,
g_return_if_fail(key);
g_return_if_fail(self);
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail (priv);
g_return_if_fail (priv->mod);
g_return_if_fail (priv->mod->handler);
int ret = LOCATION_ERROR_NONE;
- if (0 == location_setting_get_key_val(key) && priv->mod->ops.stop && priv->is_started) {
+ if (0 == location_setting_get_key_val(key) && priv->mod->ops.stop && __get_started(self)) {
LOCATION_LOGD("location stopped by setting");
+ __set_started(self, FALSE);
ret = priv->mod->ops.stop(priv->mod->handler);
if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
+ __reset_pos_data_from_priv(priv);
+ } else {
+ LOCATION_LOGI("Fail to stop[%d]", ret);
}
- }
- else if (1 == location_setting_get_key_val(key) && priv->mod->ops.start && !priv->is_started) {
+
+ } else if (1 == location_setting_get_key_val(key) && priv->mod->ops.start && !__get_started(self)) {
LOCATION_LOGD("location resumed by setting");
- ret = priv->mod->ops.start (priv->mod->handler, gps_status_cb, gps_position_cb, gps_velocity_cb, gps_satellite_cb, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, priv->pos_interval, gps_status_cb, gps_location_cb, gps_satellite_cb, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ __set_started(self, FALSE);
+ LOCATION_LOGI("Fail to start[%d]", ret);
}
}
}
@@ -265,28 +359,28 @@ location_gps_start (LocationGps *self)
{
LOCATION_LOGD("location_gps_start");
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
- if (priv->is_started == TRUE) return LOCATION_ERROR_NONE;
+ if (__get_started(self) == TRUE) return LOCATION_ERROR_NONE;
int ret = LOCATION_ERROR_NONE;
if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED)) {
- ret = LOCATION_ERROR_NOT_ALLOWED;
- }
- else {
- ret = priv->mod->ops.start (priv->mod->handler, gps_status_cb, gps_position_cb, gps_velocity_cb, gps_satellite_cb, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
- }
- else {
+ ret = LOCATION_ERROR_SETTING_OFF;
+ } else {
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, priv->pos_interval, gps_status_cb, gps_location_cb, gps_satellite_cb, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Fail to start gps. Error[%d]", ret);
+ __set_started(self, FALSE);
return ret;
}
}
- if(priv->set_noti == FALSE) {
+ if(priv->app_type != CPPAPP && priv->set_noti == FALSE) {
location_setting_add_notify (VCONFKEY_LOCATION_ENABLED, location_setting_gps_cb, self);
location_setting_add_notify (VCONFKEY_LOCATION_GPS_STATE, location_setting_search_cb, self);
priv->set_noti = TRUE;
@@ -300,33 +394,92 @@ location_gps_stop (LocationGps *self)
{
LOCATION_LOGD("location_gps_stop");
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod->ops.stop, LOCATION_ERROR_NOT_AVAILABLE);
int ret = LOCATION_ERROR_NONE;
- if ( priv->is_started == TRUE) {
+ if (__get_started(self) == TRUE) {
+ __set_started (self, FALSE);
ret = priv->mod->ops.stop (priv->mod->handler);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
- }
- else {
- return ret;
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGD("Failed to stop. Error[%d]", ret);
}
+ } else {
+ return LOCATION_ERROR_NONE;
}
- if (priv->pos_timer ) g_source_remove (priv->pos_timer);
- if (priv->vel_timer ) g_source_remove (priv->vel_timer);
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ if (priv->pos_searching_timer ) g_source_remove (priv->pos_searching_timer);
+ if (priv->vel_searching_timer ) g_source_remove (priv->vel_searching_timer);
+ priv->pos_searching_timer = 0;
+ priv->vel_searching_timer = 0;
- if(priv->set_noti == TRUE) {
+ if(priv->app_type != CPPAPP && priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_ENABLED, location_setting_gps_cb);
location_setting_ignore_notify (VCONFKEY_LOCATION_GPS_STATE, location_setting_search_cb);
priv->set_noti = FALSE;
}
+ __reset_pos_data_from_priv(priv);
+
+ return ret;
+}
+
+static int
+location_gps_start_batch (LocationGps *self)
+{
+ LOCATION_LOGD("location_gps_start_batch");
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->ops.start_batch, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (__get_started(self) == TRUE) return LOCATION_ERROR_NONE;
+
+ int ret = LOCATION_ERROR_NONE;
+
+ if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED)) {
+ ret = LOCATION_ERROR_SETTING_OFF;
+ } else {
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start_batch (priv->mod->handler, gps_batch_cb, priv->batch_interval, priv->batch_period, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Fail to start_batch. Error[%d]", ret);
+ __set_started(self, FALSE);
+ return ret;
+ }
+ }
+
+ return ret;
+}
+
+static int
+location_gps_stop_batch (LocationGps *self)
+{
+ LOCATION_LOGD("location_gps_stop_batch");
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->ops.stop_batch, LOCATION_ERROR_NOT_AVAILABLE);
+
+ int ret = LOCATION_ERROR_NONE;
+
+ if (__get_started(self) == TRUE) {
+ __set_started (self, FALSE);
+ ret = priv->mod->ops.stop_batch (priv->mod->handler);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGD("Failed to stop_batch. Error[%d]", ret);
+ }
+ } else {
+ return LOCATION_ERROR_NONE;
+ }
+
+ __reset_pos_data_from_priv(priv);
+
return ret;
}
@@ -336,18 +489,21 @@ location_gps_dispose (GObject *gobject)
LOCATION_LOGD("location_gps_dispose");
LocationGpsPrivate* priv = GET_PRIVATE(gobject);
+ g_return_if_fail (priv);
+ g_mutex_clear(&priv->mutex);
- if (priv->pos_timer) g_source_remove (priv->pos_timer);
- if (priv->vel_timer) g_source_remove (priv->vel_timer);
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ if (priv->pos_searching_timer) g_source_remove (priv->pos_searching_timer);
+ if (priv->vel_searching_timer) g_source_remove (priv->vel_searching_timer);
+ if (priv->loc_timeout) g_source_remove(priv->loc_timeout);
+ priv->pos_searching_timer = 0;
+ priv->vel_searching_timer = 0;
+ priv->loc_timeout = 0;
- if(priv->set_noti == TRUE) {
+ if(priv->app_type != CPPAPP && priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_ENABLED, location_setting_gps_cb);
location_setting_ignore_notify (VCONFKEY_LOCATION_GPS_STATE, location_setting_search_cb);
priv->set_noti = FALSE;
}
-
}
static void
@@ -355,6 +511,7 @@ location_gps_finalize (GObject *gobject)
{
LOCATION_LOGD("location_gps_finalize");
LocationGpsPrivate* priv = GET_PRIVATE(gobject);
+ g_return_if_fail (priv);
module_free(priv->mod, "gps");
priv->mod = NULL;
@@ -369,6 +526,11 @@ location_gps_finalize (GObject *gobject)
priv->pos = NULL;
}
+ if (priv->batch) {
+ location_batch_free(priv->batch);
+ priv->batch = NULL;
+ }
+
if (priv->vel) {
location_velocity_free(priv->vel);
priv->vel = NULL;
@@ -393,25 +555,17 @@ location_gps_set_property (GObject *object,
GParamSpec *pspec)
{
LocationGpsPrivate* priv = GET_PRIVATE(object);
-
+ g_return_if_fail (priv);
g_return_if_fail (priv->mod);
g_return_if_fail (priv->mod->handler);
- LocModGpsOps ops = priv->mod->ops;
int ret = 0;
switch (property_id){
- case PROP_DEV_NAME: {
- char* devname = g_value_dup_string(value);
- LOCATION_LOGD("Set prop>> device_name: %s", devname);
- if(ops.set_devname)
- ops.set_devname(priv->mod->handler, devname);
- g_free(devname);
- break;
- }
case PROP_BOUNDARY: {
GList *boundary_list = g_list_copy(g_value_get_pointer(value));
ret = set_prop_boundary(&priv->boundary_list, boundary_list);
if(ret != 0) LOCATION_LOGD("Set boundary. Error[%d]", ret);
+ if (boundary_list) g_list_free(boundary_list);
break;
}
case PROP_REMOVAL_BOUNDARY: {
@@ -432,9 +586,15 @@ location_gps_set_property (GObject *object,
else
priv->pos_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, object);
+ if (priv->pos_searching_timer) {
+ g_source_remove (priv->pos_searching_timer);
+ priv->pos_searching_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, object);
+ }
+
+ if (__get_started(object) == TRUE) {
+ LOCATION_LOGD("[update_pos_interval]: update pos-interval while pos-tracking");
+ g_return_if_fail(priv->mod->ops.set_position_update_interval);
+ priv->mod->ops.set_position_update_interval(priv->mod->handler, priv->pos_interval);
}
break;
@@ -451,9 +611,9 @@ location_gps_set_property (GObject *object,
else
priv->vel_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = g_timeout_add (priv->vel_interval * 1000, _velocity_timeout_cb, object);
+ if (priv->vel_searching_timer) {
+ g_source_remove (priv->vel_searching_timer);
+ priv->vel_searching_timer = g_timeout_add (priv->vel_interval * 1000, _velocity_timeout_cb, object);
}
break;
@@ -472,6 +632,39 @@ location_gps_set_property (GObject *object,
break;
}
+ case PROP_BATCH_INTERVAL: {
+ guint interval = g_value_get_uint(value);
+ LOCATION_LOGD("Set prop>> update-batch-interval: %u", interval);
+ if(interval > 0) {
+ if(interval < LOCATION_UPDATE_INTERVAL_MAX)
+ priv->batch_interval = interval;
+ else
+ priv->batch_interval = (guint)LOCATION_UPDATE_INTERVAL_MAX;
+ }
+ else
+ priv->batch_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
+
+ if (__get_started(object) == TRUE) {
+ LOCATION_LOGE("[===update_batch_interval]: update batch-interval while pos-tracking");
+ g_return_if_fail(priv->mod->ops.set_position_update_interval);
+ priv->mod->ops.set_position_update_interval(priv->mod->handler, priv->batch_interval);
+ }
+ break;
+ }
+ case PROP_BATCH_PERIOD: {
+ guint interval = g_value_get_uint(value);
+ LOCATION_LOGD("Set prop>> update-batch-period: %u", interval);
+ if(interval > 0) {
+ if(interval < LOCATION_BATCH_PERIOD_MAX)
+ priv->batch_period = interval;
+ else
+ priv->batch_period = (guint)LOCATION_BATCH_PERIOD_MAX;
+ }
+ else
+ priv->batch_period = (guint)LOCATION_BATCH_PERIOD_DEFAULT;
+
+ break;
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -485,23 +678,17 @@ location_gps_get_property (GObject *object,
GParamSpec *pspec)
{
LocationGpsPrivate *priv = GET_PRIVATE (object);
-
+ g_return_if_fail (priv);
g_return_if_fail (priv->mod);
g_return_if_fail (priv->mod->handler);
LocModGpsOps ops = priv->mod->ops;
switch (property_id) {
- case PROP_DEV_NAME: {
- char* devname = NULL;
- if(ops.get_devname)
- ops.get_devname(priv->mod->handler, &devname);
- LOCATION_LOGD ("Get prop>> device_name: %s", devname);
- g_value_set_string (value, devname);
- g_free(devname);
- break;
- }
case PROP_METHOD_TYPE:
g_value_set_int(value, LOCATION_METHOD_GPS);
break;
+ case PROP_IS_STARTED:
+ g_value_set_boolean(value, __get_started(object));
+ break;
case PROP_LAST_POSITION:
g_value_set_boxed (value, priv->pos);
break;
@@ -514,13 +701,19 @@ location_gps_get_property (GObject *object,
case PROP_SAT_INTERVAL:
g_value_set_uint(value, priv->sat_interval);
break;
+ case PROP_BATCH_INTERVAL:
+ g_value_set_uint(value, priv->batch_interval);
+ break;
+ case PROP_BATCH_PERIOD:
+ g_value_set_uint(value, priv->batch_period);
+ break;
case PROP_BOUNDARY:
g_value_set_pointer(value, g_list_first(priv->boundary_list));
break;
case PROP_NMEA: {
char *nmea_data = NULL;
- if (ops.get_nmea && LOCATION_ERROR_NONE == ops.get_nmea(priv->mod->handler, &nmea_data) && nmea_data) {
- LOCATION_LOGD("Get prop>> Lastest nmea: \n%s", nmea_data);
+ if (ops.get_nmea && LOCATION_ERROR_NONE == ops.get_nmea(priv->mod->handler, &nmea_data) && nmea_data) {
+ LOCATION_SECLOG("Get prop>> Lastest nmea: \n%s", nmea_data);
g_value_set_string(value, nmea_data);
g_free(nmea_data);
} else {
@@ -553,23 +746,53 @@ location_gps_get_position (LocationGps *self,
LocationAccuracy **accuracy)
{
int ret = LOCATION_ERROR_NOT_AVAILABLE;
- LOCATION_LOGD("location_gps_get_position");
LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
- LocModGpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_position, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
if (priv->pos) {
*position = location_position_copy (priv->pos);
+ if (priv->acc) *accuracy = location_accuracy_copy (priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
ret = LOCATION_ERROR_NONE;
}
- if (priv->acc) {
- *accuracy = location_accuracy_copy (priv->acc);
+ return ret;
+}
+
+static int
+location_gps_get_position_ext (LocationGps *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ int ret = LOCATION_ERROR_NOT_AVAILABLE;
+
+ LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
+ if (priv->pos && priv->vel) {
+ *position = location_position_copy (priv->pos);
+ *velocity = location_velocity_copy (priv->vel);
+ if (priv->acc) *accuracy = location_accuracy_copy (priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+ ret = LOCATION_ERROR_NONE;
}
return ret;
@@ -580,45 +803,66 @@ location_gps_get_last_position (LocationGps *self,
LocationPosition **position,
LocationAccuracy **accuracy)
{
- LOCATION_LOGD("location_gps_get_last_position");
- // Enable to get a last position even though GPS_ENABLE dose not set on
-
LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+
+ int ret = LOCATION_ERROR_NONE;
+ LocationVelocity *_velocity = NULL;
LocModGpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
- return ops.get_last_position(priv->mod->handler, position, accuracy);
+ ret = ops.get_last_position(priv->mod->handler, position, &_velocity, accuracy);
+ if (_velocity) location_velocity_free(_velocity);
+ return ret;
}
static int
-location_gps_get_velocity (LocationGps *self,
+location_gps_get_last_position_ext (LocationGps *self,
+ LocationPosition **position,
LocationVelocity **velocity,
LocationAccuracy **accuracy)
{
- LOCATION_LOGD("location_gps_get_velocity");
+ LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+ LocModGpsOps ops = priv->mod->ops;
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
+ return ops.get_last_position(priv->mod->handler, position, velocity, accuracy);
+}
+
+
+static int
+location_gps_get_velocity (LocationGps *self,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
int ret = LOCATION_ERROR_NOT_AVAILABLE;
LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
-
- LocModGpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_velocity, LOCATION_ERROR_NOT_AVAILABLE);
-
+
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
if (priv->vel) {
*velocity = location_velocity_copy (priv->vel);
+ if (priv->acc) *accuracy = location_accuracy_copy (priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
ret = LOCATION_ERROR_NONE;
}
- if (priv->acc) {
- *accuracy = location_accuracy_copy (priv->acc);
- }
-
return ret;
}
@@ -627,17 +871,122 @@ location_gps_get_last_velocity (LocationGps *self,
LocationVelocity **velocity,
LocationAccuracy **accuracy)
{
- LOCATION_LOGD("location_gps_get_last_velocity");
-
LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+ int ret = LOCATION_ERROR_NONE;
+ LocationPosition *_position = NULL;
+
LocModGpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_last_velocity, LOCATION_ERROR_NOT_AVAILABLE);
- return ops.get_last_velocity(priv->mod->handler, velocity, accuracy);
+ g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
+ ret = ops.get_last_position(priv->mod->handler, &_position, velocity, accuracy);
+ if (_position) location_position_free(_position);
+
+ return ret;
+}
+
+static gboolean __single_location_timeout_cb(void *data)
+{
+ LOCATION_LOGD("__single_location_timeout_cb");
+ LocationGps *self = (LocationGps *)data;
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, FALSE);
+
+ LocationPosition *pos = location_position_new(0, 0.0, 0.0, 0.0, LOCATION_STATUS_NO_FIX);
+ LocationVelocity *vel = location_velocity_new(0, 0.0, 0.0, 0.0);
+ LocationAccuracy *acc = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+
+ if (priv->loc_timeout) g_source_remove(priv->loc_timeout);
+ priv->loc_timeout = 0;
+
+ g_signal_emit(self, signals[LOCATION_UPDATED], LOCATION_ERROR_NOT_AVAILABLE, 0, pos, vel, acc);
+ location_gps_stop(self);
+
+ return FALSE;
+}
+
+static void
+gps_single_location_cb (gboolean enabled,
+ LocationPosition *pos,
+ LocationVelocity *vel,
+ LocationAccuracy *acc,
+ gpointer self)
+{
+ LOCATION_LOGD("gps_single_location_cb");
+ g_return_if_fail(self);
+ g_return_if_fail(pos);
+ g_return_if_fail(vel);
+ g_return_if_fail(acc);
+
+ LocationGps *obj = (LocationGps *)self;
+ LocationGpsPrivate* priv = GET_PRIVATE(obj);
+ g_return_if_fail(priv);
+
+ g_signal_emit(self, signals[LOCATION_UPDATED], LOCATION_ERROR_NONE, 0, pos, vel, acc);
+ if (priv->loc_timeout) {
+ g_source_remove(priv->loc_timeout);
+ priv->loc_timeout = 0;
+ }
+ location_gps_stop(self);
+}
+
+static int
+location_gps_request_single_location (LocationGps *self, int timeout)
+{
+ LOCATION_LOGD("location_gps_request_single_location");
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (__get_started(self) == TRUE) return LOCATION_ERROR_NONE;
+ int ret = LOCATION_ERROR_NONE;
+
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, priv->pos_interval, gps_status_cb, gps_single_location_cb, NULL, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Fail to start request single. Error[%d]", ret);
+ __set_started(self, FALSE);
+ return ret;
+ } else {
+ if(priv->loc_timeout != 0) {
+ g_source_remove (priv->loc_timeout);
+ }
+ priv->loc_timeout = g_timeout_add_seconds(timeout, __single_location_timeout_cb, self);
+ }
+
+ return ret;
+}
+
+static int
+location_gps_get_batch (LocationGps *self,
+ LocationBatch **batch)
+{
+ int ret = LOCATION_ERROR_NOT_AVAILABLE;
+
+ LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
+ if (priv->batch) {
+ *batch = location_batch_copy(priv->batch);
+ ret = LOCATION_ERROR_NONE;
+ } else {
+ LOCATION_LOGD("priv->batch is null");
+ }
+
+ return ret;
}
static int
@@ -645,17 +994,22 @@ location_gps_get_satellite (LocationGps *self,
LocationSatellite **satellite)
{
int ret = LOCATION_ERROR_NOT_AVAILABLE;
- LOCATION_LOGD("location_gps_get_satellite");
LocationGpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
if (priv->sat) {
*satellite = location_satellite_copy (priv->sat);
ret = LOCATION_ERROR_NONE;
}
-
+
return ret;
}
@@ -663,16 +1017,26 @@ static int
location_gps_get_last_satellite (LocationGps *self,
LocationSatellite **satellite)
{
- LOCATION_LOGD("location_gps_get_last_satellite");
+ return location_gps_get_satellite(self, satellite);
+}
- LocationGpsPrivate *priv = GET_PRIVATE (self);
+static int
+location_gps_set_option (LocationGps *self, const char *option)
+{
+ LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- setting_retval_if_fail(VCONFKEY_LOCATION_ENABLED);
-
- LocModGpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_last_satellite, LOCATION_ERROR_NOT_AVAILABLE);
- return ops.get_last_satellite(priv->mod->handler, satellite);
+ g_return_val_if_fail (priv->mod->ops.set_option, LOCATION_ERROR_NOT_AVAILABLE);
+
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = priv->mod->ops.set_option(priv->mod->handler, option);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGD("Failed to sst_option. Error[%d]", ret);
+ }
+
+ return ret;
}
static void
@@ -681,11 +1045,18 @@ location_ielement_interface_init (LocationIElementInterface *iface)
iface->start = (TYPE_START_FUNC)location_gps_start;
iface->stop = (TYPE_STOP_FUNC)location_gps_stop;
iface->get_position = (TYPE_GET_POSITION)location_gps_get_position;
+ iface->get_position_ext = (TYPE_GET_POSITION_EXT)location_gps_get_position_ext;
iface->get_last_position = (TYPE_GET_POSITION)location_gps_get_last_position;
+ iface->get_last_position_ext = (TYPE_GET_POSITION_EXT)location_gps_get_last_position_ext;
iface->get_velocity = (TYPE_GET_VELOCITY)location_gps_get_velocity;
iface->get_last_velocity = (TYPE_GET_VELOCITY)location_gps_get_last_velocity;
iface->get_satellite = (TYPE_GET_SATELLITE)location_gps_get_satellite;
iface->get_last_satellite = (TYPE_GET_SATELLITE)location_gps_get_last_satellite;
+ iface->set_option = (TYPE_SET_OPTION)location_gps_set_option;
+ iface->request_single_location = (TYPE_REQUEST_SINGLE_LOCATION)location_gps_request_single_location;
+ iface->get_batch = (TYPE_GET_BATCH)location_gps_get_batch;
+ iface->start_batch = (TYPE_START_BATCH)location_gps_start_batch;
+ iface->stop_batch = (TYPE_STOP_BATCH)location_gps_stop_batch;
}
static void
@@ -693,10 +1064,12 @@ location_gps_init (LocationGps *self)
{
LOCATION_LOGD("location_gps_init");
LocationGpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail (priv);
priv->mod = (LocationGpsMod*)module_new("gps");
if(!priv->mod) LOCATION_LOGW("module loading failed");
+ g_mutex_init(&priv->mutex);
priv->is_started = FALSE;
priv->set_noti = FALSE;
priv->enabled= FALSE;
@@ -704,21 +1077,28 @@ location_gps_init (LocationGps *self)
priv->pos_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
priv->vel_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
priv->sat_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
+ priv->batch_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
+ priv->batch_period = LOCATION_BATCH_PERIOD_DEFAULT;
priv->pos_updated_timestamp = 0;
priv->vel_updated_timestamp = 0;
priv->sat_updated_timestamp = 0;
priv->pos = NULL;
+ priv->batch = NULL;
priv->vel = NULL;
priv->acc = NULL;
priv->sat = NULL;
- priv->zone_status = ZONE_STATUS_NONE;
priv->boundary_list = NULL;
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ priv->pos_searching_timer = 0;
+ priv->vel_searching_timer = 0;
+ priv->loc_timeout = 0;
+ priv->app_type = location_get_app_type(NULL);
+ if (priv->app_type == 0) {
+ LOCATION_LOGW("Fail to get app_type");
+ }
}
static void
@@ -767,15 +1147,38 @@ location_gps_class_init (LocationGpsClass *klass)
G_TYPE_POINTER,
G_TYPE_POINTER);
+ signals[LOCATION_UPDATED] = g_signal_new ("location-updated",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST |
+ G_SIGNAL_NO_RECURSE,
+ G_STRUCT_OFFSET (LocationGpsClass, location_update),
+ NULL, NULL,
+ location_VOID__INT_POINTER_POINTER_POINTER,
+ G_TYPE_NONE, 4,
+ G_TYPE_INT,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER);
+
+ signals[BATCH_UPDATED] = g_signal_new ("batch-updated",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST |
+ G_SIGNAL_NO_RECURSE,
+ G_STRUCT_OFFSET (LocationGpsClass, batch_updated),
+ NULL, NULL,
+ location_VOID__UINT,
+ G_TYPE_NONE, 1,
+ G_TYPE_UINT);
+
signals[ZONE_IN] = g_signal_new ("zone-in",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST |
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationGpsClass, zone_in),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
@@ -785,18 +1188,12 @@ location_gps_class_init (LocationGpsClass *klass)
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationGpsClass, zone_out),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
- properties[PROP_DEV_NAME] = g_param_spec_string ("dev-name",
- "gps device name prop",
- "gps device name",
- "/dev/rfcomm0",
- G_PARAM_READWRITE);
-
properties[PROP_METHOD_TYPE] = g_param_spec_int ("method",
"method type",
"location method type name",
@@ -805,7 +1202,13 @@ location_gps_class_init (LocationGpsClass *klass)
LOCATION_METHOD_GPS,
G_PARAM_READABLE);
- properties[PROP_LAST_POSITION] = g_param_spec_boxed ("last-position",
+ properties[PROP_IS_STARTED] = g_param_spec_boolean ("is_started",
+ "gps is started prop",
+ "gps is started status",
+ FALSE,
+ G_PARAM_READWRITE);
+
+ properties[PROP_LAST_POSITION] = g_param_spec_boxed ("last-position",
"gps last position prop",
"gps last position data",
LOCATION_TYPE_POSITION,
@@ -834,7 +1237,23 @@ location_gps_class_init (LocationGpsClass *klass)
LOCATION_UPDATE_INTERVAL_MAX,
LOCATION_UPDATE_INTERVAL_DEFAULT,
G_PARAM_READWRITE);
- ;
+
+ properties[PROP_BATCH_INTERVAL] = g_param_spec_uint ("batch-interval",
+ "gps batch interval interval prop",
+ "gps batch interval interval data",
+ LOCATION_UPDATE_INTERVAL_MIN,
+ LOCATION_UPDATE_INTERVAL_MAX,
+ LOCATION_UPDATE_INTERVAL_DEFAULT,
+ G_PARAM_READWRITE);
+
+ properties[PROP_BATCH_PERIOD] = g_param_spec_uint ("batch-period",
+ "gps batch period prop",
+ "gps batch period data",
+ LOCATION_BATCH_PERIOD_MIN,
+ LOCATION_BATCH_PERIOD_MAX,
+ LOCATION_BATCH_PERIOD_DEFAULT,
+ G_PARAM_READWRITE);
+
properties[PROP_BOUNDARY] = g_param_spec_pointer ("boundary",
"gps boundary prop",
"gps boundary data",
@@ -862,5 +1281,4 @@ location_gps_class_init (LocationGpsClass *klass)
g_object_class_install_properties (gobject_class,
PROP_MAX,
properties);
-
}
diff --git a/location/manager/location-gps.h b/location/manager/location-gps.h
index e658ce9..765dbd7 100644
--- a/location/manager/location-gps.h
+++ b/location/manager/location-gps.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
#include <glib-object.h>
-
/**
* @file location-gps.h
* @brief This file contains the internal definitions and structures related to GPS.
@@ -32,15 +31,15 @@
G_BEGIN_DECLS
-#define LOCATION_TYPE_GPS (location_gps_get_type ())
-#define LOCATION_GPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_GPS, LocationGps))
-#define LOCATION_IS_GPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_GPS))
-#define LOCATION_GPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_GPS, LocationGpsClass))
-#define LOCATION_IS_GPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_GPS))
-#define LOCATION_GPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_GPS, LocationGpsClass))
+#define LOCATION_TYPE_GPS (location_gps_get_type ())
+#define LOCATION_GPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_GPS, LocationGps))
+#define LOCATION_IS_GPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_GPS))
+#define LOCATION_GPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_GPS, LocationGpsClass))
+#define LOCATION_IS_GPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_GPS))
+#define LOCATION_GPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_GPS, LocationGpsClass))
-typedef struct _LocationGps LocationGps;
-typedef struct _LocationGpsClass LocationGpsClass;
+typedef struct _LocationGps LocationGps;
+typedef struct _LocationGpsClass LocationGpsClass;
struct _LocationGps
{
@@ -54,8 +53,10 @@ struct _LocationGpsClass
void (* enabled) (guint type);
void (* disabled) (guint type);
void (* updated) (guint type, gpointer data, gpointer accuracy);
- void (* zone_in) (guint type, gpointer position, gpointer boundary);
- void (* zone_out) (guint type, gpointer position, gpointer boundary);
+ void (* location_update) (gint error, gpointer position, gpointer velocity, gpointer accuracy);
+ void (* batch_updated) (guint batch_interval, guint batch_period);
+ void (* zone_in) (gpointer boundary, gpointer position, gpointer accuracy);
+ void (* zone_out) (gpointer boundary, gpointer position, gpointer accuracy);
};
GType location_gps_get_type (void);
diff --git a/location/manager/location-hybrid.c b/location/manager/location-hybrid.c
index de6b6ec..3f11193 100644..100755
--- a/location/manager/location-hybrid.c
+++ b/location/manager/location-hybrid.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,10 +36,8 @@
#include "location-gps.h"
#include "location-wps.h"
-#include "location-cps.h"
typedef struct _LocationHybridPrivate {
- gboolean is_started;
gboolean gps_enabled;
gboolean wps_enabled;
guint pos_updated_timestamp;
@@ -57,12 +55,9 @@ typedef struct _LocationHybridPrivate {
LocationAccuracy *acc;
LocationSatellite *sat;
GList* boundary_list;
- ZoneStatus zone_status;
-
gboolean set_noti;
guint pos_timer;
guint vel_timer;
-
} LocationHybridPrivate;
enum {
@@ -85,8 +80,8 @@ static GParamSpec *properties[PROP_MAX] = {NULL, };
static void location_ielement_interface_init (LocationIElementInterface *iface);
G_DEFINE_TYPE_WITH_CODE (LocationHybrid, location_hybrid, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
- location_ielement_interface_init));
+ G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
+ location_ielement_interface_init));
static LocationMethod
hybrid_get_current_method(LocationHybridPrivate* priv)
@@ -103,13 +98,13 @@ hybrid_set_current_method (LocationHybridPrivate* priv, GType g_type)
if (g_type == LOCATION_TYPE_GPS) {
priv->current_method = LOCATION_METHOD_GPS;
- LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
+// LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
} else if (g_type == LOCATION_TYPE_WPS) {
priv->current_method = LOCATION_METHOD_WPS;
- LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
+// LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
} else if (g_type == LOCATION_TYPE_HYBRID){
priv->current_method = LOCATION_METHOD_HYBRID;
- LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
+// LOCATION_LOGW("Set current Method [%d]\n", priv->current_method);
} else
return FALSE;
@@ -133,6 +128,7 @@ hybrid_get_update_method (LocationHybridPrivate* priv)
return 0;
}
+#if 0
static LocationObject *
hybrid_get_current_object (LocationHybridPrivate* priv)
{
@@ -152,6 +148,7 @@ hybrid_get_current_object (LocationHybridPrivate* priv)
return obj;
}
+#endif
static gboolean /* True : Receive more accurate info. False : Receive less accurate info */
hybrid_compare_g_type_method(LocationHybridPrivate *priv, GType g_type)
@@ -170,11 +167,10 @@ hybrid_compare_g_type_method(LocationHybridPrivate *priv, GType g_type)
static gboolean
_position_timeout_cb (gpointer data)
{
- LOCATION_LOGD("_position_timeout_cb");
GObject *object = (GObject *)data;
if (!object) return FALSE;
LocationHybridPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
+ g_return_val_if_fail(priv, FALSE);
LocationPosition *pos = NULL;
LocationAccuracy *acc = NULL;
@@ -193,7 +189,6 @@ _position_timeout_cb (gpointer data)
acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
}
- LOCATION_LOGD("POSITION SERVICE_UPDATED");
g_signal_emit(object, signals[SERVICE_UPDATED], 0, POSITION_UPDATED, pos, acc);
location_position_free (pos);
@@ -205,10 +200,9 @@ _position_timeout_cb (gpointer data)
static gboolean
_velocity_timeout_cb (gpointer data)
{
- LOCATION_LOGD("_velocity_timeout_cb");
GObject *object = (GObject *)data;
LocationHybridPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
+ g_return_val_if_fail(priv, FALSE);
LocationVelocity *vel = NULL;
LocationAccuracy *acc = NULL;
@@ -227,7 +221,6 @@ _velocity_timeout_cb (gpointer data)
acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
}
- LOCATION_LOGD("VELOCITY SERVICE_UPDATED");
g_signal_emit(object, signals[SERVICE_UPDATED], 0, VELOCITY_UPDATED, vel, acc);
location_velocity_free (vel);
@@ -236,7 +229,6 @@ _velocity_timeout_cb (gpointer data)
return TRUE;
}
-
static void
location_hybrid_state_cb (keynode_t *key, gpointer self)
{
@@ -244,7 +236,8 @@ location_hybrid_state_cb (keynode_t *key, gpointer self)
g_return_if_fail (key);
g_return_if_fail (self);
LocationHybridPrivate *priv = GET_PRIVATE(self);
-
+ g_return_if_fail(priv);
+
if (location_setting_get_key_val (key) == VCONFKEY_LOCATION_POSITION_SEARCHING) {
if (!priv->pos_timer) priv->pos_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, self);
if (!priv->vel_timer) priv->vel_timer = g_timeout_add (priv->vel_interval * 1000, _velocity_timeout_cb, self);
@@ -253,13 +246,67 @@ location_hybrid_state_cb (keynode_t *key, gpointer self)
else {
if (priv->pos_timer) g_source_remove (priv->pos_timer);
if (priv->vel_timer) g_source_remove (priv->vel_timer);
-
+
priv->pos_timer = 0;
priv->vel_timer = 0;
}
}
static void
+location_hybrid_gps_cb (keynode_t *key,
+ gpointer self)
+{
+ LOCATION_LOGD("location_hybrid_gps_cb");
+ g_return_if_fail(key);
+ g_return_if_fail(self);
+ LocationHybridPrivate *priv = GET_PRIVATE(self);
+ g_return_if_fail (priv);
+ g_return_if_fail (priv->wps);
+
+ gboolean wps_started = FALSE;
+ int ret = LOCATION_ERROR_NONE;
+ int onoff = 0;
+
+ onoff = location_setting_get_key_val(key);
+ if (0 == onoff) {
+ /* restart WPS when GSP stopped by setting */
+ g_object_get(priv->wps, "is_started", &wps_started, NULL);
+ if (wps_started == FALSE && 1 == location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
+ LOCATION_LOGD ("GPS stoped by setting, so restart WPS");
+ ret = location_start(priv->wps);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGW("Fail hyhrid/wps location_start : [%d]", ret);
+ return;
+ }
+ }
+ } else if (1 == onoff) {
+ LOCATION_LOGD("Hybrid GPS resumed by setting");
+
+ } else {
+ LOCATION_LOGD("Invalid Value[%d]", onoff);
+ }
+
+}
+
+static void
+hybrid_location_updated (GObject *obj,
+ guint error,
+ gpointer position,
+ gpointer velocity,
+ gpointer accuracy,
+ gpointer self)
+{
+ LocationPosition *pos = (LocationPosition*)position;
+ LocationVelocity *vel = (LocationVelocity*)velocity;
+ LocationAccuracy *acc = (LocationAccuracy*)accuracy;
+
+ LocationHybridPrivate* priv = GET_PRIVATE((LocationHybrid*)self);
+ g_return_if_fail(priv);
+
+ g_signal_emit(self, signals[LOCATION_UPDATED], LOCATION_ERROR_NONE, 0, pos, vel, acc);
+}
+
+static void
hybrid_service_updated (GObject *obj,
guint type,
gpointer data,
@@ -269,25 +316,30 @@ hybrid_service_updated (GObject *obj,
LocationPosition *pos = NULL;
LocationVelocity *vel = NULL;
LocationSatellite *sat = NULL;
- LOCATION_LOGD ("hybrid_service_updated");
+ gboolean wps_started = FALSE;
+ int ret = LOCATION_ERROR_NONE;
/* To discard invalid data in a hybrid */
switch (type) {
case POSITION_UPDATED: {
pos = (LocationPosition *)data;
if (!pos->timestamp) return;
+ break;
}
case VELOCITY_UPDATED: {
vel = (LocationVelocity *)data;
if (!vel->timestamp) return;
+ break;
}
case SATELLITE_UPDATED: {
sat = (LocationSatellite *)data;
if (!sat->timestamp) return;
+ break;
}
}
LocationHybridPrivate* priv = GET_PRIVATE((LocationHybrid*)self);
+ g_return_if_fail(priv);
GType g_type = G_TYPE_FROM_INSTANCE(obj);
if (g_type == LOCATION_TYPE_GPS) {
if (type == SATELLITE_UPDATED) {
@@ -296,23 +348,51 @@ hybrid_service_updated (GObject *obj,
}
else if (location_setting_get_int (VCONFKEY_LOCATION_GPS_STATE) == VCONFKEY_LOCATION_GPS_SEARCHING) {
LOCATION_LOGD ("Searching GPS");
+
+ /* restart WPS when GSP not available */
+ g_object_get(priv->wps, "is_started", &wps_started, NULL);
+ if (priv->wps && wps_started == FALSE) {
+ ret = location_start(priv->wps);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGW("Fail hyhrid location_start : [%d]", ret);
+ return;
+ }
+ }
return;
}
-
+
}
- else if ((g_type == LOCATION_TYPE_WPS || g_type == LOCATION_TYPE_CPS) && location_setting_get_int (VCONFKEY_LOCATION_WPS_STATE) == VCONFKEY_LOCATION_WPS_SEARCHING) {
- LOCATION_LOGD ("Searching WPS or CPS");
+ else if (g_type == LOCATION_TYPE_WPS && location_setting_get_int (VCONFKEY_LOCATION_WPS_STATE) == VCONFKEY_LOCATION_WPS_SEARCHING) {
+ LOCATION_LOGD ("Searching WPS");
return;
}
if (hybrid_compare_g_type_method(priv, g_type)) {
LocationAccuracy *acc = (LocationAccuracy*)accuracy;
if (type == POSITION_UPDATED) {
- position_signaling(self, signals, &(priv->enabled), priv->pos_interval, TRUE, &(priv->pos_updated_timestamp), &(priv->pos), priv->boundary_list, &(priv->zone_status), pos, acc);
- LOCATION_LOGW("Position updated. timestamp [%d]", priv->pos->timestamp);
+ if (priv->pos) location_position_free(priv->pos);
+ if (priv->acc) location_accuracy_free(priv->acc);
+ priv->pos = location_position_copy(pos);
+ priv->acc = location_accuracy_copy(acc);
+ if (!priv->enabled) {
+ enable_signaling(self, signals, &(priv->enabled), TRUE, pos->status);
+ }
+ position_signaling(self, signals, priv->pos_interval, &(priv->pos_updated_timestamp), priv->boundary_list, pos, acc);
+
+ /* if receive GPS position then stop WPS.. */
+ g_object_get(priv->wps, "is_started", &wps_started, NULL);
+ if (LOCATION_TYPE_GPS == g_type && wps_started == TRUE) {
+ ret = location_stop(priv->wps);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGW("Fail hybrid location_stop : [%d]", ret);
+ return;
+ }
+ }
+
} else if (type == VELOCITY_UPDATED) {
- velocity_signaling(self, signals, &(priv->enabled), priv->vel_interval, TRUE, &(priv->vel_updated_timestamp), &(priv->vel), &(priv->acc), vel, acc);
- LOCATION_LOGW("Velocity updated. timestamp [%d]", priv->vel->timestamp);
+ if (priv->vel) location_velocity_free(priv->vel);
+ priv->vel = location_velocity_copy(vel);
+ velocity_signaling(self, signals, priv->vel_interval, &(priv->vel_updated_timestamp), vel, acc);
}
} else if (type == POSITION_UPDATED && priv->pos) {
@@ -320,7 +400,6 @@ hybrid_service_updated (GObject *obj,
hybrid_set_current_method(priv, g_type);
}
}
-
}
static void
@@ -330,17 +409,17 @@ hybrid_service_enabled (GObject *obj,
{
LOCATION_LOGD ("hybrid_service_enabled");
LocationHybridPrivate* priv = GET_PRIVATE((LocationHybrid*)self);
+ g_return_if_fail(priv);
GType g_type = G_TYPE_FROM_INSTANCE(obj);
- if(g_type == LOCATION_TYPE_GPS) priv->gps_enabled = TRUE;
- else if(g_type == LOCATION_TYPE_WPS) priv->wps_enabled = TRUE;
- else {
+ if(g_type == LOCATION_TYPE_GPS) {
+ priv->gps_enabled = TRUE;
+ } else if(g_type == LOCATION_TYPE_WPS) {
+ priv->wps_enabled = TRUE;
+ } else {
LOCATION_LOGW("Undefined GType enabled");
return;
}
hybrid_get_update_method(priv);
- if(priv->gps_enabled || priv->wps_enabled)
- enable_signaling(self, signals, &(priv->enabled), TRUE, status);
-
}
static void
@@ -350,10 +429,13 @@ hybrid_service_disabled (GObject *obj,
{
LOCATION_LOGD ("hybrid_service_disabled");
LocationHybridPrivate* priv = GET_PRIVATE((LocationHybrid*)self);
+ g_return_if_fail(priv);
GType g_type = G_TYPE_FROM_INSTANCE(obj);
- if(g_type == LOCATION_TYPE_GPS) priv->gps_enabled = FALSE;
- else if(g_type == LOCATION_TYPE_WPS) priv->wps_enabled = FALSE;
- else {
+ if(g_type == LOCATION_TYPE_GPS) {
+ priv->gps_enabled = FALSE;
+ } else if(g_type == LOCATION_TYPE_WPS) {
+ priv->wps_enabled = FALSE;
+ } else {
LOCATION_LOGW("Undefined GType disabled");
return;
}
@@ -368,36 +450,43 @@ location_hybrid_start (LocationHybrid *self)
{
LOCATION_LOGD("location_hybrid_start");
- int ret_gps = LOCATION_ERROR_NONE;
- int ret_wps = LOCATION_ERROR_NONE;
+ int ret_gps = LOCATION_ERROR_NOT_AVAILABLE;
+ int ret_wps = LOCATION_ERROR_NOT_AVAILABLE;
+ gboolean gps_started = FALSE;
+ gboolean wps_started = FALSE;
LocationHybridPrivate* priv = GET_PRIVATE(self);
- if (priv->is_started == TRUE)
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ g_object_get(priv->gps, "is_started", &gps_started, NULL);
+ g_object_get(priv->wps, "is_started", &wps_started, NULL);
+
+ if ((gps_started == TRUE) || (wps_started == TRUE)) {
+ LOCATION_LOGD("Already started");
return LOCATION_ERROR_NONE;
+ }
- if(priv->gps) ret_gps = location_start(priv->gps);
- if(priv->wps) ret_wps = location_start(priv->wps);
+ if (priv->gps) ret_gps = location_start(priv->gps);
+ if (priv->wps) ret_wps = location_start(priv->wps);
- if (ret_gps != LOCATION_ERROR_NONE &&
- ret_wps != LOCATION_ERROR_NONE) {
- if (ret_gps == LOCATION_ERROR_NOT_ALLOWED ||
- ret_wps == LOCATION_ERROR_NOT_ALLOWED) {
- priv->is_started = TRUE;
+ if (ret_gps != LOCATION_ERROR_NONE && ret_wps != LOCATION_ERROR_NONE) {
+ if (ret_gps == LOCATION_ERROR_SECURITY_DENIED || ret_wps == LOCATION_ERROR_SECURITY_DENIED) {
+ return LOCATION_ERROR_SECURITY_DENIED;
+ } else if (ret_gps == LOCATION_ERROR_SETTING_OFF && ret_wps == LOCATION_ERROR_SETTING_OFF) {
+ return LOCATION_ERROR_SETTING_OFF;
+ } else if (ret_gps == LOCATION_ERROR_NOT_ALLOWED && ret_wps == LOCATION_ERROR_NOT_ALLOWED) {
return LOCATION_ERROR_NOT_ALLOWED;
- }
- else {
+ } else {
return LOCATION_ERROR_NOT_AVAILABLE;
}
}
- priv->is_started = TRUE;
-
if (priv->set_noti == FALSE) {
location_setting_add_notify (VCONFKEY_LOCATION_POSITION_STATE, location_hybrid_state_cb, self);
+ location_setting_add_notify (VCONFKEY_LOCATION_ENABLED, location_hybrid_gps_cb, self);
priv->set_noti = TRUE;
}
-
return LOCATION_ERROR_NONE;
}
@@ -407,19 +496,24 @@ location_hybrid_stop (LocationHybrid *self)
LOCATION_LOGD("location_hybrid_stop");
LocationHybridPrivate* priv = GET_PRIVATE(self);
- if( priv->is_started == FALSE)
- return LOCATION_ERROR_NONE;
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ int ret_gps = LOCATION_ERROR_NOT_AVAILABLE;
+ int ret_wps = LOCATION_ERROR_NOT_AVAILABLE;
+ gboolean gps_started = FALSE;
+ gboolean wps_started = FALSE;
- int ret_gps = LOCATION_ERROR_NONE;
- int ret_wps = LOCATION_ERROR_NONE;
+ g_object_get(priv->gps, "is_started", &gps_started, NULL);
+ g_object_get(priv->wps, "is_started", &wps_started, NULL);
- if(priv->gps) ret_gps = location_stop(priv->gps);
- if(priv->wps) ret_wps = location_stop(priv->wps);
+ if ((gps_started == FALSE) && (wps_started == FALSE)) {
+ return LOCATION_ERROR_NONE;
+ }
- priv->is_started = FALSE;
+ if (priv->gps) ret_gps = location_stop(priv->gps);
+ if (priv->wps) ret_wps = location_stop(priv->wps);
- if (ret_gps != LOCATION_ERROR_NONE &&
- ret_wps != LOCATION_ERROR_NONE)
+ if (ret_gps != LOCATION_ERROR_NONE && ret_wps != LOCATION_ERROR_NONE)
return LOCATION_ERROR_NOT_AVAILABLE;
if (priv->pos_timer) g_source_remove (priv->pos_timer);
@@ -429,6 +523,7 @@ location_hybrid_stop (LocationHybrid *self)
if (priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_POSITION_STATE, location_hybrid_state_cb);
+ location_setting_ignore_notify (VCONFKEY_LOCATION_ENABLED, location_hybrid_gps_cb);
priv->set_noti = FALSE;
}
@@ -440,6 +535,7 @@ location_hybrid_dispose (GObject *gobject)
{
LOCATION_LOGD("location_hybrid_dispose");
LocationHybridPrivate *priv = GET_PRIVATE(gobject);
+ g_return_if_fail(priv);
if (priv->pos_timer) g_source_remove (priv->pos_timer);
if (priv->vel_timer) g_source_remove (priv->vel_timer);
@@ -448,6 +544,7 @@ location_hybrid_dispose (GObject *gobject)
if (priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_POSITION_STATE, location_hybrid_state_cb);
+ location_setting_ignore_notify (VCONFKEY_LOCATION_ENABLED, location_hybrid_gps_cb);
priv->set_noti = FALSE;
}
@@ -459,17 +556,20 @@ location_hybrid_finalize (GObject *gobject)
{
LOCATION_LOGD("location_hybrid_finalize");
LocationHybridPrivate* priv = GET_PRIVATE(gobject);
+ g_return_if_fail(priv);
if (priv->gps) {
g_signal_handlers_disconnect_by_func(priv->gps, G_CALLBACK (hybrid_service_enabled), gobject);
g_signal_handlers_disconnect_by_func(priv->gps, G_CALLBACK (hybrid_service_disabled), gobject);
g_signal_handlers_disconnect_by_func(priv->gps, G_CALLBACK (hybrid_service_updated), gobject);
+ g_signal_handlers_disconnect_by_func(priv->gps, G_CALLBACK (hybrid_location_updated), gobject);
location_free(priv->gps);
}
if (priv->wps) {
g_signal_handlers_disconnect_by_func(priv->wps, G_CALLBACK (hybrid_service_enabled), gobject);
g_signal_handlers_disconnect_by_func(priv->wps, G_CALLBACK (hybrid_service_disabled), gobject);
g_signal_handlers_disconnect_by_func(priv->wps, G_CALLBACK (hybrid_service_updated), gobject);
+ g_signal_handlers_disconnect_by_func(priv->wps, G_CALLBACK (hybrid_location_updated), gobject);
location_free(priv->wps);
}
@@ -508,6 +608,7 @@ location_hybrid_set_property (GObject *object,
GParamSpec *pspec)
{
LocationHybridPrivate* priv = GET_PRIVATE(object);
+ g_return_if_fail(priv);
if (!priv->gps && !priv->wps) {
LOCATION_LOGW("Set property is not available now");
return;
@@ -519,7 +620,7 @@ location_hybrid_set_property (GObject *object,
GList *boundary_list = (GList *)g_list_copy(g_value_get_pointer(value));
ret = set_prop_boundary(&priv->boundary_list, boundary_list);
if(ret != 0) LOCATION_LOGD("Set boundary. Error[%d]", ret);
- break;
+ break;
}
case PROP_REMOVAL_BOUNDARY: {
LocationBoundary *req_boundary = (LocationBoundary*) g_value_dup_boxed(value);
@@ -536,14 +637,21 @@ location_hybrid_set_property (GObject *object,
priv->pos_interval = (guint) LOCATION_UPDATE_INTERVAL_MAX;
}
- else
+ else {
priv->pos_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
+ }
if (priv->pos_timer) {
g_source_remove (priv->pos_timer);
priv->pos_timer = g_timeout_add (priv->pos_interval * 1000, _position_timeout_cb, object);
}
+ if (priv->gps)
+ g_object_set(priv->gps, "pos-interval", priv->pos_interval, NULL);
+
+ if (priv->wps)
+ g_object_set(priv->wps, "pos-interval", priv->pos_interval, NULL);
+
break;
}
case PROP_VEL_INTERVAL: {
@@ -592,6 +700,7 @@ location_hybrid_get_property (GObject *object,
GParamSpec *pspec)
{
LocationHybridPrivate *priv = GET_PRIVATE (object);
+ g_return_if_fail(priv);
if(!priv->gps && !priv->wps){
LOCATION_LOGW("Get property is not available now");
return;
@@ -632,10 +741,11 @@ location_hybrid_get_position (LocationHybrid *self,
int ret = LOCATION_ERROR_NOT_AVAILABLE;
LOCATION_LOGD("location_hybrid_get_position");
if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED) && !location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
- return LOCATION_ERROR_NOT_ALLOWED;
+ return LOCATION_ERROR_SETTING_OFF;
}
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
if (priv->pos) {
*position = location_position_copy (priv->pos);
@@ -650,6 +760,40 @@ location_hybrid_get_position (LocationHybrid *self,
}
static int
+location_hybrid_get_position_ext (LocationHybrid *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ LOCATION_LOGD("location_hybrid_get_position_ext");
+ if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED) && !location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
+ return LOCATION_ERROR_SETTING_OFF;
+ }
+
+ LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (priv->pos && priv->vel) {
+ *position = location_position_copy (priv->pos);
+ *velocity = location_velocity_copy (priv->vel);
+ }
+ else {
+ LOCATION_LOGE("There is invalid data.");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
+ if (priv->acc) {
+ *accuracy = location_accuracy_copy (priv->acc);
+ }
+ else {
+ *accuracy = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+ }
+
+ return LOCATION_ERROR_NONE;
+}
+
+
+static int
location_hybrid_get_last_position (LocationHybrid *self,
LocationPosition **position,
LocationAccuracy **accuracy)
@@ -660,6 +804,7 @@ location_hybrid_get_last_position (LocationHybrid *self,
LocationPosition *gps_pos = NULL, *wps_pos = NULL;
LocationAccuracy *gps_acc = NULL, *wps_acc = NULL;
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
if (priv->gps) location_get_last_position (priv->gps, &gps_pos, &gps_acc);
if (priv->wps) location_get_last_position (priv->wps, &wps_pos, &wps_acc);
@@ -691,6 +836,56 @@ location_hybrid_get_last_position (LocationHybrid *self,
}
static int
+location_hybrid_get_last_position_ext (LocationHybrid *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ LOCATION_LOGD("location_hybrid_get_last_position_ext");
+
+ int ret = LOCATION_ERROR_NONE;
+ LocationPosition *gps_pos = NULL, *wps_pos = NULL;
+ LocationVelocity *gps_vel = NULL, *wps_vel = NULL;
+ LocationAccuracy *gps_acc = NULL, *wps_acc = NULL;
+ LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (priv->gps) location_get_last_position_ext (priv->gps, &gps_pos, &gps_vel, &gps_acc);
+ if (priv->wps) location_get_last_position_ext (priv->wps, &wps_pos, &wps_vel, &wps_acc);
+
+ if (gps_pos && wps_pos && gps_vel && wps_vel) {
+ if (wps_pos->timestamp > gps_pos->timestamp) {
+ *position = wps_pos;
+ *velocity = wps_vel;
+ *accuracy = wps_acc;
+ location_position_free (gps_pos);
+ location_velocity_free (gps_vel);
+ location_accuracy_free (gps_acc);
+ }
+ else {
+ *position = gps_pos;
+ *velocity = gps_vel;
+ *accuracy = gps_acc;
+ location_position_free (wps_pos);
+ location_velocity_free (wps_vel);
+ location_accuracy_free (wps_acc);
+ }
+ } else if (gps_pos && gps_vel) {
+ *position = gps_pos;
+ *velocity = gps_vel;
+ *accuracy = gps_acc;
+ } else if (wps_pos && wps_vel) {
+ *position = wps_pos;
+ *velocity = wps_vel;
+ *accuracy = wps_acc;
+ } else {
+ ret = LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
+ return ret;
+}
+
+static int
location_hybrid_get_velocity (LocationHybrid *self,
LocationVelocity **velocity,
LocationAccuracy **accuracy)
@@ -698,10 +893,11 @@ location_hybrid_get_velocity (LocationHybrid *self,
int ret = LOCATION_ERROR_NOT_AVAILABLE;
LOCATION_LOGD("location_hybrid_get_velocity");
if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED) && !location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
- return LOCATION_ERROR_NOT_ALLOWED;
+ return LOCATION_ERROR_SETTING_OFF;
}
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
if (priv->vel) {
*velocity = location_velocity_copy (priv->vel);
@@ -724,6 +920,7 @@ location_hybrid_get_last_velocity (LocationHybrid *self,
int ret = LOCATION_ERROR_NONE;
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
LocationVelocity *gps_vel = NULL, *wps_vel = NULL;
LocationAccuracy *gps_acc = NULL, *wps_acc = NULL;
@@ -765,10 +962,11 @@ location_hybrid_get_satellite (LocationHybrid *self,
int ret = LOCATION_ERROR_NOT_AVAILABLE;
LOCATION_LOGD("location_hybrid_get_satellite");
if (!location_setting_get_int(VCONFKEY_LOCATION_ENABLED) && !location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
- return LOCATION_ERROR_NOT_ALLOWED;
+ return LOCATION_ERROR_SETTING_OFF;
}
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
if (priv->sat) {
*satellite = location_satellite_copy (priv->sat);
ret = LOCATION_ERROR_NONE;
@@ -785,9 +983,11 @@ location_hybrid_get_last_satellite (LocationHybrid *self,
int ret = LOCATION_ERROR_NONE;
LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
- if (priv->gps) ret = location_get_last_satellite (priv->gps, satellite);
- else {
+ if (priv->gps) {
+ ret = location_get_last_satellite (priv->gps, satellite);
+ } else {
*satellite = NULL;
ret = LOCATION_ERROR_NOT_AVAILABLE;
}
@@ -795,17 +995,58 @@ location_hybrid_get_last_satellite (LocationHybrid *self,
return ret;
}
+static int
+location_hybrid_set_option (LocationHybrid *self, const char *option)
+{
+ LOCATION_LOGD("location_hybrid_set_option");
+ LocationHybridPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ int ret_gps = LOCATION_ERROR_NOT_AVAILABLE;
+ int ret_wps = LOCATION_ERROR_NOT_AVAILABLE;
+
+ if (priv->gps) ret_gps = location_set_option(priv->gps, option);
+ if (priv->wps) ret_wps = location_set_option(priv->wps, option);
+
+ if (ret_gps != LOCATION_ERROR_NONE && ret_wps != LOCATION_ERROR_NONE)
+ return LOCATION_ERROR_NOT_AVAILABLE;
+
+ return LOCATION_ERROR_NONE;
+}
+
+static int
+location_hybrid_request_single_location (LocationHybrid *self, int timeout)
+{
+ LOCATION_LOGD("location_hybrid_request_single_location");
+ LocationHybridPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+
+ int ret = LOCATION_ERROR_NONE;
+
+ if (priv->gps) {
+ ret = location_request_single_location(priv->gps, timeout);
+ } else {
+ ret = location_request_single_location(priv->wps, timeout);
+ }
+
+ return ret;
+}
+
static void
location_ielement_interface_init (LocationIElementInterface *iface)
{
iface->start = (TYPE_START_FUNC)location_hybrid_start;
iface->stop = (TYPE_STOP_FUNC)location_hybrid_stop;
iface->get_position = (TYPE_GET_POSITION)location_hybrid_get_position;
+ iface->get_position_ext = (TYPE_GET_POSITION_EXT)location_hybrid_get_position_ext;
iface->get_last_position = (TYPE_GET_POSITION)location_hybrid_get_last_position;
+ iface->get_last_position_ext = (TYPE_GET_POSITION_EXT)location_hybrid_get_last_position_ext;
iface->get_velocity = (TYPE_GET_VELOCITY)location_hybrid_get_velocity;
iface->get_last_velocity = (TYPE_GET_VELOCITY)location_hybrid_get_last_velocity;
iface->get_satellite = (TYPE_GET_SATELLITE)location_hybrid_get_satellite;
iface->get_last_satellite = (TYPE_GET_SATELLITE)location_hybrid_get_last_satellite;
+ iface->set_option = (TYPE_SET_OPTION)location_hybrid_set_option;
+ iface->request_single_location = (TYPE_REQUEST_SINGLE_LOCATION)location_hybrid_request_single_location;
}
static void
@@ -813,8 +1054,8 @@ location_hybrid_init (LocationHybrid *self)
{
LOCATION_LOGD("location_hybrid_init");
LocationHybridPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
- priv->is_started = FALSE;
priv->pos_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
priv->vel_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
priv->sat_interval = LOCATION_UPDATE_INTERVAL_DEFAULT;
@@ -841,11 +1082,13 @@ location_hybrid_init (LocationHybrid *self)
g_signal_connect (priv->gps, "service-enabled", G_CALLBACK(hybrid_service_enabled), self);
g_signal_connect (priv->gps, "service-disabled", G_CALLBACK(hybrid_service_disabled), self);
g_signal_connect (priv->gps, "service-updated", G_CALLBACK(hybrid_service_updated), self);
+ g_signal_connect (priv->gps, "location-updated", G_CALLBACK(hybrid_location_updated), self);
}
if(priv->wps){
g_signal_connect (priv->wps, "service-enabled", G_CALLBACK(hybrid_service_enabled), self);
g_signal_connect (priv->wps, "service-disabled", G_CALLBACK(hybrid_service_disabled), self);
g_signal_connect (priv->wps, "service-updated", G_CALLBACK(hybrid_service_updated), self);
+ g_signal_connect (priv->wps, "location-updated", G_CALLBACK(hybrid_location_updated), self);
}
hybrid_set_current_method (priv, LOCATION_TYPE_HYBRID);
@@ -856,9 +1099,7 @@ location_hybrid_init (LocationHybrid *self)
priv->acc = NULL;
priv->sat = NULL;
- priv->zone_status = ZONE_STATUS_NONE;
priv->boundary_list = NULL;
-
}
static void
@@ -907,15 +1148,28 @@ location_hybrid_class_init (LocationHybridClass *klass)
G_TYPE_POINTER,
G_TYPE_POINTER);
+ signals[LOCATION_UPDATED] = g_signal_new ("location-updated",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST |
+ G_SIGNAL_NO_RECURSE,
+ G_STRUCT_OFFSET (LocationHybridClass, location_update),
+ NULL, NULL,
+ location_VOID__INT_POINTER_POINTER_POINTER,
+ G_TYPE_NONE, 4,
+ G_TYPE_INT,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER);
+
signals[ZONE_IN] = g_signal_new ("zone-in",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST |
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationHybridClass, zone_in),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
@@ -925,9 +1179,9 @@ location_hybrid_class_init (LocationHybridClass *klass)
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationHybridClass, zone_out),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
@@ -967,7 +1221,7 @@ location_hybrid_class_init (LocationHybridClass *klass)
LOCATION_UPDATE_INTERVAL_DEFAULT,
G_PARAM_READWRITE);
- properties[PROP_BOUNDARY] = g_param_spec_pointer ("boundary",
+ properties[PROP_BOUNDARY] = g_param_spec_pointer ("boundary",
"hybrid boundary prop",
"hybrid boundary data",
G_PARAM_READWRITE);
@@ -981,5 +1235,4 @@ location_hybrid_class_init (LocationHybridClass *klass)
g_object_class_install_properties (gobject_class,
PROP_MAX,
properties);
-
}
diff --git a/location/manager/location-hybrid.h b/location/manager/location-hybrid.h
index 762722b..72f3dd9 100644
--- a/location/manager/location-hybrid.h
+++ b/location/manager/location-hybrid.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,15 +31,15 @@
G_BEGIN_DECLS
-typedef struct _LocationHybrid LocationHybrid;
-typedef struct _LocationHybridClass LocationHybridClass;
+typedef struct _LocationHybrid LocationHybrid;
+typedef struct _LocationHybridClass LocationHybridClass;
-#define LOCATION_TYPE_HYBRID (location_hybrid_get_type ())
-#define LOCATION_HYBRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_HYBRID, LocationHybrid))
-#define LOCATION_IS_HYBRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_HYBRID))
-#define LOCATION_HYBRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_HYBRID, LocationHybridClass))
-#define LOCATION_IS_HYBRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_HYBRID))
-#define LOCATION_HYBRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_HYBRID, LocationHybridClass))
+#define LOCATION_TYPE_HYBRID (location_hybrid_get_type ())
+#define LOCATION_HYBRID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_HYBRID, LocationHybrid))
+#define LOCATION_IS_HYBRID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_HYBRID))
+#define LOCATION_HYBRID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_HYBRID, LocationHybridClass))
+#define LOCATION_IS_HYBRID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_HYBRID))
+#define LOCATION_HYBRID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_HYBRID, LocationHybridClass))
struct _LocationHybrid
{
@@ -53,8 +53,9 @@ struct _LocationHybridClass
void (* enabled) (guint type);
void (* disabled) (guint type);
void (* updated) (guint type, gpointer data, gpointer accuracy);
- void (* zone_in) (guint type, gpointer position, gpointer boundary);
- void (* zone_out) (guint type, gpointer position, gpointer boundary);
+ void (* location_update) (gint error, gpointer position, gpointer velocity, gpointer accuracy);
+ void (* zone_in) (gpointer boundary, gpointer position, gpointer accuracy);
+ void (* zone_out) (gpointer boundary, gpointer position, gpointer accuracy);
};
GType location_hybrid_get_type (void);
diff --git a/location/manager/location-ielement.c b/location/manager/location-ielement.c
index d46a9fe..c8009e9 100644..100755
--- a/location/manager/location-ielement.c
+++ b/location/manager/location-ielement.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,8 +50,7 @@ location_ielement_get_type (void)
NULL /* base_finalize */
};
- iface_type = g_type_register_static (G_TYPE_INTERFACE, "LocationIElement",
- &info, 0);
+ iface_type = g_type_register_static (G_TYPE_INTERFACE, "LocationIElement", &info, 0);
}
return iface_type;
@@ -61,6 +60,7 @@ int
location_ielement_start (LocationIElement *self)
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->start, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->start (self);
}
@@ -69,11 +69,40 @@ int
location_ielement_stop (LocationIElement *self)
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->stop, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->stop (self);
}
int
+location_ielement_start_batch (LocationIElement *self)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->start_batch, LOCATION_ERROR_NOT_AVAILABLE);
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->start_batch (self);
+}
+
+int
+location_ielement_stop_batch (LocationIElement *self)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->stop_batch, LOCATION_ERROR_NOT_AVAILABLE);
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->stop_batch (self);
+}
+
+int
+location_ielement_request_single_location (LocationIElement *self, int timeout)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->request_single_location, LOCATION_ERROR_NOT_AVAILABLE);
+
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->request_single_location (self, timeout);
+}
+
+int
location_ielement_get_position (LocationIElement *self,
LocationPosition **position,
LocationAccuracy **accuracy)
@@ -81,12 +110,30 @@ location_ielement_get_position (LocationIElement *self,
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_position, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_position (self, position, accuracy);
}
int
+location_ielement_get_position_ext (LocationIElement *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_position_ext, LOCATION_ERROR_NOT_AVAILABLE);
+
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->get_position_ext (self, position, velocity, accuracy);
+}
+
+
+int
location_ielement_get_last_position (LocationIElement *self,
LocationPosition **position,
LocationAccuracy **accuracy)
@@ -94,17 +141,47 @@ location_ielement_get_last_position (LocationIElement *self,
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_position (self, position, accuracy);
}
int
+location_ielement_get_last_position_ext (LocationIElement *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_position_ext, LOCATION_ERROR_NOT_AVAILABLE);
+
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_position_ext (self, position, velocity, accuracy);
+}
+
+
+int
+location_ielement_get_batch (LocationIElement *self, LocationBatch **batch)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (batch, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_batch, LOCATION_ERROR_NOT_AVAILABLE);
+
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->get_batch (self, batch);
+}
+
+int
location_ielement_get_satellite (LocationIElement *self,
LocationSatellite **satellite)
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (satellite, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_satellite, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_satellite (self, satellite);
@@ -116,6 +193,7 @@ location_ielement_get_last_satellite (LocationIElement *self,
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (satellite, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_satellite, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_satellite (self, satellite);
@@ -129,6 +207,7 @@ location_ielement_get_velocity (LocationIElement *self,
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_velocity, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_velocity (self, velocity, accuracy);
}
@@ -140,6 +219,15 @@ location_ielement_get_last_velocity (LocationIElement *self,
{
g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_velocity, LOCATION_ERROR_NOT_AVAILABLE);
return LOCATION_IELEMENT_GET_INTERFACE (self)->get_last_velocity (self, velocity, accuracy);
}
+
+int
+location_ielement_set_option (LocationIElement *self, const char *option)
+{
+ g_return_val_if_fail (LOCATION_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (LOCATION_IELEMENT_GET_INTERFACE (self), LOCATION_ERROR_NOT_AVAILABLE);
+ return LOCATION_IELEMENT_GET_INTERFACE (self)->set_option (self, option);
+} \ No newline at end of file
diff --git a/location/manager/location-ielement.h b/location/manager/location-ielement.h
index d821edd..aceb740 100644
--- a/location/manager/location-ielement.h
+++ b/location/manager/location-ielement.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,9 +25,9 @@
#include <glib-object.h>
#include <location-types.h>
#include <location-position.h>
+#include <location-batch.h>
#include <location-velocity.h>
#include <location-accuracy.h>
-#include <location-address.h>
#include <location-boundary.h>
#include <location-satellite.h>
@@ -44,22 +44,30 @@ enum {
SERVICE_UPDATED,
ZONE_IN,
ZONE_OUT,
- LAST_SIGNAL
+ LOCATION_UPDATED,
+ BATCH_UPDATED,
+ LAST_SIGNAL,
};
-#define LOCATION_TYPE_IELEMENT (location_ielement_get_type ())
-#define LOCATION_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_IELEMENT, LocationIElement))
-#define LOCATION_IS_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_IELEMENT))
-#define LOCATION_IELEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOCATION_TYPE_IELEMENT, LocationIElementInterface))
+#define LOCATION_TYPE_IELEMENT (location_ielement_get_type ())
+#define LOCATION_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_IELEMENT, LocationIElement))
+#define LOCATION_IS_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_IELEMENT))
+#define LOCATION_IELEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOCATION_TYPE_IELEMENT, LocationIElementInterface))
-typedef struct _LocationIElement LocationIElement;
-typedef struct _LocationIElementInterface LocationIElementInterface;
+typedef struct _LocationIElement LocationIElement;
+typedef struct _LocationIElementInterface LocationIElementInterface;
typedef int (*TYPE_START_FUNC)(LocationIElement *self);
-typedef int (*TYPE_STOP_FUNC) (LocationIElement *self);
+typedef int (*TYPE_STOP_FUNC)(LocationIElement *self);
typedef int (*TYPE_GET_POSITION)(LocationIElement *self, LocationPosition **position, LocationAccuracy **accuracy);
+typedef int (*TYPE_GET_POSITION_EXT)(LocationIElement *self, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy);
typedef int (*TYPE_GET_VELOCITY)(LocationIElement *self, LocationVelocity **velocity, LocationAccuracy **accuracy);
typedef int (*TYPE_GET_SATELLITE)(LocationIElement *self, LocationSatellite **satellite);
+typedef int (*TYPE_SET_OPTION)(LocationIElement *self, const char *option);
+typedef int (*TYPE_REQUEST_SINGLE_LOCATION)(LocationIElement *self, int timeout);
+typedef int (*TYPE_GET_BATCH)(LocationIElement *self, LocationBatch **batch);
+typedef int (*TYPE_START_BATCH)(LocationIElement *self);
+typedef int (*TYPE_STOP_BATCH)(LocationIElement *self);
struct _LocationIElementInterface
{
@@ -68,11 +76,18 @@ struct _LocationIElementInterface
TYPE_START_FUNC start;
TYPE_STOP_FUNC stop;
TYPE_GET_POSITION get_position;
+ TYPE_GET_POSITION_EXT get_position_ext;
TYPE_GET_POSITION get_last_position;
+ TYPE_GET_POSITION_EXT get_last_position_ext;
TYPE_GET_VELOCITY get_velocity;
TYPE_GET_VELOCITY get_last_velocity;
TYPE_GET_SATELLITE get_satellite;
TYPE_GET_SATELLITE get_last_satellite;
+ TYPE_SET_OPTION set_option;
+ TYPE_REQUEST_SINGLE_LOCATION request_single_location;
+ TYPE_GET_BATCH get_batch;
+ TYPE_START_BATCH start_batch;
+ TYPE_STOP_BATCH stop_batch;
};
GType location_ielement_get_type (void);
@@ -80,11 +95,18 @@ GType location_ielement_get_type (void);
int location_ielement_start (LocationIElement *self);
int location_ielement_stop(LocationIElement *self);
int location_ielement_get_position (LocationIElement *self, LocationPosition **position, LocationAccuracy **accuracy);
+int location_ielement_get_position_ext (LocationIElement *self, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy);
int location_ielement_get_last_position (LocationIElement *self, LocationPosition **position, LocationAccuracy **accuracy);
+int location_ielement_get_last_position_ext (LocationIElement *self, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy);
int location_ielement_get_velocity (LocationIElement *self, LocationVelocity **velocity, LocationAccuracy **accuracy);
int location_ielement_get_last_velocity (LocationIElement *self, LocationVelocity **velocity, LocationAccuracy **accuracy);
int location_ielement_get_satellite (LocationIElement *self, LocationSatellite **satellite);
int location_ielement_get_last_satellite (LocationIElement *self, LocationSatellite **satellite);
+int location_ielement_set_option (LocationIElement *self, const char *option);
+int location_ielement_request_single_location (LocationIElement *self, int timeout);
+int location_ielement_get_batch (LocationIElement *self, LocationBatch **batch);
+int location_ielement_start_batch (LocationIElement *self);
+int location_ielement_stop_batch (LocationIElement *self);
G_END_DECLS
diff --git a/location/manager/location-marshal.list b/location/manager/location-marshal.list
index 069387a..f425dd1 100644
--- a/location/manager/location-marshal.list
+++ b/location/manager/location-marshal.list
@@ -1,2 +1,4 @@
+VOID:POINTER,POINTER,POINTER
VOID:UINT,POINTER,POINTER
+VOID:INT,POINTER,POINTER,POINTER
VOID:UINT
diff --git a/location/manager/location-position.c b/location/manager/location-position.c
index dc317fa..a350836 100644..100755
--- a/location/manager/location-position.c
+++ b/location/manager/location-position.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -58,6 +58,8 @@ location_position_new (guint timestamp,
if (longitude < -180 || longitude > 180) return NULL;
LocationPosition* position = g_slice_new0(LocationPosition);
+ g_return_val_if_fail(position, NULL);
+
position->timestamp = timestamp;
position->latitude = latitude;
position->longitude = longitude;
@@ -104,7 +106,7 @@ location_position_copy (const LocationPosition *position)
}
/* Vincenty formula. WGS-84 */
-EXPORT_API int
+EXPORT_API int
location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2, gulong *distance)
{
g_return_val_if_fail(pos1, LOCATION_ERROR_PARAMETER);
@@ -113,7 +115,7 @@ location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2
*distance = 0;
- const double a = 6378137.0, b = 6356752.314245, f = 1/298.257223563;
+ const double a = 6378137.0, b = 6356752.314245, f = 1/298.257223563;
double delta_lon = DEG2RAD(pos2->longitude-pos1->longitude);
double u_1 = atan((1-f) * tan(DEG2RAD(pos1->latitude)));
double u_2 = atan((1-f) * tan(DEG2RAD(pos2->latitude)));
@@ -121,7 +123,7 @@ location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2
double lambdaP, iter_limit = 100.0;
double lambda = delta_lon;
- double sin_sigma, sin_alpha, cos_sigma, sigma, sq_cos_alpha, cos_2sigma, C;
+ double sin_sigma, sin_alpha, cos_sigma, sigma, sq_cos_alpha, cos_2sigma, C;
double sq_u, cal1, cal2, delta_sigma, cal_dist;
double sin_lambda, cos_lambda;
@@ -139,7 +141,7 @@ location_get_distance(const LocationPosition *pos1, const LocationPosition *pos2
(cos_u1*sin_u2-sin_u1*cos_u2*cos_lambda));
if (sin_sigma ==0)
- return LOCATION_ERROR_NONE; // co-incident points
+ return LOCATION_ERROR_NONE; // co-incident points
cos_sigma = sin_u1*sin_u2 + cos_u1*cos_u2*cos_lambda;
sigma = atan2(sin_sigma, cos_sigma);
diff --git a/location/manager/location-position.h b/location/manager/location-position.h
index 154c6d0..7782897 100644
--- a/location/manager/location-position.h
+++ b/location/manager/location-position.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,8 @@
#include <location-types.h>
-#define MAX_KEY_LENGTH 16
-#define HALF_KEY_LENGTH 8
+#define MAX_KEY_LENGTH 16
+#define HALF_KEY_LENGTH 8
G_BEGIN_DECLS
@@ -51,9 +51,9 @@ GType location_position_get_type (void);
*/
typedef enum
{
- LOCATION_STATUS_NO_FIX = 0, ///< No fix status.
- LOCATION_STATUS_2D_FIX, ///< 2D fix status (latitude/longitude/speed/direction).
- LOCATION_STATUS_3D_FIX ///< 3D fix status (altitude/climb as well).
+ LOCATION_STATUS_NO_FIX = 0, ///< No fix status.
+ LOCATION_STATUS_2D_FIX, ///< 2D fix status (latitude/longitude/speed/direction).
+ LOCATION_STATUS_3D_FIX ///< 3D fix status (altitude/climb as well).
} LocationStatus;
/**
@@ -61,10 +61,10 @@ typedef enum
*/
struct _LocationPosition
{
- guint timestamp; ///< Time stamp.
- gdouble latitude; ///< Latitude data.
- gdouble longitude; ///< Longitude data.
- gdouble altitude; ///< Altitude data.
+ guint timestamp; ///< Time stamp.
+ gdouble latitude; ///< Latitude data.
+ gdouble longitude; ///< Longitude data.
+ gdouble altitude; ///< Altitude data.
LocationStatus status; ///< Fix states.
};
@@ -73,20 +73,20 @@ struct _LocationPosition
*/
struct _LocationLastPosition
{
- LocationMethod method; ///< Location Method.
- guint timestamp; ///< Time stamp.
- gdouble latitude; ///< Latitude data.
- gdouble longitude; ///< Longitude data.
- gdouble altitude; ///< Altitude data.
+ LocationMethod method; ///< Location Method.
+ guint timestamp; ///< Time stamp.
+ gdouble latitude; ///< Latitude data.
+ gdouble longitude; ///< Longitude data.
+ gdouble altitude; ///< Altitude data.
gdouble horizontal_accuracy; ///< Horizontal accuracy data.
- gdouble vertical_accuracy; ///< Vertical accuracy data.
+ gdouble vertical_accuracy; ///< Vertical accuracy data.
};
/**
* @brief Create a new #LocationPosition with given information.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] timestamp - Time stamp.
* @param [in] latitude - Latitude data.
* @param [in] longitude - Longitude data.
@@ -100,8 +100,8 @@ LocationPosition *location_position_new (guint timestamp, gdouble latitude, gdou
/**
* @brief Free a #LocationPosition.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] position - a #LocationPosition.
* @return None.
*/
@@ -110,8 +110,8 @@ void location_position_free (LocationPosition *position);
/**
* @brief Compares two positions for equality, returning TRUE if they are equal.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] position1 - a #LocationPosition
* @param [in] position2 - a #LocationPosition
* @return gboolean
@@ -124,8 +124,8 @@ gboolean location_position_equal (const LocationPosition *position1, const Locat
/**
* @brief Makes a copy of #LocationPosition
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] position - a #LocationPosition
* @return a new #LocationPosition
* @retval NULL if error occured
@@ -133,23 +133,23 @@ gboolean location_position_equal (const LocationPosition *position1, const Locat
LocationPosition *location_position_copy (const LocationPosition *position);
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
-/* Vincenty Inverse Solution of Geodesics on the Ellipsoid (c) Chris Veness 2002-2010 */
-/* */
+/* Vincenty Inverse Solution of Geodesics on the Ellipsoid (c) Chris Veness 2002-2010 */
+/* */
/* from: Vincenty inverse formula - T Vincenty, "Direct and Inverse Solutions of Geodesics on the */
-/* Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975 */
-/* http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf */
+/* Ellipsoid with application of nested equations", Survey Review, vol XXII no 176, 1975 */
+/* http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/**
* @brief Gets the approximate distance between two points. A distance is defined using the WGS84 ellipsoid.
* @remarks Uses meters as a unit of measurement for a distance.
- * @pre None.
- * @post None.
+ * @pre None.
+ * @post None.
* @param [in] pos1 - a #LocationPosition (decimal degree)
* @param [in] pos2 - a #LocationPosition (decimal degree)
* @param [out] distance - a #gulong (meters)
* @return int
- * @retval 0 Success.
+ * @retval 0 Success.
*
* Please refer #LocationError for more information.
*/
@@ -158,8 +158,8 @@ int location_get_distance(const LocationPosition *pos1, const LocationPosition *
/**
* @brief Change position string to latitude and longitude integer.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] position - string of last position.
* @param [in] lat - latitude.
* @param [in] lon - longitude.
diff --git a/location/manager/location-privacy.c b/location/manager/location-privacy.c
new file mode 100755
index 0000000..36d3136
--- /dev/null
+++ b/location/manager/location-privacy.c
@@ -0,0 +1,353 @@
+/*
+ * libslp-location
+ *
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <glib.h>
+#include <stdlib.h>
+
+#include <app_manager.h>
+#include <package_manager.h>
+#include <pkgmgr-info.h>
+#include <privacy_checker_client.h>
+
+#include "location-common-util.h"
+#include "location-types.h"
+#include "location-log.h"
+#include "location-privacy.h"
+
+typedef struct _location_privilege_s {
+ char *name;
+ bool found;
+} location_privilege_s;
+
+int
+location_get_app_type(char *target_app_id)
+{
+ int ret = 0;
+ pid_t pid = 0;
+ char *app_id = NULL;
+ app_info_h app_info;
+ char *type = NULL;
+
+ if (target_app_id == NULL) {
+ pid = getpid();
+ ret = app_manager_get_app_id(pid, &app_id);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get app_id. Err[%d]", ret);
+ return LOCATION_ERROR_NONE;
+ }
+ }
+ else {
+ app_id = g_strdup(target_app_id);
+ }
+
+ ret = app_info_create(app_id, &app_info);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get app_id. Err[%d]", ret);
+ g_free(app_id);
+ return 0;
+ }
+
+ ret = app_info_get_type(app_info, &type);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE ("Fail to get type. Err[%d]", ret);
+ g_free(app_id);
+ app_info_destroy(app_info);
+ return 0;
+ }
+
+ if (strcmp(type,"c++app") == 0) {
+ ret = CPPAPP;
+ } else if (strcmp(type,"webapp") == 0) {
+ ret = WEBAPP;
+ } else {
+ ret = CAPP;
+ }
+
+ g_free(type);
+ g_free(app_id);
+ app_info_destroy(app_info);
+
+ return ret;
+}
+
+int _privilege_list_cb(const char *privilege_name, void *user_data)
+{
+ g_return_val_if_fail((privilege_name != NULL), -1);
+ location_privilege_s *requested_privilege = (location_privilege_s *)user_data;
+
+ if (g_strcmp0(privilege_name, requested_privilege->name) == 0) {
+ LOCATION_LOGD("[%s] is in privileges", requested_privilege->name);
+ requested_privilege->found = 1;
+ return -1;
+ }
+ return 0;
+}
+
+#ifdef TIZEN_WERABLE
+int
+location_get_webapp_privilege(const char *package_id, const char *privilege_name)
+{
+ g_return_val_if_fail((privilege_name != NULL), FALSE);
+
+ int is_found = -1;
+ int ret = 0;
+ pkgmgrinfo_pkginfo_h handle;
+
+ location_privilege_s *requested_privilege;
+ requested_privilege = g_new0(location_privilege_s, sizeof(location_privilege_s));
+ if (requested_privilege == NULL) {
+ LOCATION_SECLOG("Can't allocate memory");
+ return FALSE;
+ }
+ requested_privilege->name = g_strdup(privilege_name);
+ requested_privilege->found = 0;
+
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(package_id, &handle);
+ if (ret != PMINFO_R_OK) {
+ LOCATION_SECLOG("Fail to get pkginfo of package_id[%s]", package_id);
+ g_free(requested_privilege->name);
+ g_free(requested_privilege);
+ return FALSE;
+ }
+
+ ret = pkgmgrinfo_pkginfo_foreach_privilege(handle, _privilege_list_cb, requested_privilege);
+ if (!requested_privilege->found) {
+ LOCATION_LOGI("Do not have location privilege");
+ } else {
+ LOCATION_LOGE("There is [%s]", privilege_name);
+ }
+ is_found = requested_privilege->found;
+
+ g_free(requested_privilege->name);
+ g_free(requested_privilege);
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+
+ return is_found;
+}
+#endif
+
+void
+location_privacy_initialize(void)
+{
+ int ret = 0;
+ pid_t pid = 0;
+ char *app_id = NULL;
+ char *package_id = NULL;
+ pkgmgrinfo_appinfo_h pkgmgrinfo_appinfo;
+
+ pid = getpid();
+ ret = app_manager_get_app_id(pid, &app_id);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get app_id. Err[%d]", ret);
+ return;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_appinfo(app_id, &pkgmgrinfo_appinfo);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get appinfo for [%s]. Err[%d]", app_id, ret);
+ free(app_id);
+ return;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo, &package_id);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get package_id for [%s]. Err[%d]", app_id, ret);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ free(app_id);
+ return;
+ }
+
+ ret = privacy_checker_initialize(package_id);
+ if(ret != PRIV_MGR_ERROR_SUCCESS)
+ {
+ LOCATION_LOGE("Fail to initialize privacy checker. err[%d]", ret);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ free(app_id);
+ return;
+ }
+
+ LOCATION_LOGD("Success to initialize privacy checker");
+
+ free(app_id);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+}
+
+void
+location_privacy_finalize(void)
+{
+ int ret = 0;
+ ret = privacy_checker_finalize();
+ if(ret != PRIV_MGR_ERROR_SUCCESS)
+ {
+ LOCATION_LOGE("Fail to finalize privacy_cehecker. Err[%d]", ret);
+ return;
+ }
+
+ LOCATION_LOGD("Success to finalize privacy checker");
+}
+
+int
+location_get_privacy(const char *privilege_name)
+{
+ int ret = 0;
+ pid_t pid = 0;
+ char *app_id = NULL;
+ char *package_id = NULL;
+ int app_type = 0;
+ pkgmgrinfo_appinfo_h pkgmgrinfo_appinfo;
+
+ pid = getpid();
+ ret = app_manager_get_app_id(pid, &app_id);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get app_id. Err[%d]", ret);
+ return LOCATION_ERROR_NONE;
+ }
+
+ app_type = location_get_app_type(app_id);
+ if (app_type == CPPAPP) {
+ LOCATION_LOGE("CPPAPP use location");
+ g_free(app_id);
+ return LOCATION_ERROR_NONE;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_appinfo(app_id, &pkgmgrinfo_appinfo);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get appinfo for [%s]. Err[%d]", app_id, ret);
+ g_free(app_id);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo, &package_id);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get package_id for [%s]. Err[%d]", app_id, ret);
+ g_free(app_id);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+#ifdef TIZEN_WERABLE
+ if (app_type == WEBAPP) {
+ LOCATION_LOGE("WEBAPP use location");
+ if (location_get_webapp_privilege(package_id, privilege_name) == 0) {
+ g_free(package_id);
+ g_free(app_id);
+ return LOCATION_ERROR_NONE;
+ }
+ }
+#endif
+
+ ret = privacy_checker_check_package_by_privilege(package_id, privilege_name);
+ if (ret != PRIV_MGR_ERROR_SUCCESS) {
+ LOCATION_LOGE("Fail to get privilege for [%s]. Err[%d]", package_id, ret);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ g_free(app_id);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ g_free(app_id);
+
+ return LOCATION_ERROR_NONE;
+}
+
+
+int
+location_check_privilege(const char *privilege_name)
+{
+ int ret = 0;
+ pid_t pid = 0;
+ char *app_id = NULL;
+ char *package_id = NULL;
+ int app_type = 0;
+ pkgmgrinfo_appinfo_h pkgmgrinfo_appinfo;
+
+ pid = getpid();
+ ret = app_manager_get_app_id(pid, &app_id);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get app_id. Err[%d]", ret);
+ return LOCATION_ERROR_NONE;
+ }
+
+ app_type = location_get_app_type(app_id);
+ if (app_type == CPPAPP) {
+ LOCATION_LOGE("CPPAPP use location");
+ g_free(app_id);
+ return LOCATION_ERROR_NONE;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_appinfo(app_id, &pkgmgrinfo_appinfo);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get appinfo for [%s]. Err[%d]", app_id, ret);
+ g_free(app_id);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = pkgmgrinfo_appinfo_get_pkgname(pkgmgrinfo_appinfo, &package_id);
+ if (ret != PACKAGE_MANAGER_ERROR_NONE) {
+ LOCATION_LOGE("Fail to get package_id for [%s]. Err[%d]", app_id, ret);
+ g_free(app_id);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+#ifdef TIZEN_WERABLE
+ if (app_type == WEBAPP) {
+ LOCATION_LOGE("WEBAPP use location");
+ if (location_get_webapp_privilege(package_id, privilege_name) == 0) {
+ g_free(package_id);
+ g_free(app_id);
+ return LOCATION_ERROR_NONE;
+ }
+ }
+#endif
+
+ ret = privacy_checker_initialize(package_id);
+ if(ret != PRIV_MGR_ERROR_SUCCESS)
+ {
+ LOCATION_LOGE("Fail to initialize privacy checker. err[%d]", ret);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ g_free(app_id);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = privacy_checker_check_package_by_privilege(package_id, privilege_name);
+ if (ret != PRIV_MGR_ERROR_SUCCESS) {
+ LOCATION_LOGE("Fail to get privilege for [%s]. Err[%d]", package_id, ret);
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ g_free(app_id);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ pkgmgrinfo_appinfo_destroy_appinfo(pkgmgrinfo_appinfo);
+ g_free(app_id);
+
+ ret = privacy_checker_finalize();
+ if(ret != PRIV_MGR_ERROR_SUCCESS)
+ {
+ LOCATION_LOGE("Fail to finalize privacy_cehecker. Err[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ return LOCATION_ERROR_NONE;
+}
+
diff --git a/location/map-service/location-geocode.c b/location/manager/location-privacy.h
index aee43c8..d32f6a5 100644..100755
--- a/location/map-service/location-geocode.c
+++ b/location/manager/location-privacy.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,9 +19,14 @@
* limitations under the License.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+#ifndef __LOCATION_PRIVACY_H__
+#define __LOCATION_PRIVACY_H__
-#include "location-log.h"
+void location_privacy_initialize(void);
+void location_privacy_finalize(void);
+int location_get_app_type(char *app_id);
+int location_get_privacy(const char *privilege_name);
+int location_check_privilege(const char *privilege_name);
+
+#endif /* __LOCATION_PRIVACY_H__ */
diff --git a/location/manager/location-satellite.c b/location/manager/location-satellite.c
index f572c44..eca33ab 100644..100755
--- a/location/manager/location-satellite.c
+++ b/location/manager/location-satellite.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,6 +56,8 @@ EXPORT_API LocationSatellite*
location_satellite_new (int num_of_sat_inview)
{
LocationSatellite* satellite = g_slice_new0(LocationSatellite);
+ g_return_val_if_fail(satellite, NULL);
+
satellite->num_of_sat_inview = num_of_sat_inview;
satellite->num_of_sat_used = 0;
satellite->sat_inview = g_new0(LocationSatelliteDetail, satellite->num_of_sat_inview);
diff --git a/location/manager/location-satellite.h b/location/manager/location-satellite.h
index 3bdb534..fd6e192 100644
--- a/location/manager/location-satellite.h
+++ b/location/manager/location-satellite.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,11 +46,11 @@ GType location_satellite_get_type (void);
* @brief This represents one satellite information in view.
*/
typedef struct {
- guint prn; ///< The PRNs(Pseudo-Random Noise code) of a satellite.
- gboolean used; ///< TRUE if currently used satellite.
- guint elevation; ///< The elevation of a satellite.
- guint azimuth; ///< The degree from true north 000 to 359 of a satellite.
- gint snr; ///< The signal-to-noise ratio, dB of a satellite.
+ guint prn; ///< The PRNs(Pseudo-Random Noise code) of a satellite.
+ gboolean used; ///< TRUE if currently used satellite.
+ guint elevation; ///< The elevation of a satellite.
+ guint azimuth; ///< The degree from true north 000 to 359 of a satellite.
+ gint snr; ///< The signal-to-noise ratio, dB of a satellite.
} LocationSatelliteDetail;
/**
@@ -58,56 +58,56 @@ typedef struct {
*/
struct _LocationSatellite
{
- guint timestamp; ///< Time stamp.
- guint num_of_sat_inview; ///< The number of satellites in view.
- guint num_of_sat_used; ///< The number of satellites in used.
- LocationSatelliteDetail* sat_inview; ///< The information of satellites in view .
+ guint timestamp; ///< Time stamp.
+ guint num_of_sat_inview; ///< The number of satellites in view.
+ guint num_of_sat_used; ///< The number of satellites in used.
+ LocationSatelliteDetail* sat_inview; ///< The information of satellites in view .
};
/**
- * @brief Create a new #LocationSatellite with given number of #LocationSatelliteDetail.
+ * @brief Create a new #LocationSatellite with given number of #LocationSatelliteDetail.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] num_of_sat_inview - number of #LocationSatelliteDetail.
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] num_of_sat_inview - number of #LocationSatelliteDetail.
* @return a new #LocationSatellite
* @retval NULL if error occured
*/
LocationSatellite *location_satellite_new (int num_of_sat_inview);
/**
- * @brief Free a #LocationSatellite.
+ * @brief Free a #LocationSatellite.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] satellite - a #LocationSatellite.
* @return None.
*/
void location_satellite_free (LocationSatellite *satellite);
/**
- * @brief Makes a copy of #LocationSatellite
+ * @brief Makes a copy of #LocationSatellite
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] satellite - a #LocationSatellite
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] satellite - a #LocationSatellite
* @return a new #LocationSatellite
* @retval NULL if error occured
*/
LocationSatellite *location_satellite_copy (const LocationSatellite *satellite);
/**
- * @brief Get elements of #LocationSatelliteDetail with given index in #LocationSatellite.
+ * @brief Get elements of #LocationSatelliteDetail with given index in #LocationSatellite.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] satellite - a #LocationSatellite
- * @param [in] index - index of #LocationSatelliteDetail in #LocationSatellite
- * @param [out] prn - The PRNs(Pseudo-Random Noise code) of a #LocationSatellite
- * @param [out] used - TRUE if a #LocationSatellite in used.
- * @param [out] elevation - The elevation of a #LocationSatellite
- * @param [out] azimuth - The degree from true north 000 to 359 of a#LocationSatellite
- * @param [out] snr - The signal-to-noise ratio, dB of #LocationSatellite
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] satellite - a #LocationSatellite
+ * @param [in] index - index of #LocationSatelliteDetail in #LocationSatellite
+ * @param [out] prn - The PRNs(Pseudo-Random Noise code) of a #LocationSatellite
+ * @param [out] used - TRUE if a #LocationSatellite in used.
+ * @param [out] elevation - The elevation of a #LocationSatellite
+ * @param [out] azimuth - The degree from true north 000 to 359 of a#LocationSatellite
+ * @param [out] snr - The signal-to-noise ratio, dB of #LocationSatellite
* @return gboolean
* @retval\n
* TRUE - if success\n
@@ -116,10 +116,10 @@ LocationSatellite *location_satellite_copy (const LocationSatellite *satellite);
gboolean location_satellite_get_satellite_details (const LocationSatellite *satellite, guint index, guint *prn, gboolean *used, guint *elevation, guint *azimuth, gint *snr);
/**
- * @brief Set elements of #LocationSatelliteDetail with given index in #LocationSatellite.
+ * @brief Set elements of #LocationSatelliteDetail with given index in #LocationSatellite.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] satellite - a #LocationSatellite
* @param [in] index - index of #LocationSatelliteDetail in #LocationSatellite
* @param [in] prn - The PRNs(Pseudo-Random Noise code) of a #LocationSatellite
diff --git a/location/manager/location-setting.c b/location/manager/location-setting.c
index 21358e2..01eee3d 100644
--- a/location/manager/location-setting.c
+++ b/location/manager/location-setting.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ gint location_setting_get_key_val(keynode_t *key)
{
case VCONF_TYPE_INT:
val = vconf_keynode_get_int(key);
- LOCATION_LOGD("Setting changed [%s]:[%d]", vconf_keynode_get_name(key), val);
+ LOCATION_SECLOG("Setting changed [%s]:[%d]", vconf_keynode_get_name(key), val);
break;
default:
LOCATION_LOGW("Unused type(%d)", vconf_keynode_get_type(key));
@@ -49,11 +49,10 @@ gint location_setting_get_int(const gchar* path)
{
g_return_val_if_fail(path, -1);
int val = -1;
- if( vconf_get_int(path, &val)){
- LOCATION_LOGW("vconf_get_int: failed [%s]", path);
- val = -1;
+ if(vconf_get_int(path, &val)){
+ LOCATION_SECLOG("vconf_get_int: failed [%s]", path);
} else if (val == 0)
- LOCATION_LOGD("vconf_get_int: [%s]:[%d]", path, val);
+ LOCATION_SECLOG("vconf_get_int: [%s]:[%d]", path, val);
return val;
}
@@ -61,16 +60,15 @@ gboolean location_setting_get_bool(const gchar* path)
{
g_return_val_if_fail(path, -1);
gboolean val = FALSE;
- if( vconf_get_bool(path, &val)){
- LOCATION_LOGW("vconf_get_int: failed [%s]", path);
- val = FALSE;
+ if(vconf_get_bool(path, &val)){
+ LOCATION_SECLOG("vconf_get_int: failed [%s]", path);
}
return val;
}
gchar *location_setting_get_string(const gchar* path)
{
- g_return_val_if_fail(path, -1);
+ g_return_val_if_fail(path, NULL);
return vconf_get_str(path);
}
@@ -79,11 +77,11 @@ gint location_setting_add_notify(const gchar* path, SettingCB setting_cb, gpoint
g_return_val_if_fail(path, -1);
g_return_val_if_fail(self, -1);
- if( vconf_notify_key_changed(path, setting_cb, self)){
- LOCATION_LOGW("vconf notify add failed [%s]", path);
+ if(vconf_notify_key_changed(path, setting_cb, self)){
+ LOCATION_SECLOG("vconf notify add failed [%s]", path);
return -1;
}
- LOCATION_LOGD("vconf notify added [%s]", path);
+ LOCATION_SECLOG("vconf notify added [%s]", path);
return 0;
}
@@ -92,10 +90,10 @@ gint location_setting_ignore_notify(const gchar* path, SettingCB setting_cb)
g_return_val_if_fail(path, -1);
g_return_val_if_fail(setting_cb, -1);
- if( vconf_ignore_key_changed(path, setting_cb)){
- LOCATION_LOGW("vconf notify remove failed [%s]", path);
+ if(vconf_ignore_key_changed(path, setting_cb)){
+ LOCATION_SECLOG("vconf notify remove failed [%s]", path);
return -1;
}
- LOCATION_LOGD("vconf notify removed [%s]", path);
+ LOCATION_SECLOG("vconf notify removed [%s]", path);
return 0;
}
diff --git a/location/manager/location-setting.h b/location/manager/location-setting.h
index 2fd3ce3..fa04d78 100644
--- a/location/manager/location-setting.h
+++ b/location/manager/location-setting.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,27 +33,27 @@
#define LOCATION_UPDATE_INTERVAL_MIN 1
#define LOCATION_UPDATE_INTERVAL_MAX 120
-#define LOCATION_UPDATE_INTERVAL_DEFAULT LOCATION_UPDATE_INTERVAL_MIN
+#define LOCATION_UPDATE_INTERVAL_DEFAULT LOCATION_UPDATE_INTERVAL_MIN
+#define LOCATION_BATCH_PERIOD_MIN 120
+#define LOCATION_BATCH_PERIOD_MAX 600
+#define LOCATION_BATCH_PERIOD_DEFAULT LOCATION_BATCH_PERIOD_MIN
typedef void (*SettingCB)(keynode_t *key, gpointer data);
gint location_setting_get_key_val(keynode_t *key);
gint location_setting_get_int(const gchar* path);
+gboolean location_setting_get_bool(const gchar* path);
gchar *location_setting_get_string(const gchar* path);
gint location_setting_add_notify(const gchar* path, SettingCB setting_cb, gpointer self);
gint location_setting_ignore_notify(const gchar* path, SettingCB setting_cb);
#define setting_retval_if_fail(path) {\
- if(!location_setting_get_int(path)){\
- return LOCATION_ERROR_NOT_ALLOWED;\
+ int val = location_setting_get_int(path);\
+ if (val == -1){\
+ return LOCATION_ERROR_UNKNOWN;\
+ } else if (val == 0) {\
+ return LOCATION_ERROR_SETTING_OFF;\
}\
}
-#define setting_ret_if_fail(path) {\
- if(!location_setting_get_int(path)){\
- return;\
- }\
-}
-
-
#endif
diff --git a/location/manager/location-signaling-util.c b/location/manager/location-signaling-util.c
index e262bda..014f75c 100644..100755
--- a/location/manager/location-signaling-util.c
+++ b/location/manager/location-signaling-util.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,39 @@
#endif
#include "location-signaling-util.h"
+#include "location-common-util.h"
#include "location-log.h"
+#ifdef TIZEN_WERABLE
+typedef enum {
+ _ERR_TIMEOUT = -100,
+ _ERR_OUT_OF_SERVICE = -101,
+ _ERR_LOCATION_SETTING_OFF = -102, /**< host device's location setting off */
+ _ERR_UNKNOWN = -999, /*Unknown error */
+} timestamp_error_t;
+
+void
+error_signaling (LocationObject *obj,
+ guint32 signals[LAST_SIGNAL],
+ int error_code)
+{
+ g_return_if_fail(obj);
+ g_return_if_fail(signals);
+
+ switch (error_code) {
+ case _ERR_LOCATION_SETTING_OFF:{
+ LOCATION_LOGD("Signal emit: HOST_SETTING_OFF");
+ g_signal_emit (obj, signals[ERROR_EMITTED], 0, LOCATION_ERROR_SETTING_OFF);
+ break;
+ }
+ default: {
+ LOCATION_LOGD("Unhandled error.");
+ break;
+ }
+ }
+}
+#endif
+
void
enable_signaling (LocationObject *obj,
guint32 signals[LAST_SIGNAL],
@@ -50,17 +81,12 @@ enable_signaling (LocationObject *obj,
void
position_signaling (LocationObject *obj,
guint32 signals[LAST_SIGNAL],
- gboolean *prev_enabled,
- int interval,
- gboolean emit,
+ guint interval,
guint *updated_timestamp,
- LocationPosition **prev_pos,
GList *prev_bound,
- ZoneStatus *zone_status,
- const LocationPosition *pos,
- const LocationAccuracy *acc)
+ LocationPosition *pos,
+ LocationAccuracy *acc)
{
- g_return_if_fail(zone_status);
g_return_if_fail(pos);
g_return_if_fail(acc);
g_return_if_fail(obj);
@@ -69,58 +95,43 @@ position_signaling (LocationObject *obj,
int index = 0;
gboolean is_inside = FALSE;
GList *boundary_list = prev_bound;
- LocationBoundary *boundary = NULL;
+ LocationBoundaryPrivate *priv = NULL;
if (!pos->timestamp) return;
- if (*prev_pos) location_position_free (*prev_pos);
-
- *prev_pos = location_position_copy(pos);
- LOCATION_LOGD("timestamp[%d], lat [%f], lon [%f]", (*prev_pos)->timestamp, (*prev_pos)->latitude, (*prev_pos)->longitude);
-
- if (emit && pos->timestamp - *updated_timestamp >= interval) {
- LOCATION_LOGD("POSITION SERVICE_UPDATED");
+ if (pos->timestamp - *updated_timestamp >= interval) {
g_signal_emit(obj, signals[SERVICE_UPDATED], 0, POSITION_UPDATED, pos, acc);
*updated_timestamp = pos->timestamp;
}
if(boundary_list) {
- while((boundary = (LocationBoundary *)g_list_nth_data(boundary_list, index))!= NULL) {
- is_inside = location_boundary_if_inside(boundary, pos);
+ while((priv = (LocationBoundaryPrivate *)g_list_nth_data(boundary_list, index)) != NULL) {
+ is_inside = location_boundary_if_inside(priv->boundary, pos);
if(is_inside) {
- break;
+ if(priv->zone_status != ZONE_STATUS_IN) {
+ LOCATION_LOGD("Signal emit: ZONE IN");
+ g_signal_emit(obj, signals[ZONE_IN], 0, priv->boundary, pos, acc);
+ priv->zone_status = ZONE_STATUS_IN;
+ }
+ } else {
+ if (priv->zone_status != ZONE_STATUS_OUT) {
+ LOCATION_LOGD("Signal emit : ZONE_OUT");
+ g_signal_emit(obj, signals[ZONE_OUT], 0, priv->boundary, pos, acc);
+ priv->zone_status = ZONE_STATUS_OUT;
+ }
}
index++;
}
-
- if(is_inside) {
- if(*zone_status != ZONE_STATUS_IN) {
- LOCATION_LOGD("Signal emit: ZONE IN");
- g_signal_emit(obj, signals[ZONE_IN], 0, NULL, pos, acc);
- *zone_status = ZONE_STATUS_IN;
- }
- }
- else {
- if (*zone_status != ZONE_STATUS_OUT) {
- LOCATION_LOGD("Signal emit : ZONE_OUT");
- g_signal_emit(obj, signals[ZONE_OUT], 0, NULL, pos, acc);
- *zone_status = ZONE_STATUS_OUT;
- }
- }
}
}
void
velocity_signaling (LocationObject *obj,
guint32 signals[LAST_SIGNAL],
- gboolean *prev_enabled,
int interval,
- gboolean emit,
guint *updated_timestamp,
- LocationVelocity **prev_vel,
- LocationAccuracy **prev_acc,
- const LocationVelocity *vel,
- const LocationAccuracy *acc)
+ LocationVelocity *vel,
+ LocationAccuracy *acc)
{
g_return_if_fail(obj);
g_return_if_fail(signals);
@@ -128,21 +139,56 @@ velocity_signaling (LocationObject *obj,
if (!vel->timestamp) return;
- if (*prev_vel) location_velocity_free (*prev_vel);
- if (*prev_acc) location_accuracy_free (*prev_acc);
-
- *prev_vel = location_velocity_copy (vel);
- *prev_acc = location_accuracy_copy (acc);
- LOCATION_LOGD("timestamp[%d]", (*prev_vel)->timestamp);
-
- if (emit && vel->timestamp - *updated_timestamp >= interval) {
- LOCATION_LOGD("VELOCITY SERVICE_UPDATED");
+ if (vel->timestamp - *updated_timestamp >= interval) {
g_signal_emit(obj, signals[SERVICE_UPDATED], 0, VELOCITY_UPDATED, vel, acc);
*updated_timestamp = vel->timestamp;
}
}
void
+location_signaling (LocationObject *obj,
+ guint32 signals[LAST_SIGNAL],
+ gboolean enabled,
+ GList *boundary_list,
+ LocationPosition *cur_pos,
+ LocationVelocity *cur_vel,
+ LocationAccuracy *cur_acc,
+ guint pos_interval, // interval : support an update interval
+ guint vel_interval,
+ gboolean *prev_enabled,
+ guint *prev_pos_timestamp,
+ guint *prev_vel_timestamp,
+ LocationPosition **prev_pos, // prev : keeping lastest info.
+ LocationVelocity **prev_vel,
+ LocationAccuracy **prev_acc)
+{
+ if (!cur_pos->timestamp) {
+ LOCATION_LOGD("Invalid location with timestamp, 0");
+ return;
+ }
+
+#ifdef TIZEN_WERABLE
+ if ((int)cur_pos->timestamp < 0) {
+ LOCATION_LOGD("error transferred via timestamp [%d]", cur_pos->timestamp);
+ error_signaling(obj, signals, cur_pos->timestamp);
+ return;
+ }
+#endif
+
+ if (*prev_pos) location_position_free(*prev_pos);
+ if (*prev_vel) location_velocity_free(*prev_vel);
+ if (*prev_acc) location_accuracy_free(*prev_acc);
+
+ *prev_pos = location_position_copy (cur_pos);
+ *prev_vel = location_velocity_copy (cur_vel);
+ *prev_acc = location_accuracy_copy (cur_acc);
+
+ enable_signaling (obj, signals, prev_enabled, enabled, cur_pos->status);
+ position_signaling (obj, signals, pos_interval, prev_pos_timestamp, boundary_list, cur_pos, cur_acc);
+ velocity_signaling (obj, signals, vel_interval, prev_vel_timestamp, cur_vel, cur_acc);
+}
+
+void
satellite_signaling(LocationObject *obj,
guint32 signals[LAST_SIGNAL],
gboolean *prev_enabled,
@@ -150,7 +196,7 @@ satellite_signaling(LocationObject *obj,
gboolean emit,
guint *updated_timestamp,
LocationSatellite **prev_sat,
- const LocationSatellite *sat)
+ LocationSatellite *sat)
{
g_return_if_fail(obj);
g_return_if_fail(signals);
@@ -162,9 +208,8 @@ satellite_signaling(LocationObject *obj,
*prev_sat = location_satellite_copy (sat);
if (emit && sat->timestamp - *updated_timestamp >= interval) {
- LOCATION_LOGD("SATELLITE SERVICE_UPDATED");
g_signal_emit(obj, signals[SERVICE_UPDATED], 0, SATELLITE_UPDATED, sat, NULL);
*updated_timestamp = sat->timestamp;
}
-
}
+
diff --git a/location/manager/location-signaling-util.h b/location/manager/location-signaling-util.h
index db2504e..b3f80c2 100644
--- a/location/manager/location-signaling-util.h
+++ b/location/manager/location-signaling-util.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,29 +32,27 @@
G_BEGIN_DECLS
-typedef enum {
- ZONE_STATUS_NONE = 0,
- ZONE_STATUS_IN,
- ZONE_STATUS_OUT,
-} ZoneStatus;
-
-void enable_signaling (LocationObject *obj, guint32 signals[LAST_SIGNAL], gboolean *prev_enabled, gboolean enabled, LocationStatus status);
+void enable_signaling (LocationObject *obj, guint32 signals[LAST_SIGNAL], gboolean *prev_enabled, gboolean enabled, LocationStatus status);
void position_signaling (LocationObject *obj, guint32 signals[LAST_SIGNAL],
- gboolean *prev_enabled, int interval, gboolean emit,
- guint *updated_interval, LocationPosition **prev_pos,
- GList *prev_bound, ZoneStatus *zone_status,
- const LocationPosition *pos, const LocationAccuracy *acc);
+ guint interval, guint *updated_interval,
+ GList *prev_bound, LocationPosition *pos, LocationAccuracy *acc);
void velocity_signaling (LocationObject* obj, guint32 signals[LAST_SIGNAL],
- gboolean *prev_enabled, int interval, gboolean emit,
- guint *updated_timestamp, LocationVelocity **prev_vel, LocationAccuracy **prev_acc,
- const LocationVelocity *vel, const LocationAccuracy *acc);
+ int interval, guint *updated_timestamp,
+ LocationVelocity *vel, LocationAccuracy *acc);
void satellite_signaling(LocationObject *obj, guint32 signals[LAST_SIGNAL],
gboolean *prev_enabled, int interval, gboolean emit,
guint *updated_timestamp, LocationSatellite **pre_sat,
- const LocationSatellite *sat);
+ LocationSatellite *sat);
+
+void location_signaling (LocationObject *obj, guint32 signals[LAST_SIGNAL],
+ gboolean enabled, GList *boundary_list,
+ LocationPosition *cur_pos, LocationVelocity *cur_vel, LocationAccuracy *cur_acc,
+ guint pos_interval, guint vel_interval,
+ gboolean *prev_enabled, guint *prev_pos_timestamp, guint *prev_vel_timestamp,
+ LocationPosition **prev_pos, LocationVelocity **prev_vel, LocationAccuracy **prev_acc);
G_END_DECLS
diff --git a/location/manager/location-velocity.c b/location/manager/location-velocity.c
index a63505f..618f70c 100644..100755
--- a/location/manager/location-velocity.c
+++ b/location/manager/location-velocity.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,6 +47,8 @@ location_velocity_new (guint timestamp,
gdouble climb)
{
LocationVelocity* velocity = g_slice_new0(LocationVelocity);
+ g_return_val_if_fail(velocity, NULL);
+
velocity->timestamp = timestamp;
velocity->speed = speed;
velocity->direction = direction;
diff --git a/location/manager/location-velocity.h b/location/manager/location-velocity.h
index 7159ef3..4bf17ac 100644
--- a/location/manager/location-velocity.h
+++ b/location/manager/location-velocity.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@
G_BEGIN_DECLS
GType location_velocity_get_type (void);
-#define LOCATION_TYPE_VELOCITY (location_velocity_get_type ())
+#define LOCATION_TYPE_VELOCITY (location_velocity_get_type ())
/**
* @file location-velocity.h
@@ -47,43 +47,43 @@ GType location_velocity_get_type (void);
*/
struct _LocationVelocity
{
- guint timestamp; ///< Time stamp.
- gdouble speed; ///< The speed over ground. (km/h)
- gdouble direction; ///< The course made in degrees relative to true north. The value is always in the range [0.0, 360.0] degree.
- gdouble climb; ///< The vertical speed. (km/h)
+ guint timestamp; ///< Time stamp.
+ gdouble speed; ///< The speed over ground. (km/h)
+ gdouble direction; ///< The course made in degrees relative to true north. The value is always in the range [0.0, 360.0] degree.
+ gdouble climb; ///< The vertical speed. (km/h)
};
/**
- * @brief Create a new #LocationVelocity with given information.
+ * @brief Create a new #LocationVelocity with given information.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] timestamp - Time stamp.
- * @param [in] speed - The speed over ground. (km/h)
- * @param [in] direction - The course made in degrees relative to true north. The value is always in the range [0.0, 360.0] degree.
- * @param [in] climb - The vertical speed. (km/h)
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] timestamp - Time stamp.
+ * @param [in] speed - The speed over ground. (km/h)
+ * @param [in] direction - The course made in degrees relative to true north. The value is always in the range [0.0, 360.0] degree.
+ * @param [in] climb - The vertical speed. (km/h)
* @return a new #LocationVelocity
* @retval NULL if error occured
*/
LocationVelocity *location_velocity_new (guint timestamp, gdouble speed, gdouble direction, gdouble climb);
/**
- * @brief Free a #LocationVelocity.
+ * @brief Free a #LocationVelocity.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
+ * @pre #location_init should be called before.\n
+ * @post None.
* @param [in] velocity - a #LocationVelocity.
* @return None.
*/
void location_velocity_free (LocationVelocity *velocity);
/**
- * @brief Compares two velocities for equality, returning TRUE if they are equal.
+ * @brief Compares two velocities for equality, returning TRUE if they are equal.
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] velocity1 - a #LocationVelocity
- * @param [in] velocity2 - a #LocationVelocity
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] velocity1 - a #LocationVelocity
+ * @param [in] velocity2 - a #LocationVelocity
* @return gboolean
* @retval\n
* TRUE - if equal\n
@@ -92,11 +92,11 @@ void location_velocity_free (LocationVelocity *velocity);
gboolean location_velocity_equal (const LocationVelocity *velocity1, const LocationVelocity *velocity2);
/**
- * @brief Makes a copy of #LocationVelocity
+ * @brief Makes a copy of #LocationVelocity
* @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] velocity - a #LocationVelocity
+ * @pre #location_init should be called before.\n
+ * @post None.
+ * @param [in] velocity - a #LocationVelocity
* @return a new #LocationVelocity
* @retval NULL if error occured
*/
diff --git a/location/manager/location-wps.c b/location/manager/location-wps.c
index 7d94438..2645a91 100644..100755
--- a/location/manager/location-wps.c
+++ b/location/manager/location-wps.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,32 +33,36 @@
#include "location-ielement.h"
#include "location-signaling-util.h"
#include "location-common-util.h"
+#include "location-privacy.h"
+
+#include <vconf-internal-location-keys.h>
+
/*
* forward definitions
*/
typedef struct _LocationWpsPrivate {
- LocationWpsMod* mod;
- gboolean is_started;
- gboolean set_noti;
- gboolean enabled;
- guint pos_updated_timestamp;
- guint pos_interval;
- guint vel_updated_timestamp;
- guint vel_interval;
- LocationPosition *pos;
- LocationVelocity *vel;
- LocationAccuracy *acc;
+ LocationWpsMod *mod;
+ GMutex mutex;
+ gboolean is_started;
+ guint app_type;
+ gboolean set_noti;
+ gboolean enabled;
+ guint pos_updated_timestamp;
+ guint pos_interval;
+ guint vel_updated_timestamp;
+ guint vel_interval;
+ guint loc_timeout;
+ LocationPosition *pos;
+ LocationVelocity *vel;
+ LocationAccuracy *acc;
GList *boundary_list;
- ZoneStatus zone_status;
-
- guint pos_timer;
- guint vel_timer;
} LocationWpsPrivate;
enum {
PROP_0,
PROP_METHOD_TYPE,
+ PROP_IS_STARTED,
PROP_LAST_POSITION,
PROP_POS_INTERVAL,
PROP_VEL_INTERVAL,
@@ -75,73 +79,53 @@ static GParamSpec *properties[PROP_MAX] = {NULL, };
static void location_ielement_interface_init (LocationIElementInterface *iface);
G_DEFINE_TYPE_WITH_CODE (LocationWps, location_wps, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
- location_ielement_interface_init));
+ G_IMPLEMENT_INTERFACE (LOCATION_TYPE_IELEMENT,
+ location_ielement_interface_init));
-static gboolean
-_position_timeout_cb (gpointer data)
+static void
+__reset_pos_data_from_priv(LocationWpsPrivate *priv)
{
- GObject *object = (GObject *)data;
- LocationWpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
-
- LocationPosition *pos = NULL;
- LocationAccuracy *acc = NULL;
+ LOCATION_LOGD("__reset_pos_data_from_priv");
+ g_return_if_fail(priv);
if (priv->pos) {
- pos = location_position_copy(priv->pos);
+ location_position_free(priv->pos);
+ priv->pos = NULL;
}
- else {
- pos = location_position_new (0, 0.0, 0.0, 0.0, LOCATION_STATUS_NO_FIX);
+ if (priv->vel) {
+ location_velocity_free(priv->vel);
+ priv->vel = NULL;
}
-
if (priv->acc) {
- acc = location_accuracy_copy (priv->acc);
- }
- else {
- acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+ location_accuracy_free(priv->acc);
+ priv->acc = NULL;
}
-
- LOCATION_LOGD("POSITION SERVICE_UPDATED");
- g_signal_emit(object, signals[SERVICE_UPDATED], 0, POSITION_UPDATED, pos, acc);
-
- location_position_free (pos);
- location_accuracy_free (acc);
-
- return TRUE;
+ priv->pos_updated_timestamp = 0;
+ priv->vel_updated_timestamp = 0;
}
static gboolean
-_velocity_timeout_cb (gpointer data)
+__get_started (gpointer self)
{
- GObject *object = (GObject *)data;
- LocationWpsPrivate *priv = GET_PRIVATE(object);
- if (!priv) return FALSE;
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, FALSE);
- LocationVelocity *vel = NULL;
- LocationAccuracy *acc = NULL;
+ return priv->is_started;
+}
- if (priv->vel) {
- vel = location_velocity_copy(priv->vel);
- }
- else {
- vel = location_velocity_new (0, 0.0, 0.0, 0.0);
- }
+static int
+__set_started (gpointer self, gboolean started)
+{
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, -1);
- if (priv->acc) {
- acc = location_accuracy_copy (priv->acc);
- }
- else {
- acc = location_accuracy_new (LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+ if (priv->is_started != started) {
+ g_mutex_lock (&priv->mutex);
+ priv->is_started = started;
+ g_mutex_unlock (&priv->mutex);
}
- LOCATION_LOGD("POSITION SERVICE_UPDATED");
- g_signal_emit(object, signals[SERVICE_UPDATED], 0, VELOCITY_UPDATED, vel, acc);
-
- location_velocity_free (vel);
- location_accuracy_free (acc);
-
- return TRUE;
+ return 0;
}
static void
@@ -152,50 +136,42 @@ wps_status_cb (gboolean enabled,
LOCATION_LOGD("wps_status_cb");
g_return_if_fail(self);
LocationWpsPrivate* priv = GET_PRIVATE(self);
- enable_signaling(self, signals, &(priv->enabled), enabled, status);
- if (!priv->enabled) {
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = 0;
- }
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = 0;
- }
+ g_return_if_fail(priv);
+ if (priv->enabled == TRUE && enabled == FALSE) {
+ __set_started(self, FALSE);
+ enable_signaling(self, signals, &(priv->enabled), enabled, status);
}
}
static void
-wps_position_cb (gboolean enabled,
+wps_location_cb (gboolean enabled,
LocationPosition *pos,
+ LocationVelocity *vel,
LocationAccuracy *acc,
gpointer self)
{
- LOCATION_LOGD("wps_position_cb");
g_return_if_fail(self);
g_return_if_fail(pos);
+ g_return_if_fail(vel);
g_return_if_fail(acc);
LocationWpsPrivate* priv = GET_PRIVATE(self);
-
- if (!priv->enabled && enabled) {
- if (!priv->pos_timer) priv->pos_timer = g_timeout_add_seconds (priv->pos_interval, _position_timeout_cb, self);
- if (!priv->vel_timer) priv->vel_timer = g_timeout_add_seconds (priv->vel_interval, _velocity_timeout_cb, self);
- }
-
- enable_signaling(self, signals, &(priv->enabled), enabled, pos->status);
- position_signaling(self, signals, &(priv->enabled), priv->pos_interval, FALSE, &(priv->pos_updated_timestamp), &(priv->pos), priv->boundary_list, &(priv->zone_status), pos, acc);
-}
-
-static void
-wps_velocity_cb(gboolean enabled,
- LocationVelocity *vel,
- LocationAccuracy *acc,
- gpointer self)
-{
- LOCATION_LOGD("wps_velocity_cb");
- g_return_if_fail(self);
- LocationWpsPrivate* priv = GET_PRIVATE(self);
- velocity_signaling(self, signals, &(priv->enabled), priv->vel_interval, FALSE, &(priv->vel_updated_timestamp), &(priv->vel), &(priv->acc), vel, acc);
+ g_return_if_fail(priv);
+
+ location_signaling(self,
+ signals,
+ enabled,
+ priv->boundary_list,
+ pos,
+ vel,
+ acc,
+ priv->pos_interval,
+ priv->vel_interval,
+ &(priv->enabled),
+ &(priv->pos_updated_timestamp),
+ &(priv->vel_updated_timestamp),
+ &(priv->pos),
+ &(priv->vel),
+ &(priv->acc));
}
static void
@@ -206,25 +182,28 @@ location_setting_wps_cb(keynode_t *key,
g_return_if_fail(key);
g_return_if_fail(self);
LocationWpsPrivate* priv = GET_PRIVATE(self);
- g_return_if_fail (priv->mod);
- g_return_if_fail (priv->mod->handler);
+ g_return_if_fail(priv);
+ g_return_if_fail(priv->mod);
+ g_return_if_fail(priv->mod->handler);
int ret = LOCATION_ERROR_NONE;
if (location_setting_get_key_val(key) == 0) {
- if (priv->mod->ops.stop && priv->is_started) {
+ if (priv->mod->ops.stop && __get_started(self)) {
+ __set_started(self, FALSE);
ret = priv->mod->ops.stop(priv->mod->handler);
if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
+ __reset_pos_data_from_priv(priv);
}
}
- }
- else {
- if (1 == location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED) && priv->mod->ops.start && !priv->is_started) {
+ } else {
+ if (1 == location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED) && priv->mod->ops.start && !__get_started(self)) {
LOCATION_LOGD("location resumed by setting");
- ret = priv->mod->ops.start (priv->mod->handler, wps_status_cb, wps_position_cb, wps_velocity_cb, NULL, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, wps_status_cb, wps_location_cb, NULL, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ __set_started(self, FALSE);
+ LOCATION_LOGD("Fail to start. Error[%d]", ret);
}
}
}
@@ -236,28 +215,28 @@ location_wps_start (LocationWps *self)
{
LOCATION_LOGD("location_wps_start");
LocationWpsPrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
- if (priv->is_started == TRUE) return LOCATION_ERROR_NONE;
+ if (__get_started(self) == TRUE) return LOCATION_ERROR_NONE;
int ret = LOCATION_ERROR_NONE;
if (!location_setting_get_int(VCONFKEY_LOCATION_NETWORK_ENABLED)) {
- ret = LOCATION_ERROR_NOT_ALLOWED;
- }
- else {
- ret = priv->mod->ops.start (priv->mod->handler, wps_status_cb, wps_position_cb, wps_velocity_cb, NULL, self);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = TRUE;
- }
- else {
+ ret = LOCATION_ERROR_SETTING_OFF;
+ } else {
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, wps_status_cb, wps_location_cb, NULL, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ __set_started(self, FALSE);
+ LOCATION_LOGE("Fail to start wps. Error[%d]", ret);
return ret;
}
}
- if (priv->set_noti == FALSE) {
+ if (priv->app_type != CPPAPP && priv->set_noti == FALSE) {
location_setting_add_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_wps_cb, self);
priv->set_noti = TRUE;
}
@@ -270,27 +249,28 @@ location_wps_stop (LocationWps *self)
{
LOCATION_LOGD("location_wps_stop");
LocationWpsPrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.stop, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod->ops.stop, LOCATION_ERROR_NOT_AVAILABLE);
int ret = LOCATION_ERROR_NONE;
- if (priv->is_started == TRUE) {
+ if (__get_started(self) == TRUE) {
+ __set_started(self, FALSE);
ret = priv->mod->ops.stop (priv->mod->handler);
- if (ret == LOCATION_ERROR_NONE) {
- priv->is_started = FALSE;
- }
- else {
- return ret;
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGD("Failed to stop. Error[%d]", ret);
}
}
- if (priv->set_noti == TRUE) {
+ if (priv->app_type != CPPAPP && priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_wps_cb);
priv->set_noti = FALSE;
}
+ __reset_pos_data_from_priv(priv);
+
return ret;
}
@@ -300,19 +280,13 @@ location_wps_dispose (GObject *gobject)
LOCATION_LOGD("location_wps_dispose");
LocationWpsPrivate* priv = GET_PRIVATE(gobject);
- if (priv->set_noti == TRUE) {
+ g_return_if_fail(priv);
+
+ g_mutex_clear(&priv->mutex);
+ if (priv->app_type != CPPAPP && priv->set_noti == TRUE) {
location_setting_ignore_notify (VCONFKEY_LOCATION_NETWORK_ENABLED, location_setting_wps_cb);
priv->set_noti = FALSE;
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = 0;
- }
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = 0;
- }
-
}
G_OBJECT_CLASS (location_wps_parent_class)->dispose (gobject);
@@ -323,6 +297,7 @@ location_wps_finalize (GObject *gobject)
{
LOCATION_LOGD("location_wps_finalize");
LocationWpsPrivate* priv = GET_PRIVATE(gobject);
+ g_return_if_fail(priv);
module_free(priv->mod, "wps");
if (priv->boundary_list) {
@@ -349,11 +324,12 @@ location_wps_finalize (GObject *gobject)
static void
location_wps_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
LocationWpsPrivate* priv = GET_PRIVATE(object);
+ g_return_if_fail(priv);
int ret = 0;
switch (property_id){
@@ -361,6 +337,7 @@ location_wps_set_property (GObject *object,
GList *boundary_list = (GList *)g_list_copy(g_value_get_pointer(value));
ret = set_prop_boundary(&priv->boundary_list, boundary_list);
if(ret != 0) LOCATION_LOGD("Set boundary. Error[%d]", ret);
+ if (boundary_list) g_list_free(boundary_list);
break;
}
case PROP_REMOVAL_BOUNDARY: {
@@ -380,11 +357,6 @@ location_wps_set_property (GObject *object,
else
priv->pos_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
- if (priv->pos_timer) {
- g_source_remove (priv->pos_timer);
- priv->pos_timer = g_timeout_add_seconds (priv->pos_interval, _position_timeout_cb, object);
- }
-
break;
}
case PROP_VEL_INTERVAL: {
@@ -395,14 +367,9 @@ location_wps_set_property (GObject *object,
else
priv->vel_interval = (guint)LOCATION_UPDATE_INTERVAL_MAX;
}
- else
+ else {
priv->vel_interval = (guint)LOCATION_UPDATE_INTERVAL_DEFAULT;
-
- if (priv->vel_timer) {
- g_source_remove (priv->vel_timer);
- priv->vel_timer = g_timeout_add_seconds (priv->vel_interval, _velocity_timeout_cb, object);
}
-
break;
}
default:
@@ -413,16 +380,20 @@ location_wps_set_property (GObject *object,
static void
location_wps_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
{
LocationWpsPrivate *priv = GET_PRIVATE (object);
+ g_return_if_fail(priv);
switch (property_id){
case PROP_METHOD_TYPE:
g_value_set_int(value, LOCATION_METHOD_WPS);
break;
+ case PROP_IS_STARTED:
+ g_value_set_boolean(value, __get_started(object));
+ break;
case PROP_LAST_POSITION:
g_value_set_boxed (value, priv->pos);
break;
@@ -447,64 +418,123 @@ location_wps_get_position (LocationWps *self,
LocationAccuracy **accuracy)
{
int ret = LOCATION_ERROR_NOT_AVAILABLE;
- LOCATION_LOGD("location_wps_get_position");
LocationWpsPrivate *priv = GET_PRIVATE (self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
if (priv->pos) {
*position = location_position_copy (priv->pos);
+ if (priv->acc) *accuracy = location_accuracy_copy(priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
ret = LOCATION_ERROR_NONE;
}
- if (priv->acc) {
- *accuracy = location_accuracy_copy (priv->acc);
+
+ return ret;
+}
+
+static int
+location_wps_get_position_ext (LocationWps *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ int ret = LOCATION_ERROR_NOT_AVAILABLE;
+
+ LocationWpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
+
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
+ if (priv->pos && priv->vel) {
+ *position = location_position_copy (priv->pos);
+ *velocity = location_velocity_copy (priv->vel);
+ if (priv->acc) *accuracy = location_accuracy_copy(priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+ ret = LOCATION_ERROR_NONE;
}
return ret;
}
+
static int
location_wps_get_last_position (LocationWps *self,
LocationPosition **position,
LocationAccuracy **accuracy)
{
- LOCATION_LOGD("location_wps_get_last_position");
+ LocationWpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
+
+ int ret = LOCATION_ERROR_NONE;
+ LocationVelocity *_velocity = NULL;
+
+ LocModWpsOps ops = priv->mod->ops;
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
+
+ ret = ops.get_last_position(priv->mod->handler, position, &_velocity, accuracy);
+ if (_velocity) location_velocity_free(_velocity);
- /* Do not need to check VCONFKEY_LOCATION_ENABLED and VCONFKEY_LOCATION_NETWORK_ENABLED */
+ return ret;
+}
+static int
+location_wps_get_last_position_ext (LocationWps *self,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
LocationWpsPrivate *priv = GET_PRIVATE (self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
LocModWpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
g_return_val_if_fail (ops.get_last_position, LOCATION_ERROR_NOT_AVAILABLE);
- return ops.get_last_position(priv->mod->handler, position, accuracy);
-
+ return ops.get_last_position(priv->mod->handler, position, velocity, accuracy);
}
+
static int
location_wps_get_velocity (LocationWps *self,
LocationVelocity **velocity,
LocationAccuracy **accuracy)
{
int ret = LOCATION_ERROR_NOT_AVAILABLE;
- LOCATION_LOGD("location_wps_get_velocity");
LocationWpsPrivate *priv = GET_PRIVATE (self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
+ if (__get_started(self) != TRUE) {
+ LOCATION_LOGD("location is not started");
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ }
+
if (priv->vel) {
*velocity = location_velocity_copy (priv->vel);
+ if (priv->acc) *accuracy = location_accuracy_copy(priv->acc);
+ else *accuracy = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
ret = LOCATION_ERROR_NONE;
}
- if (priv->acc) {
- *accuracy = location_accuracy_copy (priv->acc);
- }
-
return ret;
}
@@ -513,25 +543,100 @@ location_wps_get_last_velocity (LocationWps *self,
LocationVelocity **velocity,
LocationAccuracy **accuracy)
{
- LOCATION_LOGD("location_wps_get_last_velocity");
-
- /* Do not need to check VCONFKEY_LOCATION_ENABLED and VCONFKEY_LOCATION_NETWORK_ENABLED */
-
LocationWpsPrivate *priv = GET_PRIVATE (self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ setting_retval_if_fail(VCONFKEY_LOCATION_NETWORK_ENABLED);
+
+ int ret = LOCATION_ERROR_NONE;
+ LocationPosition *_position = NULL;
LocModWpsOps ops = priv->mod->ops;
g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (ops.get_last_velocity, LOCATION_ERROR_NOT_AVAILABLE);
- return ops.get_last_velocity(priv->mod->handler, velocity, accuracy);
+ ret = ops.get_last_position(priv->mod->handler, &_position, velocity, accuracy);
+ if (!_position) location_position_free(_position);
+ return ret;
+}
+
+static gboolean __single_location_timeout_cb(void *data)
+{
+ LOCATION_LOGD("__single_location_timeout_cb");
+ LocationWps *self = (LocationWps *)data;
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, FALSE);
+
+ LocationPosition *pos = location_position_new(0, 0.0, 0.0, 0.0, LOCATION_STATUS_NO_FIX);
+ LocationVelocity *vel = location_velocity_new(0, 0.0, 0.0, 0.0);
+ LocationAccuracy *acc = location_accuracy_new(LOCATION_ACCURACY_LEVEL_NONE, 0.0, 0.0);
+
+ if (priv->loc_timeout) g_source_remove(priv->loc_timeout);
+ priv->loc_timeout = 0;
+
+ g_signal_emit(self, signals[LOCATION_UPDATED], LOCATION_ERROR_NOT_AVAILABLE, 0, pos, vel, acc);
+ location_wps_stop(self);
+
+ return FALSE;
+}
+
+static void
+wps_single_location_cb (gboolean enabled,
+ LocationPosition *pos,
+ LocationVelocity *vel,
+ LocationAccuracy *acc,
+ gpointer self)
+{
+ LOCATION_LOGD("wps_single_location_cb");
+ g_return_if_fail(self);
+ g_return_if_fail(pos);
+ g_return_if_fail(vel);
+ g_return_if_fail(acc);
+
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
+
+ g_signal_emit(self, signals[LOCATION_UPDATED], LOCATION_ERROR_NONE, 0, pos, vel, acc);
+ if (priv->loc_timeout) {
+ g_source_remove(priv->loc_timeout);
+ priv->loc_timeout = 0;
+ }
+ location_wps_stop(self);
+}
+
+static int
+location_wps_request_single_location (LocationWps *self, int timeout)
+{
+ LOCATION_LOGD("location_wps_request_single_location");
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail (priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail (priv->mod->ops.start, LOCATION_ERROR_NOT_AVAILABLE);
+
+ if (__get_started(self) == TRUE) return LOCATION_ERROR_NONE;
+
+ int ret = LOCATION_ERROR_NONE;
+
+ __set_started(self, TRUE);
+ ret = priv->mod->ops.start (priv->mod->handler, wps_status_cb, wps_single_location_cb, NULL, self);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Fail to start request single. Error[%d]", ret);
+ __set_started(self, FALSE);
+ return ret;
+ } else {
+ if(priv->loc_timeout != 0) {
+ g_source_remove (priv->loc_timeout);
+ }
+ priv->loc_timeout = g_timeout_add_seconds(timeout, __single_location_timeout_cb, self);
+ }
+
+ return ret;
}
static int
location_wps_get_satellite (LocationWps *self,
LocationSatellite **satellite)
{
- LOCATION_LOGD("location_wps_get_satellite");
return LOCATION_ERROR_NOT_SUPPORTED;
}
@@ -539,21 +644,34 @@ static int
location_wps_get_last_satellite (LocationWps *self,
LocationSatellite **satellite)
{
- LOCATION_LOGD("location_wps_get_last_satellite");
return LOCATION_ERROR_NOT_SUPPORTED;
}
+static int
+location_wps_set_option (LocationWps *self, const char *option)
+{
+ LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_val_if_fail(priv, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
+ g_return_val_if_fail(priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
+ return LOCATION_ERROR_NONE;
+}
+
static void
location_ielement_interface_init (LocationIElementInterface *iface)
{
iface->start = (TYPE_START_FUNC)location_wps_start;
iface->stop = (TYPE_STOP_FUNC)location_wps_stop;
iface->get_position = (TYPE_GET_POSITION)location_wps_get_position;
+ iface->get_position_ext = (TYPE_GET_POSITION_EXT)location_wps_get_position_ext;
iface->get_last_position = (TYPE_GET_POSITION)location_wps_get_last_position;
+ iface->get_last_position_ext = (TYPE_GET_POSITION_EXT)location_wps_get_last_position_ext;
iface->get_velocity = (TYPE_GET_VELOCITY)location_wps_get_velocity;
iface->get_last_velocity = (TYPE_GET_VELOCITY)location_wps_get_last_velocity;
iface->get_satellite = (TYPE_GET_SATELLITE)location_wps_get_satellite;
iface->get_last_satellite = (TYPE_GET_SATELLITE)location_wps_get_last_satellite;
+ iface->set_option = (TYPE_SET_OPTION)location_wps_set_option;
+ iface->request_single_location = (TYPE_REQUEST_SINGLE_LOCATION)location_wps_request_single_location;
}
static void
@@ -561,10 +679,12 @@ location_wps_init (LocationWps *self)
{
LOCATION_LOGD("location_wps_init");
LocationWpsPrivate* priv = GET_PRIVATE(self);
+ g_return_if_fail(priv);
priv->mod = (LocationWpsMod*)module_new("wps");
if(!priv->mod) LOCATION_LOGW("module loading failed");
+ g_mutex_init(&priv->mutex);
priv->is_started = FALSE;
priv->set_noti = FALSE;
priv->enabled= FALSE;
@@ -578,11 +698,14 @@ location_wps_init (LocationWps *self)
priv->pos = NULL;
priv->vel = NULL;
priv->acc = NULL;
- priv->zone_status = ZONE_STATUS_NONE;
priv->boundary_list = NULL;
- priv->pos_timer = 0;
- priv->vel_timer = 0;
+ priv->loc_timeout = 0;
+
+ priv->app_type = location_get_app_type(NULL);
+ if (priv->app_type == 0) {
+ LOCATION_LOGW("Fail to get app_type");
+ }
}
static void
@@ -631,15 +754,28 @@ location_wps_class_init (LocationWpsClass *klass)
G_TYPE_POINTER,
G_TYPE_POINTER);
+ signals[LOCATION_UPDATED] = g_signal_new ("location-updated",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST |
+ G_SIGNAL_NO_RECURSE,
+ G_STRUCT_OFFSET (LocationWpsClass, location_update),
+ NULL, NULL,
+ location_VOID__INT_POINTER_POINTER_POINTER,
+ G_TYPE_NONE, 4,
+ G_TYPE_INT,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER,
+ G_TYPE_POINTER);
+
signals[ZONE_IN] = g_signal_new ("zone-in",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST |
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationWpsClass, zone_in),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
@@ -649,9 +785,9 @@ location_wps_class_init (LocationWpsClass *klass)
G_SIGNAL_NO_RECURSE,
G_STRUCT_OFFSET (LocationWpsClass, zone_out),
NULL, NULL,
- location_VOID__UINT_POINTER_POINTER,
+ location_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3,
- G_TYPE_UINT,
+ G_TYPE_POINTER,
G_TYPE_POINTER,
G_TYPE_POINTER);
@@ -663,6 +799,12 @@ location_wps_class_init (LocationWpsClass *klass)
LOCATION_METHOD_WPS,
G_PARAM_READABLE);
+ properties[PROP_IS_STARTED] = g_param_spec_boolean ("is_started",
+ "wps is started prop",
+ "wps is started status",
+ FALSE,
+ G_PARAM_READWRITE);
+
properties[PROP_LAST_POSITION] = g_param_spec_boxed ("last-position",
"wps last position prop",
"wps last position data",
diff --git a/location/manager/location-wps.h b/location/manager/location-wps.h
index 67c9e54..342c221 100644
--- a/location/manager/location-wps.h
+++ b/location/manager/location-wps.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,15 +31,15 @@
G_BEGIN_DECLS
-#define LOCATION_TYPE_WPS (location_wps_get_type ())
-#define LOCATION_WPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_WPS, LocationWps))
-#define LOCATION_IS_WPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_WPS))
-#define LOCATION_WPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_WPS, LocationWpsClass))
-#define LOCATION_IS_WPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_WPS))
-#define LOCATION_WPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_WPS, LocationWpsClass))
+#define LOCATION_TYPE_WPS (location_wps_get_type ())
+#define LOCATION_WPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_TYPE_WPS, LocationWps))
+#define LOCATION_IS_WPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_TYPE_WPS))
+#define LOCATION_WPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LOCATION_TYPE_WPS, LocationWpsClass))
+#define LOCATION_IS_WPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOCATION_TYPE_WPS))
+#define LOCATION_WPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOCATION_TYPE_WPS, LocationWpsClass))
-typedef struct _LocationWps LocationWps;
-typedef struct _LocationWpsClass LocationWpsClass;
+typedef struct _LocationWps LocationWps;
+typedef struct _LocationWpsClass LocationWpsClass;
struct _LocationWps
{
@@ -52,9 +52,10 @@ struct _LocationWpsClass
void (* enabled) (guint type);
void (* disabled) (guint type);
- void (* updated) (guint type, gpointer data);
- void (* zone_in) (guint type, gpointer position, gpointer boundary);
- void (* zone_out) (guint type, gpointer position, gpointer boundary);
+ void (* updated) (guint type, gpointer data, gpointer accuracy);
+ void (* location_update) (gint error, gpointer position, gpointer velocity, gpointer accuracy);
+ void (* zone_in) (gpointer boundary, gpointer position, gpointer accuracy);
+ void (* zone_out) (gpointer boundary, gpointer position, gpointer accuracy);
};
GType location_wps_get_type (void);
diff --git a/location/manager/location.c b/location/manager/location.c
index ee7f67a..1cbdc4a 100644..100755
--- a/location/manager/location.c
+++ b/location/manager/location.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,9 +23,14 @@
#include "config.h"
#endif
+#include <glib.h>
#include <stdio.h>
#include <pthread.h>
-#include <dbus/dbus-glib.h>
+#include <vconf.h>
+
+#ifdef TIZEN_WERABLE
+#include <app_manager.h>
+#endif
#include "location.h"
#include "location-log.h"
@@ -34,25 +39,82 @@
#include "location-hybrid.h"
#include "location-gps.h"
#include "location-wps.h"
-#include "location-cps.h"
#include "location-position.h"
-#include "map-service.h"
+#include "location-privacy.h"
#include "module-internal.h"
#include "location-common-util.h"
+#define LOCATION_PRIVILEGE "http://tizen.org/privilege/location"
+#define LOCATION_ENABLE_PRIVILEGE "http://tizen.org/privilege/location.enable"
+
+typedef struct _LocationSetting {
+ LocationSettingCb callback;
+ void *user_data;
+} LocationSetting;
+
+static LocationSetting g_location_setting;
+
+static char *__convert_setting_key(LocationMethod method)
+{
+ char *key = NULL;
+ switch(method) {
+ case LOCATION_METHOD_HYBRID:
+ key = g_strdup(VCONFKEY_LOCATION_USE_MY_LOCATION);
+ break;
+ case LOCATION_METHOD_GPS:
+ key = g_strdup(VCONFKEY_LOCATION_ENABLED);
+ break;
+ case LOCATION_METHOD_WPS:
+ key = g_strdup(VCONFKEY_LOCATION_NETWORK_ENABLED);
+ break;
+ default:
+ break;
+ }
+
+ return key;
+}
+
+static LocationMethod __convert_method_from_key(const char *key)
+{
+ LocationMethod _method = LOCATION_METHOD_NONE;
+ if (g_strcmp0(key, VCONFKEY_LOCATION_USE_MY_LOCATION) == 0) {
+ _method = LOCATION_METHOD_HYBRID;
+ } else if (g_strcmp0(key, VCONFKEY_LOCATION_ENABLED) == 0) {
+ _method = LOCATION_METHOD_GPS;
+ } else if (g_strcmp0(key, VCONFKEY_LOCATION_NETWORK_ENABLED) == 0) {
+ _method = LOCATION_METHOD_WPS;
+ }
+
+ return _method;
+}
+
+static void __location_setting_cb(keynode_t *key, gpointer data)
+{
+ if (key == NULL || data == NULL) {
+ return;
+ }
+ LocationSetting *_setting = (LocationSetting *)data;
+ LocationMethod _method = LOCATION_METHOD_NONE;
+
+ if (_setting->callback) {
+ _method = __convert_method_from_key(vconf_keynode_get_name(key));
+ _setting->callback(_method, location_setting_get_key_val(key), _setting->user_data);
+ }
+}
+
EXPORT_API
int location_init (void)
{
- LOCATION_LOGD("location_init");
g_type_init ();
#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported()) g_thread_init (NULL);
#endif
- dbus_g_thread_init ();
if( FALSE == module_init() )
return LOCATION_ERROR_NOT_AVAILABLE;
+ location_privacy_initialize();
+
return LOCATION_ERROR_NONE;
}
@@ -60,6 +122,7 @@ EXPORT_API LocationObject*
location_new (LocationMethod method)
{
LocationObject *self = NULL;
+ LOCATION_LOGD("method: %d", method);
switch (method) {
case LOCATION_METHOD_HYBRID:
@@ -71,12 +134,11 @@ location_new (LocationMethod method)
case LOCATION_METHOD_WPS:
self = g_object_new (LOCATION_TYPE_WPS, NULL);
break;
- case LOCATION_METHOD_CPS:
- self = g_object_new (LOCATION_TYPE_CPS, NULL);
- break;
default:
break;
}
+
+ if (!self) LOCATION_LOGD("Fail to create location object. Method [%d]", method);
return self;
}
@@ -84,29 +146,97 @@ EXPORT_API int
location_free (LocationObject *obj)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
-
+ location_privacy_finalize();
g_object_unref (obj);
return LOCATION_ERROR_NONE;
}
EXPORT_API int
+location_request_single_location(LocationObject *obj, int timeout)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_request_single_location(LOCATION_IELEMENT(obj), timeout);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to request single location. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
location_start (LocationObject *obj)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
- if (FALSE == location_application_enabled()) {
- LOCATION_LOGD("Application dose not have permission");
+
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
return LOCATION_ERROR_NOT_ALLOWED;
}
- return location_ielement_start (LOCATION_IELEMENT(obj));
+
+ ret = location_ielement_start (LOCATION_IELEMENT(obj));
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to start. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
location_stop (LocationObject *obj)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
- return location_ielement_stop (LOCATION_IELEMENT(obj));
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_stop (LOCATION_IELEMENT(obj));
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to stop. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_start_batch (LocationObject *obj)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_start_batch(LOCATION_IELEMENT(obj));
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to Batch start. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_stop_batch (LocationObject *obj)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_stop_batch (LOCATION_IELEMENT(obj));
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to Batch stop. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API gboolean
@@ -125,9 +255,6 @@ location_is_supported_method(LocationMethod method)
case LOCATION_METHOD_WPS:
is_supported = module_is_supported("wps");
break;
- case LOCATION_METHOD_CPS:
- is_supported = module_is_supported("cps");
- break;
default:
break;
}
@@ -135,25 +262,179 @@ location_is_supported_method(LocationMethod method)
return is_supported;
}
-EXPORT_API gboolean
-location_is_enabled_gps(LocationObject *obj)
+EXPORT_API int
+location_is_enabled_method(LocationMethod method, int *is_enabled)
{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail(is_enabled, LOCATION_ERROR_PARAMETER);
+ int vconf_val = 0;
+ int vconf_ret = VCONF_ERROR;
+
+ char *_key = __convert_setting_key(method);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", method);
+ return LOCATION_ERROR_NOT_SUPPORTED;
+ }
+
+ vconf_ret = vconf_get_int(_key, &vconf_val);
+ if (vconf_ret != VCONF_OK) {
+ LOCATION_SECLOG("vconf_get_int failed [%s], error [%d]", _key, vconf_ret);
+ return LOCATION_ERROR_NOT_AVAILABLE;
+ } else {
+ LOCATION_SECLOG("vconf_get_int: [%s]:[%d]", _key, vconf_val);
+ }
+
+ *is_enabled = vconf_val;
+ g_free(_key);
+
+ return LOCATION_ERROR_NONE;
+}
+
+EXPORT_API int
+location_enable_method(const LocationMethod method, const int enable)
+{
+ int ret = 0;
+ int i = 0;
+ char *_key = NULL;
+ ret = location_check_privilege(LOCATION_ENABLE_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ if (method == LOCATION_METHOD_HYBRID) {
+ for (i = LOCATION_METHOD_HYBRID; i < LOCATION_METHOD_MAX; i++) {
+ _key = __convert_setting_key(i);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", method);
+ return LOCATION_ERROR_NOT_SUPPORTED;
+ }
+
+ ret = vconf_set_int(_key, enable);
+ if (ret != VCONF_OK) {
+ LOCATION_SECLOG("vconf_set_int failed [%s], error [%d]", _key, ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ } else {
+ LOCATION_SECLOG("vconf_set_int: [%s]:[%d]", _key, ret);
+ }
+ g_free(_key);
+ }
+ }
+ else {
+ _key = __convert_setting_key(method);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", method);
+ return LOCATION_ERROR_NOT_SUPPORTED;
+ }
+ ret = vconf_set_int(_key, enable);
+ if (ret != VCONF_OK) {
+ LOCATION_SECLOG("vconf_set_int failed [%s], error [%d]", _key, ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ } else {
+ LOCATION_SECLOG("vconf_set_int: [%s]:[%d]", _key, ret);
+ }
+ g_free(_key);
+
+ _key = __convert_setting_key(LOCATION_METHOD_HYBRID);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", LOCATION_METHOD_HYBRID);
+ return LOCATION_ERROR_NOT_SUPPORTED;
+ }
+ ret = vconf_set_int(_key, enable);
+ if (ret != VCONF_OK) {
+ LOCATION_SECLOG("vconf_set_int failed [%s], error [%d]", _key, ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ } else {
+ LOCATION_SECLOG("vconf_set_int: [%s]:[%d]", _key, ret);
+ }
+ g_free(_key);
+ }
+
+ return ret;
+}
+
+EXPORT_API int
+location_add_setting_notify(LocationMethod method, LocationSettingCb callback, void *user_data)
+{
+ int ret = LOCATION_ERROR_NONE;
+ char *_key = __convert_setting_key(method);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", method);
+ return LOCATION_ERROR_PARAMETER;
+ }
+
+ g_location_setting.callback = callback;
+ g_location_setting.user_data = user_data;
+
+ ret = location_setting_add_notify(_key, __location_setting_cb, &g_location_setting);
+ g_free(_key);
+
+ return ret;
+}
+
+EXPORT_API int
+location_ignore_setting_notify(LocationMethod method, LocationSettingCb callback)
+{
+ int ret = LOCATION_ERROR_NONE;
+ char *_key = __convert_setting_key(method);
+ if (!_key) {
+ LOCATION_LOGE("Invalid method[%d]", method);
+ return LOCATION_ERROR_PARAMETER;
+ }
+
+ g_location_setting.callback = NULL;
+ g_location_setting.user_data = NULL;
+
+ ret = location_setting_ignore_notify(_key, __location_setting_cb);
+ g_free(_key);
- return (gboolean) location_setting_get_int(VCONFKEY_LOCATION_ENABLED);
+ return ret;
}
+
EXPORT_API int
location_get_position (LocationObject *obj,
LocationPosition **position,
LocationAccuracy **accuracy)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_position (LOCATION_IELEMENT(obj), position, accuracy);
+
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_get_position (LOCATION_IELEMENT(obj), position, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_position. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_get_position_ext (LocationObject *obj,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_get_position_ext (LOCATION_IELEMENT(obj), position, velocity, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_position_ext. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
@@ -162,30 +443,102 @@ location_get_last_position (LocationObject *obj,
LocationAccuracy **accuracy)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_last_position (LOCATION_IELEMENT(obj), position, accuracy);
+
+ int ret = LOCATION_ERROR_NONE;
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_get_last_position (LOCATION_IELEMENT(obj), position, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_last_position. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_get_last_position_ext (LocationObject *obj,
+ LocationPosition **position,
+ LocationVelocity **velocity,
+ LocationAccuracy **accuracy)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
+
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_get_last_position_ext (LOCATION_IELEMENT(obj), position, velocity, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_last_position_ext. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
location_get_satellite (LocationObject *obj, LocationSatellite **satellite)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (satellite, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_satellite (LOCATION_IELEMENT(obj), satellite);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+ ret = location_ielement_get_satellite (LOCATION_IELEMENT(obj), satellite);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_satellite. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_get_batch (LocationObject *obj, LocationBatch **batch)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ g_return_val_if_fail (batch, LOCATION_ERROR_PARAMETER);
+
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+ ret = location_ielement_get_batch (LOCATION_IELEMENT(obj), batch);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_batch. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
location_get_last_satellite (LocationObject *obj, LocationSatellite **satellite)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (satellite, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_last_satellite (LOCATION_IELEMENT(obj), satellite);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+ ret = location_ielement_get_last_satellite (LOCATION_IELEMENT(obj), satellite);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_last_satellite. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
@@ -194,11 +547,20 @@ location_get_velocity (LocationObject *obj,
LocationAccuracy **accuracy)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_velocity (LOCATION_IELEMENT(obj), velocity, accuracy);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+ ret = location_ielement_get_velocity (LOCATION_IELEMENT(obj), velocity, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_velocity. Error [%d]", ret);
+
+ return ret;
}
EXPORT_API int
@@ -207,19 +569,89 @@ location_get_last_velocity (LocationObject *obj,
LocationAccuracy **accuracy)
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) != MAP_TYPE_SERVICE, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (velocity, LOCATION_ERROR_PARAMETER);
g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
- return location_ielement_get_last_velocity (LOCATION_IELEMENT(obj), velocity, accuracy);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_get_last_velocity (LOCATION_IELEMENT(obj), velocity, accuracy);
+ if (ret != LOCATION_ERROR_NONE) LOCATION_LOGD("Fail to get_last_velocity. Error [%d]", ret);
+
+ return ret;
+}
+
+EXPORT_API int
+location_get_accessibility_state (LocationAccessState *state)
+{
+ int auth = location_application_get_authority ();
+ switch (auth) {
+ case LOCATION_APP_OFF:
+ *state = LOCATION_ACCESS_DENIED;
+ break;
+ case LOCATION_APP_ON:
+ *state = LOCATION_ACCESS_ALLOWED;
+ break;
+ case LOCATION_APP_NOT_FOUND:
+ *state = LOCATION_ACCESS_NONE;
+ break;
+ default:
+ return LOCATION_ERROR_UNKNOWN;
+ }
+
+ LOCATION_LOGD("get_accessibility_state [%d]", auth);
+ return LOCATION_ERROR_NONE;
}
+EXPORT_API int
+location_set_accessibility_state (LocationAccessState state)
+{
+ int auth = LOCATION_APP_NOT_FOUND;
+ int ret = LOCATION_ERROR_NONE;
+
+ switch (state) {
+ case LOCATION_ACCESS_DENIED:
+ auth = LOCATION_APP_OFF;
+ break;
+ case LOCATION_ACCESS_ALLOWED:
+ auth = LOCATION_APP_ON;
+ break;
+ case LOCATION_ACCESS_NONE:
+ default:
+ return LOCATION_ERROR_PARAMETER;
+ }
+
+ ret = location_application_set_authority(auth);
+ LOCATION_LOGD("set_accessibility_state [%d], Error[%d]", auth, ret);
+ return ret;
+}
EXPORT_API int
location_send_command(const char *cmd)
{
g_return_val_if_fail (cmd, LOCATION_ERROR_PARAMETER);
-
- return LOCATION_ERROR_NONE;
+ return LOCATION_ERROR_NOT_AVAILABLE;
}
+EXPORT_API int
+location_set_option (LocationObject *obj, const char *option)
+{
+ g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
+ int ret = LOCATION_ERROR_NONE;
+
+ ret = location_get_privacy(LOCATION_PRIVILEGE);
+ if (ret != LOCATION_ERROR_NONE) {
+ LOCATION_LOGE("Cannot use location service for privacy[%d]", ret);
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
+
+ ret = location_ielement_set_option (LOCATION_IELEMENT(obj), option);
+ if (ret != LOCATION_ERROR_NONE)
+ LOCATION_LOGD("Fail to get_velocity. Error [%d]", ret);
+ return ret;
+}
diff --git a/location/manager/location.h b/location/manager/location.h
index e74ae40..bc63df4 100644..100755
--- a/location/manager/location.h
+++ b/location/manager/location.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,9 +27,9 @@
#include <glib.h>
#include <location-types.h>
#include <location-position.h>
+#include <location-batch.h>
#include <location-velocity.h>
#include <location-accuracy.h>
-#include <location-address.h>
#include <location-boundary.h>
#include <location-satellite.h>
@@ -58,7 +58,7 @@ G_BEGIN_DECLS
* @pre None.
* @post None.
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @see None.
@@ -76,7 +76,7 @@ int location_init (void);
* @param [in]
* method - Location method to be used.
* @return a new #LocationObject
- * @retval NULL if error occured
+ * @retval NULL if error occured
* @see location_free
*/
LocationObject *location_new (LocationMethod method);
@@ -91,7 +91,7 @@ LocationObject *location_new (LocationMethod method);
* @param [in]
* obj - a #LocationObject created by #location_new.
* @return int
- * @retval 0 Success.
+ * @retval 0 Success.
*
* Please refer #LocationError for more information.
* @see location_new
@@ -102,7 +102,7 @@ int main (int argc, char *argv[])
{
LocationObject *loc = NULL;
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc)
return -1;
@@ -127,7 +127,7 @@ int location_free (LocationObject *obj);
* @param [in]
* obj - a #LocationObject created by #location_new
* @return int
- * @retval 0 Success.
+ * @retval 0 Success.
*
* Please refer #LocationError for more information.
* @see location_stop
@@ -177,10 +177,10 @@ static void cb_service_enabled (GObject *self, guint status, gpointer userdata)
static void
cb_service_updated (GObject *self,
- guint type,
- gpointer data,
- gpointer accuracy,
- gpointer userdata)
+ guint type,
+ gpointer data,
+ gpointer accuracy,
+ gpointer userdata)
{
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
switch (type) {
@@ -228,10 +228,10 @@ cb_service_updated (GObject *self,
int main (int argc, char *argv[])
{
LocationObject *loc = NULL;
- int interval = 6; //seconds
+ int interval = 6; //seconds
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc)
return -1;
@@ -242,7 +242,7 @@ int main (int argc, char *argv[])
location_start(loc);
loop = g_main_loop_new (NULL, TRUE);
- g_main_loop_run (loop); // GMainLoop is needed for receiving signals.
+ g_main_loop_run (loop); // GMainLoop is needed for receiving signals.
// ...
return 0;
@@ -263,7 +263,7 @@ int location_start (LocationObject *obj);
* @param [in]
* obj - a #LocationObject created by #location_new
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @see location_start
@@ -276,7 +276,7 @@ int main (int argc, char *argv[])
{
LocationObject *loc = NULL;
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc)
return -1;
@@ -294,6 +294,8 @@ int main (int argc, char *argv[])
*/
int location_stop (LocationObject *obj);
+int location_request_single_location(LocationObject *obj, int timeout);
+
/**
* @brief
* Check wheither a method is available.
@@ -304,7 +306,7 @@ int location_stop (LocationObject *obj);
* @param [in] method - a #LocationMethod
* @return int
* @retval True Supported
- * False Not supported
+ * False Not supported
* @par Example
#include <location.h>
static GMainLoop *loop = NULL;
@@ -327,58 +329,99 @@ int main (int argc, char *argv[])
*/
gboolean location_is_supported_method(LocationMethod method);
+int location_is_enabled_method(LocationMethod method, int *is_enabled);
+
+int location_enable_method(const LocationMethod method, const int enable);
+
+
+
/**
* @brief
- * Check wheither GPS is turned on or off.
- * @remarks
+ * Get current position information with estimate of the accuracy.
+ * @remarks Out parameters are should be freed.
* @pre
* #location_init should be called before.\n
+ * #location_start should be called before.
* @post None.
- * @param [in] method - a #LocationMethod
+ * @param [in]
+ * obj - a #LocationObject created by #location_new
+ * @param [out]
+ * position - a new #LocationPosition
+ * @param [out]
+ * accuracy - a new #LocationAccuracy
* @return int
- * @retval True Turned on
- * False Turned off
+ * @retval 0 Success
+ *
+ * Please refer #LocationError for more information.
+ * @see location_get_velocity
* @par Example
- #include <location.h>
+ * @code
+#include <location.h>
static GMainLoop *loop = NULL;
+static void cb_service_enabled (GObject *self, guint status, gpointer userdata)
+{
+ g_debug("cb_service_enabled: status(%d) userdata(0x%x)", status, (unsigned int)userdata);
+
+ LocationObject *loc = (LocationObject*)userdata;
+ LocationAccuracy *acc = NULL;
+ LocationPosition *pos = NULL;
+
+ // This function works properly after service is enabled.
+ if (LOCATION_ERROR_NONE == location_get_position (loc, &pos, &acc)) {
+ g_debug ("SYNC>> Current position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
+ pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
+ g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)",
+ acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
+ location_position_free(pos);
+ location_accuracy_free(acc);
+ } else g_warning ("SYNC>> Current position> failed");
+}
+
int main (int argc, char *argv[])
{
- gboolean is_enabled = FALSE;
+ LocationObject *loc = NULL;
+ gulong handler_id = 0;
- // ....
+ location_init ();
+ loop = g_main_loop_new (NULL, TRUE);
+ loc = location_new (LOCATION_METHOD_GPS);
+ if(!loc){
+ g_debug("location_new failed");
+ return -1;
+ }
- is_enabled = location_is_enabled_gps(loc);
- if(is_enable == TRUE)
- g_printf("GPS is turned on.\n");
- else
- g_printf("GPS is turned off.\n");
+ handler_id = g_signal_connect (loc, "service-enabled", G_CALLBACK(cb_service_enabled), loc);
+ location_start (loc);
+ g_main_loop_run (loop);
+
+ g_signal_handler_disconnect(loc, handler_id);
+ location_stop (loc);
+ location_free (loc);
return 0;
-}* @code
+}
* @endcode
*/
-gboolean location_is_enabled_gps(LocationObject *obj);
+int location_get_position (LocationObject *obj, LocationPosition **position, LocationAccuracy **accuracy);
/**
* @brief
- * Get current position information with estimate of the accuracy.
+ * Get current position & velocity information with estimate of the accuracy.
* @remarks Out parameters are should be freed.
* @pre
* #location_init should be called before.\n
* #location_start should be called before.
* @post None.
- * @param [in]
- * obj - a #LocationObject created by #location_new
- * @param [out]
- * position - a new #LocationPosition
- * @param [out]
- * accuracy - a new #LocationAccuracy
+ * @param [in] obj - a #LocationObject created by #location_new
+ * @param [out] position - a new #LocationPosition
+ * @param [out] velocity - a new #LocationVelocity
+ * @param [out] accuracy - a new #LocationAccuracy
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
- * @see location_get_velocity
+ * @see location_get_position
* @par Example
* @code
#include <location.h>
@@ -389,18 +432,20 @@ static void cb_service_enabled (GObject *self, guint status, gpointer userdata)
g_debug("cb_service_enabled: status(%d) userdata(0x%x)", status, (unsigned int)userdata);
LocationObject *loc = (LocationObject*)userdata;
- LocationAccuracy *acc = NULL;
+
LocationPosition *pos = NULL;
+ LocationVelocity *vel = NULL;
+ LocationAccuracy *acc = NULL;
// This function works properly after service is enabled.
- if (LOCATION_ERROR_NONE == location_get_position (loc, &pos, &acc)) {
- g_debug ("SYNC>> Current position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
- pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
+ if (LOCATION_ERROR_NONE == location_get_position_ext (loc, &pos, &vel, &acc)) {
+ g_debug ("SYNC>> Current position> time: %d, lat: %f, long: %f, alt: %f, status: %d, speed: %f, direction: %f",
+ pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status, vel->speed, vel->direction);
g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)",
acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
location_position_free(pos);
location_accuracy_free(acc);
- } else g_warning ("SYNC>> Current position> failed");
+ } else g_warning ("SYNC>> Current position_ext > failed");
}
int main (int argc, char *argv[])
@@ -410,7 +455,7 @@ int main (int argc, char *argv[])
location_init ();
loop = g_main_loop_new (NULL, TRUE);
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -428,24 +473,20 @@ int main (int argc, char *argv[])
}
* @endcode
*/
-int location_get_position (LocationObject *obj, LocationPosition **position, LocationAccuracy **accuracy);
+int location_get_position_ext (LocationObject *obj, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy);
/**
* @brief
* Get last position information with estimate of the accuracy.
- * @remarks This API is not implemented now. \n
- * Out parameters are should be freed.
- * @pre
- * #location_init should be called before.
+ * @remarks Out parameters are should be freed.
+ * @pre #location_init should be called before.
* @post None.
* @param [in]
* obj - a #LocationObject created by #location_new
- * @param [out]
- * position - a new #LocationPosition
- * @param [out]
- * accuracy - a new #LocationAccuracy
+ * @param [out] position - a new #LocationPosition
+ * @param [out] accuracy - a new #LocationAccuracy
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @see location_get_position
@@ -461,7 +502,7 @@ int main (int argc, char *argv[])
LocationAccuracy *last_acc = NULL;
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -486,9 +527,60 @@ int location_get_last_position (LocationObject *obj, LocationPosition **position
/**
* @brief
+ * Get last position & velocity information with estimate of the accuracy.
+ * @remarks Out parameters are should be freed.
+ * @pre #location_init should be called before.
+ * @post None.
+ * @param [in] obj - a #LocationObject created by #location_new
+ * @param [out] position - a new #LocationPosition
+ * @param [out] velocity - a new #LocationVelocity
+ * @param [out] accuracy - a new #LocationAccuracy
+ * @return int
+ * @retval 0 Success
+ *
+ * Please refer #LocationError for more information.
+ * @see location_get_position_ext
+ * @par Example
+ * @code
+#include <location.h>
+
+int main (int argc, char *argv[])
+{
+ LocationObject *loc = NULL;
+ int ret = 0;
+ LocationPosition *last_pos = NULL;
+ LocationVelocity *last_vel = NULL;
+ LocationAccuracy *last_acc = NULL;
+
+ location_init ();
+ loc = location_new (LOCATION_METHOD_GPS);
+ if(!loc){
+ g_debug("location_new failed");
+ return -1;
+ }
+
+ if (LOCATION_ERROR_NONE == location_get_last_position_ext (loc, &last_pos, &last_vel, &last_acc)) {
+ g_debug ("SYNC>> Last position> time: %d, lat: %f, long: %f, alt: %f, status: %d, speed: %f, direction: %f",
+ last_pos->timestamp, last_pos->latitude, last_pos->longitude, last_pos->altitude, last_pos->status, last_vel->speed, last_vel->direction);
+ g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)",
+ last_acc->level, last_acc->horizontal_accuracy, last_acc->vertical_accuracy);
+ location_position_free(last_pos);
+ location_velocity_free(last_vel);
+ location_accuracy_free(last_acc);
+ } else g_warning ("SYNC>> Last position_ext > failed");
+
+ location_free (loc);
+
+ return 0;
+}
+ * @endcode
+ */
+int location_get_last_position_ext (LocationObject *obj, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy);
+/**
+ * @brief
* Get last satellite information.
* @remarks This API is not implemented now. \n
- * Out parameters are should be freed.
+ * Out parameters are should be freed.
* @pre
* #location_init should be called before.
* @post None.
@@ -496,7 +588,7 @@ int location_get_last_position (LocationObject *obj, LocationPosition **position
* obj - a #LocationObject created by #location_new
* @param [out] satellite - a new #LocationSatellite
* @return int
- * @retval 0 Success
+ * @retval 0 Success
* Please refer #LocationError for more information.
* @see location_get_last_satellite
* @par Example
@@ -515,7 +607,7 @@ int main (int argc, char *argv[])
gint snr;
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -539,11 +631,19 @@ int main (int argc, char *argv[])
*/
int location_get_satellite (LocationObject *obj, LocationSatellite **satellite);
+
+int location_start_batch (LocationObject *obj);
+
+int location_stop_batch (LocationObject *obj);
+
+int location_get_batch (LocationObject *obj, LocationBatch **batch);
+
+
/**
* @brief
* Get last satellite information.
* @remarks This API is not implemented now. \n
- * Out parameters are should be freed.
+ * Out parameters are should be freed.
* @pre
* #location_init should be called before.
* @post None.
@@ -552,7 +652,7 @@ int location_get_satellite (LocationObject *obj, LocationSatellite **satellite);
* @param [out]
* satellite - a new #LocationSatellite
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @par Example
@@ -571,7 +671,7 @@ int main (int argc, char *argv[])
gint snr;
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -610,7 +710,7 @@ int location_get_last_satellite (LocationObject *obj, LocationSatellite **satell
* @param [out]
* accuracy - a new #LocationAccuracy
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @see location_get_position
@@ -645,7 +745,7 @@ int main (int argc, char *argv[])
loop = g_main_loop_new (NULL, TRUE);
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -680,7 +780,7 @@ int location_get_velocity (LocationObject *obj, LocationVelocity **velocity, Loc
* @param [out]
* accuracy - a new #LocationAccuracy
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
* @see location_get_position
@@ -698,7 +798,7 @@ int main (int argc, char *argv[])
location_init ();
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if(!loc){
g_debug("location_new failed");
return -1;
@@ -723,22 +823,59 @@ int location_get_last_velocity (LocationObject *obj, LocationVelocity **velocity
/**
* @brief
+ * Get the accessibility state of an application
+ * @remarks None.
+ * @pre
+ * #location_init should be called before.\n
+ * @post None.
+ * @param [out] state - a #LocationAccessState
+ * @return int
+ * @retval 0 Success
+ *
+ * Please refer #LocationError for more information.
+ */
+int location_get_accessibility_state (LocationAccessState *state);
+
+/**
+ * @brief
* Send command to the server.
- * @remarks This functions is not implemneted yet.
* @pre
* #location_init should be called before.\n
* Calling application must have glib or ecore main loop.\n
* Calling application must have an active data connection.
* @post None.
- * @param [in] cmd - a #char
+ * @param [in] cmd - a #char
* @return int
- * @retval 0 Success
+ * @retval 0 Success
*
* Please refer #LocationError for more information.
*/
int location_send_command(const char *cmd);
/**
+ * @brief
+ * Set option of server.
+ * @pre
+ * #location_init should be called before.\n
+ * Calling application must have glib or ecore main loop.\n
+ * Calling application must have an active data connection.
+ * @post None.
+ * @param [in] obj - a #LocationObject created by #location_new
+ * @param [in] option - a #char
+ * @return int
+ * @retval 0 Success
+ *
+ * Please refer #LocationError for more information.
+ */
+int location_set_option(LocationObject *obj, const char *option);
+
+int location_add_setting_notify(LocationMethod method, LocationSettingCb callback, void *user_data);
+
+int location_ignore_setting_notify(LocationMethod method, LocationSettingCb callback );
+
+
+
+/**
* @} @}
*/
diff --git a/location/map-service/Makefile.am b/location/map-service/Makefile.am
deleted file mode 100644
index ce4aeca..0000000
--- a/location/map-service/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-noinst_LTLIBRARIES = liblocation-map-service.la
-
-COMMON_HEADER_DIR = include
-MANAGER_DIR = manager
-MAP_SERVICE_DIR = map-service
-MODULE_DIR = module
-
-liblocation_map_service_la_SOURCES = \
- location-map-pref.c \
- location-map-ielement.c \
- location-address.c \
- location-geocode.c \
- location-poi.c \
- location-landmark.c \
- location-route.c \
- map-service.c \
- map-internal.c
-
-liblocation_map_service_la_CFLAGS = \
- -fPIC\
- -I${srcdir} \
- -I${srcdir}/.. \
- -I${srcdir}/../include \
- -I${srcdir}/../${MANAGER_DIR} \
- -I${srcdir}/../${MODULE_DIR} \
- -I${srcdir}/../${MAP_SERVICE_DIR} \
- $(LOCATION_CFLAGS)
-
diff --git a/location/map-service/location-address.c b/location/map-service/location-address.c
deleted file mode 100644
index 856757c..0000000
--- a/location/map-service/location-address.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-address.h"
-#include "location-log.h"
-
-GType
-location_address_get_type (void)
-{
- static volatile gsize type_volatile = 0;
- if(g_once_init_enter(&type_volatile)) {
- GType type = g_boxed_type_register_static (
- g_intern_static_string ("LocationAddress"),
- (GBoxedCopyFunc) location_address_copy,
- (GBoxedFreeFunc) location_address_free);
- g_once_init_leave(&type_volatile, type);
- }
- return type_volatile;
-}
-
-EXPORT_API LocationAddress*
-location_address_new (const gchar *building_number,
- const gchar *street,
- const gchar *district,
- const gchar *city,
- const gchar *state,
- const gchar *country_code,
- const gchar *postal_code)
-{
- LocationAddress* address = g_slice_new0(LocationAddress);
-
- address->building_number = g_strdup(building_number);
- address->street = g_strdup(street);
- address->district = g_strdup(district);
- address->city = g_strdup(city);
- address->state = g_strdup(state);
- address->country_code = g_strdup(country_code);
- address->postal_code = g_strdup(postal_code);
-
- return address;
-}
-
-EXPORT_API void
-location_address_free (LocationAddress* address)
-{
- g_return_if_fail(address);
- g_free(address->building_number);
- g_free(address->street);
- g_free(address->district);
- g_free(address->city);
- g_free(address->state);
- g_free(address->country_code);
- g_free(address->postal_code);
- g_slice_free(LocationAddress, address);
-}
-
-EXPORT_API LocationAddress*
-location_address_copy (const LocationAddress *address)
-{
- g_return_val_if_fail(address, NULL);
- return location_address_new(address->building_number,
- address->street,
- address->district,
- address->city,
- address->state,
- address->country_code,
- address->postal_code);
-}
diff --git a/location/map-service/location-address.h b/location/map-service/location-address.h
deleted file mode 100644
index 8b1109a..0000000
--- a/location/map-service/location-address.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_ADDRESS_H_
-#define __LOCATION_ADDRESS_H_
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-GType location_address_get_type(void);
-#define LOCATION_TYPE_ADDRESS (location_address_get_type())
-
-/**
- * @file location-address.h
- * @brief This file contains the definitions, structures, and functions related to address information.
- * @addtogroup LocationMapService
- * @{
- * @defgroup LocationMapServiceGeocode Location Geocode
- * @brief This sub module provides structure, enumeration, and asynchronous function definitions.
- * @addtogroup LocationMapServiceGeocode
- * @{
- */
-
-/**
- * @brief This represents address information such as building number, street name, etc.
- */
-struct _LocationAddress
-{
- gchar *building_number; ///< Building number.
- gchar *street; ///< Full street name.
- gchar *district; ///< Municipal district name.
- gchar *city; ///< City name.
- gchar *state; ///< State or province region of a nation.
- gchar *country_code; ///< Country name.
- gchar *postal_code; ///< Postal delivery code.
-};
-
-/**
- * @brief Create a new #LocationAddress with given information.
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] building_number - Building number
- * @param [in] street - Full street name.
- * @param [in] district - Municipal district name.
- * @param [in] city - City name.
- * @param [in] state - State or province region of a nation.
- * @param [in] country_code - Country name.
- * @param [in] postal_code - Postal delivery code.
- * @return a new #LocationAddress
- * @retval NULL if error occured
- */
-LocationAddress *location_address_new (const gchar *building_number, const gchar *street, const gchar *district, const gchar *city, const gchar *state, const gchar *country_code, const gchar *postal_code);
-
-/**
- * @brief Free a #LocationAddress.
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] address - a #LocationAddress.
- * @return None.
- */
-void location_address_free (LocationAddress *address);
-
-/**
- * @brief Makes a copy of #LocationAddress
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] address - a #LocationAddress
- * @return a new #LocationAddress
- * @retval NULL if error occured
- */
-LocationAddress *location_address_copy (const LocationAddress *address);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-geocode.h b/location/map-service/location-geocode.h
deleted file mode 100644
index e54b4a7..0000000
--- a/location/map-service/location-geocode.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_GEOCODE_H__
-#define __LOCATION_GEOCODE_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-geocode.h
- * @brief This file contains the internal definitions and structures related to geocode.
- * @addtogroup LocationMapService
- * @{
- * @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-landmark-ext.h b/location/map-service/location-landmark-ext.h
deleted file mode 100644
index 0aa8a25..0000000
--- a/location/map-service/location-landmark-ext.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_LANDMARK_EXT_H__
-#define __LOCATION_LANDMARK_EXT_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-landmark-ext.h
- * @brief This file contains the extensional definitions and structures related to Landmark.
- */
-
-/**
- * @addtogroup LocationMapServicePOI
- * @{
- * @defgroup LocationMapServiceLandmarkExt Location Landmark Ext
- * @brief This provides Location Landmark Ext APIs
- * @addtogroup LocationMapServiceLandmarkExt
- * @{
- */
-
-/**
- * @brief Set the ID of the given #LocationLandmark
- * @remarks None.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] id - a guint
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_id
- */
-gboolean location_landmark_set_id (LocationLandmark *landmark, guint id);
-
-/**
- * @brief Set the name of the given #LocationLandmark
- * @remarks The previous name of the #LocationLandmark will be removed if a name is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] name - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_name
- */
-gboolean location_landmark_set_name (LocationLandmark *landmark, const gchar *name);
-
-/**
- * @brief Set the position in the given #LocationLandmark
- * @remarks The previous position of the #LocationLandmark will be removed if a position is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] position - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_position
- */
-gboolean location_landmark_set_position (LocationLandmark *landmark, const LocationPosition *position);
-
-/**
- * @brief Set the address of the given #LocationLandmark
- * @remarks The previous address of the #LocationLandmark will be removed if an addr is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] addr - a #LocationAddress
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_address
- */
-gboolean location_landmark_set_address (LocationLandmark *landmark, const LocationAddress *addr);
-
-/**
- * @brief Set the description of the given #LocationLandmark
- * @remarks The previous description of the #LocationLandmark will be removed if a desc is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] desc - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_description
- */
-gboolean location_landmark_set_description (LocationLandmark *landmark, const gchar *desc);
-
-/**
- * @brief Set the timestamp of the given #LocationLandmark
- * @remarks None.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] timestamp - a guint
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_timestamp
- */
-gboolean location_landmark_set_timestamp (LocationLandmark *landmark, guint timestamp);
-
-/**
- * @brief Set the priority of the given #LocationLandmark
- * @remarks None.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] priority - a guint
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_priority
- */
-gboolean location_landmark_set_priority (LocationLandmark *landmark, guint priority);
-
-/**
- * @brief Set the boundary of the given #LocationLandmark
- * @remarks The previous bounding box of the #LocationLandmark will be removed if a bbox is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] bbox - a #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_bounding_box
- */
-gboolean location_landmark_set_bounding_box (LocationLandmark *landmark, const LocationBoundary *bbox);
-
-/**
- * @brief Set the author of the given #LocationLandmark
- * @remarks The previous author of the #LocationLandmark will be removed if a author is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] author - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_author
- */
-gboolean location_landmark_set_author (LocationLandmark *landmark, const gchar *author);
-
-/**
- * @brief Set the urls of the given #LocationLandmark
- * @remarks The previous url of the #LocationLandmark will be removed if an url is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] url - a GList
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_url
- */
-gboolean location_landmark_set_url (LocationLandmark *landmark, GList *url);
-
-/**
- * @brief Set the categories of the given #LocationLandmark
- * @remarks The previous categories of the #LocationLandmark will be removed if a category is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] category - a GList
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_category
- */
-gboolean location_landmark_set_category (const LocationLandmark *landmark, GList *category);
-
-/**
- * @brief Set the phone number of the given #LocationLandmark
- * @remarks The previous phone number of the #LocationLandmark will be removed if a number is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] number - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_phone_number
- */
-gboolean location_landmark_set_phone_number (const LocationLandmark *landmark, const gchar *number);
-
-/**
- * @brief Set the property data of the given #LocationLandmark
- * @remarks The previous value of the #LocationLandmark matching to key will be removed if a value is NULL.
- * @pre None.
- * @post None.
- * @param [in] landmark - a #LocationLandmark
- * @param [in] key - a gconstpointer
- * @param [in] value - a gconstpointer
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_get_property
- */
-gboolean location_landmark_set_property (const LocationLandmark *landmark, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Set url of the given #LocationLandmarkUrl
- * @remarks The previous url path of the #LocationLandmarkUrl will be removed if a path is NULL.
- * @pre None.
- * @post None.
- * @param [in] url - a #LocationLandmarkUrl
- * @param [in] path - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_url_get_url_path
- */
-gboolean location_landmark_url_set_url_path (LocationLandmarkUrl *url, const gchar *path);
-
-/**
- * @brief Set the description of the given #LocationLandmarkUrl
- * @remarks The previous description of the #LocationLandmarkUrl will be removed if a desc is NULL.
- * @pre None.
- * @post None.
- * @param [in] url - a #LocationLandmarkUrl
- * @param [in] desc - a gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_landmark_url_get_description
- */
-gboolean location_landmark_url_set_description (LocationLandmarkUrl *url, const gchar *desc);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif
-
-
diff --git a/location/map-service/location-landmark.c b/location/map-service/location-landmark.c
deleted file mode 100644
index 334d3d0..0000000
--- a/location/map-service/location-landmark.c
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-log.h"
-#include "location.h"
-#include "location-types.h"
-#include "map-service.h"
-
-struct _LocationLandmark {
-
- guint id; ///< Unique identifier of the landmark
- guint priority; ///< Degree of importance of the landmark (Between HIGHEST_LANDMARK_PRIORITY and LOWEST_LANDMARK_PRIORITY)
- gchar *name; ///< Name of landmark
- LocationPosition *position; ///< Positon of the landmark, may be null if not known
- LocationAddress *addr; ///< Textual address information of the landmark, may be null if not
- LocationBoundary *bbox; ///< Coverage area of the landmark, may be null if not available
- guint timestamp; ///< Time when the landmark data was last updated (updated by system and used to facilitate tracking)
-
- gchar *author; ///< Provider of the landmark data, may be null
- gchar *store; ///< Name of landmark store that the landmark belongs to
- gchar *phone_number; ///< Nhone number of the landmark, may be null
- GList *category; ///< Categories to which the landmark belongs to
- GList *url; ///< Url to additional content (Optional)
- gchar *desc; ///< Description of the landmark, may be null if not available
-
- GHashTable *properties; ///< Extra info of the landmark
-
-};
-
-struct _LocationLandmarkUrl {
- gchar *path; ///< Url of landmark url info
- gchar *desc; ///< Description of landmark url info
-};
-
-EXPORT_API guint
-location_landmark_get_id (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, 0);
-
- return landmark->id;
-}
-
-
-EXPORT_API gchar *
-location_landmark_get_name (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->name;
-}
-
-EXPORT_API LocationPosition *
-location_landmark_get_position (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->position;
-}
-
-EXPORT_API LocationAddress *
-location_landmark_get_address (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->addr;
-}
-
-EXPORT_API gchar *
-location_landmark_get_description (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->desc;
-}
-
-EXPORT_API guint
-location_landmark_get_timestamp (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, 0);
-
- return landmark->timestamp;
-}
-
-EXPORT_API guint
-location_landmark_get_priority (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, 0);
-
- return landmark->priority;
-}
-
-EXPORT_API LocationBoundary *
-location_landmark_get_bounding_box (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->bbox;
-}
-
-EXPORT_API gchar *
-location_landmark_get_author (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->author;
-}
-
-EXPORT_API GList *
-location_landmark_get_url (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->url;
-}
-
-EXPORT_API GList *
-location_landmark_get_category (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->category;
-}
-
-EXPORT_API gchar *
-location_landmark_get_phone_number (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return landmark->phone_number;
-}
-
-EXPORT_API GList *
-location_landmark_get_property_key (const LocationLandmark *landmark)
-{
- g_return_val_if_fail(landmark, NULL);
-
- return g_hash_table_get_keys (landmark->properties);
-}
-
-EXPORT_API gconstpointer
-location_landmark_get_property (const LocationLandmark *landmark, gconstpointer key)
-{
- g_return_val_if_fail(landmark, NULL);
- g_return_val_if_fail(key, NULL);
- if (!landmark->properties) return NULL;
-
- return g_hash_table_lookup (landmark->properties, key);
-}
-
-EXPORT_API gboolean
-location_landmark_set_id (LocationLandmark *landmark, guint id)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- landmark->id = id;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_name (LocationLandmark *landmark, const gchar *name)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->name) {
- g_free(landmark->name);
- landmark->name = NULL;
- }
- if (name) landmark->name = g_strdup (name);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_position (LocationLandmark *landmark, const LocationPosition *position)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->position) {
- location_position_free(landmark->position);
- landmark->position = NULL;
- }
-
- if (position) landmark->position = location_position_copy (position);
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_landmark_set_address (LocationLandmark *landmark, const LocationAddress *addr)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->addr) {
- location_address_free (landmark->addr);
- landmark->addr = NULL;
- }
-
- if (addr) landmark->addr = location_address_copy (addr);
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_landmark_set_description (LocationLandmark *landmark, const gchar *desc)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->desc) {
- g_free(landmark->desc);
- landmark->desc = NULL;
- }
-
- if (desc) landmark->desc = g_strdup (desc);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_timestamp (LocationLandmark *landmark, guint timestamp)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- landmark->timestamp = timestamp;
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_landmark_set_priority (LocationLandmark *landmark, guint priority)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- landmark->priority = priority;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_bounding_box (LocationLandmark *landmark, const LocationBoundary *bbox)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->bbox) {
- location_boundary_free(landmark->bbox);
- landmark->bbox = NULL;
- }
-
- if (bbox) landmark->bbox = location_boundary_copy (bbox);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_author (LocationLandmark *landmark, const gchar *author)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->author) {
- g_free(landmark->author);
- landmark->author = NULL;
- }
- if (author) landmark->author = g_strdup (author);
-
- return TRUE;
-}
-
-static void landmark_url_foreach_free (gpointer data)
-{
- g_return_if_fail(data);
-
- LocationLandmarkUrl *url = (LocationLandmarkUrl *)data;
-
- location_landmark_url_free (url);
-}
-
-static void landmark_foreach_url_copy (gpointer data, gpointer user_data)
-{
- g_return_if_fail(data);
- g_return_if_fail(user_data);
-
- LocationLandmarkUrl *url = (LocationLandmarkUrl *)data;
- LocationLandmark *landmark = (LocationLandmark *) user_data;
-
- if(!url || !landmark) return;
-
- landmark->url = g_list_append(landmark->url, url);
-}
-
-EXPORT_API gboolean
-location_landmark_set_url (LocationLandmark *landmark, GList *url)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->url) {
- g_list_free_full(landmark->url, landmark_url_foreach_free);
- landmark->url = NULL;
- }
-
- if (url) g_list_foreach (url, landmark_foreach_url_copy, landmark);
-
- return TRUE;
-}
-
-static void landmark_foreach_copy_category (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
- g_return_if_fail (user_data);
-
- gchar *category_name = (gchar *)data;
- LocationLandmark *landmark = (LocationLandmark *) user_data;
-
- landmark->category = g_list_append (landmark->category, g_strdup(category_name));
-}
-
-static void landmark_free_category (gpointer data)
-{
- g_return_if_fail (data);
-
- gchar * category_name = (gchar *)data;
-
- g_free (category_name);
-}
-
-EXPORT_API gboolean
-location_landmark_set_category (LocationLandmark *landmark, GList *category)
-{
- g_return_val_if_fail(landmark, FALSE);
-
- if (landmark->category) {
- g_list_free_full(landmark->category, landmark_free_category);
- landmark->category = NULL;
- }
-
- if (category) g_list_foreach ((GList*) category, landmark_foreach_copy_category, landmark);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_phone_number (LocationLandmark *landmark, const gchar *number)
-{
- g_return_val_if_fail(landmark, FALSE);
- g_return_val_if_fail(number, FALSE);
-
- if (landmark->phone_number) {
- g_free(landmark->phone_number);
- landmark->phone_number = NULL;
- }
- if (number) landmark->phone_number = g_strdup (number);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_set_property(LocationLandmark *landmark, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(landmark, FALSE);
- g_return_val_if_fail(key, FALSE);
- if (!landmark->properties) return FALSE;
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert(landmark->properties, re_key, re_val);
- }
- else g_hash_table_remove (landmark->properties, key);
-
- return TRUE;
-}
-
-EXPORT_API gchar *
-location_landmark_url_get_url_path (const LocationLandmarkUrl *url)
-{
- g_return_val_if_fail (url, NULL);
-
- return url->path;
-}
-
-EXPORT_API gchar *
-location_landmark_url_get_description (const LocationLandmarkUrl *url)
-{
- g_return_val_if_fail (url, NULL);
-
- return url->desc;
-}
-
-EXPORT_API gboolean
-location_landmark_url_set_url_path (LocationLandmarkUrl *url, const gchar *path)
-{
- g_return_val_if_fail (url, FALSE);
-
- if (url->path) {
- g_free(url->path);
- url->path = NULL;
- }
-
- if (path) url->path = g_strdup (path);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_landmark_url_set_description (LocationLandmarkUrl *url, const gchar *desc)
-{
- g_return_val_if_fail (url, FALSE);
-
- if (url->desc) {
- g_free(url->desc);
- url->desc = NULL;
- }
-
- if (desc) url->desc = g_strdup (desc);
-
- return TRUE;
-}
-
-EXPORT_API LocationLandmarkUrl *
-location_landmark_url_new (void)
-{
- LocationLandmarkUrl *url = g_slice_new0 (LocationLandmarkUrl);
- if(!url) return NULL;
-
-
- return url;
-}
-
-EXPORT_API void
-location_landmark_url_free (LocationLandmarkUrl * url)
-{
- g_return_if_fail (url);
-
-
- location_landmark_url_set_url_path(url, NULL);
- location_landmark_url_set_description(url, NULL);
-
- g_slice_free(LocationLandmarkUrl, url);
-}
-
-EXPORT_API LocationLandmarkUrl *
-location_landmark_url_copy (const LocationLandmarkUrl *url)
-{
- g_return_val_if_fail(url, NULL);
-
- LocationLandmarkUrl *new_url = location_landmark_url_new();
-
- location_landmark_url_set_url_path(new_url, location_landmark_url_get_url_path(url));
- location_landmark_url_set_description(new_url, location_landmark_url_get_description(url));
-
- return new_url;
-}
-
-EXPORT_API LocationLandmark *
-location_landmark_new (void)
-{
- LocationLandmark *landmark = g_slice_new0 (LocationLandmark);
- if (!landmark) return NULL;
-
- landmark->properties = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-
- return landmark;
-}
-
-EXPORT_API LocationLandmark *
-location_landmark_copy (const LocationLandmark *landmark)
-{
- g_return_val_if_fail (landmark, NULL);
-
- LocationLandmark *new_landmark = location_landmark_new();
- if (!new_landmark) return NULL;
-
- location_landmark_set_id(new_landmark, location_landmark_get_id(landmark));
- location_landmark_set_name (new_landmark, location_landmark_get_name (landmark));
- location_landmark_set_position (new_landmark, location_landmark_get_position(landmark));
- location_landmark_set_address (new_landmark, location_landmark_get_address (landmark));
- location_landmark_set_description (new_landmark, location_landmark_get_description(landmark));
- location_landmark_set_timestamp (new_landmark, location_landmark_get_timestamp(landmark));
- location_landmark_set_priority (new_landmark, location_landmark_get_priority(landmark));
- location_landmark_set_bounding_box (new_landmark, location_landmark_get_bounding_box(landmark));
- location_landmark_set_author (new_landmark, location_landmark_get_author(landmark));
- location_landmark_set_url(new_landmark, location_landmark_get_url(landmark));
-
- return new_landmark;
-}
-
-EXPORT_API void
-location_landmark_free (LocationLandmark *landmark)
-{
- g_return_if_fail (landmark);
-
- location_landmark_set_id(landmark, 0);
- location_landmark_set_name (landmark, NULL);
- location_landmark_set_position (landmark, NULL);
- location_landmark_set_address (landmark, NULL);
- location_landmark_set_description (landmark, NULL);
- location_landmark_set_timestamp (landmark, 0);
- location_landmark_set_priority (landmark, 0);
- location_landmark_set_bounding_box (landmark, NULL);
- location_landmark_set_author (landmark, NULL);
- location_landmark_set_url(landmark, NULL);
-
- g_slice_free (LocationLandmark, landmark);
-}
diff --git a/location/map-service/location-landmark.h b/location/map-service/location-landmark.h
deleted file mode 100644
index 0efaab0..0000000
--- a/location/map-service/location-landmark.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_LANDMARK_H__
-#define __LOCATION_LANDMARK_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-landmark.h
- * @brief This file contains the internal definitions and structures related to Landmark.
- */
-
-/**
- * @addtogroup LocationMapServicePOI
- * @{
- * @defgroup LocationMapServiceLandmark Location Landmark
- * @brief This provides structure, enumeration and APIs for Landmark
- * @addtogroup LocationMapServiceLandmark
- * @{
- */
-
-/**
- * @brief Create a new Landmark
- */
-LocationLandmark *location_landmark_new (void);
-
-/**
- * @brief Copy the given Landmark
- */
-LocationLandmark *location_landmark_copy (const LocationLandmark *landmark);
-
-/**
- * @brief Free the given Landmark
- */
-void location_landmark_free (LocationLandmark *landmark);
-
-/**
- * @brief Get the ID of the given landmark
- */
-guint location_landmark_get_id (const LocationLandmark *landmark);
-
-/**
- * @brief Get the name of the given landmark
- */
-gchar *location_landmark_get_name (const LocationLandmark *landmark);
-/**
- * @brief Get the position in the given landmark
- */
-LocationPosition *location_landmark_get_position (const LocationLandmark *landmark);
-/**
- * @brief Get the address of the given landmark
- */
-LocationAddress *location_landmark_get_address (const LocationLandmark *landmark);
-/**
- * @brief Get the description of the given landmark
- */
-gchar *location_landmark_get_description (const LocationLandmark *landmark);
-/**
- * @brief Get the timestamp of the given landmark
- */
-guint location_landmark_get_timestamp (const LocationLandmark *landmark);
-/**
- * @brief Get the priority of the given landmark
- */
-guint location_landmark_get_priority (const LocationLandmark *landmark);
-/**
- * @brief Get the bounding box of the given landmark
- */
-LocationBoundary *location_landmark_get_bounding_box (const LocationLandmark *landmark);
-/**
- * @brief Get the author of the given landmark
- */
-gchar *location_landmark_get_author (const LocationLandmark *landmark);
-/**
- * @brief Get the list of urls of the given landmark
- */
-GList *location_landmark_get_url (const LocationLandmark *landmark);
-/**
- * @brief Get the categories of the given landmark
- */
-GList *location_landmark_get_category (const LocationLandmark *landmark);
-/**
- * @brief Get the phone number of the given landmark
- */
-gchar *location_landmark_get_phone_number (const LocationLandmark *landmark);
-/**
- * @brief Get the property keys of the given landmark
- */
-GList *location_landmark_get_property_key (const LocationLandmark *landmark);
-
-/**
- * @brief Get the property data of the given landmark
- */
-gconstpointer location_landmark_get_property (const LocationLandmark *landmark, gconstpointer key);
-
-/**
- * @brief Create a new #LocationLandmarkUrl
- */
-LocationLandmarkUrl * location_landmark_url_new (void);
-
-/**
- * @brief Free a #LocationLandmarkUrl
- */
-void location_landmark_url_free (LocationLandmarkUrl *url);
-
-/**
- * @brief Copy a #LocationLandmarkUrl
- */
-LocationLandmarkUrl *location_landmark_url_copy (const LocationLandmarkUrl *url);
-
-/**
- * @brief Get the url path of the given #LocationLandmarkUrl
- */
-gchar *location_landmark_url_get_url_path (const LocationLandmarkUrl *url);
-/**
- * @brief Get the url's description of the given #LocationLandmarkUrl
- */
-gchar *location_landmark_url_get_description (const LocationLandmarkUrl *url);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-map-ielement.c b/location/map-service/location-map-ielement.c
deleted file mode 100644
index dd4bb36..0000000
--- a/location/map-service/location-map-ielement.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-log.h"
-#include "location-map-ielement.h"
-
-static void
-location_map_ielement_base_init (gpointer g_class)
-{
- static gboolean is_initialized = FALSE;
-
- if (is_initialized){
- /* add properties and signals to the interface here */
-
- is_initialized = TRUE;
- }
-}
-
-GType
-location_map_ielement_get_type (void)
-{
- static GType iface_type = 0;
-
- if (iface_type == 0) {
- static const GTypeInfo info = {
- sizeof (LocationMapIElementInterface),
- location_map_ielement_base_init, /* base_init */
- NULL /* base_finalize */
- };
-
- iface_type = g_type_register_static (G_TYPE_INTERFACE, "LocationMapIElement",
- &info, 0);
- }
-
- return iface_type;
-}
-
-int
-location_map_ielement_get_geocode (LocationMapIElement *self,
- const LocationAddress *address,
- const LocationMapPref *svc_pref,
- GList **position_list,
- GList **accuracy_list)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode (self, address, svc_pref, position_list, accuracy_list);
-}
-
-int
-location_map_ielement_get_geocode_freeform (LocationMapIElement *self,
- const gchar *address,
- const LocationMapPref *svc_pref,
- GList **position_list,
- GList **accuracy_list)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_freeform, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_freeform (self, address, svc_pref, position_list, accuracy_list);
-}
-
-int
-location_map_ielement_get_reversegeocode (LocationMapIElement *self,
- const LocationPosition *position,
- const LocationMapPref *svc_pref,
- LocationAddress **address,
- LocationAccuracy **accuracy)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (accuracy, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_reversegeocode, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_reversegeocode (self, position, svc_pref, address, accuracy);
-}
-
-int
-location_map_ielement_get_geocode_async (LocationMapIElement *self,
- const LocationAddress *address,
- const LocationMapPref *svc_pref,
- LocationPositionCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (callback, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_async, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_async (self, address, svc_pref, callback, userdata);
-}
-
-int
-location_map_ielement_get_geocode_freeform_async (LocationMapIElement *self,
- const gchar *address,
- const LocationMapPref *svc_pref,
- LocationPositionCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (callback, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_freeform_async, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_geocode_freeform_async (self, address, svc_pref, callback, userdata);
-}
-
-int
-location_map_ielement_get_reversegeocode_async (LocationMapIElement *self,
- const LocationPosition *position,
- const LocationMapPref *svc_pref,
- LocationAddressCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (callback, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_reversegeocode_async, LOCATION_ERROR_NOT_AVAILABLE);
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_reversegeocode_async (self, position, svc_pref, callback, userdata);
-}
-
-int
-location_map_ielement_search_poi (LocationMapIElement *self,
- const LocationPOIFilter * filter, const LocationPosition *position,
- const LocationMapPref *svc_pref, const LocationPOIPreference * pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi(self,
- filter, position, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-location_map_ielement_search_poi_by_area (LocationMapIElement *self,
- const LocationPOIFilter * filter, const LocationBoundary * boundary,
- const LocationMapPref *svc_pref, const LocationPOIPreference * pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (boundary, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_area, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_area (self,
- filter, boundary, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-location_map_ielement_search_poi_by_address (LocationMapIElement *self,
- const LocationPOIFilter * filter, const LocationAddress * address,
- const LocationMapPref *svc_pref, const LocationPOIPreference * pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_address, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_address (self,
- filter, address, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-location_map_ielement_search_poi_by_freeform (LocationMapIElement *self, const LocationPOIFilter * filter,
- const gchar *freeform, const LocationMapPref *svc_pref, const LocationPOIPreference *pref, LocationPOICB cb,
- const gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (freeform, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_freeform, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->search_poi_by_freeform (self,
- filter, freeform, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-location_map_ielement_cancel_poi_request (LocationMapIElement *self, guint req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->cancel_poi_request, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->cancel_poi_request (self, req_id);
-}
-
-int
-location_map_ielement_request_route (LocationMapIElement *self, const LocationPosition *origin,
- const LocationPosition *destination, GList *waypoint,
- const LocationMapPref *svc_pref, const LocationRoutePreference *pref, LocationRouteCB cb, const gpointer user_data, guint *req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (origin, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (destination, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->request_route, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->request_route (self,
- origin, destination, waypoint, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-location_map_ielement_cancel_route_request (LocationMapIElement *self, guint req_id)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->cancel_route_request, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->cancel_route_request (self, req_id);
-}
-
-gboolean
-location_map_ielement_is_supported_provider_capability (LocationMapIElement *self, LocationMapServiceType type)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->is_supported_provider_capability, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->is_supported_provider_capability (self, type);
-}
-
-int
-location_map_ielement_get_provider_capability_key (LocationMapIElement *self, LocationMapServiceType type, GList **key)
-{
- g_return_val_if_fail (LOCATION_MAP_IS_IELEMENT (self), LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_provider_capability_key, LOCATION_ERROR_NOT_AVAILABLE);
-
- return LOCATION_MAP_IELEMENT_GET_INTERFACE (self)->get_provider_capability_key (self, type, key);
-}
diff --git a/location/map-service/location-map-ielement.h b/location/map-service/location-map-ielement.h
deleted file mode 100644
index ff21283..0000000
--- a/location/map-service/location-map-ielement.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_MAP_IELEMENT_H__
-#define __LOCATION_MAP_IELEMENT_H__
-
-#include <glib-object.h>
-#include <location-map-types.h>
-#include <location.h>
-
-/**
- * @file location-map-ielement.h
- * @brief This file contains the internal definitions and structures related to location interface.
- */
-
-G_BEGIN_DECLS
-
-#define LOCATION_MAP_TYPE_IELEMENT (location_map_ielement_get_type ())
-#define LOCATION_MAP_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOCATION_MAP_TYPE_IELEMENT, LocationMapIElement))
-#define LOCATION_MAP_IS_IELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOCATION_MAP_TYPE_IELEMENT))
-#define LOCATION_MAP_IELEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOCATION_MAP_TYPE_IELEMENT, LocationMapIElementInterface))
-
-typedef struct _LocationMapIElement LocationMapIElement;
-typedef struct _LocationMapIElementInterface LocationMapIElementInterface;
-
-typedef int (*TYPE_GET_GEOCODE)(LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-typedef int (*TYPE_GET_GEOCODE_FREEFORM)(LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-typedef int (*TYPE_GET_REVERSEGEOCODE)(LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddress **address, LocationAccuracy **accuracy);
-typedef int (*TYPE_GET_GEOCODE_ASYNC)(LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-typedef int (*TYPE_GET_GEOCODE_FREEFORM_ASYNC)(LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-typedef int (*TYPE_GET_REVERSEGEOCODE_ASYNC)(LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddressCB callback, gpointer userdata);
-typedef int (*TYPE_SEARCH_POI) (LocationMapIElement *self, const LocationPOIFilter * filter, const LocationPosition *position, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint *req_id);
-typedef int (*TYPE_SEARCH_POI_BY_AREA) (LocationMapIElement *self, const LocationPOIFilter *filter, const LocationBoundary * boundary, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint *req_id);
-typedef int (*TYPE_SEARCH_POI_BY_ADDR) (LocationMapIElement *self, const LocationPOIFilter *filter, const LocationAddress * address, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint *req_id);
-typedef int (*TYPE_SEARCH_POI_BY_FREEFORM) (LocationMapIElement *self, const LocationPOIFilter *filter, const gchar *freeform, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint *req_id);
-typedef int (*TYPE_CANCEL_POI_REQUEST) (LocationMapIElement *self, guint req_id);
-typedef int (*TYPE_REQUEST_ROUTE) (LocationMapIElement *self, const LocationPosition *origin, const LocationPosition *destination, GList *waypoint, const LocationMapPref *svc_pref, const LocationRoutePreference *pref, LocationRouteCB cb, const gpointer user_data, guint *req_id);
-typedef int (*TYPE_CANCEL_ROUTE_REQUEST) (LocationMapIElement *self, guint req_id);
-typedef gboolean (*TYPE_IS_SUPPORTED_PROVIDER_CAPABILITY) (LocationMapIElement *self, LocationMapServiceType type);
-typedef int (*TYPE_GET_PROVIDER_CAPABILITY_KEY)(LocationMapIElement *self, LocationMapServiceType type, GList **key);
-
-struct _LocationMapIElementInterface
-{
- GTypeInterface parent_iface;
-
- TYPE_GET_GEOCODE get_geocode;
- TYPE_GET_GEOCODE_FREEFORM get_geocode_freeform;
- TYPE_GET_REVERSEGEOCODE get_reversegeocode;
- TYPE_GET_GEOCODE_ASYNC get_geocode_async;
- TYPE_GET_GEOCODE_FREEFORM_ASYNC get_geocode_freeform_async;
- TYPE_GET_REVERSEGEOCODE_ASYNC get_reversegeocode_async;
- TYPE_SEARCH_POI search_poi;
- TYPE_SEARCH_POI_BY_AREA search_poi_by_area;
- TYPE_SEARCH_POI_BY_ADDR search_poi_by_address;
- TYPE_SEARCH_POI_BY_FREEFORM search_poi_by_freeform;
- TYPE_CANCEL_POI_REQUEST cancel_poi_request;
- TYPE_REQUEST_ROUTE request_route;
- TYPE_CANCEL_ROUTE_REQUEST cancel_route_request;
- TYPE_IS_SUPPORTED_PROVIDER_CAPABILITY is_supported_provider_capability;
- TYPE_GET_PROVIDER_CAPABILITY_KEY get_provider_capability_key;
-};
-
-GType location_map_ielement_get_type (void);
-
-int location_map_ielement_get_geocode (LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-int location_map_ielement_get_geocode_freeform (LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-int location_map_ielement_get_reversegeocode (LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddress **address, LocationAccuracy **accuracy);
-int location_map_ielement_get_geocode_async (LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-int location_map_ielement_get_geocode_freeform_async (LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-int location_map_ielement_get_reversegeocode_async (LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddressCB callback, gpointer userdata);
-int location_map_ielement_search_poi (LocationMapIElement *self, const LocationPOIFilter * filter, const LocationPosition *position, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
-int location_map_ielement_search_poi_by_area (LocationMapIElement *self, const LocationPOIFilter * filter, const LocationBoundary * boundary, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
-int location_map_ielement_search_poi_by_address (LocationMapIElement *self, const LocationPOIFilter * filter, const LocationAddress * address, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
-int location_map_ielement_search_poi_by_freeform (LocationMapIElement *self, const LocationPOIFilter * filter, const gchar * freeform, const LocationMapPref *svc_pref, const LocationPOIPreference * pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
-int location_map_ielement_cancel_poi_request (LocationMapIElement *self, guint req_id);
-int location_map_ielement_request_route (LocationMapIElement *self, const LocationPosition *origin, const LocationPosition *destination, GList *waypoint, const LocationMapPref *svc_pref, const LocationRoutePreference * pref, LocationRouteCB cb, const gpointer user_data, guint * req_id);
-int location_map_ielement_cancel_route_request (LocationMapIElement *self, guint req_id);
-gboolean location_map_ielement_is_supported_provider_capability (LocationMapIElement *self, LocationMapServiceType type);
-int location_map_ielement_get_provider_capability_key (LocationMapIElement *self, LocationMapServiceType type, GList **key);
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-map-pref.c b/location/map-service/location-map-pref.c
deleted file mode 100644
index 486d8e3..0000000
--- a/location/map-service/location-map-pref.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <glib.h>
-#include "location-map-types.h"
-#include "map-service.h"
-#include "location-map-pref.h"
-
-struct _LocationMapPref {
- gchar *provider_name; ///< Name of the service provier
- gchar *language; ///< Language of the service preference.
- gchar *country; ///< Country of the service preference.
- gchar *distance_unit; ///< Distance unit of the service preference.
- GHashTable *properties; ///< properties of the service preference.
-};
-
-EXPORT_API GList *
-location_map_pref_get_property_key (const LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- if (!pref->properties) return NULL;
-
- return g_hash_table_get_keys (pref->properties);
-}
-
-EXPORT_API gchar *
-location_map_pref_get_language (const LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- return pref->language;
-}
-
-EXPORT_API gchar *
-location_map_pref_get_country (const LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- return pref->country;
-}
-
-EXPORT_API gchar *
-location_map_pref_get_distance_unit (const LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- return pref->distance_unit;
-}
-
-EXPORT_API gconstpointer
-location_map_pref_get_property (const LocationMapPref *pref, gconstpointer key)
-{
- g_return_val_if_fail (pref, NULL);
- g_return_val_if_fail (key, NULL);
- if (!pref->properties) return NULL;
-
- return (gconstpointer) g_hash_table_lookup (pref->properties, key);
-}
-
-EXPORT_API gchar *
-location_map_pref_get_provider_name (const LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- return pref->provider_name;
-}
-
-EXPORT_API gboolean
-location_map_pref_set_provider_name (LocationMapPref *pref, const gchar *name)
-{
- g_return_val_if_fail (pref, FALSE);
-
- if (pref->provider_name) {
- g_free (pref->provider_name);
- pref->provider_name = NULL;
- }
-
- if (name) pref->provider_name = g_strdup ((gchar *)name);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_map_pref_set_language (LocationMapPref *pref, const gchar * language)
-{
- g_return_val_if_fail (pref, FALSE);
-
- if (pref->language) {
- g_free (pref->language);
- pref->language = NULL;
- }
-
- if (language) pref->language = g_strdup(language);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_map_pref_set_country (LocationMapPref *pref, const gchar *country)
-{
- g_return_val_if_fail (pref, FALSE);
-
- if (pref->country) {
- g_free (pref->country);
- pref->country = NULL;
- }
-
- if (country) pref->country = g_strdup(country);
-
- return TRUE;
-}
-
-
-EXPORT_API gboolean
-location_map_pref_set_distance_unit (LocationMapPref *pref, const gchar * unit)
-{
- g_return_val_if_fail (pref, FALSE);
-
- if (pref->distance_unit) {
- g_free (pref->distance_unit);
- pref->distance_unit = NULL;
- }
-
- if (unit) pref->distance_unit = g_strdup (unit);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_map_pref_set_property (LocationMapPref *pref, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail (pref, FALSE);
- g_return_val_if_fail (key, FALSE);
- if (!pref->properties) return FALSE;
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (pref->properties, re_key, re_val);
- } else g_hash_table_remove (pref->properties, key);
-
- return TRUE;
-}
-
-EXPORT_API LocationMapPref *
-location_map_pref_new (void)
-{
- LocationMapPref *pref = g_slice_new0(LocationMapPref);
- if (!pref) return NULL;
-
- pref->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return pref;
-}
-
-static void property_copy (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- GHashTable *properties = (GHashTable *) user_data;
-
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (properties, re_key, re_val);
-}
-
-EXPORT_API LocationMapPref *
-location_map_pref_copy (LocationMapPref *pref)
-{
- g_return_val_if_fail (pref, NULL);
-
- LocationMapPref *new_pref = location_map_pref_new();
- if (!new_pref) return NULL;
-
- location_map_pref_set_provider_name (new_pref, location_map_pref_get_provider_name(pref));
- location_map_pref_set_language (new_pref, location_map_pref_get_language(pref));
- location_map_pref_set_distance_unit (new_pref, location_map_pref_get_distance_unit(pref));
-
-
- g_hash_table_foreach (pref->properties, property_copy, new_pref->properties);
-
- return new_pref;
-}
-
-EXPORT_API void
-location_map_pref_free (LocationMapPref * pref)
-{
- g_return_if_fail(pref);
-
- location_map_pref_set_provider_name (pref, NULL);
- location_map_pref_set_language (pref, NULL);
- location_map_pref_set_distance_unit (pref, NULL);
- g_hash_table_destroy (pref->properties);
-
- g_slice_free (LocationMapPref, pref);
- pref = NULL;
-}
diff --git a/location/map-service/location-map-pref.h b/location/map-service/location-map-pref.h
deleted file mode 100644
index 05aff4f..0000000
--- a/location/map-service/location-map-pref.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_MAP_PREF_H__
-#define __LOCATION_MAP_PREF_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-map-pref.h
- * @brief This file contains the internal definitions and structures related to a service provider.
- * @addtogroup LocationMapService
- * @{
- * @defgroup LocationMapServiceProvider Service Provider
- * @brief This represents preference and capability of Service providers
- * @addtogroup LocationMapServiceProvider
- * @{
- */
-
-/**
- * @brief Get provider name to be used in the service request
- */
-gchar *location_map_pref_get_provider_name (const LocationMapPref *pref);
-
-/**
- * @brief Get language to be used in the service request.
- */
-gchar *location_map_pref_get_language (const LocationMapPref *pref);
-
-/**
- * @brief Get country to be used in the service request.
- */
-gchar *location_map_pref_get_country (const LocationMapPref *pref);
-
-/**
- * @brief Get the preferred length unit to be used in the service request.
- */
-gchar *location_map_pref_get_distance_unit (const LocationMapPref *pref);
-
-/**
- * @brief Get available service of the service provider.
- */
-GList *location_map_pref_get_property_key (const LocationMapPref *pref);
-
-/**
- * @brief Get property to be used in the service request.
- */
-gconstpointer location_map_pref_get_property (const LocationMapPref *pref, gconstpointer key);
-
-/**
- * @brief Set provider's name to be used in the service request.
- */
-gboolean location_map_pref_set_provider_name (LocationMapPref *pref, const gchar *name);
-
-/**
- * @brief Set language to be used in the service request.
- */
-gboolean location_map_pref_set_language (LocationMapPref *pref, const gchar *language);
-
-/**
- * @brief Set country to be used in the service request.
- */
-gboolean location_map_pref_set_country (LocationMapPref *pref, const gchar *country);
-
-/**
- * @brief Get the preferred length unit to be used in the service request.
- */
-gboolean location_map_pref_set_distance_unit (LocationMapPref *pref, const gchar * unit);
-
-/**
- * @brief Set property to be used in the service request.
- */
-gboolean location_map_pref_set_property (LocationMapPref *pref, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Create a new LocationMapPref.
- */
-LocationMapPref * location_map_pref_new (void);
-
-/**
- * @brief Copy a new LocationMapPref.
- */
-LocationMapPref * location_map_pref_copy (LocationMapPref *pref);
-
-/**
- * @brief Free a LocationMapPref.
- */
-void location_map_pref_free (LocationMapPref *pref);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif /* __LOCATION_MAP_PREF_H__ */
diff --git a/location/map-service/location-map-service-ext.h b/location/map-service/location-map-service-ext.h
deleted file mode 100644
index 0a1b493..0000000
--- a/location/map-service/location-map-service-ext.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __LOCATION_MAP_SERVICE_EXT_H__
-#define __LOCATION_MAP_SERVICE_EXT_H__
-
-
-#include <location-map-types.h>
-#include <location-route-ext.h>
-#include <location-landmark-ext.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-map-service-ext.h
- * @brief This file contains the extensional headers.
- */
-
-G_END_DECLS
-
-#endif /* __LOCATION_MAP_SERVICE_EXT_H__ */
diff --git a/location/map-service/location-map-service.c b/location/map-service/location-map-service.c
deleted file mode 100644
index 2d84d71..0000000
--- a/location/map-service/location-map-service.c
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-
-#include "location.h"
-#include "location-log.h"
-#include "location-setting.h"
-#include "location-map-ielement.h"
-#include "location-map-pref.h"
-#include "location-map-service.h"
-#include "map-service.h"
-
-EXPORT_API LocationMapObject *
-location_map_new (const char * provider)
-{
-
- LocationMapObject *self = NULL;
- self = g_object_new (MAP_TYPE_SERVICE, "provider", provider, NULL);
- return self;
-}
-
-EXPORT_API int
-location_map_free (LocationMapObject *obj)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
-
- g_object_unref (obj);
-
- return LOCATION_ERROR_NONE;
-}
-
-static gboolean
-is_connected_network()
-{
- gboolean is_connected = TRUE;
- int net_state = 0;
-
- net_state = location_setting_get_int(VCONFKEY_NETWORK_STATUS);
-
- LOCATION_LOGW("net_state[%d]", net_state);
- if(net_state == VCONFKEY_NETWORK_OFF) {
- is_connected = FALSE;
- }
-
- return is_connected;
-
-}
-
-EXPORT_API int
-location_map_get_position_from_address (LocationMapObject *obj,
- const LocationAddress *address,
- GList **position_list,
- GList **accuracy_list)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_geocode (LOCATION_MAP_IELEMENT(obj), address, svc_pref, position_list, accuracy_list);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-EXPORT_API int
-location_map_get_position_from_freeformed_address (LocationMapObject *obj,
- const gchar *address,
- GList **position_list,
- GList **accuracy_list)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_geocode_freeform (LOCATION_MAP_IELEMENT(obj), address, svc_pref, position_list, accuracy_list);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-EXPORT_API int
-location_map_get_address (LocationMapObject *obj,
- LocationAddress **address,
- LocationAccuracy **accuracy)
-{
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-EXPORT_API int
-location_map_get_address_from_position (LocationMapObject *obj,
- const LocationPosition *position,
- LocationAddress **address,
- LocationAccuracy **accuracy)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_reversegeocode (LOCATION_MAP_IELEMENT(obj), position, svc_pref, address, accuracy);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-EXPORT_API int
-location_map_get_position_from_address_async (LocationMapObject *obj,
- const LocationAddress *address,
- LocationPositionCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_geocode_async (LOCATION_MAP_IELEMENT(obj), address, svc_pref, callback, userdata);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-
-EXPORT_API int
-location_map_get_position_from_freeformed_address_async (LocationMapObject *obj,
- const gchar *address,
- LocationPositionCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_geocode_freeform_async (LOCATION_MAP_IELEMENT(obj), address, svc_pref, callback, userdata);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-EXPORT_API int
-location_map_get_address_from_position_async (LocationMapObject *obj,
- const LocationPosition *position,
- LocationAddressCB callback,
- gpointer userdata)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- int ret = LOCATION_ERROR_NONE;
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- ret = location_map_ielement_get_reversegeocode_async (LOCATION_MAP_IELEMENT(obj), position, svc_pref, callback, userdata);
- location_map_pref_free(svc_pref);
-
- return ret;
-}
-
-EXPORT_API int
-location_map_search_poi (LocationMapObject *obj,
- const LocationPOIFilter *filter,
- const LocationPosition *position,
- const LocationPOIPreference *pref,
- LocationPOICB cb, gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (position, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- return location_map_ielement_search_poi (LOCATION_MAP_IELEMENT(obj), filter, position, svc_pref, pref, cb, user_data, req_id);
-}
-
-EXPORT_API int
-location_map_search_poi_by_area (LocationMapObject *obj,
- const LocationPOIFilter *filter,
- const LocationBoundary *boundary,
- const LocationPOIPreference *pref,
- LocationPOICB cb, gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (boundary, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- return location_map_ielement_search_poi_by_area (LOCATION_MAP_IELEMENT(obj), filter, boundary, svc_pref, pref, cb, user_data, req_id);
-}
-
-EXPORT_API int
-location_map_search_poi_by_address (LocationMapObject *obj, const LocationPOIFilter * filter,
- const LocationAddress * address, const LocationPOIPreference * pref,
- LocationPOICB cb, gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- return location_map_ielement_search_poi_by_address (LOCATION_MAP_IELEMENT(obj), filter, address, svc_pref, pref, cb, user_data, req_id);
-}
-
-EXPORT_API int
-location_map_search_poi_by_freeformed_address (LocationMapObject *obj,
- const LocationPOIFilter *filter,
- const gchar *address,
- const LocationPOIPreference *pref,
- LocationPOICB cb, gpointer user_data, guint *req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (filter, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (address, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- return location_map_ielement_search_poi_by_freeform (LOCATION_MAP_IELEMENT(obj), filter, address, svc_pref, pref, cb, user_data, req_id);
-}
-
-EXPORT_API int
-location_map_cancel_poi_request (LocationMapObject *obj, guint req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- return location_map_ielement_cancel_poi_request (LOCATION_MAP_IELEMENT(obj), req_id);
-}
-
-EXPORT_API int
-location_map_request_route (LocationMapObject *obj, LocationPosition *origin, LocationPosition *destination,
- GList *waypoint, const LocationRoutePreference * pref,
- LocationRouteCB cb, gpointer user_data, guint * req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (origin, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (destination, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (pref, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (cb, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (req_id, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- LocationMapPref *svc_pref = location_map_get_service_pref (obj);
-
- return location_map_ielement_request_route (LOCATION_MAP_IELEMENT(obj), origin, destination,
- waypoint, svc_pref, pref, cb, user_data, req_id);
-}
-
-EXPORT_API int
-location_map_cancel_route_request (LocationMapObject *obj, guint req_id)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- return location_map_ielement_cancel_route_request (LOCATION_MAP_IELEMENT(obj), req_id);
-}
-
-EXPORT_API gboolean
-location_map_is_supported_provider_capability (LocationMapObject *obj, LocationMapServiceType type)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- return location_map_ielement_is_supported_provider_capability (LOCATION_MAP_IELEMENT(obj), type);
-}
-
-EXPORT_API int
-location_map_get_provider_capability_key (LocationMapObject *obj, LocationMapServiceType type, GList **key)
-{
- g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (key, LOCATION_ERROR_PARAMETER);
- g_return_val_if_fail (is_connected_network(), LOCATION_ERROR_NETWORK_NOT_CONNECTED);
-
- return location_map_ielement_get_provider_capability_key (LOCATION_MAP_IELEMENT(obj), type, key);
-}
-
-EXPORT_API LocationMapPref *
-location_map_get_service_pref (LocationMapObject *obj)
-{
- g_return_val_if_fail (obj, NULL);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, NULL);
-
- return map_service_get_pref (obj);
-}
-
-EXPORT_API gboolean
-location_map_set_service_pref (LocationMapObject *obj, LocationMapPref *pref)
-{
- g_return_val_if_fail (obj, FALSE);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (pref, FALSE);
-
- return map_service_set_pref (obj, pref);
-}
-
-EXPORT_API GList *
-location_map_get_supported_providers (LocationMapObject *obj)
-{
- g_return_val_if_fail (obj, NULL);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
-
- return map_service_get_supported_providers (obj);
-}
-
-EXPORT_API gchar *
-location_map_get_default_provider (LocationMapObject *obj)
-{
- g_return_val_if_fail (obj, NULL);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
-
- return map_service_get_default_provider(obj);
-}
-
-EXPORT_API gboolean
-location_map_set_provider (LocationMapObject *obj, gchar *provider)
-{
- g_return_val_if_fail (obj, NULL);
- g_return_val_if_fail (G_OBJECT_TYPE(obj) == MAP_TYPE_SERVICE, LOCATION_ERROR_NOT_AVAILABLE);
-
- return map_service_set_provider (obj, provider);
-}
-
diff --git a/location/map-service/location-map-service.h b/location/map-service/location-map-service.h
deleted file mode 100644
index 2482e84..0000000
--- a/location/map-service/location-map-service.h
+++ /dev/null
@@ -1,1287 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __LOCATION_MAP_SERVICE_H__
-#define __LOCATION_MAP_SERVICE_H__
-
-
-#include <glib.h>
-#include <location-map-pref.h>
-#include <location-map-types.h>
-#include <location-address.h>
-#include <location-poi.h>
-#include <location-route.h>
-#include <location-landmark.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-map-service.h
- * @brief This file contains the Location API and related structure and enumeration.
- */
-/**
- * @addtogroup LocationFW
- * @{
- * @defgroup LocationMapService Location Map Service API
- * @brief This sub module provides the Location Map Service API.
- * @addtogroup LocationMapService
- * @{
- */
-
-/**
-* @brief
-* Create Map Object.
-* @remarks location_init should be called before.
-* @pre None.
-* @post None.
-* @param [in]
-* provider - map provider. A default provider will be provided if NULL.
-*/
-LocationMapObject *location_map_new (const char *provider);
-
-/**
-* @brief
-* Free Map Object.
-* @remarks location_map_new should be called before.
-*/
-int location_map_free (LocationMapObject *obj);
-
-/**
- * @brief
- * Get current position information with estimate of the accuracy by using given address information.
- * @remarks Out parameters are should be freed.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * address - a #LocationAddress
- * @param [out]
- * position_list - a list of #LocationPosition
- * @param [out]
- * accuracy_list - a list of #LocationAccuracy
- * @return int
- * @retval 0 Success.
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_position_from_address_async\n
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- location_position_free (pos);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_accuracy_free (acc);
- }
-
-}
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- location_position_free (pos);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_accuracy_free (acc);
- }
-}
-
-int main (int argc, char *argv[])
-{
- LocationMapObject *loc = NULL;
- int ret = LOCATION_ERROR_NONE;
-
- location_init ();
- loc = location_map_new (NULL);
- if(!loc){
- g_debug("location_map_new failed");
- return -1;
- }
-
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- LocationAddress *addr = NULL;
-
- addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- if (LOCATION_ERROR_NONE == location_map_get_position_from_address(loc, addr, &pos_list, &acc_list)) {
-
- } else g_warning ("SYNC>> position from address> failed");
- location_address_free (addr);
- g_list_foreach (pos_list, PrintPos, NULL);
- g_list_foreach (acc_list, PrintAcc, NULL);
- g_list_free (pos_list);
- g_list_free (acc_list);
- location_map_free (loc);
- return 0;
-}
- * @endcode
- */
-int location_map_get_position_from_address (LocationMapObject *obj, const LocationAddress *address, GList **position_list, GList **accuracy_list);
-
-/**
- * @brief
- * Get current position information asynchronously with estimate of the accuracy by using given address information.
- * @remarks None.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have glib or ecore main loop.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * address - a #LocationAddress
- * @param [in]
- * callback - A pointer of function which will be called after position is gained or when an error occurs.
- * @param [in]
- * userdata - data to pass to function
- * @return int
- * @retval 0 Success.
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_position_from_address\n
- * @par Example
- * @code
-#include <location-map-service.h>
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- }
-}
-static void
-cb_position_from_address (LocationError error, GList *position_list, GList *accuracy_list, gpointer userdata)
-{
- if (position_list && accuracy_list) {
- g_list_foreach (position_list, PrintPos);
- g_list_foreach (accuracy_list, PrintAcc);
- }
-}
-
-void get_position_from_address(LocationMapObject* loc)
-{
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- //Calling application must have an active data connection before using this function.
- if (LOCATION_ERROR_NONE == location_map_get_position_from_address_async(loc, addr, cb_position_from_address, loc))
- g_debug("location_map_get_position_from_address_async() success");
- else g_warning ("location_map_get_position_from_address_async() failed");
- location_address_free (addr);
-}
- * @endcode
- */
-int location_map_get_position_from_address_async (LocationMapObject *obj, const LocationAddress *address, LocationPositionCB callback, gpointer userdata);
-
-/**
- * @brief
- * Get current position information with estimate of the accuracy by using given free-formed address string.
- * @remarks Out parameters are should be freed.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * address - Free-formed address string to be used
- * @param [out]
- * position_list - a list of #LocationPosition
- * @param [out]
- * accuracy_list - a list of #LocationAccuracy
- * @return int
- * @retval 0 Success
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_position_from_freeformed_address_async\n
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- location_position_free (pos);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_accuracy_free (acc);
- }
-}
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- location_position_free (pos);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_accuracy_free (acc);
- }
-}
-
-int main (int argc, char *argv[])
-{
- LocationMapObject *loc = NULL;
- int ret = LOCATION_ERROR_NONE;
-
- location_init ();
- loc = location_map_new (NULL);
- if(!loc){
- g_debug("location_map_new failed");
- return -1;
- }
-
- GList *pos_list = NULL;
- GList *acc_list = NULL;
- char* addr_str = g_strdup("4 N 2nd Street 95113");
-
- //Calling application must have an active data connection before using this function.
- if (LOCATION_ERROR_NONE == location_map_get_position_from_freeformed_address(loc, addr_str, &pos_list, &acc_list)) {
- g_list_foreach (pos_list, PrintPos, NULL);
- g_list_foreach (acc_list, PrintAcc, NULL);
- g_list_free (pos_list);
- g_list_free (acc_list);
- } else g_warning ("SYNC>> position from freeformed address> failed");
- g_free(addr_str);
-
- location_free (loc);
- return 0;
-}
- * @endcode
- */
-int location_map_get_position_from_freeformed_address (LocationMapObject *obj, const gchar *address, GList **position_list, GList **accuracy_list);
-
-/**
- * @brief
- * Get current position information asynchronously with estimate of the accuracy by using given free-formed address string.
- * @remarks None.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have glib or ecore main loop.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * address - Free-formed address string to be used
- * @param [in]
- * callback - A pointer of function which will be called after position is gained or when an error occurs.
- * @param [in]
- * userdata - data to pass to function
- * @return int
- * @retval 0 Success
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_position_from_freeformed_address\n
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static void PrintPos (gpointer data, gpointer user_data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) {
- g_debug("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
- }
-}
-
-static void PrintAcc (gpointer data, gpointer user_data)
-{
- LocationAccuracy *acc = (LocationAccuracy *)data;
-
- if (acc) {
- g_debug("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- }
-}
-
-static void
-cb_position_from_freeformed_address (LocationError error, GList *position_list, GList *accuracy_list, gpointer userdata)
-{
- if (position_list && accuracy_list) {
- g_list_foreach (position_list, PrintPos);
- g_list_foreach (accuracy_list, PrintAcc);
- }
-}
-
-void get_position_from_address(LocationMapObject* loc)
-{
- gchar *addr_str = g_strdup("4 N 2nd Street 95113");
- //Calling application must have an active data connection before using this function.
- if (LOCATION_ERROR_NONE == location_map_get_position_from_freeformed_address_async(loc, addr_str, cb_position_from_freeformed_address, loc))
- g_debug("location_map_get_position_from_freeformed_address_async() success");
- else g_warning ("location_map_get_position_from_freeformed_address_async() failed");
- g_free(addr_str);
-
-}
- * @endcode
- */
-int location_map_get_position_from_freeformed_address_async (LocationMapObject *obj, const gchar *address, LocationPositionCB callback, gpointer userdata);
-
-/**
- * @brief
- * Get current address information with estimate of the accuracy by using given position information.
- * @remarks Out parameters are should be freed.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * position - a #LocationPosition
- * @param [out]
- * address - a new #LocationAddress
- * @param [out]
- * accuracy - a new #LocationAccuracy
- * @return int
- * @retval 0 Success
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_address_from_position_async\n
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-static GMainLoop *loop = NULL;
-
-int
-main (int argc, char *argv[])
-{
- LocationMapObject *loc = NULL;
- int ret = LOCATION_ERROR_NONE;
-
- location_init ();
-
- loop = g_main_loop_new (NULL, TRUE);
-
- loc = location_map_new (NULL);
- if(!loc){
- g_debug("location_map_new failed");
- return -1;
- }
-
- LocationPosition *pos = NULL;
- LocationAccuracy *acc = NULL;
- LocationAddress *addr = NULL;
-
- //Calling application must have an active data connection before using this function.
- pos = location_position_new (0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- if (LOCATION_ERROR_NONE == location_map_get_address_from_position(loc, pos, &addr, &acc)) {
- g_debug ("SYNC>> address from position> %s %s %s %s %s %s %s",
- addr->building_number, addr->street, addr->district, addr->city, addr->state, addr->postal_code, addr->country_code);
- g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_address_free(addr);
- location_accuracy_free(acc);
- } else g_warning ("SYNC>> address from position> failed");
- location_position_free (pos);
- location_map_free (loc);
-}
- * @endcode
- */
-int location_map_get_address_from_position (LocationMapObject *obj, const LocationPosition *position, LocationAddress **address, LocationAccuracy **accuracy);
-
-/**
- * @brief
- * Get current address information asynchronously with estimate of the accuracy by using given position information.
- * @remarks None.
- * @pre
- * #location_init should be called before.\n
- * Calling application must have glib or ecore main loop.\n
- * Calling application must have an active data connection.
- * @post None.
- * @param [in]
- * obj - a #LocationMapObject created by #location_map_new
- * @param [in]
- * position - a #LocationPosition
- * @param [in]
- * callback - A pointer of function which will be called after address is gained or when an error occurs.
- * @param [in]
- * userdata - data to pass to function
- * @return int
- * @retval 0 Success
- *
- * Please refer #LocationError for more information.
- * @see
- * location_map_get_address_from_position\n
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-static GMainLoop *loop = NULL;
-
-static void
-cb_address_from_position (LocationError error, LocationAddress *addr, LocationAccuracy *acc, gpointer userdata)
-{
- g_debug ("ASYNC>> location_map_get_address_from_position_async> %s %s %s %s %s %s %s",
- addr->building_number, addr->street, addr->district, addr->city, addr->state, addr->postal_code, addr->country_code);
- g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
-}
-
-void get_address_from_position(LocationMapObject* loc)
-{
- LocationPosition *pos = location_position_new (0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- //Calling application must have an active data connection before using this function.
- if (LOCATION_ERROR_NONE == location_map_get_address_from_position_async(loc, pos, cb_address_from_position, loc))
- g_debug("location_map_get_address_from_position_async() success");
- else g_warning ("location_map_get_address_from_position_async() failed");
- location_position_free (pos);
-}
- * @endcode
- */
-int location_map_get_address_from_position_async (LocationMapObject *obj, const LocationPosition *position, LocationAddressCB callback, gpointer userdata);
-
-/**
- * @brief Request a search service from service provider.
- * @remarks refer #LocationLandmark
- * @pre #location_init should be called before.\n
- * #location_poi_pref_new should be set before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] filter - a #LocaitonPOIFilter created by #location_poi_filter_new
- * @param [in] position - a #LocationPosition
- * @param [in] pref - a #LocationPOIPreference created by #location_poi_pref_new
- * @param [in] cb - #LocationPOICB
- * @param [in] user_data - data to pass to function
- * @param [out] req_id - a guint
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static GMainLoop *loop = NULL;
-
-void PrintLandmarkCb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationLandmark *landmark = (LocationLandmark *)data;
-
- g_debug ("id[%d], Priority[%d], Name:[%s], Author[%s], Phone[%s], Category[%s]\n", location_landmark_get_id (landmark),
- location_landmark_get_priority(landmark),
- location_landmark_get_name(landmark),
- location_landmark_get_author(landmark),
- location_landmark_get_phone_number(landmark),
- location_landmark_get_category(landmark));
-}
-
-static void poi_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE || landmark_list == NULL) {
- g_debug ("Fail to get poi. Error[%d], ErrCode[%s], ErrMsg[%s]", error, error_code, error_msg);
- return;
- }
- g_list_foreach (landmark_list, PrintLandmarkCb, NULL);
-}
-
-void search_poi(LocationMapObject* loc)
-{
- int ret = 0;
- guint req_id = 0;
- LocationPosition *pos = location_position_new (0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- LocationPOIFilter *filter = location_poi_filter_new();
- LocationPOIPreference *pref = location_poi_pref_new();
-
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
-
- location_poi_pref_set_max_result(pref, 5);
- location_poi_pref_set_sort_by(pref, "name");
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_map_search_poi (loc, filter, pos, pref, poi_cb, loc, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to get poi. Error[%d]", ret);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_position_free(pos);
-
-}
- * @endcode
- */
-int location_map_search_poi (LocationMapObject *obj, const LocationPOIFilter * filter, const LocationPosition *position, const LocationPOIPreference * pref, LocationPOICB cb, gpointer user_data, guint * req_id);
-
-/**
- * @brief Request a search service with area filter from service provider.
- * @remarks refer #LocationLandmark
- * @pre #location_init should be called before.\n
- * #location_poi_pref_new should be set before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] filter - a #LocaitonPOIFilter created by #location_poi_filter_new
- * @param [in] boundary - a #LocationBoundary
- * @param [in] pref - a #LocationPOIPreference created by #location_poi_pref_new
- * @param [in] cb - #LocationPOICB
- * @param [in] user_data - data to pass to function
- * @param [out] req_id - a guint
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static GMainLoop *loop = NULL;
-
-void PrintLandmarkCb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationLandmark *landmark = (LocationLandmark *)data;
-
- g_debug ("id[%d], Priority[%d], Name:[%s], Author[%s], Phone[%s], Category[%s]\n", location_landmark_get_id (landmark),
- location_landmark_get_priority(landmark),
- location_landmark_get_name(landmark),
- location_landmark_get_author(landmark),
- location_landmark_get_phone_number(landmark),
- location_landmark_get_category(landmark));
-}
-
-static void poi_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE || landmark_list == NULL) {
- g_debug ("Fail to get poi. Error[%d], ErrCode[%s], ErrMsg[%s]", error, error_code, error_msg);
- return;
- }
- g_list_foreach (landmark_list, PrintLandmarkCb, NULL);
-}
-
-void search_poi(LocationMapObject* loc)
-{
- int ret = 0;
- guint req_id = 0;
-
- LocationPosition* rb = location_position_new (0, 37.300, -121.86, 0, LOCATION_STATUS_2D_FIX);
- LocationPosition* lt = location_position_new (0, 37.360, -121.92, 0, LOCATION_STATUS_2D_FIX);
- LocationBoundary *bbox = location_boundary_new_for_rect (lt, rb);
- LocationPOIFilter *filter = location_poi_filter_new();
- LocationPOIPreference *pref = location_poi_pref_new();
-
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
-
- location_poi_pref_set_max_result(pref, 5);
- location_poi_pref_set_sort_by(pref, "name");
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_map_search_poi_by_area (loc, filter, bbox, pref, poi_cb, loc, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to get poi. Error[%d]", ret);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_boundary_free (bbox);
-}
- * @endcode
- */
-int location_map_search_poi_by_area (LocationMapObject *obj, const LocationPOIFilter * filter, const LocationBoundary * boundary, const LocationPOIPreference * pref, LocationPOICB cb, gpointer user_data, guint * req_id);
-
-/**
- * @brief Request a search service with address filter from service provider.
- * @remarks refer #LocationLandmark
- * @pre #location_init should be called before.\n
- * #location_poi_pref_new should be set before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] filter - a #LocaitonPOIFilter created by #location_poi_filter_new
- * @param [in] address - a #LocationAddress
- * @param [in] pref - a #LocationPOIPreference created by #location_poi_pref_new
- * @param [in] cb - #LocationPOICB
- * @param [in] user_data - data to pass to function
- * @param [out] req_id - a guint
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static GMainLoop *loop = NULL;
-
-void PrintLandmarkCb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationLandmark *landmark = (LocationLandmark *)data;
-
- g_debug ("id[%d], Priority[%d], Name:[%s], Author[%s], Phone[%s], Category[%s]\n", location_landmark_get_id (landmark),
- location_landmark_get_priority(landmark),
- location_landmark_get_name(landmark),
- location_landmark_get_author(landmark),
- location_landmark_get_phone_number(landmark),
- location_landmark_get_category(landmark));
-}
-
-static void poi_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE || landmark_list == NULL) {
- g_debug ("Fail to get poi. Error[%d], ErrCode[%s], ErrMsg[%s]", error, error_code, error_msg);
- return;
- }
- g_list_foreach (landmark_list, PrintLandmarkCb, NULL);
-}
-
-void search_poi(LocationMapObject* loc)
-{
- int ret = 0;
- guint req_id = 0;
-
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- LocationPOIFilter *filter = location_poi_filter_new();
- LocationPOIPreference *pref = location_poi_pref_new();
-
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
-
- location_poi_pref_set_max_result(pref, 5);
- location_poi_pref_set_sort_by(pref, "name");
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_map_search_poi_by_address (loc, filter, addr, pref, poi_cb, loc, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to get poi. Error[%d]", ret);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- location_address_free (addr);
-}
- * @endcode
- */
-int location_map_search_poi_by_address (LocationMapObject *obj, const LocationPOIFilter * filter, const LocationAddress * addr, const LocationPOIPreference * pref, LocationPOICB cb, gpointer user_data, guint * req_id);
-
-/**
- * @brief Request a search service with area filter from service provider.
- * @remarks refer #LocationLandmark
- * @pre #location_init should be called before.\n
- * #location_poi_pref_new should be set before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] filter - a #LocaitonPOIFilter created by #location_poi_filter_new
- * @param [in] address - a freeformed address
- * @param [in] pref - a #LocationPOIPreference created by #location_poi_pref_new
- * @param [in] cb - #LocationPOICB
- * @param [in] user_data - data to pass to function
- * @param [out] req_id - a guint
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static GMainLoop *loop = NULL;
-
-void PrintLandmarkCb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationLandmark *landmark = (LocationLandmark *)data;
-
- g_debug ("id[%d], Priority[%d], Name:[%s], Author[%s], Phone[%s], Category[%s]\n", location_landmark_get_id (landmark),
- location_landmark_get_priority(landmark),
- location_landmark_get_name(landmark),
- location_landmark_get_author(landmark),
- location_landmark_get_phone_number(landmark),
- location_landmark_get_category(landmark));
-}
-
-static void poi_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE || landmark_list == NULL) {
- g_debug ("Fail to get poi. Error[%d], ErrCode[%s], ErrMsg[%s]", error, error_code, error_msg);
- return;
- }
- g_list_foreach (landmark_list, PrintLandmarkCb, NULL);
-}
-
-void search_poi(LocationMapObject* loc)
-{
- int ret = 0;
- guint req_id = 0;
-
- gchar *addr = g_strdup("4 N 2nd Street 95113");
- LocationPOIFilter *filter = location_poi_filter_new();
- LocationPOIPreference *pref = location_poi_pref_new();
-
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
-
- location_poi_pref_set_max_result(pref, 5);
- location_poi_pref_set_sort_by(pref, "name");
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_map_search_poi_by_freeformed_address (loc, filter, addr, pref, poi_cb, loc, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to get poi. Error[%d]", ret);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- g_free (addr);
-}
- * @endcode
- */
-int location_map_search_poi_by_freeformed_address (LocationMapObject *obj, const LocationPOIFilter * filter, const gchar * address, const LocationPOIPreference * pref, LocationPOICB cb, gpointer user_data, guint * req_id);
-
-/**
- * @brief Cancel the previous poi search.
- * @remarks refer #LocationLandmark
- * @pre #location_map_search_poi should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] req_id - a poi request id returned by location_map_search_poi
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static GMainLoop *loop = NULL;
-
-void PrintLandmarkCb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationLandmark *landmark = (LocationLandmark *)data;
-
- g_debug ("id[%d], Priority[%d], Name:[%s], Author[%s], Phone[%s], Category[%s]\n", location_landmark_get_id (landmark),
- location_landmark_get_priority(landmark),
- location_landmark_get_name(landmark),
- location_landmark_get_author(landmark),
- location_landmark_get_phone_number(landmark),
- location_landmark_get_category(landmark));
-}
-
-static void poi_cb(LocationError error, guint req_id, GList * landmark_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE || landmark_list == NULL) {
- g_debug ("Fail to get poi. Error[%d], ErrCode[%s], ErrMsg[%s]", error, error_code, error_msg);
- return;
- }
- g_list_foreach (landmark_list, PrintLandmarkCb, NULL);
-}
-
-void search_poi(LocationMapObject* loc)
-{
- int ret = 0;
- guint req_id = 0;
-
- gchar *addr = g_strdup("4 N 2nd Street 95113");
- LocationPOIFilter *filter = location_poi_filter_new();
- LocationPOIPreference *pref = location_poi_pref_new();
-
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
-
- location_poi_pref_set_max_result(pref, 5);
- location_poi_pref_set_sort_by(pref, "name");
- location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
- ret = location_map_search_poi (loc, filter, addr, pref, poi_cb, loc, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to get poi. Error[%d]", ret);
- }
-
- ret = location_map_cancel_poi_request (loc, req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_debug("Fail to cancel poi request. Err[%d]", ret);
- }
-
- location_poi_filter_free(filter);
- location_poi_pref_free(pref);
- g_free (addr);
-}
- * @endcode
- */
-int location_map_cancel_poi_request (LocationMapObject *obj, guint req_id);
-
-/**
- * @brief Request a route service from service provider.
- * @remarks refer #LocationRoute, #LocationRouteSegment and #LocationRouteStep
- * @pre #location_map_new should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] origin - a #LocationPosition
- * @param [in] destination - a #LocationPosition
- * @param [in] waypoint - a list of #LocationPosition
- * const LocationRoutePreference * pref, LocationRouteCB cb, gpointer user_data, guint * req_id);
- * @param [in] pref - a #LocationRoutePreference created by #location_route_pref_new
- * @param [in] cb - a #LocationRouteCB
- * @param [in] user_data - a gpointer
- * @param [out] req_id - a guint
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static void free_waypoint (gpointer data)
-{
- LocationPosition *pos = (LocationPosition *)data;
-
- if (pos) location_position_free(pos);
-}
-
-static void __print_route_step (gpointer data, gpointer user_data)
-{
- g_printf("+++Step begin\n");
- LocationRouteStep *step = (LocationRouteStep *)data;
-
- const LocationPosition *start = location_route_step_get_start_point(step);
- gdouble start_lat = 0;
- gdouble start_lon = 0;
- if (start) {
- start_lat = start->latitude;
- start_lon = start->longitude;
- } else {
- g_printf("Step start position NULL\n");
- }
- const LocationPosition *end = location_route_step_get_end_point(step);
- gdouble end_lat = 0;
- gdouble end_lon = 0;
- if (end) {
- end_lat = end->latitude;
- end_lon = end->longitude;
- } else {
- g_printf("Step end postion NULL\n");
- }
- const gchar *inst = location_route_step_get_instruction(step);
-
- g_printf("Step: start(%f/%f), end(%f/%f), instruction(%s)\n", start_lat, start_lon, end_lat, end_lon, inst);
-
- g_printf("---Step end\n");
-}
-
-static void print_route_segment (gpointer data, gpointer user_data)
-{
- g_printf("++Segment begin\n");
- LocationRouteSegment *seg = (LocationRouteSegment *)data;
- gdouble seg_dist = location_route_segment_get_distance(seg);
- glong seg_duration = location_route_segment_get_duration(seg);
- const LocationPosition *start = location_route_segment_get_start_point(seg);
- gdouble start_lat = 0;
- gdouble start_lon = 0;
- if (start) {
- start_lat = start->latitude;
- start_lon = start->longitude;
- } else {
- g_printf("Segment start postion NULL\n");
- }
- const LocationPosition *end = location_route_segment_get_end_point(seg);
- gdouble end_lat = 0;
- gdouble end_lon = 0;
- if (end) {
- end_lat = end->latitude;
- end_lon = end->longitude;
- } else {
- g_printf("Segment end postion NULL\n");
- }
- g_printf("Segment info: Distance[%f], Duration[%ld], start(%f/%f), end(%f/%f)\n", seg_dist, seg_duration,
- start_lat, start_lon, end_lat, end_lon);
-
- GList *step_list = location_route_segment_get_route_step(seg);
- GList *tmp_list = (GList *)step_list;
- if (tmp_list) {
- g_list_foreach(tmp_list, print_route_step, NULL);
- }
- g_printf("--Segment end\n");
-}
-
-
-static void print_route_list (gpointer data, gpointer user_data)
-{
- g_printf("+Route begin\n");
- LocationRoute *route = (LocationRoute *)data;
-
- const LocationPosition *start = location_route_get_origin(route);
- gdouble start_lat = 0;
- gdouble start_lon = 0;
- if (start) {
- start_lat = start->latitude;
- start_lon = start->longitude;
- } else {
- g_printf("Route start position NULL\n");
- }
- const LocationPosition *end = location_route_get_destination(route);
- gdouble end_lat = 0;
- gdouble end_lon = 0;
- if (end) {
- end_lat = end->latitude;
- end_lon = end->longitude;
- } else {
- g_printf("Route end position NULL\n");
- }
- g_printf("Route: start(%f/%f), end(%f/%f)\n", start_lat, start_lon, end_lat, end_lon);
-
- gdouble distance = location_route_get_total_distance(route);
- const gchar *dis_unit = location_route_get_distance_unit(route);
- glong duration = location_route_get_total_duration(route);
- const LocationBoundary *bound = location_route_get_bounding_box(route);
- if (bound && bound->type == LOCATION_BOUNDARY_RECT) {
- g_printf("RECT left top[%f-%f], right bottom[%f-%f]\n", bound->rect.left_top->latitude, bound->rect.left_top->longitude,
- bound->rect.right_bottom->latitude, bound->rect.right_bottom->longitude);
- } else {
- g_printf("route boundary not exist, or not RECT\n");
- }
- g_printf ("Distance[%f], Distance unit[%s], Duration[%ld]\n", distance, dis_unit, duration);
-
- GList *seg_list = location_route_get_route_segment(route);
- if (seg_list) {
- g_list_foreach(seg_list, print_route_segment, NULL);
- }
-
- g_printf("-Route end\n");
-}
-
-static void cb_route(LocationError error, guint req_id, GList * route_list, gchar * error_code, gchar * error_msg, gpointer userdata)
-{
- if (error != LOCATION_ERROR_NONE) {
- g_printf("Failed :%d\n", error);
- return;
- }
-
- g_printf("Success, poi_list[0x%x] user_data[0x%x] req_id[%d]\n", (unsigned int)route_list, (unsigned int)userdata, req_id);
- g_list_foreach (route_list, print_route_list, NULL);
-
- if (error_code && error_msg) {
- g_printf("cb_route: error_code[%s], error_msg[%s]\n", error_code, error_msg);
- }
-}
-
-int request_route(LocationMapObject *loc)
-{
- int ret = 0;
- LocationPosition *origin = location_position_new(0, 37.564263, 126.974676, 0, LOCATION_STATUS_2D_FIX); // Seoul city hall
- LocationPosition *destination = location_position_new(0, 37.557120, 126.992410, 0, LOCATION_STATUS_2D_FIX); // NamSan
-
- GList *waypoint = NULL;
- LocationPosition *via_pos = location_position_new(0, 37.560950, 126.986240, 0, LOCATION_STATUS_2D_FIX); // Wangsimli
- waypoint = g_list_append (waypoint, (gpointer)via_pos);
-
- LocationRoutePreference *pref = location_route_pref_new();
- gchar *type = g_strdup("FASTEST");
- location_route_pref_set_route_type(pref, type);
-
- ret = location_request_route(loc, origin, destination, waypoint, pref, cb_route, NULL, &req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_printf("Fail to search route by address. Error[%d]\n", ret);
- } else {
- g_printf("Search Route successfully, req_id %d\n", req_id);
- }
-
- g_free(type);
- g_list_free_full (waypoint, free_waypoint);
- location_position_free(origin);
- location_position_free(destination);
- location_route_pref_free(pref);
-
- return ret;
- }
- * @endcode
- */
-int location_map_request_route (LocationMapObject *obj, LocationPosition *origin, LocationPosition *destination, GList *waypoint, const LocationRoutePreference * pref, LocationRouteCB cb, gpointer user_data, guint * req_id);
-
-/**
- * @brief Cancel the previous route request.
- * @remarks None
- * @pre #location_map_request_route should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] req_id - a route request id returned by location_map_search_route
- * @return int
- * @retval 0 Success
- * Please refer #LocationError for more information.
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-int cancel_route_request (LocationMapObject *loc, guint req_id)
-{
- g_printf("cancel_route_request\n");
-
- int ret = LOCATION_ERROR_NONE;
-
- ret = location_map_cancel_route_request(loc, req_id);
- if (ret != LOCATION_ERROR_NONE) {
- g_printf("Fail to cancel route request. Error[%d]\n", ret);
- }
- else {
- g_printf("location_map_cancel_route_request, req_id %d\n", req_id);
- }
-}
- * @endcode
- */
-int location_map_cancel_route_request (LocationMapObject *obj, guint req_id);
-
-/**
- * @brief Check wheither a map service is available on a service provider
- * @remarks None
- * @pre #location_map_new should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] type - a #LocationMapService
- * @return gboolean
- * @retval TRUE if supported
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-int check_map_service (LocationMapObject *loc)
-{
- g_printf("check_map_service\n");
-
- gboolean is_supported = FALSE;
-
- is_supported = location_map_is_supported_provider_capability(loc, MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID);
- if (is_supported == TRUE) {
- g_printf("Map Service(MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID) is supported.\n");
- }
- else {
- g_printf("Map Service(MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID) is not supported.\n");
- }
-}
- * @endcode
- */
-gboolean location_map_is_supported_provider_capability (LocationMapObject *obj, LocationMapServiceType type);
-
-/**
- * @brief Get Map service key on a service provider
- * @remarks None
- * @pre #location_map_new should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] type - a #LocationMapService
- * @return GList
- * @retval a list of keys
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-static void _print_keys(gpointer data)
-{
- g_return_if_fail(data);
- gchar *key = (gchar *)data;
-
- g_printf("Key[%s] is available now\n", key);
-}
-
-int get_map_service_key (LocationMapObject *loc)
-{
- g_printf("check_map_service\n");
-
- GList *keys = NULL;
-
- keys = location_map_get_provider_capability_key(loc, MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID);
- if (keys) {
- g_list_foreach (keys, _print_keys, NULL);
- g_list_free_full (keys, g_free);
- }
- else {
- g_printf("Map Service(MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID) does not have keys. Need to check whether its service is supported.\n");
- }
-}
- * @endcode
- */
-int location_map_get_provider_capability_key (LocationMapObject *obj, LocationMapServiceType type, GList **key);
-
-/**
- * @brief Get Map service Preference on a service provider
- * @remarks None
- * @pre #location_map_new should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @return #LocationMapPref
- * @retval a preference
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
- int get_map_service_pref (LocationMapObject loc)
- {
- if (!loc) return -1;
-
- LocationMapPref *svc_pref = location_map_get_service_pref (loc);
- if (!svc_pref) return -1;
-
- gchar *name = location_map_pref_get_provider (svc_pref);
- gchar *unit = location_map_pref_get_distance_unit (svc_pref);
- gchar *language = location_map_pref_get_language (svc_pref);
-
- g_printf("provider [%s]: distance unit [%s], languange [%s]\n", name, unit, language);
-
- return 0;
- }
-
- * @endcode
- */
-LocationMapPref *location_map_get_service_pref (LocationMapObject *obj);
-
-/**
- * @brief Set Map service preference on a service provider
- * @remarks None
- * @pre #location_map_new should be called before.
- * @post None.
- * @param [in] obj - a #LocationMapObject created by #location_map_new
- * @param [in] pref = a #LocationMapPref
- * @return gboolean
- * @retval TRUE if success
- * @par Example
- * @code
-#include <location.h>
-#include <location-map-service.h>
-
-int set_map_service_pref (LocationMapObject *loc)
-{
- if (!loc) return -1;
-
- LocationMapPref *svc_pref = location_map_pref_new();
- location_map_pref_set_language (svc_pref, "en");
- location_map_pref_set_distance_unit (svc_pref, "MI");
-
- gboolean ret = location_map_set_service_pref (loc, svc_pref);
- if (!ret) {
- location_map_pref_pref (svc_pref);
- return -1;
- }
- location_map_pref_pref (svc_pref);
- return 0;
-}
- * @endcode
- */
-gboolean location_map_set_service_pref (LocationMapObject *obj, LocationMapPref *pref);
-
-/**
- * @brief Get supported map providers
- * @remarks LocationMapObject should be created before.
- * @pre None.
- * @post None.
- * @param [in] obj - #LocationMapObject
- * @return Glist
- * @retval a list of providers
-*/
-GList *location_map_get_supported_providers (LocationMapObject *obj);
-
-/**
- * @brief Get current default provider
- * @remarks LocationMapObject should be created before.
- * @pre None.
- * @post None.
- * @param [in] obj - LocationMapObject
- * @return gchar
- * @retval provider name
- */
-gchar *location_map_get_default_provider (LocationMapObject *obj);
-
-/**
- * @brief Set current provider
- * @remarks LocationMapObject should be created before.
- * @pre None.
- * @post None.
- * @param [in] obj - LocationMapObject
- * @param [in] provider - gchar
- * @return gboolean
- * @retval TRUE if success
- */
-gboolean location_map_set_provider (LocationMapObject *obj, gchar *provider);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif /* __LOCATION_MAP_SERVICE_H__ */
diff --git a/location/map-service/location-poi.c b/location/map-service/location-poi.c
deleted file mode 100644
index 2ac5cd4..0000000
--- a/location/map-service/location-poi.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-log.h"
-#include "location-types.h"
-#include "location-map-pref.h"
-
-#include "map-service.h"
-
-#include "location-poi.h"
-
-struct _LocationPOIPreference {
- guint max_result_cnt; ///< Maximum number of results
- LocationPOIPrefSortOrder sort_order; ///< Sort order
- gchar* item; ///< Sory by item
- GHashTable *properties;
-};
-
-struct _LocationPOIFilter {
- // "CATEGORY", "KEYWORD", "POINAME"
- GHashTable *properties;
-};
-
-EXPORT_API guint
-location_poi_pref_get_max_result (const LocationPOIPreference *pref)
-{
- g_return_val_if_fail(pref, 0);
-
- return pref->max_result_cnt;
-}
-
-EXPORT_API gchar *
-location_poi_pref_get_sort_by (const LocationPOIPreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->item;
-}
-
-EXPORT_API LocationPOIPrefSortOrder
-location_poi_pref_get_sort_order (const LocationPOIPreference *pref)
-{
- g_return_val_if_fail(pref, LOCATION_POI_PRE_SO_NONE);
-
- return pref->sort_order;
-}
-
-EXPORT_API GList *
-location_poi_pref_get_property_key (const LocationPOIPreference *pref)
-{
- g_return_val_if_fail (pref, NULL);
- if (!pref->properties) return NULL;
-
- return g_hash_table_get_keys (pref->properties);
-}
-
-EXPORT_API gpointer
-location_poi_pref_get_property (const LocationPOIPreference *pref, gconstpointer key)
-{
- g_return_val_if_fail (pref, NULL);
- g_return_val_if_fail (key, NULL);
-
- if (!pref->properties) return NULL;
-
- return g_hash_table_lookup (pref->properties, key);
-}
-
-
-EXPORT_API gboolean
-location_poi_pref_set_max_result (LocationPOIPreference *pref, guint max_num)
-{
- g_return_val_if_fail(pref, FALSE);
- g_return_val_if_fail(max_num > 0, FALSE);
-
- pref->max_result_cnt = max_num;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_poi_pref_set_sort_by(LocationPOIPreference * pref, const gchar * item)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->item) {
- g_free(pref->item);
- pref->item = NULL;
- }
-
- if (item) pref->item = g_strdup(item);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_poi_pref_set_sort_order (LocationPOIPreference *pref, LocationPOIPrefSortOrder sort_order)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (sort_order < LOCATION_POI_PREF_SO_ASC || sort_order > LOCATION_POI_PREF_SO_DESC) return FALSE;
-
- pref->sort_order = sort_order;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_poi_pref_set_property (LocationPOIPreference *pref, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(pref, FALSE);
- g_return_val_if_fail(key, FALSE);
- g_return_val_if_fail(pref->properties, FALSE);
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (pref->properties, re_key, re_val);
- } else g_hash_table_remove (pref->properties, key);
-
- return TRUE;
-}
-
-EXPORT_API LocationPOIPreference *
-location_poi_pref_new (void)
-{
- LocationPOIPreference *pref = g_slice_new0 (LocationPOIPreference);
- g_return_val_if_fail(pref, NULL);
-
- pref->sort_order = LOCATION_POI_PREF_SO_ASC;
- pref->max_result_cnt = 25;
- pref->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return pref;
-}
-
-static void poi_pref_property_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- LocationPOIPreference *pref = (LocationPOIPreference *) user_data;
- if (pref->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (pref->properties, re_key, re_val);
- }
-}
-
-EXPORT_API LocationPOIPreference *
-location_poi_pref_copy (LocationPOIPreference *pref)
-{
- LocationPOIPreference *new_pref = location_poi_pref_new();
- g_return_val_if_fail (new_pref, NULL);
-
- location_poi_pref_set_sort_by(new_pref, location_poi_pref_get_sort_by(pref));
- location_poi_pref_set_sort_order(new_pref, location_poi_pref_get_sort_order(pref));
- location_poi_pref_set_max_result(new_pref, location_poi_pref_get_max_result(pref));
-
- g_hash_table_foreach (pref->properties, poi_pref_property_copy_cb ,new_pref);
-
- return new_pref;
-}
-
-EXPORT_API void
-location_poi_pref_free (LocationPOIPreference * pref)
-{
- g_return_if_fail(pref);
-
- location_poi_pref_set_sort_by(pref, NULL);
- if (pref->properties) g_hash_table_destroy (pref->properties);
-
- g_slice_free(LocationPOIPreference, pref);
-}
-
-EXPORT_API gboolean
-location_poi_filter_set (const LocationPOIFilter *filter, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(filter, FALSE);
- g_return_val_if_fail(key, FALSE);
-
- if (filter->properties) {
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (filter->properties, re_key, re_val);
- } else g_hash_table_remove (filter->properties, key);
- }
- else
- return FALSE;
-
- return TRUE;
-}
-
-EXPORT_API gpointer
-location_poi_filter_get (const LocationPOIFilter *filter, gconstpointer key)
-{
- g_return_val_if_fail(filter, NULL);
- g_return_val_if_fail(key, NULL);
-
- if (filter->properties) {
- return g_hash_table_lookup (filter->properties, key);
- }
- return NULL;
-}
-
-EXPORT_API GList *
-location_poi_filter_get_key (const LocationPOIFilter *filter)
-{
- g_return_val_if_fail(filter, NULL);
-
- if (filter->properties) {
- return g_hash_table_get_keys (filter->properties);
- }
-
- return NULL;
-}
-
-EXPORT_API LocationPOIFilter *
-location_poi_filter_new (void)
-{
- LocationPOIFilter *filter = g_slice_new0(LocationPOIFilter);
- g_return_val_if_fail (filter, NULL);
-
- filter->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return filter;
-}
-
-static void poi_filter_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- LocationPOIFilter *filter = (LocationPOIFilter *) user_data;
- if (filter->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (filter->properties, re_key, re_val);
- }
-}
-
-EXPORT_API LocationPOIFilter *
-location_poi_filter_copy (LocationPOIFilter *filter)
-{
- g_return_val_if_fail (filter, NULL);
-
- LocationPOIFilter * new_filter = location_poi_filter_new();
- g_return_val_if_fail (new_filter, NULL);
-
- if (new_filter->properties) g_hash_table_foreach (filter->properties, poi_filter_copy_cb, new_filter);
-
- return new_filter;
-}
-
-EXPORT_API void
-location_poi_filter_free (LocationPOIFilter *filter)
-{
- g_return_if_fail(filter);
-
- if (filter->properties) {
- g_hash_table_destroy (filter->properties);
- filter->properties = NULL;
- }
- g_slice_free(LocationPOIFilter, filter);
-}
diff --git a/location/map-service/location-poi.h b/location/map-service/location-poi.h
deleted file mode 100644
index 9f0e0e0..0000000
--- a/location/map-service/location-poi.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_POI_H__
-#define __LOCATION_POI_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-poi.h
- * @brief This file contains the internal definitions and structures related to POI.
- */
-
-/**
- * @addtogroup LocationMapService
- * @{
- * @defgroup LocationMapServicePOI Location POI
- * @brief This is a location POI for providing location map services.
- * @addtogroup LocationMapServicePOI
- * @{
- */
-
-typedef enum {
- LOCATION_POI_PRE_SO_NONE, ///< None of sorting the results in order.
- LOCATION_POI_PREF_SO_ASC, ///< A constant for sorting the results in ascending order
- LOCATION_POI_PREF_SO_DESC ///< A constant for sorting the results in descending order
-} LocationPOIPrefSortOrder;
-
-/**
- * @brief Retrive LocationPreperence that the given LocationPOIPreference inherits.
- */
-
-/**
- * @brief Create a new LocationPOIPreference
- * @remarks None.
- * @pre None
- * @post None.
- * @return #LocationPOIPreference
- * @retval NULL if error occured
- * @see location_location_poi_pref_free
- *
- */
-LocationPOIPreference *location_poi_pref_new (void);
-
-/**
- * @brief Copy a LocationPOIPreference
- * @remarks None.
- * @pre None
- * @post None.
- * @return #LocationPOIPreference
- * @retval NULL if error occured
- * @see location_location_poi_pref_free
- *
- */
-LocationPOIPreference *location_poi_pref_copy (LocationPOIPreference *pref);
-
-/**
- * @brief Free a LocationPOIPreference
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return void
- * @retval NULL if error occured
- * @see location_location_poi_pref_set_pref
- */
-void location_poi_pref_free (LocationPOIPreference * pref);
-
-/**
- * @brief Get the maximum number of results for poi service.
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return guint
- * @retval 0 if error occured
- * @see location_poi_pref_set_max_result
- */
-guint location_poi_pref_get_max_result (const LocationPOIPreference * pref);
-
-/**
- * @brief Get the sort criterion for poi service.
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return gchar
- * @retval sorting item
- * @see location_poi_pref_set_sort_by
- */
-gchar *location_poi_pref_get_sort_by (const LocationPOIPreference * pref);
-
-/**
- * @brief Get the sort order for poi service.
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return LocationPOIPrefSortOrder
- * @retval sort order
- * @see location_poi_pref_set_sort_order
- */
-LocationPOIPrefSortOrder location_poi_pref_get_sort_order (const LocationPOIPreference * pref);
-
-/**
- * @brief Get the property keys of poi preference
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return GList
- * @retval list of property key
- * @see location_poi_pref_set_property
- */
-GList *location_poi_pref_get_property_key (const LocationPOIPreference *pref);
-
-/**
- * @brief Get the property of poi preference
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @param [in] key - gconstpointer
- * @return gconstpointer
- * @retval property value
- * @see location_poi_pref_set_property
- */
-gpointer location_poi_pref_get_property (const LocationPOIPreference *pref, gconstpointer key);
-
-
-/**
- * @brief Set the maximum number of results for poi service.
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @return gboolean
- * @retval TRUE if success
- * @see location_poi_pref_get_max_result
- */
-gboolean location_poi_pref_set_max_result (LocationPOIPreference * pref, guint max_num);
-
-/**
- * @brief Set the sort criterion for poi service.
- * @remarks The previous item of the #LocationPOIPreference will be removed if an item is NULL.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @param [in] item - gchar or NULL if reset
- * @return gboolean
- * @retval TRUE if success
- * @see location_poi_pref_get_sort_by
- */
-gboolean location_poi_pref_set_sort_by (LocationPOIPreference * pref, const gchar * item);
-
-/**
- * @brief Set the sort order for poi service.
- * @remarks None.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @param [in] sort_order - #LocationPOIPrefSortOrder
- * @return gboolean
- * @retval TRUE if success
- * @see location_poi_pref_get_sort_order
- */
-gboolean location_poi_pref_set_sort_order (LocationPOIPreference *pref, LocationPOIPrefSortOrder sort_order);
-
-/**
- * @brief Set property of poi preference.
- * @remarks The previous value of the #LocationPOIPreference matching to key will be removed if an value is NULL.
- * @pre #location_poi_pref_new should be called before.
- * @post None.
- * @param [in] pref - #LocationPOIPreference
- * @param [in] key - gconstpoiner
- * @param [in] value - gconstpointer or NULL if reset
- * @return gboolean
- * @retval TRUE if success
- * @see location_poi_pref_get_property
- */
-gboolean location_poi_pref_set_property (LocationPOIPreference *pref, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Create a new LocationPOIFilter
- * @remarks None
- * @pre #location_init should be called before.
- * @post None.
- * @return a new #LocationPOIFilter
- * @retval NULL if error occured
- * @see location_poi_filter_free
- */
-LocationPOIFilter *location_poi_filter_new (void);
-
-/**
- * @brief Copy a LocationPOIFilter
- * @remarks None
- * @pre #location_init should be called before.
- * @post None.
- * @return a #LocationPOIFilter
- * @retval NULL if error occured
- * @see location_poi_filter_new
- */
-LocationPOIFilter *location_poi_filter_copy (LocationPOIFilter *filter);
-
-/**
- * @brief Free a LocationPOIFilter
- * @remarks None
- * @pre #location_new should be called before.
- * @post None.
- * @param [in] filter - #LocationPOIFilter
- * @return None
- * @see location_poi_filter_new
- */
-void location_poi_filter_free (LocationPOIFilter *filter);
-
-/**
- * @brief Set filter for poi service
- * @remarks The previous value of the #LocationPOIFilter matching to key will be removed if an value is NULL.
- * @pre #location_poi_filter_new should be called before.
- * @post None.
- * @param [in] filter - #LocationPOIFilter
- * @param [in] key - gconstpointer
- * @param [in] value - gconstpointer or NULL if reset
- * @return gboolean
- * @retval TRUE if success
- * @see location_poi_filter_get
- */
-gboolean location_poi_filter_set (const LocationPOIFilter *filter, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Get filter for poi service
- * @remarks None
- * @pre #location_poi_filter_new should be called before.
- * @post None.
- * @param [in] filter - #LocationPOIFilter
- * @param [in] key - gconstpointer
- * @return gconstpointer
- * @retval Filter property key
- * @see location_poi_filter_set
- */
-gpointer location_poi_filter_get (const LocationPOIFilter *filter, gconstpointer key);
-
-/**
- * @brief Get keys in the given filter
- * @remarks The content of returned list is owned by the poi filter and should not be modified or freed. \n
- * Use g_list_free when done using the returned.
- * @pre #location_poi_filter_new should be called before.
- * @post None.
- * @param [in] filter - #LocationPOIFilter
- * @return GList
- * @retval Filter key
- * @see None
- */
-GList *location_poi_filter_get_key (const LocationPOIFilter *filter);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-route-ext.h b/location/map-service/location-route-ext.h
deleted file mode 100644
index fa73408..0000000
--- a/location/map-service/location-route-ext.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_ROUTE_EXT_H__
-#define __LOCATION_ROUTE_EXT_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-route-ext.h
- * @brief This file contains the extensional definitions and structures related to Route.
- */
-/**
- * @addtogroup LocationMapServiceRoute
- * @{
- * @defgroup LocationMapServiceRouteExt Location Route Ext
- * @brief This provides Location Route Ext APIs.
- * @addtogroup LocationMapServiceRouteExt
- * @{
- */
-
-/**
- * @brief Set the origin #LocationPosition of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous origin of the #LocationRoute will be removed if an origin is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] origin - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_origin
- */
-gboolean location_route_set_origin (LocationRoute *route, const LocationPosition* origin);
-
-/**
- * @brief Set the destication #LocationPosition of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous destination of the #LocationRoute will be removed if an destination is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] destination - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_destination
- */
-gboolean location_route_set_destination (LocationRoute *route, const LocationPosition* destination);
-
-/**
- * @brief Set the bounding box #LocationBoundary of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous bbox of the #LocationRoute will be removed if an bbox is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] bbox - a #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_bounding_box
- */
-gboolean location_route_set_bounding_box (LocationRoute *route, const LocationBoundary* bbox);
-/**
- * @brief Set the distance of #LocationRoute
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] total_distance - gdouble
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_total_distance
- */
-gboolean location_route_set_total_distance (LocationRoute *route, gdouble total_distance);
-
-/**
- * @brief Set the distance unit of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous distance unit of the #LocationRoute will be removed if an distance_unit is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] distance_unit - gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_distance_unit
- */
-gboolean location_route_set_distance_unit (LocationRoute *route, const gchar* distance_unit);
-
-/**
- * @brief Set the duration of #LocationRoute
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] total_duration - glong
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_total_duration
- */
-gboolean location_route_set_total_duration (LocationRoute *route, glong total_duration);
-
-/**
- * @brief Set the propery value of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous value of the #LocationRoute matching to key will be removed if an value is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] key - gconstpointer
- * @param [in] value - gconstpointer
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_property
- */
-gboolean location_route_set_property (LocationRoute *route, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Set the list of segments #LocationRouteSegment of #LocationRoute
- * @remarks The service provider should support route service.\n
- * The previous route segment of the #LocationRoute will be removed if an segment is NULL.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @param [in] segment - a list of #LocationRouteSegment
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_get_route_segment
- */
-gboolean location_route_set_route_segment (LocationRoute *route, GList* segment);
-
-/**
- * @brief Set the start point #LocationPosition of #LocationRouteSegment
- * @remarks The service provider should support route service.\n
- * The previous start point of the #LocationRouteSegment will be removed if a start is NULL.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] start - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_start_point
- */
-gboolean location_route_segment_set_start_point (LocationRouteSegment *segment, const LocationPosition *start);
-
-/**
- * @brief Set the end point #LocationPosition of #LocationRouteSegment
- * @remarks The service provider should support route service.\n
- * The previous end point of the #LocationRouteSegment will be removed if an end is NULL.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] end - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_end_point
- */
-gboolean location_route_segment_set_end_point (LocationRouteSegment *segment, const LocationPosition *end);
-
-/**
- * @brief Set the bounding box #LocationBoundary of #LocationRouteSegment
- * @remarks The service provider should support route service.\n
- * The previous bbox of the #LocationRouteSegment will be removed if a bbox is NULL.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] bbox - a #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_bounding_box
- */
-gboolean location_route_segment_set_bounding_box (LocationRouteSegment *segment, const LocationBoundary *bbox);
-
-/**
- * @brief Set the distance of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] distance - gdouble
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_distance
- */
-gboolean location_route_segment_set_distance (LocationRouteSegment *segment, gdouble distance);
-
-/**
- * @brief Set the duration of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] duration - glong
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_duration
- */
-gboolean location_route_segment_set_duration (LocationRouteSegment *segment, glong duration);
-
-/**
- * @brief Set the property value of #LocationRouteSegment
- * @remarks The service provider should support route service.\n
- * The previous value of the LocationRouteSegment matching to key will be removed if a value is NULL.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] key - gconstpointer
- * @param [in] value - gconstpointer
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_property
- */
-gboolean location_route_segment_set_property (LocationRouteSegment *segment, gconstpointer key, gconstpointer value);
-
-/**
- * @brief Set the list of route steps #LocationRouteStep in #LocationRouteSegment
- * @remarks The service provider should support route service.\n
- * The previous route step of the #LocationRouteSegment will be removed if a step is NULL.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @param [in] step - a list of #locationRouteStep
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_segment_get_route_step
- */
-gboolean location_route_segment_set_route_step (LocationRouteSegment *segment, GList* step);
-
-/**
- * @brief Set the start point #LocationPosition of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous start point of the #LocationRouteStep will be removed if a start is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] start - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_start_point
- */
-gboolean location_route_step_set_start_point (LocationRouteStep *step, const LocationPosition *start);
-
-/**
- * @brief Set the end point #LocationPosition of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous end point of the #LocationRouteStep will be removed if an end is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] end - a #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_end_point
- */
-gboolean location_route_step_set_end_point (LocationRouteStep *step, const LocationPosition *end);
-
-/**
- * @brief Set the bounding box #LocationBoundary of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous bbox of the #LocationRouteStep will be removed if a bbox is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] bbox - a #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_bounding_box
- */
-gboolean location_route_step_set_bounding_box (LocationRouteStep *step, const LocationBoundary *bbox);
-
-/**
- * @brief Set the distance of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] distance - gdouble
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_distance
- */
-gboolean location_route_step_set_distance (LocationRouteStep *step, gdouble distance);
-
-/**
- * @brief Set the duration of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] duration - glong
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_duration
- */
-gboolean location_route_step_set_duration (LocationRouteStep *step, glong duration);
-
-/**
- * @brief Set the transport mode of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous transport mode of the #LocationRouteStep will be removed if a transport_mode is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] transport_mode - gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_transport_mode
- */
-gboolean location_route_step_set_transport_mode (LocationRouteStep *step, const gchar *transport_mode);
-
-/**
- * @brief Set the instruction of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous instruction of the #LocationRouteStep will be removed if an instruction is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] instruction - gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_instruction
- */
-gboolean location_route_step_set_instruction (LocationRouteStep *step, const gchar *instruction);
-
-/**
- * @brief Set the list of geometry #LocationPosition in #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous geometry of the #LocationRouteStep will be removed if a geometry is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] geometry - a list of #LocationPosition
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_geometry
- */
-gboolean location_route_step_set_geometry (LocationRouteStep *step, GList *geometry);
-
-/**
- * @brief Set the property value of #LocationRouteStep
- * @remarks The service provider should support route service.\n
- * The previous value of the #LocationRouteStep will be removed if a value is NULL.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] key - gconstpointer
- * @param [in] value - gconstpointer
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_step_get_property
- */
-gboolean location_route_step_set_property (LocationRouteStep *step, gconstpointer key, gconstpointer value);
-
-/**
- * @} @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/location-route.c b/location/map-service/location-route.c
deleted file mode 100644
index c76d14f..0000000
--- a/location/map-service/location-route.c
+++ /dev/null
@@ -1,1372 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-types.h"
-#include "location-route.h"
-#include "location-route-ext.h"
-#include "location-boundary.h"
-#include "map-service.h"
-
-
-struct _LocationRoute {
-// gint req_id; //< Request id : for expandability
- LocationPosition *origin; //< Coordinate StartCoord
- LocationPosition *destination; //< Coordinates destCoord
- LocationBoundary *bbox; //< a rectangular geographical area
- gdouble total_distance; //< Total distance
- gchar *distance_unit; //< Distance Unit
- glong total_duration; //< Total duration
- GHashTable *properties; //<Key/Value>
- GList *segment;
-};
-
-//Waypoints
-struct _LocationRouteSegment {
- LocationPosition *start; //< Coordinate StartCoord;
- LocationPosition *end; //< Coordinates destCoord;
- LocationBoundary *bbox; //< a rectangular geographical area
- gdouble distance;
- glong duration;
- GHashTable *properties; //<Key/Value>
- GList *step;
-};
-
-// Each instruction
-struct _LocationRouteStep {
- LocationPosition *start; //< Coordinate StartCoord;
- LocationPosition *end; //< Coordinates destCoord;
- LocationBoundary *bbox; //< a rectangular geographical area
- gdouble distance;
- glong duration;
- gchar *transport_mode;
- gchar *instruction;
- GList *geometry;
-
- GHashTable *properties;
-};
-
-struct _LocationRoutePreference {
- GList* addr_to_avoid;
- GList* area_to_avoid;
- GList* feature_to_avoid;
- GList* freeformed_addr_to_avoid;
- LocationBoundary* bbox;
- guint max_matches_count;
- gchar *distance_unit;
-
- gchar *route_type;
- gchar *transport_mode;
- gboolean is_geometry_used;
- gboolean is_instruction_bounding_box_used;
- gboolean is_instruction_geometry_used;
- gboolean is_instruction_used;
- gboolean is_traffic_data_used;
-
- // AvoidFreeways, Easy, Fastest, MoreFreeways, NoFreeways, Pedestrian, Shortest
- GHashTable *properties;
-
-};
-
-static void route_pref_addr_to_avoid_copy_cb (gpointer data, gpointer user_data)
-{
- g_return_if_fail(data);
- g_return_if_fail(user_data);
-
- LocationAddress *address = (LocationAddress *)data;
- LocationRoutePreference *pref = (LocationRoutePreference *)user_data;
-
- pref->addr_to_avoid = g_list_append (pref->addr_to_avoid, location_address_copy(address));
-}
-
-static void addr_to_avoid_free_cb (gpointer data)
-{
- g_return_if_fail (data);
-
- LocationAddress *addr = (LocationAddress *)data;
-
- location_address_free (addr);
-}
-
-EXPORT_API gboolean
-location_route_pref_set_addr_to_avoid (LocationRoutePreference *pref, GList *addr)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->addr_to_avoid) {
- g_list_free_full (pref->addr_to_avoid, addr_to_avoid_free_cb);
- pref->addr_to_avoid = NULL;
- }
-
- if (addr) g_list_foreach (addr, route_pref_addr_to_avoid_copy_cb, pref);
-
- return TRUE;
-}
-
-static void route_pref_area_to_avoid_copy_cb (gpointer data, gpointer user_data)
-{
- g_return_if_fail(data);
- g_return_if_fail(user_data);
-
- LocationBoundary *area = (LocationBoundary *)data;
- LocationRoutePreference *pref = (LocationRoutePreference *)user_data;
-
- pref->area_to_avoid = g_list_append (pref->area_to_avoid, location_boundary_copy((const LocationBoundary *)area));
-}
-
-static void route_pref_area_to_avoid_free_cb (gpointer data)
-{
- g_return_if_fail (data);
-
- LocationBoundary *boundary = (LocationBoundary *)data;
-
- location_boundary_free (boundary);
-}
-
-EXPORT_API gboolean
-location_route_pref_set_area_to_avoid (LocationRoutePreference *pref, GList *area)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->area_to_avoid) {
- g_list_free_full (pref->area_to_avoid, route_pref_area_to_avoid_free_cb);
- pref->area_to_avoid = NULL;
- }
-
- if (area) g_list_foreach (area, route_pref_area_to_avoid_copy_cb, pref);
-
- return TRUE;
-}
-
-static void route_pref_feature_to_avoid_copy_cb (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
- g_return_if_fail (user_data);
-
- gchar *feature = (gchar *)data;
- LocationRoutePreference *pref = (LocationRoutePreference *) user_data;
-
- pref->feature_to_avoid = g_list_append (pref->feature_to_avoid, g_strdup (feature));
-}
-
-EXPORT_API gboolean
-location_route_pref_set_feature_to_avoid (LocationRoutePreference *pref, GList * feature)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->feature_to_avoid) {
- g_list_free_full (pref->feature_to_avoid, g_free);
- pref->feature_to_avoid = NULL;
- }
-
- g_list_foreach (feature, route_pref_feature_to_avoid_copy_cb, pref);
-
- return TRUE;
-}
-
-static void route_pref_freeforemd_addr_to_avoid_foreach_copy (gpointer data, gpointer user_data)
-{
- g_return_if_fail(data);
- g_return_if_fail(user_data);
-
- gchar *freeformed_addr = (gchar *)data;
- LocationRoutePreference *pref = (LocationRoutePreference *)user_data;
-
- pref->freeformed_addr_to_avoid = g_list_append (pref->freeformed_addr_to_avoid, g_strdup(freeformed_addr));
-}
-
-EXPORT_API gboolean
-location_route_pref_set_freeformed_addr_to_avoid (LocationRoutePreference *pref, GList *freeformed_addr)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->freeformed_addr_to_avoid) {
- g_list_free_full (pref->freeformed_addr_to_avoid, g_free);
- pref->freeformed_addr_to_avoid = NULL;
- }
-
- if (freeformed_addr) g_list_foreach (freeformed_addr, route_pref_freeforemd_addr_to_avoid_foreach_copy, pref);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_bounding_box (LocationRoutePreference *pref, const LocationBoundary *bbox)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->bbox) {
- location_boundary_free (pref->bbox);
- pref->bbox = NULL;
- }
-
- if (bbox) pref->bbox = location_boundary_copy (bbox);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_max_result (LocationRoutePreference *pref, guint max_num)
-{
- g_return_val_if_fail(pref, FALSE);
- g_return_val_if_fail(max_num > 0, FALSE);
-
- pref->max_matches_count = max_num;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_route_type (LocationRoutePreference *pref, const gchar *type)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->route_type) {
- g_free(pref->route_type);
- pref->route_type = NULL;
- }
-
- if (type) pref->route_type = g_strdup (type);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_transport_mode (LocationRoutePreference *pref, const gchar *mode)
-{
- g_return_val_if_fail(pref, FALSE);
-
- if (pref->transport_mode) {
- g_free(pref->transport_mode);
- pref->transport_mode = NULL;
- }
-
- if (mode) pref->transport_mode = g_strdup (mode);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_geometry_used (LocationRoutePreference *pref, gboolean is_used)
-{
- g_return_val_if_fail(pref, FALSE);
-
- pref->is_geometry_used = is_used;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_instruction_bounding_box_used (LocationRoutePreference *pref, gboolean is_used)
-{
- g_return_val_if_fail(pref, FALSE);
-
- pref->is_instruction_bounding_box_used = is_used;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_instruction_geometry_used (LocationRoutePreference *pref, gboolean is_used)
-{
- g_return_val_if_fail(pref, FALSE);
-
- pref->is_instruction_geometry_used = is_used;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_instruction_used (LocationRoutePreference *pref, gboolean is_used)
-{
- g_return_val_if_fail(pref, FALSE);
-
- pref->is_instruction_used = is_used;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_traffic_data_used (LocationRoutePreference *pref, gboolean is_used)
-{
- g_return_val_if_fail(pref, FALSE);
-
- pref->is_traffic_data_used = is_used;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_pref_set_property (LocationRoutePreference *pref, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(pref, FALSE);
- g_return_val_if_fail(key, FALSE);
-
- if (value) {
- gchar *re_key = g_strdup(key);
- gchar *re_val = g_strdup(value);
- g_hash_table_insert (pref->properties, re_key, re_val);
- } else g_hash_table_remove (pref->properties, key);
-
- return TRUE;
-}
-
-EXPORT_API GList *
-location_route_pref_get_addr_to_avoid (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->addr_to_avoid;
-}
-
-EXPORT_API GList *
-location_route_pref_get_area_to_avoid (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->area_to_avoid;
-}
-
-EXPORT_API GList *
-location_route_pref_get_feature_to_avoid (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->feature_to_avoid;
-}
-
-EXPORT_API GList *
-location_route_pref_get_freeformed_addr_to_avoid (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->freeformed_addr_to_avoid;
-}
-
-EXPORT_API LocationBoundary *
-location_route_pref_get_bounding_box (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->bbox;
-}
-
-EXPORT_API guint
-location_route_pref_get_max_result (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, 0);
-
- return pref->max_matches_count;
-}
-
-EXPORT_API gchar *
-location_route_pref_get_route_type (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->route_type;
-}
-
-EXPORT_API gchar *
-location_route_pref_get_transport_mode (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return pref->transport_mode;
-}
-
-EXPORT_API gboolean
-location_route_pref_get_geometry_used (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, FALSE);
-
- return pref->is_geometry_used;
-}
-
-EXPORT_API gboolean
-location_route_pref_get_instruction_bounding_box_used (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, FALSE);
-
- return pref->is_instruction_bounding_box_used;
-}
-
-EXPORT_API gboolean
-location_route_pref_get_instruction_geometry_used (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, FALSE);
-
- return pref->is_instruction_geometry_used;
-}
-
-EXPORT_API gboolean
-location_route_pref_get_instruction_used (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, FALSE);
-
- return pref->is_instruction_used;
-}
-
-EXPORT_API gboolean
-location_route_pref_get_traffic_data_used (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, FALSE);
-
- return pref->is_traffic_data_used;
-}
-
-EXPORT_API GList*
-location_route_pref_get_property_key (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- return g_hash_table_get_keys(pref->properties);
-}
-
-EXPORT_API gpointer
-location_route_pref_get_property (const LocationRoutePreference *pref, gconstpointer key)
-{
- g_return_val_if_fail(pref, NULL);
- g_return_val_if_fail(key, NULL);
-
- return g_hash_table_lookup(pref->properties, key);
-}
-
-EXPORT_API LocationRoutePreference *
-location_route_pref_new (void)
-{
- LocationRoutePreference *pref = g_slice_new0(LocationRoutePreference);
- g_return_val_if_fail (pref, NULL);
-
- pref->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
- return pref;
-}
-
-static void route_pref_property_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail(key);
- g_return_if_fail(value);
- g_return_if_fail(user_data);
-
- LocationRoutePreference *pref = (LocationRoutePreference *)user_data;
-
- if (pref->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (pref->properties, re_key, re_val);
- }
-}
-
-EXPORT_API LocationRoutePreference *
-location_route_pref_copy (const LocationRoutePreference *pref)
-{
- g_return_val_if_fail(pref, NULL);
-
- LocationRoutePreference *new_pref = location_route_pref_new();
- g_return_val_if_fail (pref, NULL);
-
- location_route_pref_set_addr_to_avoid(new_pref, location_route_pref_get_addr_to_avoid (pref));
- location_route_pref_set_area_to_avoid(new_pref, location_route_pref_get_area_to_avoid (pref));
- location_route_pref_set_feature_to_avoid(new_pref, location_route_pref_get_feature_to_avoid (pref));
- location_route_pref_set_freeformed_addr_to_avoid(new_pref, location_route_pref_get_freeformed_addr_to_avoid (pref));
- location_route_pref_set_bounding_box(new_pref, location_route_pref_get_bounding_box (pref));
- location_route_pref_set_max_result(new_pref, location_route_pref_get_max_result (pref));
- location_route_pref_set_route_type(new_pref, location_route_pref_get_route_type (pref));
- location_route_pref_set_transport_mode(new_pref, location_route_pref_get_transport_mode (pref));
- location_route_pref_set_geometry_used(new_pref, location_route_pref_get_geometry_used (pref));
- location_route_pref_set_instruction_bounding_box_used(new_pref, location_route_pref_get_instruction_bounding_box_used (pref));
- location_route_pref_set_instruction_geometry_used(new_pref, location_route_pref_get_instruction_geometry_used (pref));
- location_route_pref_set_instruction_used(new_pref, location_route_pref_get_instruction_used (pref));
- location_route_pref_set_traffic_data_used(new_pref, location_route_pref_get_traffic_data_used (pref));
- location_route_pref_set_traffic_data_used(new_pref, location_route_pref_get_traffic_data_used (pref));
-
- if (new_pref->properties) g_hash_table_foreach (pref->properties, route_pref_property_copy_cb, new_pref);
-
- return new_pref;
-}
-
-
-EXPORT_API void
-location_route_pref_free (LocationRoutePreference *pref)
-{
- g_return_if_fail(pref);
-
- location_route_pref_set_addr_to_avoid(pref, NULL);
- location_route_pref_set_area_to_avoid(pref, NULL);
- location_route_pref_set_feature_to_avoid(pref, NULL);
- location_route_pref_set_freeformed_addr_to_avoid(pref, NULL);
- location_route_pref_set_bounding_box(pref, NULL);
- location_route_pref_set_route_type(pref, NULL);
- location_route_pref_set_transport_mode(pref, NULL);
-
- if (pref->properties) {
- g_hash_table_destroy (pref->properties);
- pref->properties = NULL;
- }
-
- g_slice_free (LocationRoutePreference, pref);
-}
-
-/* for expandability
-EXPORT_API gint
-location_route_get_req_id (const LocationRoute *route)
-{
- g_return_val_if_fail(route, 0);
-
- return route->req_id;
-}
-*/
-
-EXPORT_API LocationPosition *
-location_route_get_origin (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return route->origin;
-}
-
-EXPORT_API LocationPosition *
-location_route_get_destination (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return route->destination;
-}
-
-EXPORT_API LocationBoundary *
-location_route_get_bounding_box (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return route->bbox;
-}
-
-EXPORT_API gdouble
-location_route_get_total_distance (const LocationRoute *route)
-{
- g_return_val_if_fail(route, 0.0);
-
- return route->total_distance;
-}
-
-EXPORT_API gchar *
-location_route_get_distance_unit (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return route->distance_unit;
-}
-
-EXPORT_API glong
-location_route_get_total_duration (const LocationRoute *route)
-{
- g_return_val_if_fail(route, 0);
-
- return route->total_duration;
-}
-
-EXPORT_API GList *
-location_route_get_property_key (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return g_hash_table_get_keys(route->properties);
-}
-
-EXPORT_API gpointer
-location_route_get_property (const LocationRoute *route, gconstpointer key)
-{
- g_return_val_if_fail(route, NULL);
- g_return_val_if_fail(key, NULL);
-
- return g_hash_table_lookup(route->properties, key);
-}
-
-EXPORT_API GList *
-location_route_get_route_segment (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
-
- return route->segment;
-}
-
-/* for expandability
-EXPORT_API gboolean
-location_route_set_req_id (LocationRoute *route, gint req_id)
-{
- g_return_val_if_fail(route, FALSE);
-
- route->req_id = req_id;
-
- return TRUE;
-}
-*/
-
-EXPORT_API gboolean
-location_route_set_origin (LocationRoute *route, const LocationPosition* origin)
-{
- g_return_val_if_fail(route, FALSE);
-
- if (route->origin) {
- location_position_free(route->origin);
- route->origin = NULL;
- }
-
- if (origin) route->origin = location_position_copy(origin);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_set_destination (LocationRoute *route, const LocationPosition* destination)
-{
- g_return_val_if_fail(route, FALSE);
-
- if (route->destination) {
- location_position_free(route->destination);
- route->destination = NULL;
- }
-
- if (destination) route->destination = location_position_copy(destination);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_set_bounding_box (LocationRoute *route, const LocationBoundary* bbox)
-{
- g_return_val_if_fail(route, FALSE);
-
- if (route->bbox) {
- location_boundary_free(route->bbox);
- route->bbox = NULL;
- }
-
- if (bbox) route->bbox = location_boundary_copy(bbox);
-
- return TRUE;
-}
-
-EXPORT_API
-gboolean location_route_set_total_distance (LocationRoute *route, gdouble total_distance)
-{
- g_return_val_if_fail(route, FALSE);
-
- route->total_distance = total_distance;
-
- return TRUE;
-}
-
-EXPORT_API
-gboolean location_route_set_distance_unit (LocationRoute *route, const gchar* distance_unit)
-{
- g_return_val_if_fail(route, FALSE);
-
- if (route->distance_unit) {
- g_free(route->distance_unit);
- route->distance_unit = NULL;
- }
-
- if (distance_unit) route->distance_unit = g_strdup(distance_unit);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_set_total_duration (LocationRoute *route, glong total_duration)
-{
- g_return_val_if_fail(route, FALSE);
-
- route->total_duration = total_duration;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_set_property (LocationRoute *route, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(route, FALSE);
- g_return_val_if_fail(key, FALSE);
- if (!route->properties) return FALSE;
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert(route->properties, re_key, re_val);
- } else g_hash_table_remove (route->properties, key);
-
- return TRUE;
-}
-
-static void route_segment_foreach_copy (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
-
- LocationRouteSegment *segment = (LocationRouteSegment *) data;
- LocationRoute *route = (LocationRoute *) user_data;
-
- route->segment = g_list_append (route->segment, location_route_segment_copy (segment));
-}
-
-static void route_segment_foreach_free (gpointer data)
-{
- g_return_if_fail (data);
-
- LocationRouteSegment *segment = (LocationRouteSegment *)data;
-
- location_route_segment_free(segment);
-}
-
-
-EXPORT_API gboolean
-location_route_set_route_segment (LocationRoute *route, GList* segment)
-{
- g_return_val_if_fail(route, FALSE);
-
- if (route->segment) {
- g_list_free_full (route->segment, route_segment_foreach_free);
- route->segment = NULL;
- }
-
- if (segment) g_list_foreach (segment, route_segment_foreach_copy, route);
-
- return TRUE;
-}
-
-EXPORT_API LocationRoute *
-location_route_new (void)
-{
- LocationRoute *route = g_slice_new0(LocationRoute);
- g_return_val_if_fail (route, NULL);
-
- route->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return route;
-}
-
-static void route_property_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- LocationRoute *route = (LocationRoute *)user_data;
-
- if (route->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (route->properties, re_key, re_val);
- }
-}
-
-EXPORT_API LocationRoute *
-location_route_copy (const LocationRoute *route)
-{
- g_return_val_if_fail(route, NULL);
- LocationRoute *new_route = location_route_new();
- g_return_val_if_fail(new_route, NULL);
-
- location_route_set_origin (new_route, location_route_get_origin(route));
- location_route_set_destination (new_route, location_route_get_destination(route));
- location_route_set_bounding_box (new_route, location_route_get_bounding_box(route));
- location_route_set_total_distance (new_route, location_route_get_total_distance(route));
- location_route_set_distance_unit (new_route, location_route_get_distance_unit(route));
- location_route_set_total_duration (new_route, location_route_get_total_duration(route));
-
- g_list_foreach(route->segment, route_segment_foreach_copy, new_route);
-
- if (route->properties) g_hash_table_foreach (route->properties, route_property_copy_cb, new_route);
-
- return new_route;
-}
-
-EXPORT_API void
-location_route_free (LocationRoute *route)
-{
- g_return_if_fail (route);
-
- location_route_set_origin (route, NULL);
- location_route_set_destination (route, NULL);
- location_route_set_bounding_box (route, NULL);
- location_route_set_distance_unit (route, NULL);
- location_route_set_route_segment (route, NULL);
-
- if (route->properties) {
- g_hash_table_destroy (route->properties);
- route->properties = NULL;
- }
-
- g_slice_free (LocationRoute, route);
-}
-
-EXPORT_API LocationPosition *
-location_route_segment_get_start_point (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- return segment->start;
-}
-
-EXPORT_API LocationPosition *
-location_route_segment_get_end_point (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- return segment->end;
-}
-
-EXPORT_API LocationBoundary *
-location_route_segment_get_bounding_box (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- return segment->bbox;
-}
-
-EXPORT_API gdouble
-location_route_segment_get_distance (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, 0.0);
-
- return segment->distance;
-}
-
-EXPORT_API glong
-location_route_segment_get_duration (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, 0);
-
- return segment->duration;
-}
-
-EXPORT_API GList*
-location_route_segment_get_property_key (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- return g_hash_table_get_keys(segment->properties);
-}
-
-EXPORT_API gpointer
-location_route_segment_get_property (const LocationRouteSegment *segment, gconstpointer key)
-{
- g_return_val_if_fail(segment, NULL);
- g_return_val_if_fail(key, NULL);
-
- return g_hash_table_lookup(segment->properties, (gpointer) key);
-}
-
-EXPORT_API GList*
-location_route_segment_get_route_step (const LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- return segment->step;
-}
-
-EXPORT_API gboolean
-location_route_segment_set_start_point (LocationRouteSegment *segment, const LocationPosition *start)
-{
- g_return_val_if_fail (segment, FALSE);
-
- if (segment->start) {
- location_position_free(segment->start);
- segment->start = NULL;
- }
-
- if (start) segment->start = location_position_copy (start);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_segment_set_end_point (LocationRouteSegment *segment, const LocationPosition *end)
-{
- g_return_val_if_fail (segment, FALSE);
-
- if (segment->end) {
- location_position_free(segment->end);
- segment->end = NULL;
- }
-
- if (end) segment->end = location_position_copy (end);
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_route_segment_set_bounding_box (LocationRouteSegment *segment, const LocationBoundary *bbox)
-{
- g_return_val_if_fail (segment, FALSE);
-
- if (segment->bbox) {
- location_boundary_free(segment->bbox);
- segment->bbox = NULL;
- }
-
- if (bbox) segment->bbox = location_boundary_copy (bbox);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_segment_set_distance (LocationRouteSegment *segment, gdouble distance)
-{
- g_return_val_if_fail (segment, FALSE);
-
- segment->distance = distance;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_segment_set_duration (LocationRouteSegment *segment, glong duration)
-{
- g_return_val_if_fail (segment, FALSE);
-
- segment->duration = duration;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_segment_set_property (LocationRouteSegment *segment, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail (segment, FALSE);
- g_return_val_if_fail (key, FALSE);
- if (!segment->properties) return FALSE;
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert(segment->properties, re_key, re_val);
- } else g_hash_table_remove (segment->properties, key);
-
- return TRUE;
-}
-
-static void route_step_foreach_free (gpointer data)
-{
- g_return_if_fail (data);
-
- LocationRouteStep *step = (LocationRouteStep *) data;
-
- location_route_step_free(step);
-}
-
-static void route_step_foreach_copy (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
- g_return_if_fail (user_data);
-
- LocationRouteStep *step = (LocationRouteStep *) data;
- LocationRouteSegment *segment = (LocationRouteSegment *) user_data;
-
- LocationRouteStep *step_new = location_route_step_copy(step);
- segment->step = g_list_append(segment->step, step_new);
-
-}
-
-EXPORT_API gboolean
-location_route_segment_set_route_step (LocationRouteSegment *segment, GList* step)
-{
- g_return_val_if_fail (segment, FALSE);
-
- if (segment->step) {
- g_list_free_full (segment->step, route_step_foreach_free);
- segment->step = NULL;
- }
-
- if (step) g_list_foreach (step, route_step_foreach_copy, segment);
-
- return TRUE;
-
-}
-
-EXPORT_API LocationRouteSegment *
-location_route_segment_new (void)
-{
- LocationRouteSegment *segment = g_slice_new0 (LocationRouteSegment);
- g_return_val_if_fail (segment, NULL);
-
- segment->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return segment;
-}
-
-static void segment_property_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- LocationRouteSegment *segment = (LocationRouteSegment *)user_data;
-
- if (segment->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (segment->properties, re_key, re_val);
- }
-}
-
-EXPORT_API LocationRouteSegment *
-location_route_segment_copy (LocationRouteSegment *segment)
-{
- g_return_val_if_fail(segment, NULL);
-
- LocationRouteSegment *new_segment = location_route_segment_new();
- g_return_val_if_fail(new_segment, NULL);
-
- location_route_segment_set_start_point(new_segment, location_route_segment_get_start_point(segment));
- location_route_segment_set_end_point(new_segment, location_route_segment_get_end_point(segment));
- location_route_segment_set_bounding_box(new_segment, location_route_segment_get_bounding_box(segment));
- location_route_segment_set_distance(new_segment, location_route_segment_get_distance(segment));
- location_route_segment_set_duration(new_segment, location_route_segment_get_duration(segment));
- location_route_segment_set_route_step(new_segment, location_route_segment_get_route_step(segment));
-
- if (segment->properties) g_hash_table_foreach (segment->properties, segment_property_copy_cb, new_segment);
-
- return new_segment;
-}
-
-EXPORT_API void
-location_route_segment_free (LocationRouteSegment *segment)
-{
- g_return_if_fail(segment);
-
- location_route_segment_set_start_point(segment, NULL);
- location_route_segment_set_end_point(segment, NULL);
- location_route_segment_set_bounding_box(segment, NULL);
- location_route_segment_set_distance(segment, 0.0);
- location_route_segment_set_duration(segment, 0);
- location_route_segment_set_route_step(segment, NULL);
-
- if (segment->properties) {
- g_hash_table_destroy (segment->properties);
- segment->properties = NULL;
- }
-
- g_slice_free(LocationRouteSegment, segment);
-}
-
-EXPORT_API LocationPosition*
-location_route_step_get_start_point (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->start;
-}
-
-EXPORT_API LocationPosition*
-location_route_step_get_end_point (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->end;
-}
-
-EXPORT_API LocationBoundary*
-location_route_step_get_bounding_box (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->bbox;
-}
-
-EXPORT_API gdouble
-location_route_step_get_distance (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, 0.0);
-
- return step->distance;
-}
-
-EXPORT_API glong
-location_route_step_get_duration (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, 0);
-
- return step->duration;
-}
-
-EXPORT_API gchar*
-location_route_step_get_transport_mode (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->transport_mode;
-}
-
-EXPORT_API gchar*
-location_route_step_get_instruction (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->instruction;
-}
-
-EXPORT_API GList *
-location_route_step_get_geometry (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return step->geometry;
-}
-
-EXPORT_API GList*
-location_route_step_get_property_key (const LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- return g_hash_table_get_keys (step->properties);
-}
-
-EXPORT_API gpointer
-location_route_step_get_property (const LocationRouteStep *step, gconstpointer key)
-{
- g_return_val_if_fail(step, NULL);
- g_return_val_if_fail(key, NULL);
-
- return g_hash_table_lookup (step->properties, key);
-}
-
-EXPORT_API gboolean
-location_route_step_set_start_point (LocationRouteStep *step, const LocationPosition *start)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->start) {
- location_position_free (step->start);
- step->start = NULL;
- }
-
- if (start) step->start = location_position_copy (start);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_step_set_end_point (LocationRouteStep *step, const LocationPosition *end)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->end) {
- location_position_free (step->end);
- step->end = NULL;
- }
-
- if (end) step->end = location_position_copy (end);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_step_set_bounding_box (LocationRouteStep *step, const LocationBoundary *bbox)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->bbox) {
- location_boundary_free (step->bbox);
- step->bbox = NULL;
- }
-
- if (bbox) step->bbox = location_boundary_copy (bbox);
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_step_set_distance (LocationRouteStep *step, gdouble distance)
-{
- g_return_val_if_fail (step, FALSE);
-
- step->distance = distance;
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_route_step_set_duration (LocationRouteStep *step, glong duration)
-{
- g_return_val_if_fail (step, FALSE);
-
- step->duration = duration;
-
- return TRUE;
-}
-
-EXPORT_API gboolean
-location_route_step_set_transport_mode (LocationRouteStep *step, const gchar *transport_mode)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->transport_mode) {
- g_free(step->transport_mode);
- step->transport_mode = NULL;
- }
-
- if (transport_mode) step->transport_mode = g_strdup(transport_mode);
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_route_step_set_instruction (LocationRouteStep *step, const gchar *instruction)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->instruction) {
- g_free(step->instruction);
- step->instruction = NULL;
- }
-
- if (instruction) step->instruction = g_strdup(instruction);
-
- return TRUE;
-
-}
-
-static void route_step_geometry_foreach_copy (gpointer data, gpointer user_data)
-{
- g_return_if_fail (data);
- g_return_if_fail (user_data);
-
- LocationPosition *pos = (LocationPosition *)data;
- LocationRouteStep *step = (LocationRouteStep *)user_data;
-
- step->geometry = g_list_append (step->geometry, location_position_copy (pos));
-}
-
-static void route_step_geometry_free (gpointer data)
-{
- g_return_if_fail (data);
-
- LocationPosition *pos = (LocationPosition *)data;
-
- location_position_free(pos);
-}
-
-EXPORT_API gboolean
-location_route_step_set_geometry (LocationRouteStep *step, GList *geometry)
-{
- g_return_val_if_fail (step, FALSE);
-
- if (step->geometry) {
- g_list_free_full (step->geometry, route_step_geometry_free);
- step->geometry = NULL;
- }
-
- if (geometry) g_list_foreach (geometry, route_step_geometry_foreach_copy, step);
-
- return TRUE;
-
-}
-
-EXPORT_API gboolean
-location_route_step_set_property (LocationRouteStep *step, gconstpointer key, gconstpointer value)
-{
- g_return_val_if_fail(step, FALSE);
- g_return_val_if_fail(key, FALSE);
-
- if (!step->properties) return FALSE;
-
- if (value) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (step->properties, re_key, re_val);
- }
- else g_hash_table_remove (step->properties, key);
-
- return TRUE;
-}
-
-EXPORT_API LocationRouteStep *
-location_route_step_new (void)
-{
- LocationRouteStep *step = g_slice_new0 (LocationRouteStep);
- g_return_val_if_fail(step, NULL);
-
- step->properties = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
- return step;
-}
-
-static void step_property_copy_cb (gpointer key, gpointer value, gpointer user_data)
-{
- g_return_if_fail (key);
- g_return_if_fail (value);
- g_return_if_fail (user_data);
-
- LocationRouteStep *step = (LocationRouteStep *) user_data;
-
- if (step->properties) {
- gchar *re_key = g_strdup (key);
- gchar *re_val = g_strdup (value);
- g_hash_table_insert (step->properties, re_key, re_val);
- }
-}
-
-
-EXPORT_API LocationRouteStep *
-location_route_step_copy (LocationRouteStep *step)
-{
- g_return_val_if_fail(step, NULL);
-
- LocationRouteStep *new_step = location_route_step_new ();
- g_return_val_if_fail (new_step, NULL);
-
- location_route_step_set_start_point (new_step, location_route_step_get_start_point(step));
- location_route_step_set_end_point (new_step, location_route_step_get_end_point(step));
- location_route_step_set_bounding_box (new_step, location_route_step_get_bounding_box(step));
- location_route_step_set_distance (new_step, location_route_step_get_distance(step));
- location_route_step_set_duration (new_step, location_route_step_get_duration(step));
- location_route_step_set_instruction (new_step, location_route_step_get_instruction(step));
- location_route_step_set_geometry (new_step, location_route_step_get_geometry(step));
-
- if (step->properties) g_hash_table_foreach (step->properties, step_property_copy_cb, new_step);
- return new_step;
-}
-
-EXPORT_API void
-location_route_step_free (LocationRouteStep *step)
-{
- g_return_if_fail(step);
-
- location_route_step_set_start_point (step, NULL);
- location_route_step_set_end_point (step, NULL);
- location_route_step_set_bounding_box (step, NULL);
- location_route_step_set_distance (step, 0.0);
- location_route_step_set_duration (step, 0);
- location_route_step_set_instruction (step, NULL);
- location_route_step_set_geometry (step, NULL);
-
- if (step->properties) {
- g_hash_table_destroy (step->properties);
- step->properties = NULL;
- }
- g_slice_free(LocationRouteStep, step);
-}
diff --git a/location/map-service/location-route.h b/location/map-service/location-route.h
deleted file mode 100644
index b15c769..0000000
--- a/location/map-service/location-route.h
+++ /dev/null
@@ -1,873 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __LOCATION_ROUTE_H__
-#define __LOCATION_ROUTE_H__
-
-#include <location-map-types.h>
-
-G_BEGIN_DECLS
-
-/**
- * @file location-route.h
- * @brief This file contains the internal definitions and structures related to Route.
- */
-
-/**
- * @addtogroup LocationMapService
- * @{
- * @defgroup LocationMapServiceRoute Location Route
- * @brief This is a Location Route for providing location map services.
- * @addtogroup LocationMapServiceRoute
- * @{
- */
-
-/**
- * @brief Create a new Location route preference
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @return a #LocationRoutePreference
- * @retval NULL if error occured
- * @see location_route_pref_free
- */
-LocationRoutePreference *location_route_pref_new (void);
-
-/**
- * @brief Copy Location route preference
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return a new #LocationRoutePreference
- * @retval NULL if error occured
- */
-LocationRoutePreference *location_route_pref_copy (const LocationRoutePreference *pref);
-
-/**
- * @brief Free Location route preference
- * @remarks None.
- * @pre #location_init should be called before.\n
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @see location_route_pref_new
- * @return None
- * @retval None
- */
-void location_route_pref_free (LocationRoutePreference * pref);
-
-/**
- * @brief Get a list of address structures to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval list of #LocationAddress
- * @see location_route_pref_set_addr_to_avoid
- */
-GList *location_route_pref_get_addr_to_avoid (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a list of area to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval list of #LocationBoundary
- * @see location_route_pref_set_area_to_avoid
- */
-GList *location_route_pref_get_area_to_avoid (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a list of features to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval list of gchar
- * @see location_route_pref_set_feature_to_avoid
- */
-GList *location_route_pref_get_feature_to_avoid (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a list of freeformed address to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval list of gchar
- * @see location_route_pref_set_freeformed_to_avoid
- */
-GList *location_route_pref_get_freeformed_addr_to_avoid (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a list of bounding box to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return #LocationBoundary
- * @retval bounding box
- * @see location_route_pref_set_addr_to_avoid
- */
-LocationBoundary *location_route_pref_get_bounding_box (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a maximum number of matches returned from route service provider
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return guint
- * @retval maximum number of matches
- * @see location_route_pref_set_max_result
- */
-guint location_route_pref_get_max_result (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a route type to be used in route service
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gchar
- * @retval route type
- * @see location_route_pref_set_route_type
- */
-gchar *location_route_pref_get_route_type (const LocationRoutePreference *pref);
-
-/**
- * @brief Get a transport mode to be used in route service
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gchar
- * @retval transport mode
- * @see location_route_pref_set_transport_mode
- */
-gchar *location_route_pref_get_transport_mode (const LocationRoutePreference *pref);
-
-/**
- * @brief Get whether the route service provider must provide the route geometry in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gboolean
- * @retval TRUE if used
- * @see location_route_pref_set_geometry_used
- */
-gboolean location_route_pref_get_geometry_used (const LocationRoutePreference *pref);
-/**
- * @brief Get whether the route service provider must provide the route instruction bounding box in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gboolean
- * @retval TRUE if used
- * @see location_route_pref_set_instruction_bounding_box_used
- */
-gboolean location_route_pref_get_instruction_bounding_box_used (const LocationRoutePreference *pref);
-/**
- * @brief Get whether the route service provider must provide the route geometry in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gboolean
- * @retval TRUE if used
- * @see location_route_pref_set_instruction_geometry_used
- */
-gboolean location_route_pref_get_instruction_geometry_used (const LocationRoutePreference *pref);
-
-/**
- * @brief Get whether the route service provider must provide the route instruction in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gboolean
- * @retval TRUE if used
- * @see location_route_pref_set_instruction_used
- */
-gboolean location_route_pref_get_instruction_used (const LocationRoutePreference *pref);
-/**
- * @brief Get whether the route service provider must provide traffic data in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return gboolean
- * @retval TRUE if used
- * @see location_route_pref_set_traffic_data_used
- */
-gboolean location_route_pref_get_traffic_data_used (const LocationRoutePreference *pref);
-/**
- * @brief Get a list of Property Keys in #LocationRoutePreference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval list of property key
- */
-GList *location_route_pref_get_property_key (const LocationRoutePreference *pref);
-/**
- * @brief Get Property value in #LocationRoutePreference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @return GList
- * @retval property value
- * @see location_route_pref_set_property
- */
-gpointer location_route_pref_get_property (const LocationRoutePreference *pref, gconstpointer key);
-
-/**
- * @brief Set a list of address structures to be avoided in #LocationRoutePreference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] addr - a list of #LocationAddress
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_addr_to_avoid
- */
-gboolean location_route_pref_set_addr_to_avoid (LocationRoutePreference * pref, GList *addr);
-
-/**
- * @brief Set a list of area to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] area - a list of #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_area_to_avoid
- */
-gboolean location_route_pref_set_area_to_avoid (LocationRoutePreference * pref, GList *area);
-
-/**
- * @brief Set a list of features to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] feature - a list of features
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_feature_to_avoid
- */
-gboolean location_route_pref_set_feature_to_avoid (LocationRoutePreference * pref, GList * feature);
-
-/**
- * @brief Set a list of freeformed address to be avoided in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] addr - a list of #gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_freeformed_addr_to_avoid
- */
-gboolean location_route_pref_set_freeformed_addr_to_avoid (LocationRoutePreference *pref, GList * freeformed_addr);
-
-/**
- * @brief Set a bounding box #LocationBoundary in Location route preference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] bbox - a #LocationBoundary
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_bounding_box
- */
-gboolean location_route_pref_set_bounding_box (LocationRoutePreference *pref, const LocationBoundary *boundary);
-
-/**
- * @brief Set a maximum number of matches returned from route service provider
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] max_num - a #gint
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_set_max_result
- */
-gboolean location_route_pref_set_max_result (LocationRoutePreference *pref, guint max_num);
-
-/**
- * @brief Set a route type to be used in route service
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] type - a #gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_route_type
- */
-gboolean location_route_pref_set_route_type (LocationRoutePreference *pref, const gchar *type);
-
-/**
- * @brief Set a transport mode to be used in route service
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] mode - a #gchar
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_transport_mode
- */
-gboolean location_route_pref_set_transport_mode (LocationRoutePreference *pref, const gchar * mode);
-
-/**
- * @brief Set whether the route service provider must provide the route geometry in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] is_used - a #gboolean
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_geometry_used
- */
-gboolean location_route_pref_set_geometry_used (LocationRoutePreference *pref, gboolean is_used);
-
-/**
- * @brief Set whether the route service provider must provide the route instruction bounding box in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] is_used - a #gboolean
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_instruction_bounding_box_used
- */
-gboolean location_route_pref_set_instruction_bounding_box_used (LocationRoutePreference *pref, gboolean is_used);
-
-/**
- * @brief Set whether the route service provider must provide the route geometry in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] is_used - a #gboolean
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_instruction_geometry_used
- */
-gboolean location_route_pref_set_instruction_geometry_used (LocationRoutePreference *pref, gboolean is_used);
-
-/**
- * @brief Set whether the route service provider must provide the route instruction in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] is_used - a #gboolean
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_instruction_used
- */
-gboolean location_route_pref_set_instruction_used (LocationRoutePreference *pref, gboolean is_used);
-
-/**
- * @brief Set whether the route service provider must provide traffic data in the service requests
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] is_used - a #gboolean
- * @return #gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_traffic_data_used
- */
-gboolean location_route_pref_set_traffic_data_used (LocationRoutePreference *pref, gboolean is_used);
-
-/**
- * @brief Set Property in Location route proference
- * @remarks The service provider should support route service.
- * @pre #location_route_pref_new should be called before.
- * @post None.
- * @param [in] pref - a #LocationRoutePreference
- * @param [in] key - a #gconstpointer
- * @param [in] value - a #gconstpointer
- * @return gboolean
- * @retval TRUE if success
- * @see location_route_pref_get_property
- */
-gboolean location_route_pref_set_property (LocationRoutePreference *pref, gconstpointer key, gconstpointer value);
-
-/**
- * @defgroup LocationMapServiceRouteResult Location Route Result
- * @brief This provides structure, enumeration and APIs for Route Result
- * @addtogroup LocationMapServiceRouteResult
- * @{
- */
-/**
- * @brief Create a new Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @return #LocationRoute
- * @retval a new location route
- * @see location_route_free
- */
-LocationRoute *location_route_new (void);
-/**
- * @brief Copy Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return #LocationRoute
- * @retval a copied location route
- */
-LocationRoute *location_route_copy (const LocationRoute *route);
-
-/**
- * @brief Free #LocationRoute
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return void
- * @retval None
- */
-void location_route_free (LocationRoute *route);
-
-/**
- * @brief Get the origin of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return #Location position
- * @retval origin
- * @see location_route_set_origin
- */
-LocationPosition *location_route_get_origin (const LocationRoute *route);
-
-/**
- * @brief Get the destination of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return #LocationPosition
- * @retval destination
- * @see location_route_set_destination
- */
-LocationPosition *location_route_get_destination (const LocationRoute *route);
-
-/**
- * @brief Get the bounding box of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return #LocationBoundary
- * @retval bounding box
- * @see location_route_set_bounding box
- */
-LocationBoundary *location_route_get_bounding_box (const LocationRoute *route);
-
-/**
- * @brief Get the total distance of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return gdouble
- * @retval total distance
- * @see location_route_set_total_distance
- */
-gdouble location_route_get_total_distance (const LocationRoute *route);
-
-/**
- * @brief Get the distance unit of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return gchar
- * @retval distance unit
- * @see location_route_set_distance_unit
- */
-gchar *location_route_get_distance_unit (const LocationRoute *route);
-
-/**
- * @brief Get the total duration of location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return glong
- * @retval total duration
- * @see location_route_set_total_duration
- */
-glong location_route_get_total_duration (const LocationRoute *route);
-
-/**
- * @brief Get the list of property key of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return GList
- * @retval list of property keys
- * @see location_route_set_property
- */
-GList *location_route_get_property_key (const LocationRoute *route);
-
-/**
- * @brief Get the property value of Location route
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] route - a #LocationRoute
- * @return gconstpointer
- * @retval property
- * @see location_route_set_property
- */
-gpointer location_route_get_property (const LocationRoute *route, gconstpointer key);
-
-/**
- * @brief Get the list of segments in Location route
- * @remarks The service provider should support route service.
- * @post None.
- * @pre None.
- * @param [in] route - a #LocationRoute
- * @return GList
- * @retval list of #LocationRouteSegment
- * @see location_route_set_route_segment
- */
-GList *location_route_get_route_segment (const LocationRoute *route);
-
-/**
- * @brief Create a new Location route segment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @return #LocationPositionSegment
- * @retval Location route segment
- * @see location_route_segment_free
- */
-LocationRouteSegment *location_route_segment_new (void);
-
-/**
- * @brief Copy Location route segment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return #LocationRouteSegment
- * @retval copied Location route segment
- */
-LocationRouteSegment *location_route_segment_copy (LocationRouteSegment *segment);
-
-/**
- * @brief Free Location route segment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_new
- */
-void location_route_segment_free (LocationRouteSegment *segment);
-
-/**
- * @brief Get the start point #LocationPosition of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_start_point
- */
-LocationPosition *location_route_segment_get_start_point (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the end point #LocationPosition of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_end_point
- */
-LocationPosition *location_route_segment_get_end_point (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the bounding box #LocationBoundary of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_bounding_box
- */
-LocationBoundary *location_route_segment_get_bounding_box (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the distance of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_distance
- */
-gdouble location_route_segment_get_distance (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the duration #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_duration
- */
-glong location_route_segment_get_duration (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the list of property keys of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_property_key
- */
-GList *location_route_segment_get_property_key (const LocationRouteSegment *segment);
-
-/**
- * @brief Get the property value of #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_property
- */
-gpointer location_route_segment_get_property (const LocationRouteSegment *segment, gconstpointer key);
-
-/**
- * @brief Get the list of route steps #LocationRouteStep in #LocationRouteSegment
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] segment - a #LocationRouteSegment
- * @return void
- * @retval None.
- * @see location_route_segment_set_route_step
- */
-GList *location_route_segment_get_route_step (const LocationRouteSegment *segment);
-
-/**
- * @brief Create a new #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param None.
- * @return #LocationRouteStep
- * @retval route step
- * @see location_route_step_free
- */
-LocationRouteStep *location_route_step_new (void);
-
-/**
- * @brief Copy #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return #LocationRouteStep
- * @retval route step
- * @see location_route_step_new
- */
-LocationRouteStep *location_route_step_copy (LocationRouteStep *step);
-
-/**
- * @brief Free #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return void
- * @retval None
- * @see location_route_step_new
- */
-void location_route_step_free (LocationRouteStep *step);
-
-/**
- * @brief Get the start point #LocationPosition of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return #LocationPosition
- * @retval start point
- * @see location_route_step_set_start_point
- */
-LocationPosition *location_route_step_get_start_point (const LocationRouteStep *step);
-
-/**
- * @brief Get the end point #LocationPosition of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return #LocationPosition
- * @retval end point
- * @see location_route_step_set_end_point
- */
-LocationPosition *location_route_step_get_end_point (const LocationRouteStep *step);
-
-/**
- * @brief Get the bounding box #LocationBoundary of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return #LocationBoundary
- * @retval bounding box
- * @see location_route_step_set_bounding_box
- */
-LocationBoundary *location_route_step_get_bounding_box (const LocationRouteStep *step);
-
-/**
- * @brief Get the distance of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return gboolean
- * @retval distance
- * @see location_route_step_set_distance
- */
-gdouble location_route_step_get_distance (const LocationRouteStep *step);
-
-/**
- * @brief Get the duration of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return glong
- * @retval duration
- * @see location_route_step_set_duration
- */
-glong location_route_step_get_duration (const LocationRouteStep *step);
-
-/**
- * @brief Get the transport mode of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return gchar
- * @retval transport mode
- * @see location_route_step_set_transport_mode
- */
-gchar *location_route_step_get_transport_mode (const LocationRouteStep *step);
-
-/**
- * @brief Get the instruction of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return gchar
- * @retval instruction
- * @see location_route_step_set_instruction
- */
-gchar *location_route_step_get_instruction (const LocationRouteStep *step);
-
-/**
- * @brief Get the list of geometry #LocationPosition of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return GList
- * @retval a list of LocationPosition
- * @see location_route_step_set_geometry
- */
-GList *location_route_step_get_geometry (const LocationRouteStep *step);
-
-/**
- * @brief Get the list of property key of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @return GList
- * @retval a list of property key
- * @see location_route_step_set_property_key
- */
-GList *location_route_step_get_property_key (const LocationRouteStep *step);
-
-/**
- * @brief Get the property value of #LocationRouteStep
- * @remarks The service provider should support route service.
- * @pre None.
- * @post None.
- * @param [in] step - a #LocationRouteStep
- * @param [in] key - a gconstpointer
- * @return gpointer
- * @retval value
- * @see location_route_step_set_property
- */
-gpointer location_route_step_get_property (const LocationRouteStep *step, gconstpointer key);
-
-/**
- * @} @} @}
- */
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/map-internal.c b/location/map-service/map-internal.c
deleted file mode 100644
index d4f95ae..0000000
--- a/location/map-service/map-internal.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "location-log.h"
-#include "location-types.h"
-#include "module-internal.h"
-#include "location-route.h"
-#include "location-map-ielement.h"
-#include "map-service.h"
-
-int
-map_service_get_geocode (LocationMapIElement *self,
- const LocationAddress *address,
- const LocationMapPref *svc_pref,
- GList **position_list,
- GList **accuracy_list)
-{
- LOCATION_LOGD("map_service_get_geocode");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_geocode, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_geocode)(priv->mod->handler, address, svc_pref, position_list, accuracy_list);
-}
-
-int
-map_service_get_geocode_freeform (LocationMapIElement *self,
- const gchar *address,
- const LocationMapPref *svc_pref,
- GList **position_list,
- GList **accuracy_list)
-{
- LOCATION_LOGD("map_service_get_geocode_freeform");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_geocode_freetext, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_geocode_freetext)(priv->mod->handler, address, svc_pref, position_list, accuracy_list);
-}
-
-int
-map_service_get_reversegeocode (LocationMapIElement *self,
- const LocationPosition *position,
- const LocationMapPref *svc_pref,
- LocationAddress **address,
- LocationAccuracy **accuracy)
-{
- LOCATION_LOGD("map_service_get_reversegeocode");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_reverse_geocode, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_reverse_geocode)(priv->mod->handler, position, svc_pref, address, accuracy);
-}
-
-int
-map_service_get_geocode_async (LocationMapIElement *self,
- const LocationAddress *address,
- const LocationMapPref *svc_pref,
- LocationPositionCB callback,
- gpointer userdata)
-{
- LOCATION_LOGD("map_service_get_geocode_async");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_geocode_async, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_geocode_async)(priv->mod->handler, address, svc_pref, callback, userdata);
-}
-
-int
-map_service_get_geocode_freeform_async (LocationMapIElement *self,
- const gchar *address,
- const LocationMapPref *svc_pref,
- LocationPositionCB callback,
- gpointer userdata)
-{
- LOCATION_LOGD("map_service_get_geocode_freeform_async");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_geocode_freetext_async, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_geocode_freetext_async)(priv->mod->handler, address, svc_pref, callback, userdata);
-}
-
-int
-map_service_get_reversegeocode_async (LocationMapIElement *self,
- const LocationPosition *position,
- const LocationMapPref *svc_pref,
- LocationAddressCB callback,
- gpointer userdata)
-{
- LOCATION_LOGD("map_service_get_reversegeocode_async");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_reverse_geocode_async, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.get_reverse_geocode_async)(priv->mod->handler, position, svc_pref, callback, userdata);
-}
-
-int
-map_service_search_poi (LocationMapIElement *self,
- const LocationPOIFilter *filter, const LocationPosition *position,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint *req_id)
-{
- LOCATION_LOGD("map_service_search_poi");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.search_poi, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.search_poi)(priv->mod->handler, filter, position, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-map_service_search_poi_by_area (LocationMapIElement *self,
- const LocationPOIFilter * filter, const LocationBoundary *boundary,
- const LocationMapPref *svc_pref, const LocationPOIPreference * pref,
- LocationPOICB cb, const gpointer user_data, guint *req_id)
-{
- LOCATION_LOGD("map_service_search_poi_by_area");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.search_poi_by_area, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.search_poi_by_area)(priv->mod->handler, filter, boundary, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-map_service_search_poi_by_address (LocationMapIElement *self,
- const LocationPOIFilter *filter, const LocationAddress *address,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint *req_id)
-{
- LOCATION_LOGD("map_service_search_poi_by_address");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.search_poi_by_address, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.search_poi_by_address)(priv->mod->handler, filter, address, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-map_service_search_poi_by_freeform (LocationMapIElement *self,
- const LocationPOIFilter *filter, const gchar *freeform,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint *req_id)
-{
- LOCATION_LOGD("map_service_search_poi_by_freeform");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.search_poi_by_freeform, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.search_poi_by_freeform)(priv->mod->handler, filter, freeform, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-map_service_cancel_poi_request (LocationMapIElement *self, guint req_id)
-{
- LOCATION_LOGD("map_service_cancel_poi_request");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.cancel_poi_request, LOCATION_ERROR_NOT_AVAILABLE);
- return (priv->mod->ops.cancel_poi_request)(priv->mod->handler, req_id);
-}
-
-
-int
-map_service_request_route (LocationMapIElement *self,
- const LocationPosition *origin, const LocationPosition *destination, GList *waypoint,
- const LocationMapPref *svc_pref, const LocationRoutePreference * pref,
- LocationRouteCB cb, const gpointer user_data, guint * req_id)
-{
- LOCATION_LOGD("map_service_request_route");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.request_route, LOCATION_ERROR_NOT_AVAILABLE);
-
- return (priv->mod->ops.request_route)(priv->mod->handler, origin, destination, waypoint, svc_pref, pref, cb, user_data, req_id);
-}
-
-int
-map_service_cancel_route_request (LocationMapIElement *self, guint req_id)
-{
- LOCATION_LOGD("map_service_cancel_route_request");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.cancel_route_request, LOCATION_ERROR_NOT_AVAILABLE);
-
- return (priv->mod->ops.cancel_route_request)(priv->mod->handler, req_id);
-}
-
-gboolean
-map_service_is_supported_provider_capability (LocationMapIElement *self, LocationMapServiceType type)
-{
- LOCATION_LOGD("map_service_is_supported_provider_capability");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.is_supported_provider_capability, LOCATION_ERROR_NOT_AVAILABLE);
-
- return (priv->mod->ops.is_supported_provider_capability)(priv->mod->handler, type);
-}
-
-int
-map_service_get_provider_capability_key (LocationMapIElement *self, LocationMapServiceType type, GList **key)
-{
- LOCATION_LOGD("map_service_get_provider_capability_key");
- MapServicePrivate* priv = GET_PRIVATE(self);
- g_return_val_if_fail (priv->mod, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->handler, LOCATION_ERROR_NOT_AVAILABLE);
- g_return_val_if_fail (priv->mod->ops.get_provider_capability_key, LOCATION_ERROR_NOT_AVAILABLE);
-
- return (priv->mod->ops.get_provider_capability_key)(priv->mod->handler, type, key);
-}
-
diff --git a/location/map-service/map-internal.h b/location/map-service/map-internal.h
deleted file mode 100644
index a6481d7..0000000
--- a/location/map-service/map-internal.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __MAP_INTERNAL_H__
-#define __MAP_INTERNAL_H__
-
-#include "location-map-types.h"
-#include "location-map-ielement.h"
-
-/**
- * @file map-internal.h
- * @brief This file contains the internal definitions and structures related to geocode.
- */
-
-G_BEGIN_DECLS
-
-int map_service_get_geocode (LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-
-int map_service_get_geocode_freeform (LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
-
-int map_service_get_reversegeocode (LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddress **address, LocationAccuracy **accuracy);
-
-int map_service_get_geocode_async (LocationMapIElement *self, const LocationAddress *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-
-int map_service_get_geocode_freeform_async (LocationMapIElement *self, const gchar *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
-
-int map_service_get_reversegeocode_async (LocationMapIElement *self, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddressCB callback, gpointer userdata);
-
-int map_service_search_poi (LocationMapIElement *self,
- const LocationPOIFilter *filter, const LocationPosition *position,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id);
-
-int map_service_search_poi_by_area (LocationMapIElement *self,
- const LocationPOIFilter *filter, const LocationBoundary *boundary,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id);
-
-int map_service_search_poi_by_address (LocationMapIElement *self,
- const LocationPOIFilter *filter, const LocationAddress *address,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint * req_id);
-
-int map_service_search_poi_by_freeform (LocationMapIElement *self,
- const LocationPOIFilter * filter, const gchar *freeform,
- const LocationMapPref *svc_pref, const LocationPOIPreference *pref,
- LocationPOICB cb, const gpointer user_data, guint *req_id);
-
-int map_service_cancel_poi_request (LocationMapIElement *self, guint req_id);
-
-int map_service_request_route (LocationMapIElement *self,
- const LocationPosition *origin, const LocationPosition *destination, GList *waypoint,
- const LocationMapPref *svc_pref, const LocationRoutePreference *pref,
- LocationRouteCB cb, const gpointer user_data, guint * req_id);
-
-int map_service_cancel_route_request (LocationMapIElement *self, guint req_id);
-
-gboolean map_service_is_supported_provider_capability (LocationMapIElement *self, LocationMapServiceType type);
-
-int map_service_get_provider_capability_key (LocationMapIElement *self, LocationMapServiceType type, GList **key);
-
-G_END_DECLS
-
-#endif
diff --git a/location/map-service/map-service.c b/location/map-service/map-service.c
deleted file mode 100644
index 91f59fd..0000000
--- a/location/map-service/map-service.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <glib-object.h>
-#include <vconf.h>
-#include <stdio.h>
-#include <string.h>
-#include "location-log.h"
-#include "location-map-pref.h"
-
-#include "module-internal.h"
-
-#include "map-internal.h"
-#include "map-service.h"
-#include "location-map-ielement.h"
-
-#define MAP_SERVICE_PREFIX "map-service"
-
-gchar *provider_list[] = {
- "decarta",
- "osm",
-};
-
-
-enum {
- PROP_0,
- PROP_PROVIDER,
- PROP_MAX
-};
-
-static GParamSpec *pspec[PROP_MAX] = {NULL, };
-
-static void map_service_ielement_interface_init (LocationMapIElementInterface *iface);
-gchar *map_service_get_default_provider (GObject *obj);
-
-G_DEFINE_TYPE_WITH_CODE (MapService, map_service, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (LOCATION_MAP_TYPE_IELEMENT, map_service_ielement_interface_init));
-
-static void
-_get_lang (gchar country_code[3], gchar lang_code[3])
-{
- if (!country_code || !lang_code) return;
- gchar* langset = vconf_get_str(VCONFKEY_LANGSET);
- LOCATION_LOGD("getenv: %s", langset);
-
- if(langset == NULL){
- lang_code[0] = 'E';
- lang_code[1] = 'N';
- lang_code[2] = '\0';
- country_code[0] = 'U';
- country_code[1] = 'S';
- country_code[2] = '\0';
- }else{
- gchar* langset_upper = g_ascii_strup(langset, -1);
- lang_code[0] = langset_upper[0];
- lang_code[1] = langset_upper[1];
- lang_code[2] = '\0';
- country_code[0] = langset_upper[3];
- country_code[1] = langset_upper[4];
- country_code[2] = '\0';
- g_free(langset_upper);
- }
- LOCATION_LOGD("Language: %s, Country: %s", lang_code, country_code);
-}
-
-
-static void
-map_service_dispose (GObject *gobject)
-{
- LOCATION_LOGD("map_service_dispose");
-
- G_OBJECT_CLASS (map_service_parent_class)->dispose (gobject);
-}
-
-static void
-map_service_finalize (GObject *gobject)
-{
- LOCATION_LOGD("map_service_finalize");
- MapServicePrivate* priv = GET_PRIVATE(gobject);
- module_free(priv->mod, "map-service");
- priv->mod = NULL;
- G_OBJECT_CLASS (map_service_parent_class)->finalize (gobject);
-}
-
-static void
-map_service_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- LOCATION_LOGD("Enter map_service_get_property");
- MapServicePrivate *priv = GET_PRIVATE (object);
-
- g_return_if_fail(priv->mod);
- g_return_if_fail(priv->mod->handler);
- switch (property_id){
- case PROP_PROVIDER:{
- char* service_name = NULL;
- if(priv->mod->ops.get_service_name){
- if( LOCATION_ERROR_NONE != priv->mod->ops.get_service_name(priv->mod->handler, &service_name) ){
- service_name = NULL;
- }
- }
- LOCATION_LOGD("Get prop>> Service name: %s", service_name);
- g_value_set_string(value, service_name);
- g_free(service_name);
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- break;
- }
-}
-
-static void
-map_service_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- LOCATION_LOGD("map_service_set_property");
- MapServicePrivate *priv = GET_PRIVATE (object);
-
- switch (property_id) {
- case PROP_PROVIDER: {
- char buf[256] = {0, };
- gchar *service = g_value_dup_string(value);
-
- if (priv->mod && priv->pref) {
- char *cur_provider = location_map_pref_get_provider_name (priv->pref);
- if (g_strcmp0 (cur_provider, MAP_SERVICE_PREFIX) == 0) {
- snprintf(buf, 255, "%s", cur_provider);
- }
- else {
- snprintf(buf, 255, "%s-%s", MAP_SERVICE_PREFIX, cur_provider);
- }
- module_free(priv->mod, buf);
- memset (buf, 256, 0x0);
- priv->mod = NULL;
- }
-
- if (service == NULL) {
- snprintf (buf, 255, "%s", MAP_SERVICE_PREFIX);
- service = map_service_get_default_provider(object);
- } else {
- snprintf (buf, 255, "%s-%s", MAP_SERVICE_PREFIX, service);
- }
-
- priv->mod = (LocationServiceMod *)module_new (buf);
- if (priv->mod == NULL) {
- priv->mod = (LocationServiceMod *) module_new (MAP_SERVICE_PREFIX);
- service = map_service_get_default_provider(object);
- }
-
- if (priv->pref) {
- location_map_pref_set_provider_name (priv->pref, service);
- }
-
- g_free (service);
- break;
- }
- }
-}
-
-static void
-map_service_ielement_interface_init (LocationMapIElementInterface *iface)
-{
- iface->get_geocode = (TYPE_GET_GEOCODE)map_service_get_geocode;
- iface->get_geocode_freeform = (TYPE_GET_GEOCODE_FREEFORM)map_service_get_geocode_freeform;
- iface->get_reversegeocode = (TYPE_GET_REVERSEGEOCODE)map_service_get_reversegeocode;
- iface->get_geocode_async = (TYPE_GET_GEOCODE_ASYNC)map_service_get_geocode_async;
- iface->get_geocode_freeform_async = (TYPE_GET_GEOCODE_FREEFORM_ASYNC)map_service_get_geocode_freeform_async;
- iface->get_reversegeocode_async = (TYPE_GET_REVERSEGEOCODE_ASYNC)map_service_get_reversegeocode_async;
- iface->search_poi = (TYPE_SEARCH_POI) map_service_search_poi;
- iface->search_poi_by_area = (TYPE_SEARCH_POI_BY_AREA) map_service_search_poi_by_area;
- iface->search_poi_by_address = (TYPE_SEARCH_POI_BY_ADDR) map_service_search_poi_by_address;
- iface->search_poi_by_freeform = (TYPE_SEARCH_POI_BY_FREEFORM) map_service_search_poi_by_freeform;
- iface->cancel_poi_request = (TYPE_CANCEL_POI_REQUEST) map_service_cancel_poi_request;
- iface->request_route = (TYPE_REQUEST_ROUTE) map_service_request_route;
- iface->cancel_route_request = (TYPE_CANCEL_ROUTE_REQUEST) map_service_cancel_route_request;
- iface->is_supported_provider_capability = (TYPE_IS_SUPPORTED_PROVIDER_CAPABILITY) map_service_is_supported_provider_capability;
- iface->get_provider_capability_key = (TYPE_GET_PROVIDER_CAPABILITY_KEY) map_service_get_provider_capability_key;
-
-}
-
-static void
-map_service_init (MapService *self)
-{
- LOCATION_LOGD("map_service_init");
- MapServicePrivate* priv = GET_PRIVATE(self);
-
- priv->pref = location_map_pref_new ();
- if(!priv->pref) LOCATION_LOGW("Service preference failed");
-
- gchar country[3], lang[3];
- _get_lang (country, lang);
- location_map_pref_set_language (priv->pref, lang);
- location_map_pref_set_distance_unit (priv->pref, "MI");
- location_map_pref_set_provider_name (priv->pref, "decarta");
-}
-
-static void
-map_service_class_init (MapServiceClass *klass)
-{
- LOCATION_LOGD("map_service_class_init");
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->get_property = map_service_get_property;
- gobject_class->set_property = map_service_set_property;
-
- gobject_class->dispose = map_service_dispose;
- gobject_class->finalize = map_service_finalize;
-
- g_type_class_add_private (klass, sizeof (MapServicePrivate));
-
- pspec[PROP_PROVIDER] = g_param_spec_string ("provider",
- "map service provider name prop",
- "map service provider name",
- MAP_SERVICE_PREFIX,
- G_PARAM_READWRITE);
- g_object_class_install_properties (gobject_class,
- PROP_MAX,
- pspec);
-}
-
-LocationMapPref *
-map_service_get_pref(GObject *obj)
-{
- LOCATION_LOGD("map_service_get_pref");
- MapServicePrivate* priv = GET_PRIVATE(obj);
- if (!priv) return NULL;
- if (!priv->pref) return NULL;
-
- LocationMapPref *pref = location_map_pref_copy(priv->pref);
-
- return pref;
-}
-
-gboolean
-map_service_set_pref (GObject *obj, LocationMapPref *pref)
-{
- LOCATION_LOGD("map_service_set_pref");
-
- gchar *provider = NULL;
- MapServicePrivate* priv = GET_PRIVATE(obj);
- if (!priv) return FALSE;
- if (!priv->pref) location_map_pref_free(priv->pref);
-
- priv->pref = location_map_pref_copy (pref);
- provider = location_map_pref_get_provider_name (pref);
- if (provider) {
- g_object_set (obj, "provider", provider, NULL);
- }
-
- return TRUE;
-}
-
-GList *
-map_service_get_supported_providers (GObject *obj)
-{
- LOCATION_LOGD("map_service_get_supported_providers");
-
- int idx;
- gchar buf[128] = {0, };
- GList *list = NULL;
-
- for (idx = 0; idx < sizeof(provider_list)/sizeof(gchar*); idx++) {
- memset (buf, 128, 0x0);
- snprintf(buf, 127, "%s-%s", MAP_SERVICE_PREFIX, provider_list[idx]);
- if (module_is_supported(buf) == TRUE) {
- list = g_list_append(list, g_strdup (provider_list[idx]));
- }
- }
-
- return list;
-}
-
-gchar *
-map_service_get_default_provider (GObject *obj)
-{
- LOCATION_LOGD("map_service_get_default_provider");
-
- int idx = 0;
- gchar *path = mod_get_realpath (MAP_SERVICE_PREFIX);
- if (!path) return NULL;
-
- for (idx = 0; idx < sizeof(provider_list)/sizeof(gchar*); idx++) {
- if (strstr (path, provider_list[idx]) != NULL) {
- break;
- }
- }
-
- if (idx == sizeof(provider_list)/sizeof(gchar*)) {
- return NULL;
- }
-
- g_free (path);
- return g_strdup (provider_list[idx]);
-}
-
-gboolean
-map_service_set_provider (GObject *obj, gchar *provider)
-{
- LOCATION_LOGD("map_service_get_default_provider");
- gchar *set_provider = NULL;
-
- g_object_set (obj, "provider", provider, NULL);
- g_object_get (obj, "provider", &set_provider, NULL);
-
- if (set_provider && strcmp (provider, set_provider) != 0) {
- LOCATION_LOGE("Requested [%s], but current provider [%s]", provider, set_provider);
- g_free (set_provider);
- return FALSE;
- }
-
- g_free (set_provider);
- return TRUE;
-}
diff --git a/location/map-service/map-service.h b/location/map-service/map-service.h
deleted file mode 100644
index 3b7b281..0000000
--- a/location/map-service/map-service.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __MAP_SERVICE_H__
-#define __MAP_SERVICE_H__
-
-#include <glib-object.h>
-#include <module-internal.h>
-
-/**
- * @file map-service.h
- * @brief This file contains the internal definitions and structures related to a service provider.
- */
-
-G_BEGIN_DECLS
-
-typedef struct _MapService MapService;
-typedef struct _MapServiceClass MapServiceClass;
-typedef struct _MapServicePrivate MapServicePrivate;
-
-#define MAP_TYPE_SERVICE (map_service_get_type ())
-#define MAP_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAP_TYPE_SERVICE, MapService))
-#define MAP_IS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAP_TYPE_SERVICE))
-#define MAP_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAP_TYPE_SERVICE, MapServiceClass))
-#define MAP_IS_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAP_TYPE_SERVICE))
-#define MAP_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAP_TYPE_SERVICE, MapServiceClass))
-
-#define GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MAP_TYPE_SERVICE, MapServicePrivate))
-
-struct _MapService
-{
- GObject parent_instance;
-};
-
-struct _MapServiceClass
-{
- GObjectClass parent_class;
-};
-
-struct _MapServicePrivate {
- LocationServiceMod* mod;
- LocationMapPref *pref;
-};
-
-GType map_service_get_type (void);
-
-LocationMapPref *map_service_get_pref(GObject *obj);
-
-gboolean map_service_set_pref (GObject *obj, LocationMapPref *pref);
-
-G_END_DECLS
-
-#endif /* __MAP_SERVICE_H__ */
diff --git a/location/module/Makefile.am b/location/module/Makefile.am
index d517f09..cc3a13b 100644
--- a/location/module/Makefile.am
+++ b/location/module/Makefile.am
@@ -1,20 +1,17 @@
-noinst_LTLIBRARIES = liblocation-module.la
-
-COMMON_HEADER_DIR = include
-MANAGER_DIR = manager
-MAP_SERVICE_DIR = map-service
-MODULE_DIR = module
-
-liblocation_module_la_SOURCES = \
- module-internal.c
-
-liblocation_module_la_CFLAGS = \
- -fPIC\
- -I${srcdir} \
- -I${srcdir}/.. \
- -I${srcdir}/../include \
- -I${srcdir}/../${MANAGER_DIR} \
- -I${srcdir}/../${MODULE_DIR} \
- -I${srcdir}/../${MAP_SERVICE_DIR} \
- $(LOCATION_CFLAGS)
-
+noinst_LTLIBRARIES = liblocation-module.la
+
+COMMON_HEADER_DIR = include
+MANAGER_DIR = manager
+MODULE_DIR = module
+
+liblocation_module_la_SOURCES = \
+ module-internal.c
+
+liblocation_module_la_CFLAGS = \
+ -fPIC\
+ -I${srcdir} \
+ -I${srcdir}/.. \
+ -I${srcdir}/../include \
+ -I${srcdir}/../${MANAGER_DIR} \
+ -I${srcdir}/../${MODULE_DIR} \
+ $(LOCATION_CFLAGS)
diff --git a/location/module/location-module.h b/location/module/location-module.h
index c5cbefb..fe5b5fd 100644
--- a/location/module/location-module.h
+++ b/location/module/location-module.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,11 +24,10 @@
#include <gmodule.h>
#include <location-types.h>
-#include <location-map-types.h>
#include <location-position.h>
+#include <location-batch.h>
#include <location-velocity.h>
#include <location-accuracy.h>
-#include <location-address.h>
#include <location-satellite.h>
G_BEGIN_DECLS
@@ -47,43 +46,6 @@ G_BEGIN_DECLS
* @{
*/
-/**
- * @brief This represents APIs declared in a geocode plug-in for location geocode modules.
- */
-typedef struct{
- int (*get_service_name)(gpointer handle, gchar **servicename);
- ///< This is used for getting a service name from a plug-in.
- int (*get_geocode)(gpointer handle, const LocationAddress *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
- ///< This is used for getting a geocode from a plug-in.
- int (*get_geocode_freetext)(gpointer handle, const gchar *address, const LocationMapPref *svc_pref, GList **position_list, GList **accuracy_list);
- ///< This is used for getting a geocode by using a free-fromed address from a plug-in.
- int (*get_reverse_geocode)(gpointer handle, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddress **address, LocationAccuracy **accuracy);
- ///< This is used for getting a reverse geocode from a plug-in.
- int (*get_geocode_async)(gpointer handle, const LocationAddress *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
- ///< This is used for getting a geocode from a plug-in asynchronously.
- int (*get_geocode_freetext_async)(gpointer handle, const gchar *address, const LocationMapPref *svc_pref, LocationPositionCB callback, gpointer userdata);
- ///< This is used for getting a geocode by using a free-fromed address from a plug-in asynchronously.
- int (*get_reverse_geocode_async)(gpointer handle, const LocationPosition *position, const LocationMapPref *svc_pref, LocationAddressCB callback, gpointer userdata);
- ///< This is used for getting a reverse geocode from a plug-in asynchronously.
- int (*search_poi) (gpointer handle, const LocationPOIFilter *filter, const LocationPosition *position, const LocationMapPref *svc_pref, const LocationPOIPreference *pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
- ///< This is used for searching poi with the position from a plug-in asynchronously.
- int (*search_poi_by_area) (gpointer handle, const LocationPOIFilter *filter, const LocationBoundary *boundary, const LocationMapPref *svc_pref, const LocationPOIPreference *pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
- ///< This is used for searching poi with the boundary from a plug-in asynchronously.
- int (*search_poi_by_address) (gpointer handle, const LocationPOIFilter *filter, const LocationAddress *address, const LocationMapPref *svc_pref, const LocationPOIPreference *pref, LocationPOICB cb, const gpointer user_data, guint * req_id);
- ///< This is used for searching poi with the address from a plug-in asynchronously.
- int (*search_poi_by_freeform) (gpointer handle, const LocationPOIFilter * filter, const gchar *freeform, const LocationMapPref *svc_pref, const LocationPOIPreference *pref, LocationPOICB cb, const gpointer user_data, guint *req_id);
- ///< This is used for searching poi with the freeform address from a plug-in asynchronously.
- int (*cancel_poi_request) (gpointer handle, guint req_id);
- ///< This is used for cancel poi request from a plug-in.
- int (*request_route) (gpointer handle, const LocationPosition *origin, const LocationPosition *destination, GList *waypoint, const LocationMapPref *svc_pref, const LocationRoutePreference * pref, LocationRouteCB cb, const gpointer user_data, guint * req_id);
- ///< This is used for requesting route from a plug-in asynchronously.
- int (*cancel_route_request) (gpointer handle, guint req_id);
- ///< This is used for cancel route request from a plug-in.
- gboolean (*is_supported_provider_capability) (gpointer handle, LocationMapServiceType type);
- ///< This is used to check whether map service is supported on a plug-in.
- int (*get_provider_capability_key) (gpointer handle, LocationMapServiceType type, GList **key);
- ///< This is used to get map service keys on a plug-in.
-} LocModServiceOps;
/**
* @brief This represents a enabled/disabled callback function for a plug-in.
@@ -93,12 +55,12 @@ typedef void (*LocModStatusCB)(gboolean enabled, LocationStatus status, gpointer
/**
* @brief This represents a position callback function for a plug-in.
*/
-typedef void (*LocModPositionCB) (gboolean enabled, LocationPosition *position, LocationAccuracy *accuracy, gpointer userdata);
+typedef void (*LocModPositionExtCB) (gboolean enabled, LocationPosition *position, LocationVelocity *velocity, LocationAccuracy *accuracy, gpointer userdata);
/**
- * @brief This represents a velocity callback function for a plug-in.
+ * @brief This represents a batch callback function for a plug-in.
*/
-typedef void (*LocModVelocityCB) (gboolean enabled, LocationVelocity *velocity, LocationAccuracy *accuracy, gpointer userdata);
+typedef void (*LocModBatchExtCB) (gboolean enabled, guint num_of_location, gpointer userdata);
/**
* @brief This represents a velocity callback function for a plug-in.
@@ -109,43 +71,29 @@ typedef void (*LocModSatelliteCB) (gboolean enabled, LocationSatellite *satellit
* @brief This represents APIs declared in a GPS plug-in for location GPS modules.
*/
typedef struct{
- int (*start)(gpointer handle, LocModStatusCB status_cb, LocModPositionCB pos_cb, LocModVelocityCB vel_cb, LocModSatelliteCB sat_cb, gpointer userdata); ///< This is used for starting a GPS device from a plug-in. #LocModStatusCB, #LocModPositionCB, and #LocModVelocityCB are given from a location framework to a plug-in for asynchronous signaling.
+ int (*start)(gpointer handle, guint pos_update_interval, LocModStatusCB status_cb, LocModPositionExtCB pos_ext_cb, LocModSatelliteCB sat_cb, gpointer userdata); ///< This is used for starting a GPS device from a plug-in. #LocModStatusCB, #LocModPositionExtCB are given from a location framework to a plug-in for asynchronous signaling.
+ int (*start_batch)(gpointer handle, LocModBatchExtCB batch_ext_cb, guint batch_interval, guint batch_period, gpointer userdata); ///< This is used for starting a GPS batch mode from a plug-in. #LocModBatchExtCB are given from a location framework to a plug-in for asynchronous signaling.
int (*stop)(gpointer handle); ///< This is used for stopping a GPS device name from a plug-in.
- int (*get_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a position from a plug-in.
- int (*get_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a velocity from a plug-in.
- int (*get_last_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a last position from a plug-in.
- int (*get_last_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a last velocity from a plug-in.
+ int (*stop_batch)(gpointer handle); ///< This is used for stopping a GPS batch mode from a plug-in.
+ int (*get_position)(gpointer handle, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a position from a plug-in.
+ int (*get_last_position)(gpointer handle, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a last position from a plug-in.
int (*get_nmea)(gpointer handle, gchar** nmea_data); ///< This is used for getting a nmea string from a plug-in.
int (*get_satellite)(gpointer handle, LocationSatellite **satellite); ///< This is used for getting a satellite information from a plug-in.
int (*get_last_satellite)(gpointer handle, LocationSatellite **satellite); ///< This is used for getting a last satellite information from a plug-in.
- int (*set_devname)(gpointer handle, const gchar *devname); ///< This is used for setting a device name from a plug-in.
- int (*get_devname)(gpointer handle, gchar **devname); ///< This is used for getting a device name from a plug-in.
+ int (*set_option)(gpointer handle, const char *option);
+ int (*set_position_update_interval)(gpointer handle, guint interval);
} LocModGpsOps;
/**
* @brief This represents APIs declared in a WPS plug-in for location WPS modules.
*/
typedef struct{
- int (*start)(gpointer handle, LocModStatusCB status_cb, LocModPositionCB pos_cb, LocModVelocityCB vel_cb, LocModSatelliteCB sat_cb, gpointer userdata); ///< This is used for starting a WPS service from a plug-in. #LocModStatusCB, #LocModPositionCB, #LocModVelocityCB and #LocModSatelliteCB(Not used) are given from a location framework to a plug-in for asynchronous signaling.
+ int (*start)(gpointer handle, LocModStatusCB status_cb, LocModPositionExtCB pos_ext_cb, LocModSatelliteCB sat_cb, gpointer userdata); ///< This is used for starting a WPS service from a plug-in. #LocModStatusCB, #LocModPositionExtCB and #LocModSatelliteCB(Not used) are given from a location framework to a plug-in for asynchronous signaling.
int (*stop)(gpointer handle); ///< This is used for stopping a WPS service from a plug-in.
- int (*get_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a position from a plug-in.
- int (*get_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a velocity from a plug-in.
- int (*get_last_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a last position from a plug-in.
- int (*get_last_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a last velocity from a plug-in.
+ int (*get_position)(gpointer handle, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a position from a plug-in.
+ int (*get_last_position)(gpointer handle, LocationPosition **position, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a last position from a plug-in.
+ int (*set_option)(gpointer handle, const char *option);
} LocModWpsOps;
-
-/**
- * @brief This represents APIs declared in a CPS plug-in for location CPS modules.
- */
-typedef struct{
- int (*start)(gpointer handle, LocModStatusCB status_cb, LocModPositionCB pos_cb, LocModVelocityCB vel_cb, LocModSatelliteCB sat_cb, gpointer userdata); ///< This is used for starting a WPS service from a plug-in. #LocModStatusCB, #LocModPositionCB, #LocModVelocityCB and #LocModSatelliteCB(Not used) are given from a location framework to a plug-in for asynchronous signaling.
- int (*stop)(gpointer handle);
- int (*get_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a position from a plug-in.
- int (*get_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a velocity from a plug-in.
- int (*get_last_position)(gpointer handle, LocationPosition **position, LocationAccuracy **accuracy); ///< This is used for getting a last position from a plug-in.
- int (*get_last_velocity)(gpointer handle, LocationVelocity **velocity, LocationAccuracy **accuracy); ///< This is used for getting a last velocity from a plug-in.
-} LocModCpsOps;
-
/**
* @brief This is used for exported APIs in a plug-in for a location framework.
*/
diff --git a/location/module/module-internal.c b/location/module/module-internal.c
index 46214c0..bc90bed 100644
--- a/location/module/module-internal.c
+++ b/location/module/module-internal.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,214 +31,158 @@
#include "module-internal.h"
#include "location-log.h"
-#define MAX_MODULE_INDEX 3
-const char* MODULE_PATH_PREFIX = "/usr/lib/location/module";
+#define MAX_MODULE_INDEX 4
+const char *MODULE_PATH_PREFIX = "/usr/lib/location/module";
-static GMod*
-gmod_new (const char* module_name, gboolean is_resident)
+static GMod *gmod_new(const char *module_name, gboolean is_resident)
{
- if(!module_name)
+ if (!module_name)
return NULL;
- GMod* gmod = g_new0(GMod, 1);
+ GMod *gmod = g_new0(GMod, 1);
gmod->name = g_strdup(module_name);
- if(!gmod->name) {
+ if (!gmod->name) {
g_free(gmod);
return NULL;
}
- gmod->path = g_module_build_path (MODULE_PATH_PREFIX, gmod->name);
- if(!gmod->path){
+ gmod->path = g_module_build_path(MODULE_PATH_PREFIX, gmod->name);
+ if (!gmod->path) {
g_free(gmod->name);
g_free(gmod);
- gmod->name = NULL;
return NULL;
}
gmod->module = g_module_open(gmod->path, G_MODULE_BIND_LAZY);
- if(!gmod->module){
+ if (!gmod->module) {
g_free(gmod->name);
g_free(gmod->path);
g_free(gmod);
- gmod->name = NULL;
- gmod->path = NULL;
-
return NULL;
}
- if(is_resident)
+ if (is_resident)
g_module_make_resident(gmod->module);
return gmod;
}
-static void
-gmod_free (GMod* gmod)
+static void gmod_free(GMod * gmod)
{
- if(gmod->name)
+ if (gmod->name)
g_free(gmod->name);
- if(gmod->path)
+ if (gmod->path)
g_free(gmod->path);
- if(gmod->module)
+ if (gmod->module)
g_module_close(gmod->module);
g_free(gmod);
}
static gboolean
-gmod_find_sym (GMod* gmod,
- gpointer* init_func, gpointer* shutdown_func)
+gmod_find_sym(GMod * gmod, gpointer * init_func, gpointer * shutdown_func)
{
char sym[256];
g_stpcpy(sym, "init");
- if ( !g_module_symbol (gmod->module, sym, init_func) ){
+ if (!g_module_symbol(gmod->module, sym, init_func)) {
LOCATION_LOGW("symbol not found: %s", sym);
return FALSE;
}
g_stpcpy(sym, "shutdown");
- if ( !g_module_symbol (gmod->module, sym, shutdown_func) ){
+ if (!g_module_symbol(gmod->module, sym, shutdown_func)) {
LOCATION_LOGW("symbol not found: %s", sym);
return FALSE;
}
return TRUE;
}
-static gpointer
-mod_new (const char* module_name)
+static gpointer mod_new(const char *module_name)
{
gpointer ret_mod = NULL;
- if(!module_name)
+ if (!module_name)
return NULL;
- GMod* gmod = NULL;
+ GMod *gmod = NULL;
gpointer init = NULL;
gpointer shutdown = NULL;
gmod = gmod_new(module_name, TRUE);
- if(!gmod){
+ if (!gmod) {
LOCATION_LOGW("module(%s) new failed", module_name);
return NULL;
}
- if( !gmod_find_sym(gmod, &init, &shutdown) ){
+ if (!gmod_find_sym(gmod, &init, &shutdown)) {
LOCATION_LOGW("symbol (init, shutdown) finding failed");
gmod_free(gmod);
return NULL;
}
- if(!init || !shutdown){
+ if (!init || !shutdown) {
LOCATION_LOGW("init, shutdown symbol is NULL");
gmod_free(gmod);
return NULL;
}
- if(g_str_has_prefix(module_name, "map-service")){
- LocationServiceMod* _mod = g_new0(LocationServiceMod, 1);
- _mod->gmod = gmod;
- _mod->init = init;
- _mod->shutdown= shutdown;
- _mod->handler= _mod->init(&(_mod->ops));
- if(!_mod->handler){
- LOCATION_LOGW("module init failed");
- gmod_free(_mod->gmod);
- ret_mod = NULL;
- }else
- ret_mod = (gpointer)_mod;
- }else if(g_str_has_prefix(module_name, "gps")){
- LocationGpsMod* _mod = g_new0(LocationGpsMod, 1);
- _mod->gmod = gmod;
- _mod->init = init;
- _mod->shutdown= shutdown;
- _mod->handler= _mod->init(&(_mod->ops));
- if(!_mod->handler){
- LOCATION_LOGW("module init failed");
- gmod_free(_mod->gmod);
- ret_mod = NULL;
- }else
- ret_mod = (gpointer)_mod;
- }else if(g_str_has_prefix(module_name, "wps")){
- LocationWpsMod* _mod = g_new0(LocationWpsMod, 1);
+ if (g_str_has_prefix(module_name, "gps")) {
+ LocationGpsMod *_mod = g_new0(LocationGpsMod, 1);
_mod->gmod = gmod;
_mod->init = init;
- _mod->shutdown= shutdown;
- _mod->handler= _mod->init(&(_mod->ops));
- if(!_mod->handler){
+ _mod->shutdown = shutdown;
+ _mod->handler = _mod->init(&(_mod->ops));
+ if (!_mod->handler) {
LOCATION_LOGW("module init failed");
gmod_free(_mod->gmod);
ret_mod = NULL;
- }else
- ret_mod = (gpointer)_mod;
- }else if(g_str_has_prefix(module_name, "cps")){
- LocationCpsMod* _mod = g_new0(LocationCpsMod, 1);
+ } else
+ ret_mod = (gpointer) _mod;
+ } else if (g_str_has_prefix(module_name, "wps")) {
+ LocationWpsMod *_mod = g_new0(LocationWpsMod, 1);
_mod->gmod = gmod;
_mod->init = init;
- _mod->shutdown= shutdown;
- _mod->handler= _mod->init(&(_mod->ops));
- if(!_mod->handler){
+ _mod->shutdown = shutdown;
+ _mod->handler = _mod->init(&(_mod->ops));
+ if (!_mod->handler) {
LOCATION_LOGW("module init failed");
gmod_free(_mod->gmod);
ret_mod = NULL;
- }else
- ret_mod = (gpointer)_mod;
- }else{
+ } else
+ ret_mod = (gpointer) _mod;
+ }else {
LOCATION_LOGW("module name (%s) is wrong", module_name);
ret_mod = NULL;
}
return ret_mod;
}
-
-static void
-mod_free (gpointer mod,
- const char* module_name)
+static void mod_free(gpointer mod, const char *module_name)
{
- if(!mod || !module_name)
+ if (!mod || !module_name)
return;
- if(g_str_has_prefix(module_name, "map-service")){
- LocationServiceMod* _mod = (LocationServiceMod*)mod;
- if(_mod->shutdown && _mod->handler){
+ if (0 == g_strcmp0(module_name, "gps")) {
+ LocationGpsMod *_mod = (LocationGpsMod *) mod;
+ if (_mod->shutdown && _mod->handler) {
_mod->shutdown(_mod->handler);
}
_mod->handler = NULL;
_mod->init = NULL;
- _mod->shutdown= NULL;
+ _mod->shutdown = NULL;
gmod_free(_mod->gmod);
_mod->gmod = NULL;
- }else if(0 == g_strcmp0(module_name, "gps")){
- LocationGpsMod* _mod = (LocationGpsMod*)mod;
- if(_mod->shutdown && _mod->handler){
+ } else if (0 == g_strcmp0(module_name, "wps")) {
+ LocationWpsMod *_mod = (LocationWpsMod *) mod;
+ if (_mod->shutdown && _mod->handler) {
_mod->shutdown(_mod->handler);
}
_mod->handler = NULL;
_mod->init = NULL;
- _mod->shutdown= NULL;
+ _mod->shutdown = NULL;
gmod_free(_mod->gmod);
_mod->gmod = NULL;
- }else if(0 == g_strcmp0(module_name, "wps")){
- LocationWpsMod* _mod = (LocationWpsMod*)mod;
- if(_mod->shutdown && _mod->handler){
- _mod->shutdown(_mod->handler);
- }
- _mod->handler = NULL;
- _mod->init = NULL;
- _mod->shutdown= NULL;
- gmod_free(_mod->gmod);
- _mod->gmod = NULL;
- }else if(0 == g_strcmp0(module_name, "cps")){
- LocationCpsMod* _mod = (LocationCpsMod*)mod;
- if(_mod->shutdown && _mod->handler){
- _mod->shutdown(_mod->handler);
- }
- _mod->handler = NULL;
- _mod->init = NULL;
- _mod->shutdown= NULL;
- gmod_free(_mod->gmod);
- _mod->gmod = NULL;
- }else
+ } else
LOCATION_LOGW("module name (%s) is wrong", module_name);
g_free(mod);
}
-static gboolean
-mod_is_supported(const char *module_name)
+static gboolean mod_is_supported(const char *module_name)
{
- GMod * gmod = NULL;
+ GMod *gmod = NULL;
gmod = gmod_new(module_name, FALSE);
- if(!gmod) {
+ if (!gmod) {
return FALSE;
}
gmod_free(gmod);
@@ -246,7 +190,7 @@ mod_is_supported(const char *module_name)
return TRUE;
}
-gboolean module_init (void)
+gboolean module_init(void)
{
if (!g_module_supported()) {
LOCATION_LOGW("module is not supported");
@@ -255,38 +199,35 @@ gboolean module_init (void)
return TRUE;
}
-void
-module_free (gpointer mod,
- const char* module_name)
+void module_free(gpointer mod, const char *module_name)
{
- if(!mod || !module_name)
+ if (!mod || !module_name)
return;
mod_free(mod, module_name);
}
-gpointer
-module_new (const char* module_name)
+gpointer module_new(const char *module_name)
{
- if(!module_name)
+ if (!module_name)
return NULL;
int index = 0;
char name[256];
gpointer mod = NULL;
- for(index = -1 ; index < MAX_MODULE_INDEX ; index++){
- if(index >= 0){
- if( 0 >= g_snprintf(name, 256, "%s%d", module_name, index)){
+ for (index = -1; index < MAX_MODULE_INDEX; index++) {
+ if (index >= 0) {
+ if (0 >= g_snprintf(name, 256, "%s%d", module_name, index)) {
LOCATION_LOGW("module name(%s) is wrong", name);
continue;
}
- }else{
- if( 0 >= g_snprintf(name, 256, "%s", module_name)){
+ } else {
+ if (0 >= g_snprintf(name, 256, "%s", module_name)) {
LOCATION_LOGW("module name(%s) is wrong", name);
continue;
}
}
mod = mod_new(name);
- if(mod){
+ if (mod) {
LOCATION_LOGW("module (%s) open success", name);
break;
}
@@ -295,27 +236,26 @@ module_new (const char* module_name)
return mod;
}
-gboolean
-module_is_supported(const char *module_name)
+gboolean module_is_supported(const char *module_name)
{
- if(!module_name)
+ if (!module_name)
return FALSE;
int index = 0;
gboolean ret = FALSE;
gboolean found = FALSE;
- char name[256] = {0, };
+ char name[256] = { 0, };
- for(index = -1 ; index < MAX_MODULE_INDEX ; index++){
- if(index >= 0){
+ for (index = -1; index < MAX_MODULE_INDEX; index++) {
+ if (index >= 0) {
g_snprintf(name, 256, "%s%d", module_name, index);
- }else{
+ } else {
g_snprintf(name, 256, "%s", module_name);
}
ret = mod_is_supported(name);
- if(ret == TRUE) {
+ if (ret == TRUE) {
found = TRUE;
LOCATION_LOGW("module name(%s) is found", name);
break;
@@ -325,24 +265,22 @@ module_is_supported(const char *module_name)
return found;
}
-gchar *
-mod_get_realpath (const gchar *module_name)
+gchar *mod_get_realpath(const gchar * module_name)
{
- gchar origin_path[PATH_MAX] = {0, };
- gchar link_path[PATH_MAX] = {0, };
+ gchar origin_path[PATH_MAX] = { 0, };
+ gchar link_path[PATH_MAX] = { 0, };
gchar *path = NULL;
- snprintf (link_path, PATH_MAX, "%s/lib%s.so", MODULE_PATH_PREFIX, module_name);
-
- realpath (link_path, origin_path);
+ snprintf(link_path, PATH_MAX, "%s/lib%s.so", MODULE_PATH_PREFIX, module_name);
- if (!origin_path) {
- LOCATION_LOGE ("Fail to get real path of [%s]", module_name);
+ if (realpath(link_path, origin_path) == NULL || strlen(origin_path) == 0 ) {
+ LOCATION_LOGE("Fail to get real path of [%s]", module_name);
return NULL;
}
path = strrchr(origin_path, '/');
- if (!path) return NULL;
+ if (!path)
+ return NULL;
- return g_strdup (path);
+ return g_strdup(path);
}
diff --git a/location/module/module-internal.h b/location/module/module-internal.h
index f118b01..1e104f8 100644
--- a/location/module/module-internal.h
+++ b/location/module/module-internal.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,16 +36,16 @@ typedef struct{
char* path;
} GMod;
-typedef struct{
+/*typedef struct{
GMod* gmod;
gpointer handler;
gpointer (*init)(LocModServiceOps* ops);
void (*shutdown)(gpointer handle);
LocModServiceOps ops;
-} LocationServiceMod;
+} LocationServiceMod;*/
typedef struct{
- GMod* gmod;
+ GMod* gmod;
gpointer handler;
gpointer (*init)(LocModGpsOps* ops);
void (*shutdown)(gpointer handle);
@@ -53,20 +53,13 @@ typedef struct{
} LocationGpsMod;
typedef struct{
- GMod* gmod;
+ GMod* gmod;
gpointer handler;
gpointer (*init)(LocModWpsOps* ops);
void (*shutdown)(gpointer handle);
LocModWpsOps ops;
} LocationWpsMod;
-typedef struct{
- GMod* gmod;
- gpointer handler;
- gpointer (*init)(LocModCpsOps* ops);
- void (*shutdown)(gpointer handle);
- LocModCpsOps ops;
-} LocationCpsMod;
G_BEGIN_DECLS
@@ -75,7 +68,7 @@ gpointer module_new(const char* module_name);
void module_free(gpointer mod, const char* module_name);
gboolean module_is_supported(const char *module_name);
gchar *mod_get_realpath(const gchar *module_name);
-
+
G_END_DECLS
#endif
diff --git a/packaging/libslp-location.spec b/packaging/libslp-location.spec
index b11d718..61863a1 100644
--- a/packaging/libslp-location.spec
+++ b/packaging/libslp-location.spec
@@ -1,31 +1,34 @@
-Name: libslp-location
-Summary: Location Based Service
-Version: 0.3.39
-Release: 1
-Group: System/Libraries
-License: TBD
-Source0: %{name}-%{version}.tar.gz
-Requires(post): /sbin/ldconfig
-Requires(post): /usr/bin/vconftool
-Requires(postun): /sbin/ldconfig
+Name: libslp-location
+Summary: Location Based Service
+Version: 0.9.5
+Release: 1
+Group: Framework/Location
+License: Apache-2.0
+Source0: %{name}-%{version}.tar.gz
+Requires(post): /sbin/ldconfig
+Requires(post): /usr/bin/vconftool
+Requires(postun): /sbin/ldconfig
+BuildRequires: cmake
+BuildRequires: model-build-features
BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(gconf-2.0)
-BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(vconf)
-BuildRequires: pkgconfig(location-appman)
-#BuildRequires: pkgconfig(json-glib-1.0)
-
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(capi-appfw-package-manager)
+BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(privacy-manager-client)
+BuildRequires: pkgconfig(json-glib-1.0)
+BuildRequires: pkgconfig(lbs-dbus)
%description
Location Based Service Libraries
%package devel
-Summary: Location Based Service (Development files)
-Group: System/Libraries
-Requires: %{name} = %{version}-%{release}
+Summary: Location Based Service (Development files)
+Group: System/Libraries
+Requires: %{name} = %{version}-%{release}
%description devel
Location Based Service Development Package
@@ -37,10 +40,14 @@ Location Based Service Development Package
%build
-./autogen.sh
-./configure --prefix=%{_prefix} --enable-dlog --enable-debug
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
# Call make instruction with smp support
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+
make %{?jobs:-j%jobs}
@@ -55,36 +62,43 @@ rm -rf %{buildroot}
%post
/sbin/ldconfig
-vconftool set -t int db/location/last/gps/Timestamp "0" -f
-vconftool set -t double db/location/last/gps/Latitude "0.0" -f
-vconftool set -t double db/location/last/gps/Longitude "0.0" -f
-vconftool set -t double db/location/last/gps/Altitude "0.0" -f
-vconftool set -t double db/location/last/gps/HorAccuracy "0.0" -f
-vconftool set -t double db/location/last/gps/VerAccuracy "0.0" -f
-vconftool set -t double db/location/last/gps/Speed "0.0" -f
-vconftool set -t double db/location/last/gps/Direction "0.0" -f
-vconftool set -t int db/location/last/wps/Timestamp "0" -f
-vconftool set -t double db/location/last/wps/Latitude "0.0" -f
-vconftool set -t double db/location/last/wps/Longitude "0.0" -f
-vconftool set -t double db/location/last/wps/Altitude "0.0" -f
-vconftool set -t double db/location/last/wps/HorAccuracy "0.0" -f
-vconftool set -t double db/location/last/wps/Speed "0.0" -f
-vconftool set -t double db/location/last/wps/Direction "0.0" -f
-vconftool set -t int db/location/last/cps/Timestamp "0" -f
-vconftool set -t double db/location/last/cps/Latitude "0.0" -f
-vconftool set -t double db/location/last/cps/Longitude "0.0" -f
-vconftool set -t double db/location/last/cps/Altitude "0.0" -f
-vconftool set -t double db/location/last/cps/HorAccuracy "0.0" -f
-vconftool set -t int db/location/setting/GpsEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/AgpsEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/NetworkEnabled "0" -g 6514 -f
-vconftool set -t int db/location/setting/SensorEnabled "0" -g 6514 -f
-
+vconftool set -t int memory/location/last/gps/Timestamp "0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/Latitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/Longitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/Altitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/HorAccuracy "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/VerAccuracy "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/Speed "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/gps/Direction "0.0" -i -f -s location_fw::client
+vconftool set -t int memory/location/last/wps/Timestamp "0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/Latitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/Longitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/Altitude "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/HorAccuracy "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/Speed "0.0" -i -f -s location_fw::client
+vconftool set -t double memory/location/last/wps/Direction "0.0" -i -f -s location_fw::client
+
+vconftool set -t int db/location/last/gps/LocTimestamp "0" -f -s location_fw::client
+vconftool set -t int db/location/last/wps/LocTimestamp "0" -f -s location_fw::client
+vconftool set -t string db/location/last/gps/Location "0.0;0.0;0.0;0.0;0.0;0.0;0.0;" -f -s location_fw::client
+vconftool set -t string db/location/last/wps/Location "0.0;0.0;0.0;0.0;0.0;0.0;" -f -s location_fw::client
+
+vconftool set -t int db/location/setting/Usemylocation "1" -g 6514 -f -s location_fw::vconf
+vconftool set -t int db/location/setting/GpsEnabled "1" -g 6514 -f -s location_fw::vconf
+vconftool set -t int db/location/setting/AgpsEnabled "0" -g 6514 -f -s location_fw::vconf
+vconftool set -t int db/location/setting/GpsPopup "1" -g 6514 -f -s system::vconf_network
+
+%if 0%{?model_build_feature_location_position_wps}
+vconftool set -t int db/location/setting/NetworkEnabled "1" -g 6514 -f -s location_fw::vconf
+%else
+vconftool set -t int db/location/setting/NetworkEnabled "0" -g 6514 -f -s location_fw::vconf
+%endif
%postun -p /sbin/ldconfig
%files
+%manifest libslp-location.manifest
%{_libdir}/lib*.so*
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6da5435..6e27f98 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,20 +1,17 @@
dir_location = $(top_srcdir)/location
-noinst_PROGRAMS = location-api-test gps-test wps-test hybrid-test cps-test\
- position-sample-gps velocity-sample nmea-sample satellite-sample property-sample zone-sample address-sample map-service-test
+noinst_PROGRAMS = location-api-test gps-test wps-test hybrid-test\
+ position-sample-gps velocity-sample nmea-sample satellite-sample property-sample zone-sample
-gps_test_SOURCES = gps-test.c
-wps_test_SOURCES = wps-test.c
-hybrid_test_SOURCES = hybrid-test.c
-cps_test_SOURCES = cps-test.c
-position_sample_gps_SOURCES = position-sample-gps.c
+gps_test_SOURCES = gps-test.c
+wps_test_SOURCES = wps-test.c
+hybrid_test_SOURCES = hybrid-test.c
+position_sample_gps_SOURCES = position-sample-gps.c
velocity_sample_SOURCES = velocity-sample.c
nmea_sample_SOURCES = nmea-sample.c
satellite_sample_SOURCES = satellite-sample.c
property_sample_SOURCES = property-sample.c
zone_sample_SOURCES = zone-sample.c
-address_sample_SOURCES = address-sample.c
location_api_test_SOURCES = location-api-test.c location-api-test-util.c
-map_service_test_SOURCES = map-service-test.c
LDADD = \
$(dir_location)/libSLP-location.la\
@@ -23,7 +20,6 @@ AM_CFLAGS = \
-I$(dir_location) \
-I$(dir_location)/include \
-I$(dir_location)/manager \
- -I$(dir_location)/map-service \
$(TEST_CFLAGS)
dir_tests = $(top_srcdir)/tests
diff --git a/tests/address-sample.c b/tests/address-sample.c
index 9788347..2c7563c 100644
--- a/tests/address-sample.c
+++ b/tests/address-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
* limitations under the License.
*/
-#include <gconf/gconf-client.h>
#include <location.h>
+#include <location-geocode.h>
#include <location-map-service.h>
static GMainLoop *loop = NULL;
@@ -125,26 +125,31 @@ cb_service_enabled (GObject *self,
static gboolean
async_request (gpointer loc)
{
- LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
- LocationError err = location_map_get_position_from_address_async(loc, addr, cb_position_from_address, loc);
+ guint req_id = 0;
+ LocationGeocodePreference *pref =location_geocode_pref_new();
+ location_geocode_pref_set_max_result(pref, 25);
+
+ LocationAddress *addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113",NULL,NULL,NULL);
+ LocationError err = location_map_get_position_from_address_async(loc, addr,pref, cb_position_from_address, loc,&req_id);
if (LOCATION_ERROR_NONE == err)
g_debug("location_map_get_position_from_address_async() success");
else g_warning ("location_map_get_position_from_address_async() failed> error code:%d", err);
location_address_free (addr);
gchar *addr_str = g_strdup("4 N 2nd Street 95113");
- err = location_map_get_position_from_freeformed_address_async(loc, addr_str, cb_position_from_freeformed_address, loc);
+ err = location_map_get_position_from_freeformed_address_async(loc, addr_str,pref, cb_position_from_freeformed_address, loc,&req_id);
if (LOCATION_ERROR_NONE == err)
g_debug("location_map_get_position_from_freeformed_address_async() success");
else g_warning ("location_map_get_position_from_freeformed_address_async() failed> error code:%d", err);
g_free(addr_str);
LocationPosition *pos = location_position_new (0, 37.3322, -121.8720, 0, LOCATION_STATUS_2D_FIX);
- err = location_map_get_address_from_position_async(loc, pos, cb_address_from_position, loc);
+ err = location_map_get_address_from_position_async(loc, pos,cb_address_from_position, loc,&req_id);
if (LOCATION_ERROR_NONE == err)
g_debug("location_map_get_address_from_position_async() success");
else g_warning ("location_map_get_address_from_position_async() failed> error code:%d", err);
location_position_free (pos);
+ location_geocode_pref_free(pref);
return FALSE;
}
@@ -154,13 +159,13 @@ main (int argc, char *argv[])
LocationMapObject *loc = NULL;
// If application is executed by AUL, this is not needed.
- g_setenv("PKG_NAME", "org.tizen.address-sample", 1);
+ g_setenv("PKG_NAME", "com.samsung.address-sample", 1);
g_type_init();
location_init ();
loop = g_main_loop_new (NULL, TRUE);
- loc = location_map_new (NULL);
+ loc = location_map_new (NULL);
if (!loc) {
g_warning("location_map_new failed");
return -1;
@@ -172,7 +177,7 @@ main (int argc, char *argv[])
GList *acc_list = NULL;
LocationAddress *addr = NULL;
- addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113");
+ addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113",NULL,NULL,NULL);
LocationError err = location_map_get_position_from_address(loc, addr, &pos_list, &acc_list);
if (LOCATION_ERROR_NONE == err) {
g_list_foreach (pos_list, print_pos, NULL);
diff --git a/tests/cps-test.c b/tests/cps-test.c
deleted file mode 100644
index e5d500a..0000000
--- a/tests/cps-test.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * libslp-location
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <glib.h>
-#include <location.h>
-
-int
-main (int argc, char *argv[])
-{
- LocationObject *loc = NULL;
-
- // If application is executed by AUL, this is not needed.
- g_setenv("PKG_NAME", "com.samsung.cps-test", 1);
-
- location_init ();
-
- loc = location_new (LOCATION_METHOD_CPS);
- if (!loc) {
- g_debug("location_new failed");
- return -1;
- }
-
- LocationMethod method = LOCATION_METHOD_NONE;
- g_object_get(loc, "method", &method, NULL);
- g_debug("Get property>> method:%d", method);
-
- LocationAccuracy *acc = NULL;
- LocationPosition *pos = NULL;
-
- if (LOCATION_ERROR_NONE == location_get_position (loc, &pos, &acc)) {
- g_debug ("SYNC>> Current position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
- pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
- g_debug ("\tAccuracy level %d (%.0f meters %.0f meters)",
- acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
- location_position_free(pos);
- location_accuracy_free(acc);
- } else g_warning ("SYNC>> Current position> failed");
-
- g_object_get(loc, "last-position", &pos, NULL);
- if (pos) {
- g_debug ("Get property>> last-position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
- pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
- location_position_free(pos);
- } else g_warning("failed to get property> last-position");
-
- location_free (loc);
- return 0;
-}
-
diff --git a/tests/gps-test.c b/tests/gps-test.c
index 6b69b02..41ded9e 100644
--- a/tests/gps-test.c
+++ b/tests/gps-test.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,7 +90,7 @@ cb_service_enabled (GObject *self,
location_accuracy_free(acc);
} else g_warning ("SYNC>> Current velocity> failed");
- g_object_get (loc, "satellite", &sat, NULL);
+ g_object_get (loc, "satellite", &sat, NULL);
if (sat) {
g_debug ("SYNC>> Current Sattelite> satellite in view = %d, satellite in used = %d", sat->num_of_sat_inview, sat->num_of_sat_used);
g_debug ("\tinview satellite information = ");
@@ -124,11 +124,10 @@ cb_service_disabled (GObject *self,
static void
cb_zone_in (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_in: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -140,11 +139,10 @@ cb_zone_in (GObject *self,
static void
cb_zone_out (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_out: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -166,7 +164,7 @@ main (int argc, char *argv[])
loop = g_main_loop_new (NULL, TRUE);
- loc = location_new (LOCATION_METHOD_GPS);
+ loc = location_new (LOCATION_METHOD_GPS);
if (!loc) {
g_debug("location_new failed");
return -1;
@@ -176,20 +174,6 @@ main (int argc, char *argv[])
g_object_get(loc, "method", &method, NULL);
g_debug("Get property>> method:%d", method);
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_debug("Get property>> dev-name: %s", devname);
- } else g_warning("failed to get property> dev-name");
-
- devname = NULL;
- g_object_set(loc, "dev-name", "/dev/test", NULL);
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_debug("Get property>> dev-name: %s", devname);
- g_free(devname);
- } else g_warning("failed to set property> dev-name");
-
LocationBoundary *bound = NULL;
g_object_get(loc, "boundary", &bound, NULL);
if (bound) {
@@ -214,7 +198,7 @@ main (int argc, char *argv[])
bound->rect.right_bottom->latitude, bound->rect.right_bottom->longitude,
bound->rect.left_top->latitude, bound->rect.left_top->longitude);
location_boundary_free (bound);
- } else g_warning("failed to set property> boundary");
+ } else g_warning("failed to set property> boundary");
g_signal_connect (loc, "service-enabled", G_CALLBACK(cb_service_enabled), loc);
g_signal_connect (loc, "service-disabled", G_CALLBACK(cb_service_disabled), loc);
@@ -237,7 +221,7 @@ main (int argc, char *argv[])
g_debug ("Get property>> last-position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
location_position_free(pos);
- } else g_warning("failed to get property> last-position");
+ } else g_warning("failed to get property> last-position");
location_free (loc);
diff --git a/tests/hybrid-test.c b/tests/hybrid-test.c
index c8f4684..d17bd53 100644
--- a/tests/hybrid-test.c
+++ b/tests/hybrid-test.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -101,11 +101,10 @@ cb_service_disabled (GObject *self,
static void
cb_zone_in (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_in: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -117,11 +116,10 @@ cb_zone_in (GObject *self,
static void
cb_zone_out (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_out: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -143,7 +141,7 @@ main (int argc, char *argv[])
loop = g_main_loop_new (NULL, TRUE);
- loc = location_new (LOCATION_METHOD_HYBRID);
+ loc = location_new (LOCATION_METHOD_HYBRID);
if (!loc) {
g_debug("location_new failed");
return -1;
@@ -176,7 +174,7 @@ main (int argc, char *argv[])
bound->rect.right_bottom->latitude, bound->rect.right_bottom->longitude,
bound->rect.left_top->latitude, bound->rect.left_top->longitude);
location_boundary_free (bound);
- } else g_warning("failed to set property> boundary");
+ } else g_warning("failed to set property> boundary");
g_signal_connect (loc, "service-enabled", G_CALLBACK(cb_service_enabled), loc);
g_signal_connect (loc, "service-disabled", G_CALLBACK(cb_service_disabled), loc);
@@ -199,7 +197,7 @@ main (int argc, char *argv[])
g_debug ("Get property>> last-position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
location_position_free(pos);
- } else g_warning("failed to get property> last-position");
+ } else g_warning("failed to get property> last-position");
location_free (loc);
diff --git a/tests/location-api-test-util.c b/tests/location-api-test-util.c
index fe565f2..bfea5e6 100644
--- a/tests/location-api-test-util.c
+++ b/tests/location-api-test-util.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -129,7 +129,7 @@ char *json_util_get_polygon_name(int polygon_index)
JsonObject *polygon_obj = json_array_get_object_element(json_node_get_array(root), polygon_index);
name = (char *)json_object_get_string_member(polygon_obj, "name");
- if (name == NULL) return NULL;
+ if (name == NULL) return NULL;
return g_strdup(name);
}
diff --git a/tests/location-api-test-util.h b/tests/location-api-test-util.h
index 7c31a86..f283e4e 100644
--- a/tests/location-api-test-util.h
+++ b/tests/location-api-test-util.h
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/location-api-test.c b/tests/location-api-test.c
index 19e3aa6..9d5e17a 100644
--- a/tests/location-api-test.c
+++ b/tests/location-api-test.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <glib.h>
#include <string.h>
+#include <stdlib.h>
#include <glib/gprintf.h>
#include <location.h>
#include "location-api-test-util.h"
@@ -70,6 +71,12 @@ static void GetLocationError(char str[STR_MAX], int ret)
case LOCATION_ERROR_UNKNOWN:
g_utf8_strncpy(str, "LOCATION_ERROR_UNKNOWN", STR_MAX);
break;
+ case LOCATION_ERROR_SETTING_OFF:
+ g_utf8_strncpy(str, "LOCATION_ERROR_SETTING_OFF", STR_MAX);
+ break;
+ case LOCATION_ERROR_SECURITY_DENIED:
+ g_utf8_strncpy(str, "LOCATION_ERROR_SECURITY_DENIED", STR_MAX);
+ break;
default:
g_utf8_strncpy(str, "Error: undefined error code", STR_MAX);
}
@@ -103,9 +110,6 @@ static void GetMethod(char str[STR_MAX], LocationMethod method)
case LOCATION_METHOD_GPS:
g_utf8_strncpy(str, "LOCATION_METHOD_GPS", STR_MAX);
break;
- case LOCATION_METHOD_CPS:
- g_utf8_strncpy(str, "LOCATION_METHOD_CPS", STR_MAX);
- break;
case LOCATION_METHOD_WPS:
g_utf8_strncpy(str, "LOCATION_METHOD_WPS", STR_MAX);
break;
@@ -148,7 +152,11 @@ static void GetAccuracyLevel(char str[STR_MAX], LocationAccuracyLevel acc_level)
static void SelectOpt(char* buf)
{
int iLen = 0;
- fgets(buf, 255, stdin);
+ char *str = NULL;
+ str = fgets(buf, 255, stdin);
+ if (NULL == str) {
+ g_printf("fgets return NULL. \n");
+ }
iLen = g_utf8_strlen(buf, -1);
buf[iLen-1] = '\0';
}
@@ -157,7 +165,11 @@ static int PromptInt()
{
char buf[255];
int ret;
- fgets(buf, 255, stdin);
+ char *str = NULL;
+ str = fgets(buf, 255, stdin);
+ if (NULL == str) {
+ g_printf("fgets return NULL. \n");
+ }
buf[strlen(buf)-1]='\0';
ret = g_ascii_strtoll(buf, NULL, 10);
return ret;
@@ -214,20 +226,10 @@ static void PrintProperty (LocationObject* loc)
gchar method_str[STR_MAX] = {0, };
gchar status_str[STR_MAX] = {0, };
- gchar* devname = NULL;
-
g_object_get(loc, "method", &method, NULL);
GetMethod(method_str, method);
g_printf("method[%s] ", method_str);
- if (LOCATION_METHOD_GPS == method) {
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_printf("dev-name[%s] ", devname);
- g_free(devname);
- }
- }
-
int ret = location_get_last_position (loc, &pos, &acc);
if (ret == LOCATION_ERROR_NONE) {
GetStatus(status_str, pos->status);
@@ -236,7 +238,7 @@ static void PrintProperty (LocationObject* loc)
location_position_free (pos);
location_accuracy_free (acc);
}
-
+
if (method == LOCATION_METHOD_HYBRID || method == LOCATION_METHOD_GPS) {
g_object_get(loc, "pos-interval", &pos_interval, NULL);
g_object_get(loc, "vel-interval", &vel_interval, NULL);
@@ -246,9 +248,6 @@ static void PrintProperty (LocationObject* loc)
g_object_get(loc, "pos-interval", &pos_interval, NULL);
g_object_get(loc, "vel-interval", &vel_interval, NULL);
}
- else if (method == LOCATION_METHOD_CPS) {
- g_object_get(loc, "pos-interval", &pos_interval, NULL);
- }
g_printf("Position interval : [%u], Velocity interval [%u], Satellite interval [%u]\n", pos_interval, vel_interval, sat_interval);
g_printf("\nSignals: ");
@@ -259,7 +258,7 @@ static void PrintProperty (LocationObject* loc)
if (g_sig_zoneout) g_printf("[zone-out]");
}
-static void cb_service_enabled (GObject *self, guint status, gpointer userdata)
+static void cb_service_enabled (GObject *self, guint status, gpointer userdata)
{
g_printf("cb_service_enabled: status(%d) userdata(0x%x)", status, (unsigned int)userdata);
@@ -300,11 +299,10 @@ cb_service_disabled (GObject *self,
static void
cb_zone_in (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_printf("cb_zone_in: type(%d)\n", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -316,11 +314,10 @@ cb_zone_in (GObject *self,
static void
cb_zone_out (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_printf("cb_zone_out: type(%d)\n", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -397,12 +394,15 @@ static void print_menu()
g_printf("8a. location_get_last_satellite\n");
g_printf("9. location_get_distance\n");
g_printf("10. location_is_supported_method\n");
- g_printf("11. location_is_enabled_gps\n");
g_printf("99. location_send_command\n");
+#ifndef _TIZEN_PUBLIC_
+ g_printf("99a. location_send_command(get_auth)\n");
+ g_printf("99b. location_send_command(add_to_list)\n");
+#endif
g_printf("a?. signals:(1)'service-enabled',(2)'service-disabled',(3)'service-updated',(4)'zone-in',(5)'zone-out'\n");
g_printf("b?. disconnect signals:(1)'service-enabled',(2)'service-disabled',(3)'service-updated',(4)'zone-in',(5)'zone-out'\n");
- g_printf("c?. (1)Set boundary, (2)Get boundary, (3) Remove boundary, (4) Remove all boundaries, (5)Set device name, \n");
- g_printf(" (6)Set position interval (7) Set velocity interval (8) Set satellite interval\n");
+ g_printf("c?. (1)Set boundary, (2)Get boundary, (3) Remove boundary, (4) Remove all boundaries, \n");
+ g_printf(" (5)Set position interval (6) Set velocity interval (7) Set satellite interval\n");
g_printf("==================================== Property ====================================\n");
PrintProperty(location_obj);
g_printf("\n==================================================================================\n");
@@ -456,7 +456,7 @@ int main(int argc, char** argv)
g_printf("Location object already existed: [0x%x]", (unsigned int)location_obj);
continue;
}
- g_printf("LOCATION_METHOD_HYBRID[0] LOCATION_METHOD_GPS[1] LOCATION_METHOD_WPS[2] LOCATION_METHOD_CPS[3]\n");
+ g_printf("LOCATION_METHOD_HYBRID[0] LOCATION_METHOD_GPS[1] LOCATION_METHOD_WPS[2]\n");
g_printf("Select Location Method: ");
LocationMethod method = PromptInt();
location_obj = location_new(method);
@@ -501,6 +501,7 @@ int main(int argc, char** argv)
ret = location_get_last_position (location_obj, &last_pos, &last_acc);
GetLocationError(str, ret);
+ g_printf("location_get_last_position: returned value [%s]\n", str);
if (ret == LOCATION_ERROR_NONE) {
g_printf ("SYNC>> Last position> time: %d, lat: %f, long: %f, alt: %f, status: %d",
last_pos->timestamp, last_pos->latitude, last_pos->longitude, last_pos->altitude, last_pos->status);
@@ -508,22 +509,19 @@ int main(int argc, char** argv)
last_acc->level, last_acc->horizontal_accuracy, last_acc->vertical_accuracy);
location_position_free(last_pos);
location_accuracy_free(last_acc);
- } else g_warning ("SYNC>> Last position> failed. Error[%s]",str);
+ }
}else if(0 == g_strcmp0("7",strOpt) ){
LocationVelocity *vel = NULL;
LocationAccuracy *acc = NULL;
ret = location_get_velocity(location_obj, &vel, &acc);
+ GetLocationError(str, ret);
g_printf("location_get_velocity: returned value [%s]\n", str);
if (ret == LOCATION_ERROR_NONE) {
g_printf("time: [%d], speed: [%f], direction: [%f], climb: [%f]\n", vel->timestamp, vel->speed, vel->direction, vel->climb);
GetAccuracyLevel(str, acc->level);
g_printf("level: [%s], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", str, acc->horizontal_accuracy, acc->vertical_accuracy);
}
- else {
- GetLocationError(str, ret);
- g_warning ("SYNC>> velocity> failed. Error[%s]", str);
- }
if(vel) location_velocity_free(vel);
if(acc) location_accuracy_free(acc);
}else if(0 == g_strcmp0("7a",strOpt) ){
@@ -531,6 +529,7 @@ int main(int argc, char** argv)
LocationAccuracy *last_acc = NULL;
ret = location_get_last_velocity (location_obj, &last_vel, &last_acc);
GetLocationError(str, ret);
+ g_printf("location_get_last_velocity: returned value [%s]\n", str);
if (ret == LOCATION_ERROR_NONE) {
g_printf ("SYNC>> Last velocity> time: %d, speed: %f, direction:%f, climb:%f",
last_vel->timestamp, last_vel->speed, last_vel->direction, last_vel->climb);
@@ -538,7 +537,7 @@ int main(int argc, char** argv)
last_acc->level, last_acc->horizontal_accuracy, last_acc->vertical_accuracy);
location_velocity_free(last_vel);
location_accuracy_free(last_acc);
- } else g_warning ("SYNC>> Last velocity> failed. Error[%s]", str);
+ }
}else if(0 == g_strcmp0("8",strOpt) ){
int ret = 0, idx = 0;
LocationSatellite *sat = NULL;
@@ -548,8 +547,9 @@ int main(int argc, char** argv)
guint azimuth;
gint snr;
- ret = location_get_satellite (location_obj, &sat);
+ ret = location_get_satellite (location_obj, &sat);
GetLocationError(str, ret);
+ g_printf("location_get_satellite: returned value [%s]\n", str);
if (ret == LOCATION_ERROR_NONE) {
g_printf ("SYNC>> Current Sattelite> time = %d, satellite in view = %d, satellite in used = %d", sat->timestamp, sat->num_of_sat_inview, sat->num_of_sat_used);
g_printf ("\tinview satellite information = ");
@@ -558,7 +558,7 @@ int main(int argc, char** argv)
g_printf ("\t\t[%02d] used: %d, prn: %d, elevation: %d, azimuth: %d, snr: %d", idx, used, prn, elevation, azimuth, snr);
}
location_satellite_free (sat);
- } else g_warning ("SYNC>> Current satellite> failed. Error[%s]", str);
+ }
}else if(0 == g_strcmp0("8a",strOpt) ){
int ret = 0, idx = 0;
LocationSatellite *last_sat = NULL;
@@ -570,6 +570,7 @@ int main(int argc, char** argv)
ret = location_get_last_satellite (location_obj, &last_sat);
GetLocationError(str, ret);
+ g_printf("location_get_last_satellite: returned value [%s]\n", str);
if (ret == LOCATION_ERROR_NONE) {
g_printf ("SYNC>> Last Sattelite> time = %d, satellite in view = %d, satellite in used = %d", last_sat->timestamp, last_sat->num_of_sat_inview, last_sat->num_of_sat_used);
g_printf ("\tinview satellite information = ");
@@ -578,7 +579,7 @@ int main(int argc, char** argv)
g_printf ("\t\t[%02d] used: %d, prn: %d, elevation: %d, azimuth: %d, snr: %d", idx, used, prn, elevation, azimuth, snr);
}
location_satellite_free (last_sat);
- } else g_warning ("SYNC>> Last satellite> failed. Error[%s]", str);
+ }
}else if(0 == g_strcmp0("9",strOpt) ) {
gulong distance;
@@ -604,12 +605,13 @@ int main(int argc, char** argv)
}else if(0 == g_strcmp0("10", strOpt)) {
int method;
char method_str[STR_MAX] = {0, };
+ char *str = NULL;
char input[8] = {0, };
gboolean is_supported = FALSE;
- g_printf("0.Hybrid 1.GPS 2.WPS 3.CPS\n");
+ g_printf("0.Hybrid 1.GPS 2.WPS\n");
g_printf("Select Method :");
- fgets(input, 8, stdin);
+ str = fgets(input, 8, stdin);
method = atoi(input);
switch(method) {
case LOCATION_METHOD_HYBRID:
@@ -623,11 +625,6 @@ int main(int argc, char** argv)
case LOCATION_METHOD_WPS:
is_supported = location_is_supported_method(LOCATION_METHOD_WPS);
break;
-
- case LOCATION_METHOD_CPS:
- is_supported = location_is_supported_method(LOCATION_METHOD_CPS);
- break;
-
default:
break;
@@ -636,17 +633,32 @@ int main(int argc, char** argv)
g_printf("Method[%s] is %s.", method_str, is_supported ? "supported" : "not supported");
- }else if(0 == g_strcmp0("11", strOpt)) {
- gboolean is_enabled = FALSE;
- is_enabled = location_is_enabled_gps(location_obj);
- if(is_enabled == TRUE) g_printf("GPS is turned on");
- else g_printf("GPS is turned off");
}else if(0 == g_strcmp0("99", strOpt)) {
int ret = 0;
- const *str = "command";
+ const char *str = "command";
+ ret = location_send_command(str);
+ if(ret == 0)
+ g_printf("Success to send command[%s]", str);
+ else
+ g_printf("Fail to send command[%s]. Error[%d]", str, ret);
+#ifndef _TIZEN_PUBLIC_
+ }else if(0 == g_strcmp0("99a", strOpt)) {
+ int ret = 0;
+ const char *str = "GET_APP_AUTHORITY";
ret = location_send_command(str);
if(ret == 0)
g_printf("Success to send command[%s]", str);
+ else
+ g_printf("Fail to send command[%s]. Error[%d]", str, ret);
+ }else if(0 == g_strcmp0("99b", strOpt)) {
+ int ret = 0;
+ const char *str = "ADD_APPLIST";
+ ret = location_send_command(str);
+ if(ret == 0)
+ g_printf("Success to send command[%s]", str);
+ else
+ g_printf("Fail to send command[%s]. Error[%d]", str, ret);
+#endif
}else if(0 == g_strcmp0("a1",strOpt)){
if(location_obj && !g_sig_enable) {
g_sig_enable = g_signal_connect (location_obj, "service-enabled", G_CALLBACK(cb_service_enabled), location_obj);
@@ -795,28 +807,25 @@ int main(int argc, char** argv)
}else if(0 == g_strcmp0("c4",strOpt)){
location_boundary_foreach(location_obj, RemoveBoundary, location_obj);
- }else if(0 == g_strcmp0("c5",strOpt)){
- char buf[255];
- g_printf("Input device name: ");
- fgets(buf, 255, stdin);
- buf[strlen(buf)-1]='\0';
- g_object_set(location_obj, "dev-name", buf, NULL);
- } else if (0 == g_strcmp0("c6", strOpt)) {
+ } else if (0 == g_strcmp0("c5", strOpt)) {
guint interval = 1;
+ int len = 0;
g_printf("Input interval[1~120]:");
- scanf("%u", &interval);
+ len = scanf("%u", &interval);
g_printf("changed interval to [%u]\n", interval);
g_object_set(location_obj, "pos-interval", interval, NULL);
- } else if (0 == g_strcmp0("c7", strOpt)) {
+ } else if (0 == g_strcmp0("c6", strOpt)) {
+ int len = 0;
guint interval = 1;
g_printf("Input interval[1~120]:");
- scanf("%u", &interval);
+ len = scanf("%u", &interval);
g_printf("changed interval to [%u]\n", interval);
g_object_set(location_obj, "vel-interval", interval, NULL);
- } else if (0 == g_strcmp0("c8", strOpt)) {
+ } else if (0 == g_strcmp0("c7", strOpt)) {
guint interval = 1;
+ int len = 0;
g_printf("Input interval[1~120]:");
- scanf("%u", &interval);
+ len = scanf("%u", &interval);
g_printf("changed interval to [%u]\n", interval);
g_object_set(location_obj, "sat-interval", interval, NULL);
}else if(0 == g_strcmp0("q",strOpt) ){
diff --git a/tests/location-api-test.json b/tests/location-api-test.json
index 7d3cf9c..b8466ab 100644
--- a/tests/location-api-test.json
+++ b/tests/location-api-test.json
@@ -18,7 +18,7 @@
"latitude": 37.2859,
"longitude": 127.099457
}
- ],
+ ],
"marker_position": [
{
"where": "Youngtong ku office",
diff --git a/tests/map-service-test.c b/tests/map-service-test.c
index da01238..72b4936 100644
--- a/tests/map-service-test.c
+++ b/tests/map-service-test.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,10 +21,11 @@
#include <glib.h>
#include <string.h>
+#include <stdio.h>
#include <glib/gprintf.h>
-#include <gconf/gconf-client.h>
#include <location-map-service.h>
#include "location-api-test-util.h"
+#include "location-geocode.h"
#define STR_MAX 128
LocationMapObject* map_obj = NULL;
@@ -74,6 +75,12 @@ static void GetLocationError(char str[STR_MAX], int ret)
case LOCATION_ERROR_NOT_SUPPORTED:
g_utf8_strncpy(str, "LOCATION_ERROR_UNKNOWN", STR_MAX);
break;
+ case LOCATION_ERROR_SETTING_OFF:
+ g_utf8_strncpy(str, "LOCATION_ERROR_SETTING_OFF", STR_MAX);
+ break;
+ case LOCATION_ERROR_SECURITY_DENIED:
+ g_utf8_strncpy(str, "LOCATION_ERROR_SECURITY_DENIED", STR_MAX);
+ break;
default:
g_utf8_strncpy(str, "Error: undefined error code", STR_MAX);
}
@@ -111,7 +118,11 @@ static void GetAccuracyLevel(char str[STR_MAX], LocationAccuracyLevel acc_level)
static void SelectOpt(char* buf)
{
int iLen = 0;
- fgets(buf, 255, stdin);
+ char *str = NULL;
+ str = fgets(buf, 255, stdin);
+ if (NULL == str){
+ g_printf(" fgets return NULL. \n");
+ }
iLen = g_utf8_strlen(buf, -1);
buf[iLen-1] = '\0';
}
@@ -120,7 +131,8 @@ static int PromptInt()
{
char buf[255];
int ret;
- fgets(buf, 255, stdin);
+ char *str = NULL;
+ str = fgets(buf, 255, stdin);
buf[strlen(buf)-1]='\0';
ret = g_ascii_strtoll(buf, NULL, 10);
return ret;
@@ -130,33 +142,38 @@ static double PromptDB()
{
char buf[255];
double ret;
- fgets(buf, 255, stdin);
+ char *str = NULL;
+ str = fgets(buf, 255, stdin);
+ if (NULL == str){
+ g_printf(" fgets return NULL. \n");
+ }
buf[strlen(buf)-1]='\0';
ret = g_ascii_strtod(buf, NULL);
return ret;
}
-static void PrintProperty (LocationObject* loc)
+static void PrintPos (gpointer data, gpointer user_data)
{
- if (!loc) return;
-#if 0
- LocationMethod method = LOCATION_METHOD_NONE;
- gchar method_str[STR_MAX] = {0, };
+ LocationPosition *pos = (LocationPosition *)data;
+ if (pos) {
+ g_printf("time: [%d], latitude: [%f], longitude: [%f], altitude: [%f]\n", pos->timestamp, pos->latitude, pos->longitude, pos->altitude);
+ location_position_free (pos);
+ }
+}
- gchar* devname = NULL;
+static void PrintAcc (gpointer data, gpointer user_data)
+{
+ LocationAccuracy *acc = (LocationAccuracy *)data;
+ if (acc) {
+ g_printf("level: [%d], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
+ location_accuracy_free (acc);
+ }
+}
- g_object_get(loc, "method", &method, NULL);
- GetMethod(method_str, method);
- g_printf("method[%s] ", method_str);
- if (LOCATION_METHOD_GPS == method) {
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_printf("dev-name[%s] ", devname);
- g_free(devname);
- }
- }
-#endif
+static void PrintProperty (LocationObject* loc)
+{
+ if (!loc) return;
}
static void _print_property (gpointer data, gpointer user_data)
@@ -174,6 +191,7 @@ static void _print_property (gpointer data, gpointer user_data)
static void
__plugin_print_poi_list (gpointer data, gpointer user_data)
{
+ int i=0;
LocationLandmark *landmark = (LocationLandmark *)data;
LocationPosition *pos = location_landmark_get_position (landmark);
LocationAddress *addr = location_landmark_get_address (landmark);
@@ -185,7 +203,25 @@ __plugin_print_poi_list (gpointer data, gpointer user_data)
pos->latitude, pos->longitude,
addr->building_number, addr->city, addr->country_code, addr->district,
addr->postal_code);
-
+ g_printf("Supplier details : [NAME: %s],[LINK: %s],[ID:%s],[TYPE: %s]",
+ landmark_linkobject_get_name(location_landmark_get_supplier( landmark)),
+ landmark_linkobject_get_link_string(location_landmark_get_supplier( landmark)),
+ landmark_linkobject_get_id(location_landmark_get_supplier( landmark)),
+ landmark_linkobject_get_type(location_landmark_get_supplier( landmark)));
+ g_printf("Related details : [NAME: %s],[LINK: %s],[ID:%s],[TYPE: %s]",
+ landmark_linkobject_get_name(location_landmark_get_related( landmark)),
+ landmark_linkobject_get_link_string(location_landmark_get_related( landmark)),
+ landmark_linkobject_get_id(location_landmark_get_related( landmark)),
+ landmark_linkobject_get_type(location_landmark_get_related( landmark)));
+ g_printf("Rating details : [AVG: %f],[COUNT:%d]",
+ landmark_rating_get_average(location_landmark_get_rating(landmark)),
+ landmark_rating_get_count(location_landmark_get_rating(landmark)));
+ for(i=0;i<g_list_length(location_landmark_get_editorial(landmark));i++)
+ {
+ LandmarkEditorial * editorial=g_list_nth_data(location_landmark_get_editorial(landmark),i);
+ g_printf("Editorials : [Desc: %s] [LANG: %s]",
+ landmark_editorial_get_description(editorial),landmark_editorial_get_language(editorial));
+ }
GList *key_list = location_landmark_get_property_key(landmark);
if (key_list) {
g_list_foreach(key_list, _print_property, landmark);
@@ -209,7 +245,7 @@ static void cb_poi(LocationError error, guint req_id, GList * landmark_list, gch
g_printf("__location_POI_cb: error_code[%s], error_msg[%s]\n", error_code, error_msg);
}
}
-static void PrintStepInfo(const LocationRouteStep *step)
+static void Print_step_info(const LocationRouteStep *step)
{
const LocationPosition *start = location_route_step_get_start_point(step);
gdouble start_lat = 0;
@@ -234,15 +270,372 @@ static void PrintStepInfo(const LocationRouteStep *step)
g_printf("Step: start(%f/%f), end(%f/%f), instruction(%s)\n", start_lat, start_lon, end_lat, end_lon, inst);
}
+static void Print_form_of_way (LocationRoadElement* road_element)
+{
+ g_printf("+++Print form of way begin \n");
+
+ FormOfWay form = location_road_element_get_form_of_way(road_element);
+
+ switch (form) {
+ case FOW_UNDEFINED:
+ g_printf("Indicates that the road or road type is undefined/unknown\n");
+ break;
+
+ case FOW_MOTORWAY:
+ g_printf("Identifies a road as a motorway \n");
+ break;
+
+ case FOW_MULTI_CARRIAGEWAY:
+ g_printf("Identifies a road as a multi-lane carriageway \n");
+ break;
+
+ case FOW_SINGLE_CARRIAGEWAY:
+ g_printf("Identifies a road as a single carriageway \n");
+ break;
+
+ case FOW_ROUNDABOUT:
+ g_printf("Identifies a road feature as a roundabout/rotary \n");
+ break;
+
+ case FOW_SPECIAL_TRAFFIC_FIGURE:
+ g_printf("Identifies a road features as a special traffic figure \n");
+ break;
+
+ case FOW_SLIPROAD:
+ g_printf(" Identifies a road as a slip road \n");
+ break;
+
+ case FOW_PEDESTRIAN_ZONE:
+ g_printf("Identifies an area or road section as a pedestrian zone \n");
+ break;
+
+ case FOW_PEDESTRIAN_WALKWAY:
+ g_printf(" Identifies a pedestrian walkway \n");
+ break;
+
+ case FOW_SERVICE_ACCESS_PARKING:
+ g_printf(" Identifies access to a parking facility \n");
+ break;
+
+ case FOW_SERVICE_ACCESS_OTHER:
+ g_printf(" Identifies access to an unspecified service or facility \n");
+ break;
+
+ case FOW_SERVICE_ROAD:
+ g_printf(" Identifies a road as a service road \n");
+ break;
+
+ case FOW_ETA_PARKING_PLACE:
+ g_printf(" Identifies a parking facility \n");
+ break;
+
+ case FOW_ETA_PARKING_BUILDING:
+ g_printf(" Identifies a parking house \n");
+ break;
+
+ case FOW_ETA_UNSTRUCTURED_TRAFFIC_SQUARE:
+ g_printf(" Identifies an unstructured traffic square \n");
+ break;
+
+ case FOW_ROAD_FOR_AUTHORITIES:
+ g_printf(" Identifies a road restricted for authorized access only \n");
+ break;
+
+ default:
+ g_warning ("ASYNC>> Undefined Form Of Way type");
+ break;
+ }
+ g_printf("---Print form of way end\n");
+}
+
+static void Print_transit_type (LocationRouteTransitElement* element)
+{
+ g_printf("+++Print transit type begin \n");
+
+ TransitType ttype = location_route_transit_element_get_transit_type(element);
+ switch (ttype) {
+ case TRANSIT_TYPE_BUS_PUBLIC:
+ g_printf("Indicates transit type is bus public\n");
+ break;
+
+ case TRANSIT_TYPE_BUS_TOURISTIC:
+ g_printf("Indicates transit type is bus touristic\n");
+ break;
+
+ case TRANSIT_TYPE_BUS_INTERCITY:
+ g_printf("Indicates transit type is bus intercity \n");
+ break;
+
+ case TRANSIT_TYPE_BUS_EXPRESS:
+ g_printf("Indicates transit type is bus express \n");
+ break;
+
+ case TRANSIT_TYPE_RAIL_METRO:
+ g_printf("Indicates transit type is rail metro \n");
+ break;
+
+ case TRANSIT_TYPE_RAIL_LIGHT:
+ g_printf("Indicates transit type is rail light \n");
+ break;
+
+ case TRANSIT_TYPE_RAIL_REGIONAL:
+ g_printf("Indicates transit type is rail regional \n");
+ break;
+
+ case TRANSIT_TYPE_TRAIN_REGIONAL:
+ g_printf("Indicates transit type is train \n");
+ break;
+
+ case TRANSIT_TYPE_TRAIN_INTERCITY:
+ g_printf("Indicates transit type is bus regional \n");
+ break;
+
+ case TRANSIT_TYPE_TRAIN_HIGH_SPEED:
+ g_printf("Indicates transit type is high speed \n");
+ break;
+
+ case TRANSIT_TYPE_MONORAIL:
+ g_printf("Indicates transit type is monorall \n");
+ break;
+
+ case TRANSIT_TYPE_AERIAL:
+ g_printf("Indicates transit type is aerial \n");
+ break;
+
+ case TRANSIT_TYPE_INCLINED:
+ g_printf("Indicates transit type is inclined \n");
+ break;
+
+ case TRANSIT_TYPE_WATER:
+ g_printf("Indicates transit type is water \n");
+ break;
+
+ case TRANSIT_TYPE_AIRLINE:
+ g_printf("Indicates transit type is airline \n");
+ break;
+
+ case TRANSIT_TYPE_RESERVED:
+ g_printf("Indicates reserved for future usage \n");
+ break;
+
+ case TRANSIT_TYPE_COUNT:
+ g_printf("Indicates transit type's count \n");
+ break;
+
+ default:
+ g_warning ("ASYNC>> Undefined Transit Type \n");
+ break;
+ }
+ g_printf("---Print transit type end\n");
+}
+
+static void _print_elem(gpointer data, gpointer user_data)
+{
+ LocationRouteStep* step = (LocationRouteStep*) user_data;
+ LocationRouteElement* elem = (LocationRouteElement*) data;
+
+ if(location_route_element_get_is_transit_element(elem))
+ {
+ LocationRouteTransitElement* transit_element = location_route_element_get_route_transit_element(elem);
+
+
+ Print_transit_type(transit_element);
+ gchar *t_dest = location_route_transit_element_get_transit_destination(transit_element);
+ gchar *t_line = location_route_transit_element_get_transit_line_name(transit_element);
+ gchar *official = location_route_transit_element_get_system_official_name(transit_element);
+ gchar *short_name = location_route_transit_element_get_system_short_name(transit_element);
+
+ gchar *type_name = location_route_transit_element_get_transit_type_name(transit_element);
+ guint d_t = location_route_transit_element_get_transit_departure_time(transit_element);
+ guint a_t = location_route_transit_element_get_transit_arrival_time(transit_element);
+ LocationRouteTransitStop *d_s = location_route_transit_element_get_transit_departure_station(transit_element);
+ gchar *d_s_name = location_route_transit_get_station_name(d_s);
+ gint d_s_level = location_route_transit_get_platform_level(d_s);
+ LocationPosition *d_s_plat_pos = location_route_transit_get_platform_coordinates(d_s);
+ if (d_s_plat_pos) {
+ g_printf ("d_s_plat_pos: time: %d, lat: %f, long: %f, alt: %f, status: %d\n",
+ d_s_plat_pos->timestamp, d_s_plat_pos->latitude, d_s_plat_pos->longitude, d_s_plat_pos->altitude, d_s_plat_pos->status);
+ //location_position_free (d_s_plat_pos);
+ }
+
+ LocationPosition *d_s_egr_pos = location_route_transit_get_egress_coordinates(d_s);
+ if (d_s_egr_pos) {
+ g_printf ("d_s_egr_pos: time: %d, lat: %f, long: %f, alt: %f, status: %d\n",
+ d_s_egr_pos->timestamp, d_s_egr_pos->latitude, d_s_egr_pos->longitude, d_s_egr_pos->altitude, d_s_egr_pos->status);
+ //location_position_free (d_s_egr_pos);
+ }
+
+ g_printf("Transit: d_s_name(%s), d_s_level(%d)\n", d_s_name, d_s_level);
+
+ g_printf("Transit: t_dest(%s), t_line(%s), official(%s), short(%s), type_name(%s), d_t(%lld), a_t(%lld)\n",
+ t_dest, t_line, official, short_name, type_name, d_t, a_t);
+
+ LocationRouteTransitStop *a_s = location_route_transit_element_get_transit_arrival_station(transit_element);
+ gchar *a_s_name = location_route_transit_get_station_name(a_s);
+ gint a_s_level = location_route_transit_get_platform_level(a_s);
+ if (a_s) {
+ g_printf("Transit: a_s_name(%s), a_s_level(%d) \n",a_s_name, a_s_level);
+ }
+ }
+ else
+ {
+ LocationRoadElement* road_element = location_route_element_get_road_element(elem);
+
+ Print_form_of_way( road_element);
+
+ gboolean is_plural = location_road_element_is_plural(road_element);
+ if (is_plural) {
+ g_printf(" The road element is plural \n");
+ }
+ else {
+ g_printf(" The road element is not plural \n");
+ }
+ gchar *road_name = location_road_element_get_road_name(road_element);
+ gchar *route_name = location_road_element_get_route_name(road_element);
+ gfloat speed_l = location_road_element_get_speed_limit(road_element);
+ guint speed = location_road_element_get_average_speed_m_s(road_element);
+ guint nums = location_road_element_get_number_of_lanes(road_element);
+ guint s_time = location_road_element_get_start_time(road_element);
+ guint t_time = location_road_element_get_travel_time(road_element);
+
+ g_printf("RoadElement: road_name(%s), route_name(%s), speed_l(%f), speed(%d), nums(%d), s_time(%lld), t_time(%lld)\n",
+ road_name, route_name, speed_l, speed, nums, s_time, t_time);
+
+ gboolean is_pedestrain = location_road_element_is_pedestrian(road_element);
+ if (is_pedestrain) {
+ g_printf(" The road is allowed only for pedestrians \n");
+ }
+ else {
+ g_printf(" The road is not only for pedestrians \n");
+ }
+
+ gboolean is_valid = location_road_element_is_valid(road_element);
+ if (is_valid) {
+ g_printf(" This road element is valid \n");
+ }
+ else {
+ g_printf(" This road element is invalid \n");
+ }
+ }
+
+}
+
+static void Print_road_element(LocationRouteStep *step)
+{
+ g_printf("+++PrintRoadElement begin\n");
+ GList* route_elem_list = location_route_step_get_route_elment_list(step);
+ if (route_elem_list) {
+ g_list_foreach(route_elem_list, _print_elem, step);
+ }
+ g_printf("---Print Road Element end\n");
+}
+
+static void print_route_maneuver(LocationRouteManeuver *maneuver)
+{
+ g_printf("+++print route maneuver begin\n");
+
+ TrafficDirection dirct = TRAFFIC_DIR_LEFT;
+
+ guint dist_start = location_route_maneuver_get_distance_from_start(maneuver);
+ guint dist_prev = location_route_maneuver_get_distance_from_previous_maneuver(maneuver);
+ g_printf("maneuver: dist_start(%d), dist_prev(%d)\n", dist_start, dist_prev);
+
+ gchar *next_road_name = location_route_maneuver_get_next_road_name(maneuver);
+ gchar *action = location_route_maneuver_get_action(maneuver);
+ gchar *turn =location_route_maneuver_get_turn(maneuver);
+ g_printf("maneuver: next_road_name(%s), action(%s), turn(%s)\n", next_road_name, action, turn);
+
+ dirct = location_route_maneuver_get_traffic_direction(maneuver);
+ if (TRAFFIC_DIR_LEFT == dirct) {
+ g_printf("Traffic is left sided. \n");
+ }
+ else if (TRAFFIC_DIR_RIGHT == dirct) {
+ g_printf("Traffic is right sided. \n");
+ }
+
+ guint angle = location_route_maneuver_get_angle(maneuver);
+ guint start_angle = location_route_maneuver_get_start_angle(maneuver);
+ guint s_time = location_route_maneuver_get_start_time(maneuver);
+ g_printf("maneuver: angle(%d), start_angle(%d), s_time(%d)\n", angle, start_angle, s_time);
+
+ gboolean is_s_sliproad = location_route_maneuver_is_starts_from_sliproad(maneuver);
+ gboolean is_n_sliproad = location_route_maneuver_is_next_is_sliproad(maneuver);
+ gboolean is_round = location_route_maneuver_is_counter_roundabout(maneuver);
+
+ if (is_n_sliproad) {
+ g_printf("Maneuver starts on a sliproad. \n");
+ }
+ if (is_s_sliproad) {
+ g_printf("Next road is sliproad. \n");
+ }
+ if (is_round) {
+ g_printf("This maneuver is a roundabout. \n");
+ }
+
+ g_printf("---print route maneuver end\n");
+}
+
static void cb_print_route_step (gpointer data, gpointer user_data)
{
g_printf("+++Step begin\n");
LocationRouteStep *step = (LocationRouteStep *)data;
- PrintStepInfo(step);
+ Print_step_info(step);
+ g_printf("after Print Step Info\n");
+
+ /*****************NLP start now *********************/
+ g_printf("*****************NLP step start now *********************\n");
+ Print_road_element(step);
+
+ LocationRouteManeuver *maneuver = location_route_step_get_maneuver(step);
+ print_route_maneuver(maneuver);
+
g_printf("---Step end\n");
}
+static void print_pos_nokia (gpointer data, gpointer user_data)
+{
+ g_printf("+++print pos nokia begin. \n");
+
+ LocationPosition *pos = (LocationPosition *)data;
+
+ if (pos) {
+ g_printf ("time: %d, lat: %f, long: %f, alt: %f, status: %d",
+ pos->timestamp, pos->latitude, pos->longitude, pos->altitude, pos->status);
+ //location_position_free (pos);
+ }
+
+ g_printf("---print pos nokia end\n");
+}
+
+static void print_acc_nokia (gpointer data, gpointer user_data)
+{
+ g_printf("+++print acc nokia begin. \n");
+
+ LocationAccuracy *acc = (LocationAccuracy *)data;
+
+ if (acc) {
+ g_printf ("\tAccuracy level %d (%.0f meters %.0f meters)", acc->level, acc->horizontal_accuracy, acc->vertical_accuracy);
+ //location_accuracy_free (acc);
+ }
+
+ g_printf("---print acc nokia end. \n");
+}
+
+static void cb_position_from_address_nokia (LocationError error, GList *pos_list, GList *acc_list, gpointer userdata)
+{
+ g_printf("+++cb position from address nokia. \n");
+
+ if (error != LOCATION_ERROR_NONE) {
+ g_debug("cb_position_from_address failed: error=%d\n", error);
+ return;
+ }
+
+ g_list_foreach (pos_list, print_pos_nokia, NULL);
+ g_list_foreach (pos_list, print_acc_nokia, NULL);
+ g_printf("---cb position from address nokia end. \n");
+}
+
static void cb_print_route_segment (gpointer data, gpointer user_data)
{
g_printf("++Segment begin\n");
@@ -355,6 +748,21 @@ static void cb_address(LocationError error, LocationAddress *addr, LocationAccur
g_printf("level: [%s], horizontal_accuracy: [%f], vertical_accuracy: [%f]\n", str, acc->horizontal_accuracy, acc->vertical_accuracy);
}
+static void cb_position (LocationError error,
+ GList *pos_list,
+ GList *acc_list,
+ gpointer userdata)
+{
+ if (error != LOCATION_ERROR_NONE) {
+ g_printf("cb_position failed: error=%d\n", error);
+ return;
+ }
+
+ g_list_foreach (pos_list, PrintPos, NULL);
+ g_list_foreach (acc_list, PrintAcc, NULL);
+}
+
+
typedef struct {
LocationObject *obj;
LocationPosition *pos;
@@ -365,21 +773,83 @@ typedef struct {
gpointer user_data;
} IdleData;
+static gboolean idle_position_from_address_async(gpointer data)
+{
+ IdleData* idle_data = (IdleData*)data;
+ guint req_id = 0;
+ char str[STR_MAX];
+ LocationGeocodePreference *pref = location_geocode_pref_new();
+ int ret = location_map_get_position_from_address_async(idle_data->obj, idle_data->addr,pref, idle_data->pos_cb, idle_data->user_data,&req_id);
+ GetLocationError(str, ret);
+ if(ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail location_get_position_from_address_async Error[%s]\n", str);
+ } else {
+ g_printf("location_get_position_from_address_async, req_id %d\n", req_id);
+ }
+ location_address_free(idle_data->addr);
+ g_free(idle_data);
+ location_geocode_pref_free(pref);
+ return FALSE;
+}
+
+static gboolean idle_position_from_freefromed_address_async(gpointer data)
+{
+ IdleData* idle_data = (IdleData*)data;
+ char str[STR_MAX];
+ guint req_id = 0;
+ LocationGeocodePreference *pref = location_geocode_pref_new();
+ int ret = location_map_get_position_from_freeformed_address_async(idle_data->obj, idle_data->str_addr,pref, idle_data->pos_cb, idle_data->user_data,&req_id);
+ GetLocationError(str, ret);
+ if(ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail location_get_position_from_freeformed_address_async Error[%s]\n", str);
+ } else {
+ g_printf("location_get_position_from_freeformed_address_async, req_id %d\n", req_id);
+ }
+ g_free(idle_data->str_addr);
+ g_free(idle_data);
+ location_geocode_pref_free(pref);
+ return FALSE;
+}
+
static gboolean idle_address_from_position_async(gpointer data)
{
IdleData* idle_data = (IdleData*)data;
char str[STR_MAX];
- int ret = location_map_get_address_from_position_async(idle_data->obj, idle_data->pos, idle_data->addr_cb, idle_data->user_data);
+ guint reqid = 0;
+ int ret = location_map_get_address_from_position_async(idle_data->obj, idle_data->pos,idle_data->addr_cb, idle_data->user_data,&reqid);
GetLocationError(str, ret);
- g_printf("location_map_get_address_from_position_async: returned value [%s]\n", str);
+ if(ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail location_map_get_address_from_position_async Error[%s]\n", str);
+ } else {
+ g_printf("location_map_get_address_from_position_async, req_id %d\n", reqid);
+ }
location_position_free(idle_data->pos);
g_free(idle_data);
return FALSE;
}
+static gboolean idle_location_map_get_position_from_address_async(gpointer data)
+{
+ g_printf("+++idle location map get position from address async begin\n");
+ IdleData* idle_data = (IdleData*)data;
+ guint req_id = 0;
+ char str[STR_MAX];
+ LocationGeocodePreference *pref = location_geocode_pref_new();
+ LocationError err = location_map_get_position_from_address_async(idle_data->obj,idle_data->addr,pref,idle_data->pos_cb,idle_data->user_data,&req_id);
+
+ if(err != LOCATION_ERROR_NONE) {
+ g_printf("Fail location_get_position_from_address_async Error[%s]\n", str);
+ } else {
+ g_printf("location_get_position_from_address_async, req_id %d\n", req_id);
+ }
+ g_free(idle_data);
+ location_geocode_pref_free(pref);
+ g_printf("---idle location map get position from address async end\n");
+ return FALSE;
+}
-void _print_keys(gpointer value)
+void _print_keys(gpointer data, gpointer user_data)
{
- g_printf(" %s ", (gchar*) value);
+ g_printf(" %s ", (gchar*) data);
}
static void print_map_service_keys (LocationObject *obj, int type)
@@ -389,7 +859,7 @@ static void print_map_service_keys (LocationObject *obj, int type)
location_map_get_provider_capability_key (obj, type, &key);
if (key) {
- g_list_foreach (key, _print_keys, NULL);
+ g_list_foreach (key, (GFunc)_print_keys, NULL);
}
g_list_free_full(key, g_free);
@@ -408,33 +878,40 @@ static void print_menu()
g_printf("q. Exit\n");
g_printf("1. location_init\n");
g_printf("2. location_map_new for default \n");
- g_printf("2a. location_map_new for decarta \n");
- g_printf("2b. location_map_new for osm \n");
+ g_printf("2a. location_map_new for decarta \n");
+ g_printf("2b. location_map_new for osm \n");
+ g_printf("2c. location_map_new for nlp \n");
g_printf("3. location_map_free\n");
- g_printf("4. location_map_get_address_from_position\n");
- g_printf("4a. location_map_get_address_from_position_async\n");
- g_printf("5. location_map_search_poi_with_keyword\n");
- g_printf("5a. location_map_search_poi_with_category\n");
- g_printf("5b. location_map_search_poi_with_poi_name\n");
- g_printf("6. location_map_search_poi_by_area_with_keyword\n");
- g_printf("6a. location_map_search_poi_by_area_with_category\n");
- g_printf("6b. location_map_search_poi_by_area_with_poi_name\n");
- g_printf("7. location_map_search_poi_by_addr_with_keyword\n");
- g_printf("7a. location_map_search_poi_by_addr_with_category\n");
- g_printf("7b. location_map_search_poi_by_addr_with_poi_name\n");
- g_printf("8. location_map_search_poi_by_freeformed_address_with_keyword\n");
- g_printf("8a. location_map_search_poi_by_freeformed_address_with_category\n");
- g_printf("8b. location_map_search_poi_by_freeformed_address_with_poi_name\n");
- g_printf("9. location_map_cancel_poi_request\n");
- g_printf("10. location_map_request_route\n");
- g_printf("10a. location_map_request_route for a long distance\n");
- g_printf("11. location_map_cancel_route_request\n");
- g_printf("12. location_map_is_supported_provider_capability\n");
- g_printf("13. location_map_get_provider_capability_key\n");
- g_printf("14. location_map_get_supported_providers \n");
- g_printf("15. location_map_get_default_provider \n");
- g_printf("16. location_map_set_provider \n");
- g_printf("99. change map provider to default\n");
+ g_printf("4. location_map_get_address_from_position_async\n");
+ g_printf("5. location_map_get_position_from_address_async\n");
+ g_printf("6. location_map_get_position_from_freeformed_address_async\n");
+ g_printf("7. location_map_search_poi_with_keyword\n");
+ g_printf("7a. location_map_search_poi_with_category\n");
+ g_printf("7b. location_map_search_poi_with_poi_name\n");
+ g_printf("8. location_map_search_poi_by_area_with_keyword\n");
+ g_printf("8a. location_map_search_poi_by_area_with_category\n");
+ g_printf("8b. location_map_search_poi_by_area_with_poi_name\n");
+ g_printf("9. location_map_search_poi_by_addr_with_keyword\n");
+ g_printf("9a. location_map_search_poi_by_addr_with_category\n");
+ g_printf("9b. location_map_search_poi_by_addr_with_poi_name\n");
+ g_printf("10. location_map_search_poi_by_freeformed_address_with_keyword\n");
+ g_printf("10a. location_map_search_poi_by_freeformed_address_with_category\n");
+ g_printf("10b. location_map_search_poi_by_freeformed_address_with_poi_name\n");
+ g_printf("11. location_map_cancel_poi_request\n");
+ g_printf("12. location_map_request_route\n");
+ g_printf("12a. location_map_request_route for a long distance\n");
+ g_printf("13. location_map_cancel_route_request\n");
+ g_printf("14. location_map_is_supported_provider_capability\n");
+ g_printf("15. location_map_get_provider_capability_key\n");
+ g_printf("16. location_map_get_supported_providers \n");
+ g_printf("17. location_map_get_default_provider \n");
+ g_printf("18. location_map_set_provider \n");
+ g_printf("19. location_map_cancel_geocode_request. \n");
+ g_printf("20. location_map_get_map_version. \n");
+ g_printf("21. location_map_updatea_map_version[TRUE]. \n");
+ g_printf("22. location_map_updatea_map_version[FALSE]. \n");
+ g_printf("23. location_map_is_latest_map_data \n");
+ g_printf("99. change map provider to default\n");
g_printf("99a. change map provider to decarta\n");
g_printf("99b. change map provider to osm\n");
@@ -452,7 +929,7 @@ int main(int argc, char** argv)
guint req_id = 0;
// If application is executed by AUL, this is not needed.
- g_setenv("PKG_NAME", "org.tizen.map-service-test", 1);
+ g_setenv("PKG_NAME", "com.samsung.map-service-test", 1);
g_type_init();
@@ -492,6 +969,11 @@ int main(int argc, char** argv)
continue;
}
map_obj = location_map_new(NULL);
+
+ LocationMapPref* mapPref =location_map_pref_new();
+ location_map_pref_set_maps_key(mapPref,"SpMLqvWrvuFmp27kV4e6/Md_LeHoPn0b4LPOxB60p4A");
+ location_map_set_service_pref(map_obj, mapPref);
+
if(map_obj) g_printf("Success\n");
else g_printf("Failed\n");
} else if (0 == g_strcmp0("2a",strOpt)) {
@@ -510,37 +992,31 @@ int main(int argc, char** argv)
map_obj = location_map_new("osm");
if(map_obj) g_printf("Success\n");
else g_printf("Failed\n");
+ }
+ else if (0 == g_strcmp0("2c",strOpt)) {
+ if (map_obj) {
+ g_printf("Location object already existed: [0x%x]", (unsigned int)map_obj);
+ continue;
+ }
+ map_obj = location_map_new("nlp");
+
+ LocationMapPref* mapPref =location_map_pref_new();
+ location_map_pref_set_maps_key(mapPref,"SpMLqvWrvuFmp27kV4e6/Md_LeHoPn0b4LPOxB60p4A");
+ location_map_set_service_pref(map_obj, mapPref);
+
+ if(map_obj) {
+ g_printf("Success\n");
+ }
+ else
+ {
+ g_printf("Failed\n");
+ }
} else if (0 == g_strcmp0("3",strOpt)) {
ret = location_map_free (map_obj);
map_obj = NULL;
GetLocationError(str, ret);
g_printf("location_map_free: returned value [%s]\n", str);
}else if(0 == g_strcmp0("4",strOpt) ){
- LocationPosition *pos = NULL;
- LocationAddress *addr = NULL;
- LocationAccuracy *acc = NULL;
- g_printf("[0].San jose [1].Suwon HQ [*].Custom\n");
- g_printf("Select Position: ");
- int opt = PromptInt();
- if(opt == 0) pos = location_position_new(0, 37.335276, -121.890059, 0, LOCATION_STATUS_2D_FIX);
- else if(opt == 1) pos = location_position_new(0, 37.257809, 127.056383, 0, LOCATION_STATUS_2D_FIX);
- else{
- g_printf("Input latitude: ");
- gdouble lat = PromptDB();
- g_printf("Input longitude: ");
- gdouble lon = PromptDB();
- pos = location_position_new(0, lat, lon, 0, LOCATION_STATUS_2D_FIX);
- }
- ret = location_map_get_address_from_position(map_obj, pos, &addr, &acc);
- GetLocationError(str, ret);
- g_printf("location_map_get_address_from_position: returned value [%s]\n", str);
- if(ret == LOCATION_ERROR_NONE){
- g_printf("building number: [%s], street: [%s], state: [%s], country code: [%s], city: [%s], district: [%s], postal code: [%s]\n",
- addr->building_number, addr->street, addr->state, addr->country_code, addr->city, addr->district, addr->postal_code);
- }
- if(addr) location_address_free(addr);
- if(acc) location_accuracy_free(acc);
- }else if(0 == g_strcmp0("4a",strOpt) ){
IdleData* data = g_new0(IdleData, 1);
data->obj = map_obj;
data->addr_cb = cb_address;
@@ -559,7 +1035,73 @@ int main(int argc, char** argv)
data->pos = location_position_new(0, lat, lon, 0, LOCATION_STATUS_2D_FIX);
}
g_idle_add((GSourceFunc)idle_address_from_position_async, data);
- }else if(0 == g_strcmp0("5", strOpt)) {
+ } else if (0 == g_strcmp0("5", strOpt)) {
+ IdleData* data = g_new0(IdleData, 1);
+ data->obj = map_obj;
+ data->pos_cb = cb_position;
+ data->user_data = map_obj;
+
+ g_printf("[0].San jose [1].수원 삼성 [2].Suwon HQ [*].Custom\n");
+ g_printf("Select Address: ");
+ int opt = PromptInt();
+ char *ret_str = NULL;
+ if (opt == 0) data->addr = location_address_new ("1", "Post Street", NULL, "san jose", "ca", NULL, "95113", NULL, NULL, NULL);
+ else if (opt == 1) data->addr = location_address_new (NULL, "삼성전자", "매탄3동", "수원시 영>통구", "경기도", NULL, NULL, NULL, NULL, NULL);
+ else if (opt == 2) data->addr = location_address_new (NULL, "Samsung Electro-Mechanics Co. LTD", "Maetan 3-dong", "Suwon Si Yeongtong-gu", "Gyeonggi-do", NULL, NULL, NULL, NULL, NULL);
+ else {
+ char building_number[255], street[255], state[255], country_code[255], city[255], district[255], postal_code[255];
+ g_printf("Input building number: ");
+ ret_str = fgets(building_number, 255, stdin);
+ building_number[strlen(building_number)-1]='\0';
+ g_printf("Input street: ");
+ ret_str = fgets(street, 255, stdin);
+ street[strlen(street)-1]='\0';
+ g_printf("Input state: ");
+ ret_str = fgets(state, 255, stdin);
+ state[strlen(state)-1]='\0';
+ g_printf("Input country code: ");
+ ret_str = fgets(country_code, 255, stdin);
+ country_code[strlen(country_code)-1]='\0';
+ g_printf("Input city: ");
+ ret_str = fgets(city, 255, stdin);
+ city[strlen(city)-1]='\0';
+ g_printf("Input district: ");
+ ret_str = fgets(district, 255, stdin);
+ district[strlen(district)-1]='\0';
+ g_printf("Input postal code: ");
+ ret_str = fgets(postal_code, 255, stdin);
+ postal_code[strlen(postal_code)-1]='\0';
+ data->addr = location_address_new(building_number, street, district, city, state, country_code, postal_code, NULL, NULL, NULL);
+ }
+ g_idle_add((GSourceFunc)idle_position_from_address_async, data);
+ }else if(0 == g_strcmp0("6",strOpt) ){
+ IdleData* data = g_new0(IdleData, 1);
+ data->obj = map_obj;
+ data->pos_cb = cb_position;
+ data->user_data = map_obj;
+ g_printf("[0].San jose [1].수원 삼성 [2].Suwon HQ [*].Custom\n");
+ g_printf("Select Address: ");
+ int opt = PromptInt();
+ char *ret_str = NULL;
+ if(opt == 0){
+ data->str_addr = g_strdup("4 N 2nd Street 95113");
+ }else if(opt == 1){
+ data->str_addr = g_strdup("경기도 수원시 영통구 매탄 3동 삼성전자");
+ }else if(opt == 2){
+ data->str_addr = g_strdup("Samsung Electronics Co. LTD Maetan 3-dong, Suwon Si Yeongtong-gu, Gyeonggi-Do (Seoul 443-742 Korea), Rep of KOREA");
+ }else{
+ char buf[255];
+ g_printf("Input freeform address: ");
+ ret_str = fgets(buf, 255, stdin);
+ if (NULL == ret_str){
+ g_printf(" fgets return NULL \n");
+ }
+ buf[strlen(buf)-1]='\0';
+ data->str_addr = g_strdup(buf);
+ }
+ g_idle_add((GSourceFunc)idle_position_from_freefromed_address_async, data);
+
+ }else if(0 == g_strcmp0("7", strOpt)) {
g_printf("location_map_search_poi\n");
LocationPOIFilter *filter = location_poi_filter_new();
@@ -583,10 +1125,10 @@ int main(int argc, char** argv)
location_poi_filter_free(filter);
location_poi_pref_free(pref);
location_position_free(position);
- }else if(0 == g_strcmp0("5a", strOpt)) {
+ }else if(0 == g_strcmp0("7a", strOpt)) {
g_printf("location_map_search_poi_with_category\n");
LocationPOIFilter *filter = location_poi_filter_new();
- location_poi_filter_set(filter, "CATEGORY", "restaurant");
+ location_poi_filter_set(filter, "CATEGORY", "eat_drink");
LocationPOIPreference *pref = location_poi_pref_new();
location_poi_pref_set_max_result(pref, 5);
@@ -607,7 +1149,7 @@ int main(int argc, char** argv)
location_poi_pref_free(pref);
location_position_free(position);
- }else if(0 == g_strcmp0("5b", strOpt)) {
+ }else if(0 == g_strcmp0("7b", strOpt)) {
g_printf("location_map_search_poi_with_poi_name\n");
LocationPOIFilter *filter = location_poi_filter_new();
@@ -633,7 +1175,7 @@ int main(int argc, char** argv)
location_poi_pref_free(pref);
location_position_free(position);
- }else if(0 == g_strcmp0("6", strOpt)) {
+ }else if(0 == g_strcmp0("8", strOpt)) {
g_printf("location_map_search_poi_by_area_with_keyword\n");
// only circle supported by decarta
@@ -668,7 +1210,7 @@ int main(int argc, char** argv)
location_boundary_free(bound);
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("6a", strOpt)) {
+ }else if(0 == g_strcmp0("8a", strOpt)) {
g_printf("location_map_search_poi_by_area_with_category\n");
// only circle supported by decarta
@@ -703,9 +1245,9 @@ int main(int argc, char** argv)
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("6b", strOpt)) {
+ }else if(0 == g_strcmp0("8b", strOpt)) {
g_printf("location_map_search_poi_by_area_with_poi_name\n");
-
+
// only circle supported by decarta
LocationPosition *center = location_position_new(0, 37.336723, -121.889555, 0, LOCATION_STATUS_2D_FIX);
gdouble radius = 400;
@@ -739,10 +1281,10 @@ int main(int argc, char** argv)
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("7", strOpt)) {
+ }else if(0 == g_strcmp0("9", strOpt)) {
g_printf("location_map_search_poi_by_address_with_keyword\n");
- LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110");
+ LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110",NULL,NULL,NULL);
LocationPOIFilter *filter = location_poi_filter_new();
gchar *key = g_strdup("KEYWORD");
@@ -770,10 +1312,10 @@ int main(int argc, char** argv)
location_address_free(addr);
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("7a", strOpt)) {
+ }else if(0 == g_strcmp0("9a", strOpt)) {
g_printf("location_search_poi_by_address_with_category\n");
- LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110");
+ LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110",NULL,NULL,NULL);
LocationPOIFilter *filter = location_poi_filter_new();
location_poi_filter_set(filter, "CATEGORY", "restaurant");
@@ -794,10 +1336,10 @@ int main(int argc, char** argv)
location_address_free(addr);
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("7b", strOpt)) {
+ }else if(0 == g_strcmp0("9b", strOpt)) {
g_printf("location_map_search_poi_by_address_with_poi_name\n");
- LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110");
+ LocationAddress *addr = location_address_new("51", "N SAN PEDRO ST", NULL, "SAN JOSE", "SANTA CLARA", "CA", "95110",NULL,NULL,NULL);
LocationPOIFilter *filter = location_poi_filter_new();
gchar *key = g_strdup("POIName");
@@ -826,7 +1368,7 @@ int main(int argc, char** argv)
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("8", strOpt)) {
+ }else if(0 == g_strcmp0("10", strOpt)) {
g_printf("location_map_search_poi_by_freeformed_address_with_keyword\n");
gchar *addr = g_strdup("North Second St.");
@@ -846,16 +1388,15 @@ int main(int argc, char** argv)
g_printf("Fail to search POI by address. Error[%s]\n", str);
} else {
g_printf("Seach POI by address success, req_id %d\n", req_id);
- }
-
+ }
g_free(item);
g_free(addr);
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("8a", strOpt)) {
+ }else if(0 == g_strcmp0("10a", strOpt)) {
g_printf("location_map_search_poi_by_freeformed_address_with_category\n");
-
+
gchar *addr = g_strdup("North Second St.");
LocationPOIFilter *filter = location_poi_filter_new();
@@ -868,7 +1409,7 @@ int main(int argc, char** argv)
gchar *item = g_strdup("Distance");
location_poi_pref_set_sort_by(pref, item);
location_poi_pref_set_sort_order(pref, LOCATION_POI_PREF_SO_ASC);
-
+
ret = location_map_search_poi_by_freeformed_address(map_obj, filter, addr, pref, cb_poi, NULL, &req_id);
GetLocationError(str, ret);
if (ret != LOCATION_ERROR_NONE) {
@@ -884,7 +1425,7 @@ int main(int argc, char** argv)
g_free(addr);
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("8b", strOpt)) {
+ }else if(0 == g_strcmp0("10b", strOpt)) {
g_printf("location_map_search_poi_by_freeformed_address_with_poi_name\n");
gchar *addr = g_strdup("North Second St.");
@@ -909,11 +1450,12 @@ int main(int argc, char** argv)
location_poi_filter_free(filter);
location_poi_pref_free(pref);
- }else if(0 == g_strcmp0("9", strOpt)) {
+ }else if(0 == g_strcmp0("11", strOpt)) {
int req_id;
+ int len = 0;
g_printf("Input ReqID : ");
- scanf("%d", &req_id);
+ len = scanf("%d", &req_id);
ret = location_map_cancel_poi_request(map_obj, req_id);
GetLocationError(str, ret);
@@ -922,7 +1464,7 @@ int main(int argc, char** argv)
}
else
g_printf("location_map_cancel_poi_request, req_id %d\n", req_id);
- }else if(0 == g_strcmp0("10", strOpt)) {
+ }else if(0 == g_strcmp0("12", strOpt)) {
g_printf("location_map_request_route\n\n");
LocationPosition *origin = location_position_new(0, 37.564263, 126.974676, 0, LOCATION_STATUS_2D_FIX); // Seoul city hall
@@ -935,6 +1477,41 @@ int main(int argc, char** argv)
LocationRoutePreference *pref = location_route_pref_new();
location_route_pref_set_route_type(pref, "FASTEST");
+ LocationRoadElementPenalty *penalty = NULL;
+ penalty = location_route_element_penalty_new ();
+
+ location_route_element_penalty_set_id(penalty, "Penalty1");
+ location_route_element_penalty_set_direction(penalty, DIR_BOTH);
+ location_route_element_penalty_set_penalty(penalty, 8);
+ location_route_element_penalty_set_speed(penalty, 90);
+ location_route_element_penalty_set_validity_start_time(penalty, 146);
+ location_route_element_penalty_set_validity_end_time(penalty, 244);
+
+ LocationRouteOptions *options = location_route_options_new ();
+ if (NULL == options) {
+ g_printf("\n ERROR: options is NULL \n");
+ }
+ GList *penalty_list = NULL;
+ penalty_list = g_list_append (penalty_list, penalty);
+ if (NULL == penalty_list) {
+ g_printf("\n ERROR: penalty_list is NULL \n");
+ }
+ location_route_options_set_road_element_penalty(options, penalty_list);
+ location_route_options_set_start_direction(options, 45);
+ location_route_options_set_walk_time_multiplier(options, (gfloat)10);
+ location_route_options_set_minimum_change_time(options, 30);
+ location_route_options_set_transit_type_allowed(options, TRANSIT_TYPE_RAIL_LIGHT, TRUE);
+ location_route_options_set_maximum_changes(options, 2);
+ location_route_options_set_departure_time(options, 1373282862);
+ //location_route_options_set_arrival_time(options, 244);
+
+ location_route_pref_set_options(pref, options);
+ location_route_options_free(options);
+
+ LocationMapPref* mapPref =location_map_pref_new();
+ location_map_pref_set_maps_key(mapPref,"SpMLqvWrvuFmp27kV4e6/Md_LeHoPn0b4LPOxB60p4A");
+ location_map_set_service_pref(map_obj, mapPref);
+
ret = location_map_request_route(map_obj, origin, destination, waypoint, pref, cb_route, NULL, &req_id);
GetLocationError(str, ret);
if (ret != LOCATION_ERROR_NONE) {
@@ -942,7 +1519,7 @@ int main(int argc, char** argv)
} else {
g_printf("Search Route successfully, req_id %d\n", req_id);
}
- }else if(0 == g_strcmp0("10a", strOpt)) {
+ }else if(0 == g_strcmp0("12a", strOpt)) {
g_printf("location_map_request_route for a long distance\n");
LocationPosition *origin = location_position_new(0, 29.783449,-95.373688, 0, LOCATION_STATUS_2D_FIX);
@@ -953,6 +1530,10 @@ int main(int argc, char** argv)
LocationRoutePreference *pref = location_route_pref_new();
location_route_pref_set_route_type(pref, "FASTEST");
+ LocationMapPref* mapPref =location_map_pref_new();
+ location_map_pref_set_maps_key(mapPref,"SpMLqvWrvuFmp27kV4e6/Md_LeHoPn0b4LPOxB60p4A");
+ location_map_set_service_pref(map_obj, mapPref);
+
ret = location_map_request_route(map_obj, origin, destination, waypoint, pref, cb_route, NULL, &req_id);
GetLocationError(str, ret);
if (ret != LOCATION_ERROR_NONE) {
@@ -962,12 +1543,13 @@ int main(int argc, char** argv)
}
- }else if(0 == g_strcmp0("11", strOpt)) {
+ }else if(0 == g_strcmp0("13", strOpt)) {
g_printf("location_map_cancel_route_request\n");
int req_id;
+ int len;
g_printf("Input ReqID : ");
- scanf("%d", &req_id);
+ len = scanf("%d", &req_id);
ret = location_map_cancel_route_request(map_obj, req_id);
GetLocationError(str, ret);
@@ -978,19 +1560,19 @@ int main(int argc, char** argv)
g_printf("location_map_cancel_route_request, req_id %d\n", req_id);
}
- }else if (0 == g_strcmp0 ("12", strOpt)) {
+ }else if (0 == g_strcmp0 ("14", strOpt)) {
int idx = 0;
for (idx = 0; idx < MAP_SERVICE_TYPE_MAX; idx++) {
g_printf("[%d:%d], ", idx, location_map_is_supported_provider_capability (map_obj, idx));
}
- }else if (0 == g_strcmp0 ("13", strOpt)) {
+ }else if (0 == g_strcmp0 ("15", strOpt)) {
int idx = 0;
for (idx = 0; idx < MAP_SERVICE_TYPE_MAX; idx++) {
g_printf("[%d:", idx);
print_map_service_keys(map_obj, idx);
g_printf("]\n");
}
- }else if (0 == g_strcmp0 ("14", strOpt)) {
+ }else if (0 == g_strcmp0 ("16", strOpt)) {
GList *list = location_map_get_supported_providers (map_obj);
if (list) {
g_list_foreach (list, _print_provider, NULL);
@@ -999,7 +1581,7 @@ int main(int argc, char** argv)
else {
g_printf("Fail to get supported_providers\n");
}
- }else if (0 == g_strcmp0 ("15", strOpt)) {
+ }else if (0 == g_strcmp0 ("17", strOpt)) {
gchar *default_provider = location_map_get_default_provider (map_obj);
if (default_provider) {
g_printf("Defaut : [%s]\n", default_provider);
@@ -1008,7 +1590,7 @@ int main(int argc, char** argv)
else {
g_printf("Fail to get default provider\n");
}
- }else if (0 == g_strcmp0 ("16", strOpt)) {
+ }else if (0 == g_strcmp0 ("18", strOpt)) {
g_printf("[0].default [1].decarta [2].osm\n");
g_printf("Select provider: ");
int opt = PromptInt();
@@ -1034,6 +1616,53 @@ int main(int argc, char** argv)
else {
g_printf ("Fail to set provider [%d]\n", opt);
}
+ }
+ else if(0 == g_strcmp0("19", strOpt)) {
+ int req_id;
+ int len = 0;
+
+ g_printf("Input ReqID : ");
+ len = scanf("%d", &req_id);
+
+ ret = location_map_cancel_geocode_request(map_obj, req_id);
+ GetLocationError(str, ret);
+ if (ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail to cancel Geocode request. Error[%s]\n", str);
+ }
+ else
+ g_printf("location_map_cancel_geocode_request, req_id %d\n", req_id);
+ }else if(0 == g_strcmp0("20", strOpt)) {
+ g_printf("Get map version\n");
+ gchar *version = NULL;
+ ret = location_map_get_map_version(map_obj, &version);
+ if (ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail to get map version[%d]\n", ret);
+ } else {
+ g_printf("Version : %s\n", version);
+ }
+ if (version) g_free(version);
+ }else if(0 == g_strcmp0("21", strOpt)) {
+ ret = location_map_update_map_data(map_obj, TRUE);
+ if (ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail to update map data[%d]\n", ret);
+ } else {
+ g_printf("Success to updata map data. [TRUE] \n");
+ }
+ }else if(0 == g_strcmp0("22", strOpt)) {
+ ret = location_map_update_map_data(map_obj, FALSE);
+ if (ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail to update map data[%d]\n", ret);
+ } else {
+ g_printf("Success to updata map data. [FALSE] \n");
+ }
+ }else if (0 == g_strcmp0("23", strOpt)) {
+ gboolean is_lastest_map_data_flag = FALSE;
+ ret = location_map_is_latest_map_data(map_obj, &is_lastest_map_data_flag);
+ if (ret != LOCATION_ERROR_NONE) {
+ g_printf("Fail to check the latest map data. Error Code [%d]\n", ret);
+ } else {
+ g_printf("Success to check the latest map data. [%s]\n", is_lastest_map_data_flag ? "TRUE" : "FALSE");
+ }
}else if (0 == g_strcmp0 ("99", strOpt)) {
if (map_obj) {
g_object_set (map_obj, "provider", NULL, NULL);
diff --git a/tests/nmea-sample.c b/tests/nmea-sample.c
index 62073a3..53aaf25 100644
--- a/tests/nmea-sample.c
+++ b/tests/nmea-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/position-sample-gps.c b/tests/position-sample-gps.c
index fb5b7d8..3e7c698 100644
--- a/tests/position-sample-gps.c
+++ b/tests/position-sample-gps.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/property-sample.c b/tests/property-sample.c
index b3096bd..5be65d9 100644
--- a/tests/property-sample.c
+++ b/tests/property-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -77,20 +77,6 @@ main (int argc, char *argv[])
g_object_get(loc, "method", &method, NULL);
g_debug("Get property>> method:%d", method);
- char* devname = NULL;
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_debug("Get property>> dev-name: %s", devname);
- g_free(devname);
- } else g_warning("failed to get property> dev-name");
-
- g_object_set(loc, "dev-name", "/dev/test", NULL);
- g_object_get(loc, "dev-name", &devname, NULL);
- if (devname) {
- g_debug("Get property>> dev-name: %s", devname);
- g_free(devname);
- } else g_warning("failed to set property> dev-name");
-
g_signal_connect (loc, "service-enabled", G_CALLBACK(cb_service_enabled), loc);
g_signal_connect (loc, "service-disabled", G_CALLBACK(cb_service_disabled), loc);
g_signal_connect (loc, "service-updated", G_CALLBACK(cb_service_updated), loc);
diff --git a/tests/satellite-sample.c b/tests/satellite-sample.c
index 0c48b9a..8ee56dd 100644
--- a/tests/satellite-sample.c
+++ b/tests/satellite-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/velocity-sample.c b/tests/velocity-sample.c
index f62aead..407fd2b 100644
--- a/tests/velocity-sample.c
+++ b/tests/velocity-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/wps-test.c b/tests/wps-test.c
index 1bd753e..56652a3 100644
--- a/tests/wps-test.c
+++ b/tests/wps-test.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -97,11 +97,10 @@ cb_service_disabled (GObject *self,
static void
cb_zone_in (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_in: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -113,11 +112,10 @@ cb_zone_in (GObject *self,
static void
cb_zone_out (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_out: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
diff --git a/tests/zone-sample.c b/tests/zone-sample.c
index 0be3195..fd6a731 100644
--- a/tests/zone-sample.c
+++ b/tests/zone-sample.c
@@ -1,10 +1,10 @@
/*
* libslp-location
*
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2010-2013 Samsung Electronics Co., Ltd. All rights reserved.
*
- * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
- * Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Contact: Youngae Kang <youngae.kang@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
+ * Genie Kim <daejins.kim@samsung.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,11 +50,10 @@ cb_service_disabled (GObject *self,
static void
cb_zone_in (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
-{
- g_debug("cb_zone_in: type(%d)", type);
+{
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -66,11 +65,10 @@ cb_zone_in (GObject *self,
static void
cb_zone_out (GObject *self,
- guint type,
+ gpointer boundary,
gpointer position,
gpointer accuracy)
{
- g_debug("cb_zone_out: type(%d)", type);
LocationPosition *pos = (LocationPosition*) position;
LocationAccuracy *acc = (LocationAccuracy*) accuracy;
@@ -84,7 +82,7 @@ int
main (int argc, char *argv[])
{
LocationObject *loc = NULL;
-
+
location_init ();
loop = g_main_loop_new (NULL, TRUE);
@@ -103,10 +101,10 @@ main (int argc, char *argv[])
if (bound) {
g_object_set(loc, "boundary", bound, NULL);
location_boundary_free(bound);
- } else g_warning("failed to location_boundary_new_for_rect()");
+ } else g_warning("failed to location_boundary_new_for_rect()");
g_object_get(loc, "boundary", &bound, NULL);
if (bound) {
- g_debug("Set property>> boundary> type: %d, (%f,%f),(%f,%f)",
+ g_debug("Set property>> boundary> type: %d, (%f,%f),(%f,%f)",
bound->type,
bound->rect.right_bottom->latitude, bound->rect.right_bottom->longitude,
bound->rect.left_top->latitude, bound->rect.left_top->longitude);
@@ -117,7 +115,7 @@ main (int argc, char *argv[])
g_signal_connect (loc, "service-disabled", G_CALLBACK(cb_service_disabled), loc);
g_signal_connect (loc, "zone-in", G_CALLBACK(cb_zone_in), loc);
g_signal_connect (loc, "zone-out", G_CALLBACK(cb_zone_out), loc);
-
+
if( LOCATION_ERROR_NONE != location_start (loc) ){
g_debug("location_start failed");
return -1;