Support not tuned PLP info query.
Bug: 209762260
Test: atest VtsHalTvTunerTargetTest
Change-Id: Iefc02ae7f4145cfabae8c5a5d60f28ef02ec9bc0
diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
index fc0efc9..1e0f5f0 100644
--- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
+++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatus.aidl
@@ -76,4 +76,5 @@
android.hardware.tv.tuner.FrontendIsdbtPartialReceptionFlag partialReceptionFlag;
int[] streamIdList;
int[] dvbtCellIds;
+ android.hardware.tv.tuner.FrontendScanAtsc3PlpInfo[] allPlpInfo;
}
diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
index 2cc62d5..cd6ccb3 100644
--- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
+++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendStatusType.aidl
@@ -76,4 +76,5 @@
ISDBT_PARTIAL_RECEPTION_FLAG = 38,
STREAM_ID_LIST = 39,
DVBT_CELL_IDS = 40,
+ ATSC3_ALL_PLP_INFO = 41,
}
diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
index ae6e46f..b5d0201 100644
--- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
+++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl
@@ -27,6 +27,7 @@
import android.hardware.tv.tuner.FrontendModulationStatus;
import android.hardware.tv.tuner.FrontendRollOff;
import android.hardware.tv.tuner.FrontendSpectralInversion;
+import android.hardware.tv.tuner.FrontendScanAtsc3PlpInfo;
import android.hardware.tv.tuner.FrontendStatusAtsc3PlpInfo;
import android.hardware.tv.tuner.FrontendTransmissionMode;
import android.hardware.tv.tuner.LnbVoltage;
@@ -241,5 +242,9 @@
*/
int[] dvbtCellIds;
-
+ /**
+ * A list of all PLPs in the frequency band for ATSC3 frontend, which includes both tuned
+ * and not tuned PLPs for currently watching service.
+ */
+ FrontendScanAtsc3PlpInfo[] allPlpInfo;
}
diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
index e7da517..8f3f2c5 100644
--- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
+++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl
@@ -130,7 +130,7 @@
RF_LOCK,
/**
- * PLP information in a frequency band for ATSC3.0 frontend.
+ * Current tuned PLP information in a frequency band for ATSC3 frontend.
*/
ATSC3_PLP_INFO,
@@ -222,10 +222,16 @@
/**
* Stream ID list included in a transponder.
*/
- STREAM_ID_LIST,
+ STREAM_ID_LIST,
- /**
- * DVB-T Cell Id.
- */
- DVBT_CELL_IDS,
+ /**
+ * DVB-T Cell Id.
+ */
+ DVBT_CELL_IDS,
+
+ /**
+ * All PLP information in a frequency band for ATSC3 frontend, which includes both tuned
+ * and not tuned PLPs for currently watching service.
+ */
+ ATSC3_ALL_PLP_INFO,
}
diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp
index 714612d..445d2b6 100644
--- a/tv/tuner/aidl/default/Frontend.cpp
+++ b/tv/tuner/aidl/default/Frontend.cpp
@@ -708,6 +708,20 @@
status.set<FrontendStatus::dvbtCellIds>(dvbtCellIds);
break;
}
+ case FrontendStatusType::ATSC3_ALL_PLP_INFO: {
+ FrontendScanAtsc3PlpInfo info1;
+ info1.plpId = 1;
+ info1.bLlsFlag = false;
+ FrontendScanAtsc3PlpInfo info2;
+ info2.plpId = 2;
+ info2.bLlsFlag = true;
+ FrontendScanAtsc3PlpInfo info3;
+ info3.plpId = 3;
+ info3.bLlsFlag = false;
+ vector<FrontendScanAtsc3PlpInfo> infos = {info1, info2, info3};
+ status.set<FrontendStatus::allPlpInfo>(infos);
+ break;
+ }
default: {
continue;
}
diff --git a/tv/tuner/aidl/default/Tuner.cpp b/tv/tuner/aidl/default/Tuner.cpp
index 48c1b66..7a5fa6e 100644
--- a/tv/tuner/aidl/default/Tuner.cpp
+++ b/tv/tuner/aidl/default/Tuner.cpp
@@ -77,6 +77,7 @@
FrontendStatusType::BERS,
FrontendStatusType::INTERLEAVINGS,
FrontendStatusType::BANDWIDTH,
+ FrontendStatusType::ATSC3_ALL_PLP_INFO,
};
mFrontendStatusCaps[1] = statusCaps;
mMaxUsableFrontends[FrontendType::ATSC3] = 1;
diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
index 41e98ea..a8799ab 100644
--- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp
+++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp
@@ -414,6 +414,13 @@
expectStatuses[i].get<FrontendStatus::Tag::dvbtCellIds>().begin()));
break;
}
+ case FrontendStatusType::ATSC3_ALL_PLP_INFO: {
+ ASSERT_TRUE(std::equal(
+ realStatuses[i].get<FrontendStatus::Tag::allPlpInfo>().begin(),
+ realStatuses[i].get<FrontendStatus::Tag::allPlpInfo>().end(),
+ expectStatuses[i].get<FrontendStatus::Tag::allPlpInfo>().begin()));
+ break;
+ }
default: {
continue;
}