#include "location-hybrid.h"
#include "location-gps.h"
#include "location-wps.h"
-#include "location-ips.h"
#include "location-cps.h"
-#include "location-sps.h"
#include "location-position.h"
#include "map-service.h"
#include "module-internal.h"
#include "location-common-util.h"
-extern LocationObject *g_map_service;
-
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;
{
LocationObject *self = NULL;
- if (!g_map_service)
- g_map_service = g_object_new (MAP_TYPE_SERVICE, NULL);
-
switch (method) {
- case LOCATION_METHOD_HYBRID:
- self = g_object_new (LOCATION_TYPE_HYBRID, NULL);
- break;
- case LOCATION_METHOD_GPS:
- self = g_object_new (LOCATION_TYPE_GPS, NULL);
- break;
- case LOCATION_METHOD_WPS:
- self = g_object_new (LOCATION_TYPE_WPS, NULL);
- break;
- case LOCATION_METHOD_SPS:
- self = g_object_new (LOCATION_TYPE_SPS, NULL);
- break;
- default:
- break;
+ case LOCATION_METHOD_HYBRID:
+ self = g_object_new (LOCATION_TYPE_HYBRID, NULL);
+ break;
+ case LOCATION_METHOD_GPS:
+ self = g_object_new (LOCATION_TYPE_GPS, NULL);
+ break;
+ 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;
}
return self;
}
{
g_return_val_if_fail (obj, LOCATION_ERROR_PARAMETER);
- if (g_map_service) {
- g_object_unref (g_map_service);
- g_map_service = NULL;
- }
-
g_object_unref (obj);
return LOCATION_ERROR_NONE;
}
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");
+ return LOCATION_ERROR_NOT_ALLOWED;
+ }
return location_ielement_start (LOCATION_IELEMENT(obj));
}
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));
}
switch(method) {
case LOCATION_METHOD_HYBRID:
- if(module_is_supported("gps") || module_is_supported("wps") || module_is_supported("sps"))
+ if(module_is_supported("gps") || module_is_supported("wps"))
is_supported = TRUE;
break;
case LOCATION_METHOD_GPS:
case LOCATION_METHOD_WPS:
is_supported = module_is_supported("wps");
break;
- case LOCATION_METHOD_SPS:
- is_supported = module_is_supported("sps");
+ case LOCATION_METHOD_CPS:
+ is_supported = module_is_supported("cps");
break;
- case LOCATION_METHOD_CPS: /* deprecated */
- case LOCATION_METHOD_IPS: /* deprecated */
default:
break;
}
location_is_enabled_gps(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 (gboolean) location_setting_get_int(GPS_ENABLED);
+ return (gboolean) location_setting_get_int(VCONFKEY_LOCATION_ENABLED);
}
EXPORT_API int
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);
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);
}
EXPORT_API int
-location_get_last_known_position (LocationObject *obj, LocationMethod method,
- LocationLastPosition *last_position)
-{
- return LOCATION_ERROR_NOT_SUPPORTED;
-}
-
-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);
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);
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);
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);