diff options
| author | Steve Kondik <shade@chemlab.org> | 2012-12-06 11:28:15 -0800 |
|---|---|---|
| committer | Steve Kondik <shade@chemlab.org> | 2012-12-07 11:54:36 -0800 |
| commit | 0e4cc87f7716644b8659978efa985d11fa29a391 (patch) | |
| tree | 62b0c7e30880164dfecacc5a3b240a5bf0773525 /services/jni | |
| parent | 9df1aa5fb865dc8d06795108d3dc8c1371f17b3a (diff) | |
| download | frameworks_base-0e4cc87f7716644b8659978efa985d11fa29a391.zip frameworks_base-0e4cc87f7716644b8659978efa985d11fa29a391.tar.gz frameworks_base-0e4cc87f7716644b8659978efa985d11fa29a391.tar.bz2 | |
gps: Add support for Qualcomm GPS hardware
* This ABI is changed, but we aren't using the new features in MR1.
* Add a little translation for the changed fields and methods.
Change-Id: Ieecc2235b42f64fc69d4651855f4e9edfe7d738d
Diffstat (limited to 'services/jni')
| -rw-r--r-- | services/jni/Android.mk | 8 | ||||
| -rwxr-xr-x | services/jni/com_android_server_location_GpsLocationProvider.cpp | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/services/jni/Android.mk b/services/jni/Android.mk index d097a93..c3b6539 100644 --- a/services/jni/Android.mk +++ b/services/jni/Android.mk @@ -44,6 +44,14 @@ LOCAL_SHARED_LIBRARIES := \ libusbhost \ libsuspend +ifeq ($(BOARD_HAVE_NEW_QC_GPS),true) + LOCAL_CFLAGS += -DNEW_QC_GPS +endif + +ifeq ($(BOARD_HAVE_SAMSUNG_GPS),true) + LOCAL_CFLAGS += -DSAMSUNG_GPS +endif + ifeq ($(WITH_MALLOC_LEAK_CHECK),true) LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK endif diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp index 50bd46e..f2ec1b3 100755 --- a/services/jni/com_android_server_location_GpsLocationProvider.cpp +++ b/services/jni/com_android_server_location_GpsLocationProvider.cpp @@ -167,7 +167,11 @@ static void agps_status_callback(AGpsStatus* agps_status) uint32_t ipaddr; // ipaddr field was not included in original AGpsStatus if (agps_status->size >= sizeof(AGpsStatus)) +#ifdef NEW_QC_GPS + ipaddr = agps_status->ipv4_addr; +#else ipaddr = agps_status->ipaddr; +#endif else ipaddr = 0xFFFFFFFF; env->CallVoidMethod(mCallbacksObj, method_reportAGpsStatus, @@ -483,7 +487,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_open(JNIEnv* env return; } const char *apnStr = env->GetStringUTFChars(apn, NULL); +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_open(0, apnStr, 0); +#else sAGpsInterface->data_conn_open(apnStr); +#endif env->ReleaseStringUTFChars(apn, apnStr); } @@ -493,7 +501,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_closed(JNIEnv* e ALOGE("no AGPS interface in agps_data_conn_open"); return; } +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_closed(0); +#else sAGpsInterface->data_conn_closed(); +#endif } static void android_location_GpsLocationProvider_agps_data_conn_failed(JNIEnv* env, jobject obj) @@ -502,7 +514,11 @@ static void android_location_GpsLocationProvider_agps_data_conn_failed(JNIEnv* e ALOGE("no AGPS interface in agps_data_conn_open"); return; } +#ifdef NEW_QC_GPS + sAGpsInterface->data_conn_failed(0); +#else sAGpsInterface->data_conn_failed(); +#endif } static void android_location_GpsLocationProvider_set_agps_server(JNIEnv* env, jobject obj, |
