630 |
|
|
631 |
static void gps_control(gps_state_t *gps_state, |
static void gps_control(gps_state_t *gps_state, |
632 |
gboolean enable0, gboolean enable1) { |
gboolean enable0, gboolean enable1) { |
633 |
|
printf("GPS: control(stp: %d, bg: %d)\n", enable0, enable1); |
634 |
|
|
635 |
if(!gps_state->connected) { |
if(!gps_state->connected) { |
636 |
/* both "enable" signals have to be true */ |
/* both "enable" signals have to be true */ |
637 |
if(enable0 && enable1) { |
if(enable0 && enable1) { |
657 |
if(gps_state->backgrounded == !enable) return; |
if(gps_state->backgrounded == !enable) return; |
658 |
|
|
659 |
gps_state->backgrounded = !enable; |
gps_state->backgrounded = !enable; |
660 |
gps_control(gps_state, gps_state->stopped, gps_state->backgrounded); |
gps_control(gps_state, !gps_state->stopped, !gps_state->backgrounded); |
661 |
} |
} |
662 |
|
|
663 |
/* enable/disable on app request */ |
/* enable/disable on app request */ |
665 |
if(gps_state->stopped == !enable) return; |
if(gps_state->stopped == !enable) return; |
666 |
|
|
667 |
gps_state->stopped = !enable; |
gps_state->stopped = !enable; |
668 |
gps_control(gps_state, gps_state->stopped, gps_state->backgrounded); |
gps_control(gps_state, !gps_state->stopped, !gps_state->backgrounded); |
669 |
} |
} |
670 |
|
|
671 |
#endif // USE_LIBLOCATION |
#endif // USE_LIBLOCATION |