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
This commit is contained in:
Amy Zhang
2020-08-17 16:52:13 -07:00
parent 36777d0fd4
commit 17f8eac2a4
3 changed files with 25 additions and 0 deletions

View File

@@ -67,4 +67,18 @@ interface IFrontend extends @1.0::IFrontend {
*/
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);
};

View File

@@ -273,6 +273,14 @@ Return<Result> Frontend::setLnb(uint32_t /* lnb */) {
return Result::SUCCESS;
}
Return<Result> Frontend::linkCiCam(uint32_t ciCamId) {
ALOGV("%s", __FUNCTION__);
mCiCamId = ciCamId;
return Result::SUCCESS;
}
FrontendType Frontend::getFrontendType() {
return mType;
}

View File

@@ -62,6 +62,8 @@ class Frontend : public V1_1::IFrontend {
virtual Return<Result> setLnb(uint32_t lnb) override;
virtual Return<Result> linkCiCam(uint32_t ciCamId) override;
FrontendType getFrontendType();
FrontendId getFrontendId();
@@ -78,6 +80,7 @@ class Frontend : public V1_1::IFrontend {
FrontendType mType = FrontendType::UNDEFINED;
FrontendId mId = 0;
bool mIsLocked = false;
uint32_t mCiCamId;
std::ifstream mFrontendData;
};