Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15758a8b authored by Hongguang's avatar Hongguang Committed by Hongguang Chen
Browse files

ISDB-T Multi-Layer Backward Compatible.

*) Query modulation and codeRate from AIDL Layer Settings.
*) Set Capabilities default values.

Bug: 171537116
Test: atest VtsHalTvTunerTargetTest
Test: atest android.media.tv.tuner.cts on AIDL and HAL HALs
Change-Id: Ic2792fb0152c5c1c321033ba7777fe76fe48301a
parent 1e3f5710
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -1158,12 +1158,19 @@ void TunerHidlFrontend::getHidlFrontendSettings(const FrontendSettings& aidlSett
    }
    case FrontendSettings::isdbt: {
        const FrontendIsdbtSettings& isdbt = aidlSettings.get<FrontendSettings::isdbt>();
        HidlFrontendIsdbtModulation modulation = HidlFrontendIsdbtModulation::UNDEFINED;
        HidlFrontendIsdbtCoderate coderate = HidlFrontendIsdbtCoderate::UNDEFINED;
        if (isdbt.layerSettings.size() > 0) {
            modulation =
                    static_cast<HidlFrontendIsdbtModulation>(isdbt.layerSettings[0].modulation);
            coderate = static_cast<HidlFrontendIsdbtCoderate>(isdbt.layerSettings[0].coderate);
        }
        settings.isdbt({
                .frequency = static_cast<uint32_t>(isdbt.frequency),
                .modulation = static_cast<HidlFrontendIsdbtModulation>(isdbt.modulation),
                .modulation = modulation,
                .bandwidth = static_cast<HidlFrontendIsdbtBandwidth>(isdbt.bandwidth),
                .mode = static_cast<HidlFrontendIsdbtMode>(isdbt.mode),
                .coderate = static_cast<HidlFrontendIsdbtCoderate>(isdbt.coderate),
                .coderate = coderate,
                .guardInterval = static_cast<HidlFrontendIsdbtGuardInterval>(isdbt.guardInterval),
                .serviceAreaId = static_cast<uint32_t>(isdbt.serviceAreaId),
        });
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@

#include "TunerHidlService.h"

#include <aidl/android/hardware/tv/tuner/FrontendIsdbtTimeInterleaveMode.h>
#include <aidl/android/hardware/tv/tuner/Result.h>
#include <android/binder_manager.h>
#include <binder/IPCThreadState.h>
@@ -42,6 +43,7 @@ using ::aidl::android::hardware::tv::tuner::FrontendDvbtCapabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbs3Capabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbsCapabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbtCapabilities;
using ::aidl::android::hardware::tv::tuner::FrontendIsdbtTimeInterleaveMode;
using ::aidl::android::hardware::tv::tuner::FrontendType;
using ::aidl::android::hardware::tv::tuner::Result;
using ::aidl::android::media::tv::tunerresourcemanager::TunerFrontendInfo;
@@ -618,6 +620,10 @@ FrontendInfo TunerHidlService::getAidlFrontendInfo(
                            static_cast<int32_t>(halInfo.frontendCaps.isdbtCaps().coderateCap),
                    .guardIntervalCap =
                            static_cast<int32_t>(halInfo.frontendCaps.isdbtCaps().guardIntervalCap),
                    .timeInterleaveCap =
                            static_cast<int32_t>(FrontendIsdbtTimeInterleaveMode::UNDEFINED),
                    .isSegmentAuto = false,
                    .isFullSegment = false,
            };
            caps.set<FrontendCapabilities::isdbtCaps>(isdbtCaps);
        }