Tuner JNI to use V1_1 ScanCallback
Test: make
Bug: 158818695
Change-Id: Ifafaed8ad581582822da19d683002c2692737a4a
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index cd2fa63..8d83566 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -993,6 +993,77 @@
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;
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 3f74d24..71d2983 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -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::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::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 @@
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;