Add new features to tuner service.

*) Add AAC formats backward compatibility.
*) Support dumping frontend hardware information.
*) Add DemuxFilterMediaEvent ScIndexMask backward compatibility.
*) Move setLna to TunerService and add Hidl backward compatibility.

Bug: 205265630
Bug: 184017033
Bug: 202978951
Bug: 203623028
Test: atest android.media.tv.tuner.cts on AIDL and HIDL HALs
Change-Id: I491da4e21649b61b25734fc1f9bf64bb77f52a87
diff --git a/services/tuner/hidl/TunerHidlService.h b/services/tuner/hidl/TunerHidlService.h
index 2b8750e..4cff7cf 100644
--- a/services/tuner/hidl/TunerHidlService.h
+++ b/services/tuner/hidl/TunerHidlService.h
@@ -24,8 +24,11 @@
 #include <android/hardware/tv/tuner/1.1/ITuner.h>
 #include <utils/Mutex.h>
 
+#include <unordered_set>
+
 #include "TunerHelper.h"
 #include "TunerHidlFilter.h"
+#include "TunerHidlFrontend.h"
 
 using ::aidl::android::hardware::tv::tuner::DemuxCapabilities;
 using ::aidl::android::hardware::tv::tuner::DemuxFilterEvent;
@@ -85,9 +88,11 @@
     ::ndk::ScopedAStatus openSharedFilter(const string& in_filterToken,
                                           const shared_ptr<ITunerFilterCallback>& in_cb,
                                           shared_ptr<ITunerFilter>* _aidl_return) override;
+    ::ndk::ScopedAStatus setLna(bool in_bEnable) override;
 
     string addFilterToShared(const shared_ptr<TunerHidlFilter>& sharedFilter);
     void removeSharedFilter(const shared_ptr<TunerHidlFilter>& sharedFilter);
+    void removeFrontend(const shared_ptr<TunerHidlFrontend>& frontend);
 
     static shared_ptr<TunerHidlService> getTunerService();
 
@@ -108,6 +113,9 @@
     int mTunerVersion = TUNER_HAL_VERSION_UNKNOWN;
     Mutex mSharedFiltersLock;
     map<string, shared_ptr<TunerHidlFilter>> mSharedFilters;
+    Mutex mOpenedFrontendsLock;
+    unordered_set<shared_ptr<TunerHidlFrontend>> mOpenedFrontends;
+    int mLnaStatus = -1;
 
     static shared_ptr<TunerHidlService> sTunerService;
 };