Merge "Use long to store pointers in ConsumerIrService"
This commit is contained in:
@ -49,13 +49,13 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
||||
|
||||
private static final int MAX_XMIT_TIME = 2000000; /* in microseconds */
|
||||
|
||||
private static native int halOpen();
|
||||
private static native int halTransmit(int halObject, int carrierFrequency, int[] pattern);
|
||||
private static native int[] halGetCarrierFrequencies(int halObject);
|
||||
private static native long halOpen();
|
||||
private static native int halTransmit(long halObject, int carrierFrequency, int[] pattern);
|
||||
private static native int[] halGetCarrierFrequencies(long halObject);
|
||||
|
||||
private final Context mContext;
|
||||
private final PowerManager.WakeLock mWakeLock;
|
||||
private final int mHal;
|
||||
private final long mNativeHal;
|
||||
private final Object mHalLock = new Object();
|
||||
|
||||
ConsumerIrService(Context context) {
|
||||
@ -65,23 +65,23 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
||||
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
|
||||
mWakeLock.setReferenceCounted(true);
|
||||
|
||||
mHal = halOpen();
|
||||
mNativeHal = halOpen();
|
||||
if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONSUMER_IR)) {
|
||||
if (mHal == 0) {
|
||||
if (mNativeHal == 0) {
|
||||
throw new RuntimeException("FEATURE_CONSUMER_IR present, but no IR HAL loaded!");
|
||||
}
|
||||
} else if (mHal != 0) {
|
||||
} else if (mNativeHal != 0) {
|
||||
throw new RuntimeException("IR HAL present, but FEATURE_CONSUMER_IR is not set!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasIrEmitter() {
|
||||
return mHal != 0;
|
||||
return mNativeHal != 0;
|
||||
}
|
||||
|
||||
private void throwIfNoIrEmitter() {
|
||||
if (mHal == 0) {
|
||||
if (mNativeHal == 0) {
|
||||
throw new UnsupportedOperationException("IR emitter not available");
|
||||
}
|
||||
}
|
||||
@ -111,7 +111,7 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
||||
|
||||
// Right now there is no mechanism to ensure fair queing of IR requests
|
||||
synchronized (mHalLock) {
|
||||
int err = halTransmit(mHal, carrierFrequency, pattern);
|
||||
int err = halTransmit(mNativeHal, carrierFrequency, pattern);
|
||||
|
||||
if (err < 0) {
|
||||
Slog.e(TAG, "Error transmitting: " + err);
|
||||
@ -129,7 +129,7 @@ public class ConsumerIrService extends IConsumerIrService.Stub {
|
||||
throwIfNoIrEmitter();
|
||||
|
||||
synchronized(mHalLock) {
|
||||
return halGetCarrierFrequencies(mHal);
|
||||
return halGetCarrierFrequencies(mNativeHal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
namespace android {
|
||||
|
||||
static jint halOpen(JNIEnv *env, jobject obj) {
|
||||
static jlong halOpen(JNIEnv *env, jobject obj) {
|
||||
hw_module_t const* module;
|
||||
consumerir_device_t *dev;
|
||||
int err;
|
||||
@ -47,10 +47,10 @@ static jint halOpen(JNIEnv *env, jobject obj) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return reinterpret_cast<jint>(dev);
|
||||
return reinterpret_cast<jlong>(dev);
|
||||
}
|
||||
|
||||
static jint halTransmit(JNIEnv *env, jobject obj, jint halObject,
|
||||
static jint halTransmit(JNIEnv *env, jobject obj, jlong halObject,
|
||||
jint carrierFrequency, jintArray pattern) {
|
||||
int ret;
|
||||
|
||||
@ -67,8 +67,8 @@ static jint halTransmit(JNIEnv *env, jobject obj, jint halObject,
|
||||
}
|
||||
|
||||
static jintArray halGetCarrierFrequencies(JNIEnv *env, jobject obj,
|
||||
jint halObject) {
|
||||
consumerir_device_t *dev = (consumerir_device_t *) halObject;
|
||||
jlong halObject) {
|
||||
consumerir_device_t *dev = reinterpret_cast<consumerir_device_t*>(halObject);
|
||||
consumerir_freq_range_t *ranges;
|
||||
int len;
|
||||
|
||||
@ -101,9 +101,9 @@ static jintArray halGetCarrierFrequencies(JNIEnv *env, jobject obj,
|
||||
}
|
||||
|
||||
static JNINativeMethod method_table[] = {
|
||||
{ "halOpen", "()I", (void *)halOpen },
|
||||
{ "halTransmit", "(II[I)I", (void *)halTransmit },
|
||||
{ "halGetCarrierFrequencies", "(I)[I", (void *)halGetCarrierFrequencies},
|
||||
{ "halOpen", "()J", (void *)halOpen },
|
||||
{ "halTransmit", "(JI[I)I", (void *)halTransmit },
|
||||
{ "halGetCarrierFrequencies", "(J)[I", (void *)halGetCarrierFrequencies},
|
||||
};
|
||||
|
||||
int register_android_server_ConsumerIrService(JNIEnv *env) {
|
||||
|
Reference in New Issue
Block a user