summaryrefslogtreecommitdiff
path: root/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp
diff options
context:
space:
mode:
authoralk3pInjection <webmaster@raspii.tech>2023-07-04 20:04:45 +0800
committeralk3pInjection <webmaster@raspii.tech>2023-07-04 20:04:45 +0800
commite1390d22fae12df2784992b3ba238af8e90eaecc (patch)
tree52dfbc4cd9931c722b210f063c144fe97a706af5 /broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp
parentb3f20c2aa61e4a6e07e8c06cf3623f1666620e1f (diff)
parent7c8943fde12ec5fb0f9629746c65e8b1bc78d1b4 (diff)
Merge tag 'LA.QSSI.13.0.r1-10700-qssi.0' into tachibana-mr1tachibana-mr1
"LA.QSSI.13.0.r1-10700-qssi.0" Change-Id: I11f0f2cb764e800ff1fd298c5a6443b98cf9a8a3
Diffstat (limited to 'broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp')
-rw-r--r--broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp43
1 files changed, 41 insertions, 2 deletions
diff --git a/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp b/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp
index 615fde0343..63e3b554dd 100644
--- a/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp
+++ b/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp
@@ -514,9 +514,48 @@ TEST_P(BroadcastRadioHalTest, DabTune) {
ASSERT_TRUE(openSession());
+ auto programList = getProgramList();
+
+ if (!programList) {
+ printSkipped("Empty Station-List, tune cannot be performed");
+ return;
+ }
+
ProgramSelector sel = {};
- uint64_t freq = config[config.size() / 2].frequency;
- sel.primaryId = make_identifier(IdentifierType::DAB_FREQUENCY,freq);
+ uint64_t freq = 0;
+ bool dabStnPresent = false;
+
+ for (auto&& programInfo : *programList) {
+ if (utils::hasId(programInfo.selector, IdentifierType::DAB_FREQUENCY)) {
+ for (auto&& config_entry : config) {
+ if (config_entry.frequency == utils::getId(programInfo.selector,
+ IdentifierType::DAB_FREQUENCY, 0)) {
+ freq = config_entry.frequency;
+ break;
+ }
+ }
+ // Do not trigger a tune request if the programList entry does not contain
+ // a valid DAB frequency
+ if (freq == 0) {
+ continue;
+ }
+ uint64_t dabSidExt = utils::getId(programInfo.selector, IdentifierType::DAB_SID_EXT, 0);
+ uint64_t dabEns = utils::getId(programInfo.selector, IdentifierType::DAB_ENSEMBLE, 0);
+ sel.primaryId = make_identifier(IdentifierType::DAB_SID_EXT, dabSidExt);
+ hidl_vec<ProgramIdentifier> secondaryIds = {
+ make_identifier(IdentifierType::DAB_ENSEMBLE, dabEns),
+ make_identifier(IdentifierType::DAB_FREQUENCY, freq)
+ };
+ sel.secondaryIds = secondaryIds;
+ dabStnPresent = true;
+ break;
+ }
+ }
+
+ if (!dabStnPresent) {
+ printSkipped("No DAB stations in the list, tune cannot be performed");
+ return;
+ }
std::this_thread::sleep_for(gTuneWorkaround);