diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessage.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessage.aidl index 2c6cc00edb..e763cfb617 100644 --- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessage.aidl +++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessage.aidl @@ -50,4 +50,5 @@ union FrontendScanMessage { android.hardware.tv.tuner.FrontendModulation modulation; android.hardware.tv.tuner.FrontendDvbcAnnex annex; boolean isHighPriority; + int[] dvbtCellIds; } diff --git a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessageType.aidl b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessageType.aidl index b121c8513a..6976ecd8d0 100644 --- a/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessageType.aidl +++ b/tv/tuner/aidl/aidl_api/android.hardware.tv.tuner/current/android/hardware/tv/tuner/FrontendScanMessageType.aidl @@ -50,4 +50,5 @@ enum FrontendScanMessageType { MODULATION = 12, DVBC_ANNEX = 13, HIGH_PRIORITY = 14, + DVBT_CELL_IDS = 15, } 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 c79b7517fe..fc0efc92be 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 @@ -75,4 +75,5 @@ union FrontendStatus { android.hardware.tv.tuner.FrontendIsdbtMode isdbtMode; android.hardware.tv.tuner.FrontendIsdbtPartialReceptionFlag partialReceptionFlag; int[] streamIdList; + int[] dvbtCellIds; } 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 9ea3200d35..2cc62d533e 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 @@ -75,4 +75,5 @@ enum FrontendStatusType { ISDBT_MODE = 37, ISDBT_PARTIAL_RECEPTION_FLAG = 38, STREAM_ID_LIST = 39, + DVBT_CELL_IDS = 40, } diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessage.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessage.aidl index 19c6766235..a94106686a 100644 --- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessage.aidl +++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessage.aidl @@ -70,4 +70,10 @@ union FrontendScanMessage { FrontendDvbcAnnex annex; boolean isHighPriority; + + /** + * DVB-T Cell Ids. + */ + int[] dvbtCellIds; + } diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessageType.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessageType.aidl index 2b91216f6e..f4d2ee021b 100644 --- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessageType.aidl +++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendScanMessageType.aidl @@ -86,4 +86,10 @@ enum FrontendScanMessageType { DVBC_ANNEX, HIGH_PRIORITY, + + /** + * DVB-T CELL ID. + */ + DVBT_CELL_IDS, + } diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl index 6e6f315d38..ae6e46fa29 100644 --- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl +++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatus.aidl @@ -236,4 +236,10 @@ union FrontendStatus { */ int[] streamIdList; + /** + * DVB-T Cell Id. + */ + int[] dvbtCellIds; + + } diff --git a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl index 7feb72d742..e7da51767a 100644 --- a/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl +++ b/tv/tuner/aidl/android/hardware/tv/tuner/FrontendStatusType.aidl @@ -223,4 +223,9 @@ enum FrontendStatusType { * Stream ID list included in a transponder. */ STREAM_ID_LIST, + + /** + * DVB-T Cell Id. + */ + DVBT_CELL_IDS, } diff --git a/tv/tuner/aidl/default/Frontend.cpp b/tv/tuner/aidl/default/Frontend.cpp index a4dde2a721..c1b8b5da05 100644 --- a/tv/tuner/aidl/default/Frontend.cpp +++ b/tv/tuner/aidl/default/Frontend.cpp @@ -237,6 +237,13 @@ Frontend::~Frontend() {} mCallback->onScanMessage(FrontendScanMessageType::HIGH_PRIORITY, msg); } + if (mType == FrontendType::DVBT) { + FrontendScanMessage msg; + vector dvbtCellIds = {0, 1}; + msg.set(dvbtCellIds); + mCallback->onScanMessage(FrontendScanMessageType::DVBT_CELL_IDS, msg); + } + { FrontendScanMessage msg; msg.set(true); @@ -681,6 +688,11 @@ Frontend::~Frontend() {} status.set(streamIds); break; } + case FrontendStatusType::DVBT_CELL_IDS: { + vector dvbtCellIds = {0, 1}; + status.set(dvbtCellIds); + break; + } default: { continue; } diff --git a/tv/tuner/aidl/default/Tuner.cpp b/tv/tuner/aidl/default/Tuner.cpp index 96e83bbf65..9e81177ce0 100644 --- a/tv/tuner/aidl/default/Tuner.cpp +++ b/tv/tuner/aidl/default/Tuner.cpp @@ -112,6 +112,7 @@ void Tuner::init() { FrontendStatusType::GUARD_INTERVAL, FrontendStatusType::TRANSMISSION_MODE, FrontendStatusType::T2_SYSTEM_ID, + FrontendStatusType::DVBT_CELL_IDS, }; mFrontendStatusCaps[4] = statusCaps; diff --git a/tv/tuner/aidl/vts/functional/FrontendTests.cpp b/tv/tuner/aidl/vts/functional/FrontendTests.cpp index 42d20f7997..f24dea14da 100644 --- a/tv/tuner/aidl/vts/functional/FrontendTests.cpp +++ b/tv/tuner/aidl/vts/functional/FrontendTests.cpp @@ -405,6 +405,13 @@ void FrontendTests::verifyFrontendStatus(vector statusTypes, expectStatuses[i].get().begin())); break; } + case FrontendStatusType::DVBT_CELL_IDS: { + ASSERT_TRUE(std::equal( + realStatuses[i].get().begin(), + realStatuses[i].get().end(), + expectStatuses[i].get().begin())); + break; + } default: { continue; }