Connect MediaEvents core path between TunerService and TunerClient

Test: tuner sample tis on cuttlefish
Bug: 174095851
Change-Id: I21148772d1ae1b53860c68ee47b7a27929629fce
Merged-In: I21148772d1ae1b53860c68ee47b7a27929629fce
diff --git a/media/jni/tuner/FrontendClient.cpp b/media/jni/tuner/FrontendClient.cpp
index ef8f57f..0540aac 100644
--- a/media/jni/tuner/FrontendClient.cpp
+++ b/media/jni/tuner/FrontendClient.cpp
@@ -21,8 +21,8 @@
 
 #include "FrontendClient.h"
 
+using ::aidl::android::media::tv::tuner::TunerFrontendDvbtSettings;
 using ::aidl::android::media::tv::tuner::TunerFrontendScanAtsc3PlpInfo;
-using ::aidl::android::media::tv::tuner::TunerFrontendSettings;
 
 using ::android::hardware::tv::tuner::V1_0::FrontendAnalogSifStandard;
 using ::android::hardware::tv::tuner::V1_0::FrontendAnalogType;
@@ -86,10 +86,9 @@
 Result FrontendClient::tune(const FrontendSettings& settings,
         const FrontendSettingsExt1_1& settingsExt1_1) {
     if (mTunerFrontend != NULL) {
-        // TODO: parse hidl settings to aidl settings
         // TODO: aidl frontend settings to include Tuner HAL 1.1 settings
-        TunerFrontendSettings settings;
-        Status s = mTunerFrontend->tune(settings);
+        TunerFrontendSettings tunerFeSettings = getAidlFrontendSettings(settings, settingsExt1_1);
+        Status s = mTunerFrontend->tune(tunerFeSettings);
         return ClientHelper::getServiceSpecificErrorCode(s);
     }
 
@@ -124,10 +123,9 @@
 Result FrontendClient::scan(const FrontendSettings& settings, FrontendScanType type,
         const FrontendSettingsExt1_1& settingsExt1_1) {
     if (mTunerFrontend != NULL) {
-        // TODO: parse hidl settings to aidl settings
         // TODO: aidl frontend settings to include Tuner HAL 1.1 settings
-        TunerFrontendSettings settings;
-        Status s = mTunerFrontend->scan(settings, (int)type);
+        TunerFrontendSettings tunerFeSettings = getAidlFrontendSettings(settings, settingsExt1_1);
+        Status s = mTunerFrontend->scan(tunerFeSettings, (int)type);
         return ClientHelper::getServiceSpecificErrorCode(s);
     }
 
@@ -279,7 +277,6 @@
 
 Result FrontendClient::close() {
     if (mTunerFrontend != NULL) {
-        // TODO: handle error message.
         Status s = mTunerFrontend->close();
         return ClientHelper::getServiceSpecificErrorCode(s);
     }
@@ -304,6 +301,61 @@
     return mId;
 }
 
+TunerFrontendSettings FrontendClient::getAidlFrontendSettings(const FrontendSettings& settings,
+        const FrontendSettingsExt1_1& /*settingsExt1_1*/) {
+    // TODO: complete hidl to aidl frontend settings conversion
+    TunerFrontendSettings s;
+    switch (settings.getDiscriminator()) {
+        case FrontendSettings::hidl_discriminator::analog: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::atsc: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::atsc3: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::dvbs: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::dvbc: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::dvbt: {
+            TunerFrontendDvbtSettings dvbtSettings{
+                .frequency = (int)settings.dvbt().frequency,
+                .transmissionMode = (int)settings.dvbt().transmissionMode,
+                .bandwidth = (int)settings.dvbt().bandwidth,
+                .constellation = (int)settings.dvbt().constellation,
+                .hierarchy = (int)settings.dvbt().hierarchy,
+                .hpCodeRate = (int)settings.dvbt().hpCoderate,
+                .lpCodeRate = (int)settings.dvbt().lpCoderate,
+                .guardInterval = (int)settings.dvbt().guardInterval,
+                .isHighPriority = settings.dvbt().isHighPriority,
+                .standard = (int)settings.dvbt().standard,
+                .isMiso = settings.dvbt().isMiso,
+                .plpMode = (int)settings.dvbt().plpMode,
+                .plpId = (int)settings.dvbt().plpId,
+                .plpGroupId = (int)settings.dvbt().plpGroupId,
+            };
+            s.set<TunerFrontendSettings::dvbt>(dvbtSettings);
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::isdbs: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::isdbs3: {
+            break;
+        }
+        case FrontendSettings::hidl_discriminator::isdbt: {
+            break;
+        }
+        default:
+            break;
+    }
+    return s;
+}
+
 /////////////// TunerFrontendCallback ///////////////////////
 
 TunerFrontendCallback::TunerFrontendCallback(sp<FrontendClientCallback> frontendClientCallback)