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