Add setStatusCheckIntervalHint method
Bug: 232426514
Test: atest android.media.tv.tuner.cts with cf_x86_tv-userdebug AVD
Change-Id: I15bdaf51e5a5a7189ae01ea1546cbcf16c6c4994
diff --git a/media/jni/Android.bp b/media/jni/Android.bp
index 96a3781..a0304bb 100644
--- a/media/jni/Android.bp
+++ b/media/jni/Android.bp
@@ -175,7 +175,7 @@
shared_libs: [
"android.hardware.graphics.bufferqueue@2.0",
- "android.hardware.tv.tuner-V1-ndk",
+ "android.hardware.tv.tuner-V2-ndk",
"libbinder_ndk",
"libandroid_runtime",
"libcutils",
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 244730b..c18edcd 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -4485,6 +4485,17 @@
return (jint)result;
}
+static jint android_media_tv_Tuner_set_status_check_interval_hint(JNIEnv *env, jobject dvr,
+ jlong durationInMs) {
+ sp<DvrClient> dvrClient = getDvrClient(env, dvr);
+ if (dvrClient == nullptr) {
+ ALOGD("Failed to set status check interval hint: dvr client not found");
+ return (int)Result::NOT_INITIALIZED;
+ }
+ Result result = dvrClient->setStatusCheckIntervalHint(durationInMs);
+ return (jint)result;
+}
+
static jint android_media_tv_Tuner_start_dvr(JNIEnv *env, jobject dvr) {
sp<DvrClient> dvrClient = getDvrClient(env, dvr);
if (dvrClient == nullptr) {
@@ -4828,6 +4839,8 @@
(void *)android_media_tv_Tuner_detach_filter },
{ "nativeConfigureDvr", "(Landroid/media/tv/tuner/dvr/DvrSettings;)I",
(void *)android_media_tv_Tuner_configure_dvr },
+ { "nativeSetStatusCheckIntervalHint", "(J)I",
+ (void *)android_media_tv_Tuner_set_status_check_interval_hint},
{ "nativeStartDvr", "()I", (void *)android_media_tv_Tuner_start_dvr },
{ "nativeStopDvr", "()I", (void *)android_media_tv_Tuner_stop_dvr },
{ "nativeFlushDvr", "()I", (void *)android_media_tv_Tuner_flush_dvr },
@@ -4844,6 +4857,8 @@
(void *)android_media_tv_Tuner_detach_filter},
{ "nativeConfigureDvr", "(Landroid/media/tv/tuner/dvr/DvrSettings;)I",
(void *)android_media_tv_Tuner_configure_dvr},
+ { "nativeSetStatusCheckIntervalHint", "(J)I",
+ (void *)android_media_tv_Tuner_set_status_check_interval_hint},
{ "nativeStartDvr", "()I", (void *)android_media_tv_Tuner_start_dvr},
{ "nativeStopDvr", "()I", (void *)android_media_tv_Tuner_stop_dvr},
{ "nativeFlushDvr", "()I", (void *)android_media_tv_Tuner_flush_dvr},
diff --git a/media/jni/tuner/DvrClient.cpp b/media/jni/tuner/DvrClient.cpp
index 05683b6..6e47052 100644
--- a/media/jni/tuner/DvrClient.cpp
+++ b/media/jni/tuner/DvrClient.cpp
@@ -303,7 +303,17 @@
return Result::INVALID_STATE;
}
+Result DvrClient::setStatusCheckIntervalHint(int64_t durationInMs) {
+ if (mTunerDvr == nullptr) {
+ return Result::INVALID_STATE;
+ }
+ if (durationInMs < 0) {
+ return Result::INVALID_ARGUMENT;
+ }
+ Status s = mTunerDvr->setStatusCheckIntervalHint(durationInMs);
+ return ClientHelper::getServiceSpecificErrorCode(s);
+}
/////////////// TunerDvrCallback ///////////////////////
TunerDvrCallback::TunerDvrCallback(sp<DvrClientCallback> dvrClientCallback)
: mDvrClientCallback(dvrClientCallback) {}
diff --git a/media/jni/tuner/DvrClient.h b/media/jni/tuner/DvrClient.h
index 61c0325..40ed75b 100644
--- a/media/jni/tuner/DvrClient.h
+++ b/media/jni/tuner/DvrClient.h
@@ -126,6 +126,11 @@
*/
Result close();
+ /**
+ * Set status check time interval.
+ */
+ Result setStatusCheckIntervalHint(int64_t durationInMs);
+
private:
/**
* An AIDL Tuner Dvr Singleton assigned at the first time the Tuner Client