558 |
g_signal_connect(gps_state->device, "changed", |
g_signal_connect(gps_state->device, "changed", |
559 |
G_CALLBACK(location_changed), gps_state); |
G_CALLBACK(location_changed), gps_state); |
560 |
|
|
561 |
|
#if MAEMO_VERSION_MAJOR < 5 |
562 |
|
gps_state->control = location_gpsd_control_get_default(); |
563 |
|
|
564 |
|
if(appdata->gps_enabled && gps_state->control && |
565 |
|
gps_state->control->can_control) { |
566 |
|
printf("Having control over GPSD and GPS is to be enabled, starting it\n"); |
567 |
|
location_gpsd_control_start(gps_state->control); |
568 |
|
} |
569 |
|
#endif |
570 |
} |
} |
571 |
|
|
572 |
void gps_release(appdata_t *appdata) { |
void gps_release(appdata_t *appdata) { |
573 |
gps_state_t *gps_state = appdata->gps_state; |
gps_state_t *gps_state = appdata->gps_state; |
574 |
|
|
575 |
if(!gps_state->device) return; |
if(!gps_state->device) return; |
576 |
|
|
577 |
|
#if MAEMO_VERSION_MAJOR < 5 |
578 |
|
if(gps_state->control && gps_state->control->can_control) { |
579 |
|
printf("Having control over GPSD, stopping it\n"); |
580 |
|
location_gpsd_control_stop(gps_state->control); |
581 |
|
} |
582 |
|
#endif |
583 |
|
|
584 |
/* Disconnect signal */ |
/* Disconnect signal */ |
585 |
g_signal_handler_disconnect(gps_state->device, gps_state->idd_changed); |
g_signal_handler_disconnect(gps_state->device, gps_state->idd_changed); |