Merge "Fix type issues of TvMessage" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6b3ebf828c
@@ -234,6 +234,7 @@ final class TvInputHal implements Handler.Callback {
|
|||||||
int type = msg.arg2;
|
int type = msg.arg2;
|
||||||
Bundle data = (Bundle) msg.obj;
|
Bundle data = (Bundle) msg.obj;
|
||||||
mCallback.onTvMessage(deviceId, type, data);
|
mCallback.onTvMessage(deviceId, type, data);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
#include "JTvInputHal.h"
|
#include "JTvInputHal.h"
|
||||||
|
|
||||||
|
#include <nativehelper/ScopedLocalRef.h>
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
|
|
||||||
JTvInputHal::JTvInputHal(JNIEnv* env, jobject thiz, std::shared_ptr<ITvInputWrapper> tvInput,
|
JTvInputHal::JTvInputHal(JNIEnv* env, jobject thiz, std::shared_ptr<ITvInputWrapper> tvInput,
|
||||||
@@ -278,21 +280,27 @@ void JTvInputHal::onStreamConfigurationsChanged(int deviceId, int cableConnectio
|
|||||||
void JTvInputHal::onTvMessage(int deviceId, int streamId, AidlTvMessageEventType type,
|
void JTvInputHal::onTvMessage(int deviceId, int streamId, AidlTvMessageEventType type,
|
||||||
AidlTvMessage& message, signed char data[], int dataLength) {
|
AidlTvMessage& message, signed char data[], int dataLength) {
|
||||||
JNIEnv* env = AndroidRuntime::getJNIEnv();
|
JNIEnv* env = AndroidRuntime::getJNIEnv();
|
||||||
jobject bundle = env->NewObject(gBundleClassInfo.clazz, gBundleClassInfo.constructor);
|
ScopedLocalRef<jobject> bundle(env,
|
||||||
const jsize len = static_cast<jsize>(dataLength);
|
env->NewObject(gBundleClassInfo.clazz,
|
||||||
jbyteArray convertedData = env->NewByteArray(len);
|
gBundleClassInfo.constructor));
|
||||||
env->SetByteArrayRegion(convertedData, 0, len, reinterpret_cast<const jbyte*>(data));
|
ScopedLocalRef<jbyteArray> convertedData(env, env->NewByteArray(dataLength));
|
||||||
env->CallObjectMethod(bundle, gBundleClassInfo.putString,
|
env->SetByteArrayRegion(convertedData.get(), 0, dataLength, reinterpret_cast<jbyte*>(data));
|
||||||
"android.media.tv.TvInputManager.subtype", message.subType.c_str());
|
std::string key = "android.media.tv.TvInputManager.raw_data";
|
||||||
env->CallObjectMethod(bundle, gBundleClassInfo.putByteArray,
|
ScopedLocalRef<jstring> jkey(env, env->NewStringUTF(key.c_str()));
|
||||||
"android.media.tv.TvInputManager.raw_data", convertedData);
|
env->CallVoidMethod(bundle.get(), gBundleClassInfo.putByteArray, jkey.get(),
|
||||||
env->CallObjectMethod(bundle, gBundleClassInfo.putInt,
|
convertedData.get());
|
||||||
"android.media.tv.TvInputManager.group_id", message.groupId);
|
ScopedLocalRef<jstring> subtype(env, env->NewStringUTF(message.subType.c_str()));
|
||||||
env->CallObjectMethod(bundle, gBundleClassInfo.putInt,
|
key = "android.media.tv.TvInputManager.subtype";
|
||||||
"android.media.tv.TvInputManager.stream_id", streamId);
|
jkey = ScopedLocalRef<jstring>(env, env->NewStringUTF(key.c_str()));
|
||||||
|
env->CallVoidMethod(bundle.get(), gBundleClassInfo.putString, jkey.get(), subtype.get());
|
||||||
|
key = "android.media.tv.TvInputManager.group_id";
|
||||||
|
jkey = ScopedLocalRef<jstring>(env, env->NewStringUTF(key.c_str()));
|
||||||
|
env->CallVoidMethod(bundle.get(), gBundleClassInfo.putInt, jkey.get(), message.groupId);
|
||||||
|
key = "android.media.tv.TvInputManager.stream_id";
|
||||||
|
jkey = ScopedLocalRef<jstring>(env, env->NewStringUTF(key.c_str()));
|
||||||
|
env->CallVoidMethod(bundle.get(), gBundleClassInfo.putInt, jkey.get(), streamId);
|
||||||
env->CallVoidMethod(mThiz, gTvInputHalClassInfo.tvMessageReceived, deviceId,
|
env->CallVoidMethod(mThiz, gTvInputHalClassInfo.tvMessageReceived, deviceId,
|
||||||
static_cast<int>(type), bundle);
|
static_cast<jint>(type), bundle.get());
|
||||||
env->DeleteLocalRef(convertedData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JTvInputHal::onCaptured(int deviceId, int streamId, uint32_t seq, bool succeeded) {
|
void JTvInputHal::onCaptured(int deviceId, int streamId, uint32_t seq, bool succeeded) {
|
||||||
|
|||||||
Reference in New Issue
Block a user