Add field for location clients to chose position sharing option

Add new configuration for location clients to
specify whether position reports can be shared
with other existing clients

Change-Id: I44ade2e48124f992a04956ed8c34218e73face81
Crs-Fixed: 1038783
This commit is contained in:
Hema Iyer Sankaranarayanan 2016-07-12 13:40:41 -07:00
parent 54794a45e6
commit 0ac496f962
2 changed files with 12 additions and 5 deletions

View file

@ -50,15 +50,17 @@ struct LocPosMode
uint32_t min_interval; uint32_t min_interval;
uint32_t preferred_accuracy; uint32_t preferred_accuracy;
uint32_t preferred_time; uint32_t preferred_time;
bool share_position;
char credentials[14]; char credentials[14];
char provider[8]; char provider[8];
LocPosMode(LocPositionMode m, GpsPositionRecurrence recr, LocPosMode(LocPositionMode m, GpsPositionRecurrence recr,
uint32_t gap, uint32_t accu, uint32_t time, uint32_t gap, uint32_t accu, uint32_t time,
const char* cred, const char* prov) : bool sp, const char* cred, const char* prov) :
mode(m), recurrence(recr), mode(m), recurrence(recr),
min_interval(gap < GPS_MIN_POSSIBLE_FIX_INTERVAL_MS ? min_interval(gap < GPS_MIN_POSSIBLE_FIX_INTERVAL_MS ?
GPS_MIN_POSSIBLE_FIX_INTERVAL_MS : gap), GPS_MIN_POSSIBLE_FIX_INTERVAL_MS : gap),
preferred_accuracy(accu), preferred_time(time) { preferred_accuracy(accu), preferred_time(time),
share_position(sp) {
memset(credentials, 0, sizeof(credentials)); memset(credentials, 0, sizeof(credentials));
memset(provider, 0, sizeof(provider)); memset(provider, 0, sizeof(provider));
if (NULL != cred) { if (NULL != cred) {
@ -73,7 +75,8 @@ struct LocPosMode
mode(LOC_POSITION_MODE_MS_BASED), mode(LOC_POSITION_MODE_MS_BASED),
recurrence(GPS_POSITION_RECURRENCE_PERIODIC), recurrence(GPS_POSITION_RECURRENCE_PERIODIC),
min_interval(GPS_DEFAULT_FIX_INTERVAL_MS), min_interval(GPS_DEFAULT_FIX_INTERVAL_MS),
preferred_accuracy(50), preferred_time(120000) { preferred_accuracy(50), preferred_time(120000),
share_position(true) {
memset(credentials, 0, sizeof(credentials)); memset(credentials, 0, sizeof(credentials));
memset(provider, 0, sizeof(provider)); memset(provider, 0, sizeof(provider));
} }

View file

@ -460,8 +460,12 @@ static int loc_set_position_mode(GpsPositionMode mode,
break; break;
} }
// set position sharing option to true
bool sharePosition = true;
LocPosMode params(locMode, recurrence, min_interval, LocPosMode params(locMode, recurrence, min_interval,
preferred_accuracy, preferred_time, NULL, NULL); preferred_accuracy, preferred_time,
sharePosition, NULL, NULL);
ret_val = loc_eng_set_position_mode(loc_afw_data, params); ret_val = loc_eng_set_position_mode(loc_afw_data, params);
EXIT_LOG(%d, ret_val); EXIT_LOG(%d, ret_val);