Merge "Tuner JNI to use V1_1 ScanCallback"

This commit is contained in:
TreeHugger Robot
2020-10-20 17:13:55 +00:00
committed by Android (Google) Code Review
2 changed files with 77 additions and 1 deletions

View File

@@ -993,6 +993,77 @@ Return<void> FrontendCallback::onScanMessage(FrontendScanMessageType type, const
return Void();
}
Return<void> FrontendCallback::onScanMessageExt1_1(FrontendScanMessageTypeExt1_1 type,
const FrontendScanMessageExt1_1& message) {
ALOGD("FrontendCallback::onScanMessageExt1_1, type=%d", type);
JNIEnv *env = AndroidRuntime::getJNIEnv();
jclass clazz = env->FindClass("android/media/tv/tuner/Tuner");
switch(type) {
case FrontendScanMessageTypeExt1_1::MODULATION: {
jint modulation = -1;
switch (message.modulation().getDiscriminator()) {
case FrontendModulation::hidl_discriminator::dvbc: {
modulation = (jint) message.modulation().dvbc();
break;
}
case FrontendModulation::hidl_discriminator::dvbt: {
modulation = (jint) message.modulation().dvbt();
break;
}
case FrontendModulation::hidl_discriminator::dvbs: {
modulation = (jint) message.modulation().dvbs();
break;
}
case FrontendModulation::hidl_discriminator::isdbs: {
modulation = (jint) message.modulation().isdbs();
break;
}
case FrontendModulation::hidl_discriminator::isdbs3: {
modulation = (jint) message.modulation().isdbs3();
break;
}
case FrontendModulation::hidl_discriminator::isdbt: {
modulation = (jint) message.modulation().isdbt();
break;
}
case FrontendModulation::hidl_discriminator::atsc: {
modulation = (jint) message.modulation().atsc();
break;
}
case FrontendModulation::hidl_discriminator::atsc3: {
modulation = (jint) message.modulation().atsc3();
break;
}
case FrontendModulation::hidl_discriminator::dtmb: {
modulation = (jint) message.modulation().dtmb();
break;
}
default: {
break;
}
}
if (modulation > 0) {
env->CallVoidMethod(
mObject,
env->GetMethodID(clazz, "onModulationReported", "(I)V"),
modulation);
}
break;
}
case FrontendScanMessageTypeExt1_1::HIGH_PRIORITY: {
bool isHighPriority = message.isHighPriority();
env->CallVoidMethod(
mObject,
env->GetMethodID(clazz, "onPriorityReported", "([B)V"),
isHighPriority);
break;
}
default:
break;
}
return Void();
}
/////////////// Tuner ///////////////////////
sp<ITuner> JTuner::mTuner;

View File

@@ -20,6 +20,7 @@
#include <android/hardware/tv/tuner/1.1/IFilter.h>
#include <android/hardware/tv/tuner/1.1/IFilterCallback.h>
#include <android/hardware/tv/tuner/1.1/IFrontend.h>
#include <android/hardware/tv/tuner/1.1/IFrontendCallback.h>
#include <android/hardware/tv/tuner/1.1/ITuner.h>
#include <android/hardware/tv/tuner/1.1/types.h>
@@ -63,7 +64,6 @@ using ::android::hardware::tv::tuner::V1_0::IDvrCallback;
using ::android::hardware::tv::tuner::V1_0::IFilter;
using ::android::hardware::tv::tuner::V1_1::IFilterCallback;
using ::android::hardware::tv::tuner::V1_0::IFrontend;
using ::android::hardware::tv::tuner::V1_0::IFrontendCallback;
using ::android::hardware::tv::tuner::V1_0::ILnb;
using ::android::hardware::tv::tuner::V1_0::ILnbCallback;
using ::android::hardware::tv::tuner::V1_0::ITimeFilter;
@@ -73,6 +73,9 @@ using ::android::hardware::tv::tuner::V1_0::LnbId;
using ::android::hardware::tv::tuner::V1_0::PlaybackStatus;
using ::android::hardware::tv::tuner::V1_0::RecordStatus;
using ::android::hardware::tv::tuner::V1_0::Result;
using ::android::hardware::tv::tuner::V1_1::FrontendScanMessageExt1_1;
using ::android::hardware::tv::tuner::V1_1::FrontendScanMessageTypeExt1_1;
using ::android::hardware::tv::tuner::V1_1::IFrontendCallback;
using MQ = MessageQueue<uint8_t, kSynchronizedReadWrite>;
@@ -191,6 +194,8 @@ struct FrontendCallback : public IFrontendCallback {
virtual Return<void> onEvent(FrontendEventType frontendEventType);
virtual Return<void> onScanMessage(
FrontendScanMessageType type, const FrontendScanMessage& message);
virtual Return<void> onScanMessageExt1_1(
FrontendScanMessageTypeExt1_1 type, const FrontendScanMessageExt1_1& messageExt);
jweak mObject;
FrontendId mId;