void gps_enable(appdata_t *appdata, gboolean enable) { if(appdata->settings) { gps_state_t *gps_state = appdata->gps_state; /* for location update callbacks */ gps_state->data = appdata; if(enable != appdata->gps_state->gps_is_on) { if(gps_state->device && gps_state->control #if MAEMO_VERSION_MAJOR < 5 && gps_state->control->can_control #endif ) { if(enable) { printf("starting gpsd\n"); location_gpsd_control_start(gps_state->control); } else { printf("stopping gpsd\n"); location_gpsd_control_stop(gps_state->control); } appdata->gps_state->gps_is_on = enable; } } appdata->settings->enable_gps = enable; } }
NS_IMETHODIMP MaemoLocationProvider::Shutdown() { if (mUpdateTimer) mUpdateTimer->Cancel(); g_signal_handler_disconnect(mGPSDevice, mLocationChanged); g_signal_handler_disconnect(mGPSDevice, mDeviceDisconnected); g_signal_handler_disconnect(mGPSDevice, mControlError); g_signal_handler_disconnect(mGPSDevice, mControlStopped); mHasSeenLocation = false; mCallback = nsnull; if (mGPSControl) { location_gpsd_control_stop(mGPSControl); g_object_unref(mGPSControl); mGPSControl = nsnull; } if (mGPSDevice) { g_object_unref(mGPSDevice); mGPSDevice = nsnull; } return NS_OK; }
bool NokiaMaemoLocationInterfaceImpl::deregisterLbsClient() { // if(m_control->can_control) location_gpsd_control_stop(m_control); g_object_unref(m_control); g_object_unref(m_device); // Add verification the control stop and unref went alright. return true; }
gps_liblocation_state_t::~gps_liblocation_state_t() { if(!device) return; if(control) { g_debug("Having control over GPSD and its running, stopping it"); if(gps_is_on) location_gpsd_control_stop(control); } /* Disconnect signal */ g_signal_handler_disconnect(device, idd_changed); }
void gps_liblocation_state_t::setEnable(bool en) { if(en != gps_is_on) { if(device && control) { if(en) { g_debug("starting gpsd"); location_gpsd_control_start(control); } else { g_debug("stopping gpsd"); location_gpsd_control_stop(control); } gps_is_on = en; } } enabled = en; }
void gps_release(appdata_t *appdata) { gps_state_t *gps_state = appdata->gps_state; if(!gps_state->device) return; #ifdef LL_CONTROL_GPSD if(gps_state->control #if MAEMO_VERSION_MAJOR < 5 && gps_state->control->can_control #endif ) { printf("Having control over GPSD and its running, stopping it\n"); if(appdata->gps_state->gps_is_on) location_gpsd_control_stop(gps_state->control); } #endif /* Disconnect signal */ g_signal_handler_disconnect(gps_state->device, gps_state->idd_changed); g_free(appdata->gps_state); appdata->gps_state = NULL; }