Add linkCicam API in Frontend 1.1
This API is mostly for restoring the by-pass mode
Frontend and Cicam connection
Test: make
Bug: 158818696
Change-Id: I62ba19a1c6c531769db6286d3bcd41ab1529bb99
diff --git a/tv/tuner/1.1/IFrontend.hal b/tv/tuner/1.1/IFrontend.hal
index b570549..0b0ce39 100644
--- a/tv/tuner/1.1/IFrontend.hal
+++ b/tv/tuner/1.1/IFrontend.hal
@@ -67,4 +67,18 @@
*/
scan_1_1(FrontendSettings settings, FrontendScanType type, FrontendSettingsExt settingsExt)
generates (Result result);
+
+ /**
+ * Link Conditional Access Modules (CAM) to Frontend support Common Interface (CI) bypass mode.
+ *
+ * The client may use this to link CI-CAM to a frontend. CI bypass mode requires that the
+ * CICAM also receives the TS concurrently from the frontend when the Demux is receiving the TS
+ * directly from the frontend.
+ *
+ * @param ciCamId specify CI-CAM Id to link.
+ * @return result Result status of the operation.
+ * SUCCESS if successful,
+ * UNKNOWN_ERROR if failed for other reasons.
+ */
+ linkCiCam(uint32_t ciCamId) generates (Result result);
};
diff --git a/tv/tuner/1.1/default/Frontend.cpp b/tv/tuner/1.1/default/Frontend.cpp
index 1e9435b..467d547 100644
--- a/tv/tuner/1.1/default/Frontend.cpp
+++ b/tv/tuner/1.1/default/Frontend.cpp
@@ -273,6 +273,14 @@
return Result::SUCCESS;
}
+Return<Result> Frontend::linkCiCam(uint32_t ciCamId) {
+ ALOGV("%s", __FUNCTION__);
+
+ mCiCamId = ciCamId;
+
+ return Result::SUCCESS;
+}
+
FrontendType Frontend::getFrontendType() {
return mType;
}
diff --git a/tv/tuner/1.1/default/Frontend.h b/tv/tuner/1.1/default/Frontend.h
index d44f4ae..6a80232 100644
--- a/tv/tuner/1.1/default/Frontend.h
+++ b/tv/tuner/1.1/default/Frontend.h
@@ -62,6 +62,8 @@
virtual Return<Result> setLnb(uint32_t lnb) override;
+ virtual Return<Result> linkCiCam(uint32_t ciCamId) override;
+
FrontendType getFrontendType();
FrontendId getFrontendId();
@@ -78,6 +80,7 @@
FrontendType mType = FrontendType::UNDEFINED;
FrontendId mId = 0;
bool mIsLocked = false;
+ uint32_t mCiCamId;
std::ifstream mFrontendData;
};