Merge "Fully connect TunerFrontend with FrontendClient" into sc-dev
This commit is contained in:
@@ -91,8 +91,8 @@ Result FrontendClient::setCallback(sp<FrontendClientCallback> frontendClientCall
|
||||
if (mTunerFrontend != NULL) {
|
||||
mAidlCallback = ::ndk::SharedRefBase::make<TunerFrontendCallback>(frontendClientCallback);
|
||||
mAidlCallback->setFrontendType(mType);
|
||||
mTunerFrontend->setCallback(mAidlCallback);
|
||||
return Result::SUCCESS;
|
||||
Status s = mTunerFrontend->setCallback(mAidlCallback);
|
||||
return ClientHelper::getServiceSpecificErrorCode(s);
|
||||
}
|
||||
|
||||
mHidlCallback = new HidlFrontendCallback(frontendClientCallback);
|
||||
@@ -243,9 +243,8 @@ vector<FrontendStatusExt1_1> FrontendClient::getStatusExtended_1_1(
|
||||
|
||||
Result FrontendClient::setLnb(sp<LnbClient> lnbClient) {
|
||||
if (mTunerFrontend != NULL) {
|
||||
// TODO: handle error message.
|
||||
/*mTunerFrontend->setLnb(lnbClient->getAidlLnb());
|
||||
return Result::SUCCESS;*/
|
||||
Status s = mTunerFrontend->setLnb(lnbClient->getAidlLnb());
|
||||
return ClientHelper::getServiceSpecificErrorCode(s);
|
||||
}
|
||||
|
||||
if (mFrontend != NULL) {
|
||||
@@ -258,9 +257,8 @@ Result FrontendClient::setLnb(sp<LnbClient> lnbClient) {
|
||||
|
||||
Result FrontendClient::setLna(bool bEnable) {
|
||||
if (mTunerFrontend != NULL) {
|
||||
// TODO: handle error message.
|
||||
/*mTunerFrontend->setLna(bEnable);
|
||||
return Result::SUCCESS;*/
|
||||
Status s = mTunerFrontend->setLna(bEnable);
|
||||
return ClientHelper::getServiceSpecificErrorCode(s);
|
||||
}
|
||||
|
||||
if (mFrontend != NULL) {
|
||||
@@ -275,9 +273,11 @@ int FrontendClient::linkCiCamToFrontend(int ciCamId) {
|
||||
int ltsId = (int)Constant::INVALID_LTS_ID;
|
||||
|
||||
if (mTunerFrontend != NULL) {
|
||||
// TODO: handle error message.
|
||||
/*mTunerFrontend->linkCiCamToFrontend(ciCamId, ltsId);
|
||||
return ltsId;*/
|
||||
Status s = mTunerFrontend->linkCiCamToFrontend(ciCamId, <sId);
|
||||
if (ClientHelper::getServiceSpecificErrorCode(s) == Result::SUCCESS) {
|
||||
return ltsId;
|
||||
}
|
||||
return (int)Constant::INVALID_LTS_ID;
|
||||
}
|
||||
|
||||
if (mFrontend_1_1 != NULL) {
|
||||
@@ -297,9 +297,8 @@ int FrontendClient::linkCiCamToFrontend(int ciCamId) {
|
||||
|
||||
Result FrontendClient::unlinkCiCamToFrontend(int ciCamId) {
|
||||
if (mTunerFrontend != NULL) {
|
||||
// TODO: handle error message.
|
||||
/*mTunerFrontend->unlinkCiCamToFrontend(ciCamId);
|
||||
return Result::SUCCESS;*/
|
||||
Status s = mTunerFrontend->unlinkCiCamToFrontend(ciCamId);
|
||||
return ClientHelper::getServiceSpecificErrorCode(s);
|
||||
}
|
||||
|
||||
if (mFrontend_1_1 != NULL) {
|
||||
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
*/
|
||||
Result close();
|
||||
|
||||
//shared_ptr<ITunerLnb> getAidlLnb() { return mTunerLnb; }
|
||||
shared_ptr<ITunerLnb> getAidlLnb() { return mTunerLnb; }
|
||||
void setId(LnbId id) { mId = id; }
|
||||
LnbId getId() { return mId; }
|
||||
|
||||
|
||||
@@ -22,7 +22,10 @@
|
||||
|
||||
#include "TunerClient.h"
|
||||
|
||||
using ::aidl::android::media::tv::tuner::TunerFrontendCapabilities;
|
||||
using ::aidl::android::media::tv::tuner::TunerFrontendDtmbCapabilities;
|
||||
using ::android::hardware::tv::tuner::V1_0::FrontendId;
|
||||
using ::android::hardware::tv::tuner::V1_0::FrontendStatusType;
|
||||
using ::android::hardware::tv::tuner::V1_0::FrontendType;
|
||||
|
||||
namespace android {
|
||||
@@ -136,12 +139,11 @@ sp<FrontendClient> TunerClient::openFrontend(int frontendHandle) {
|
||||
shared_ptr<FrontendInfo> TunerClient::getFrontendInfo(int id) {
|
||||
if (mTunerService != NULL) {
|
||||
TunerFrontendInfo aidlFrontendInfo;
|
||||
// TODO: handle error code
|
||||
Status s = mTunerService->getFrontendInfo(id, &aidlFrontendInfo);
|
||||
if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) {
|
||||
return NULL;
|
||||
}
|
||||
return make_shared<FrontendInfo>(FrontendInfoAidlToHidl(aidlFrontendInfo));
|
||||
return make_shared<FrontendInfo>(frontendInfoAidlToHidl(aidlFrontendInfo));
|
||||
}
|
||||
|
||||
if (mTuner != NULL) {
|
||||
@@ -157,7 +159,22 @@ shared_ptr<FrontendInfo> TunerClient::getFrontendInfo(int id) {
|
||||
}
|
||||
|
||||
shared_ptr<FrontendDtmbCapabilities> TunerClient::getFrontendDtmbCapabilities(int id) {
|
||||
// pending aidl interface
|
||||
if (mTunerService != NULL) {
|
||||
TunerFrontendDtmbCapabilities dtmbCaps;
|
||||
Status s = mTunerService->getFrontendDtmbCapabilities(id, &dtmbCaps);
|
||||
if (ClientHelper::getServiceSpecificErrorCode(s) != Result::SUCCESS) {
|
||||
return NULL;
|
||||
}
|
||||
FrontendDtmbCapabilities hidlCaps{
|
||||
.transmissionModeCap = static_cast<uint32_t>(dtmbCaps.transmissionModeCap),
|
||||
.bandwidthCap = static_cast<uint32_t>(dtmbCaps.bandwidthCap),
|
||||
.modulationCap = static_cast<uint32_t>(dtmbCaps.modulationCap),
|
||||
.codeRateCap = static_cast<uint32_t>(dtmbCaps.codeRateCap),
|
||||
.guardIntervalCap = static_cast<uint32_t>(dtmbCaps.guardIntervalCap),
|
||||
.interleaveModeCap = static_cast<uint32_t>(dtmbCaps.interleaveModeCap),
|
||||
};
|
||||
return make_shared<FrontendDtmbCapabilities>(hidlCaps);
|
||||
}
|
||||
|
||||
if (mTuner_1_1 != NULL) {
|
||||
Result result;
|
||||
@@ -487,7 +504,7 @@ DemuxCapabilities TunerClient::getHidlDemuxCaps(TunerDemuxCapabilities& aidlCaps
|
||||
return caps;
|
||||
}
|
||||
|
||||
FrontendInfo TunerClient::FrontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo) {
|
||||
FrontendInfo TunerClient::frontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo) {
|
||||
FrontendInfo hidlFrontendInfo {
|
||||
.type = static_cast<FrontendType>(aidlFrontendInfo.type),
|
||||
.minFrequency = static_cast<uint32_t>(aidlFrontendInfo.minFrequency),
|
||||
@@ -497,8 +514,102 @@ FrontendInfo TunerClient::FrontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendI
|
||||
.acquireRange = static_cast<uint32_t>(aidlFrontendInfo.acquireRange),
|
||||
.exclusiveGroupId = static_cast<uint32_t>(aidlFrontendInfo.exclusiveGroupId),
|
||||
};
|
||||
// TODO: handle Frontend caps
|
||||
|
||||
int size = aidlFrontendInfo.statusCaps.size();
|
||||
hidlFrontendInfo.statusCaps.resize(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
hidlFrontendInfo.statusCaps[i] =
|
||||
static_cast<FrontendStatusType>(aidlFrontendInfo.statusCaps[i]);
|
||||
}
|
||||
|
||||
switch (aidlFrontendInfo.caps.getTag()) {
|
||||
case TunerFrontendCapabilities::analogCaps: {
|
||||
auto analog = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::analogCaps>();
|
||||
hidlFrontendInfo.frontendCaps.analogCaps({
|
||||
.typeCap = static_cast<uint32_t>(analog.typeCap),
|
||||
.sifStandardCap = static_cast<uint32_t>(analog.sifStandardCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::atscCaps: {
|
||||
auto atsc = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::atscCaps>();
|
||||
hidlFrontendInfo.frontendCaps.atscCaps({
|
||||
.modulationCap = static_cast<uint32_t>(atsc.modulationCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::atsc3Caps: {
|
||||
auto atsc3 = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::atsc3Caps>();
|
||||
hidlFrontendInfo.frontendCaps.atsc3Caps({
|
||||
.bandwidthCap = static_cast<uint32_t>(atsc3.bandwidthCap),
|
||||
.modulationCap = static_cast<uint32_t>(atsc3.modulationCap),
|
||||
.timeInterleaveModeCap = static_cast<uint32_t>(atsc3.timeInterleaveModeCap),
|
||||
.codeRateCap = static_cast<uint32_t>(atsc3.codeRateCap),
|
||||
.fecCap = static_cast<uint32_t>(atsc3.fecCap),
|
||||
.demodOutputFormatCap = static_cast<uint8_t>(atsc3.demodOutputFormatCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::cableCaps: {
|
||||
auto cable = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::cableCaps>();
|
||||
hidlFrontendInfo.frontendCaps.dvbcCaps({
|
||||
.modulationCap = static_cast<uint32_t>(cable.modulationCap),
|
||||
.fecCap = static_cast<uint64_t>(cable.codeRateCap),
|
||||
.annexCap = static_cast<uint8_t>(cable.annexCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::dvbsCaps: {
|
||||
auto dvbs = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::dvbsCaps>();
|
||||
hidlFrontendInfo.frontendCaps.dvbsCaps({
|
||||
.modulationCap = static_cast<int32_t>(dvbs.modulationCap),
|
||||
.innerfecCap = static_cast<uint64_t>(dvbs.codeRateCap),
|
||||
.standard = static_cast<uint8_t>(dvbs.standard),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::dvbtCaps: {
|
||||
auto dvbt = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::dvbtCaps>();
|
||||
hidlFrontendInfo.frontendCaps.dvbtCaps({
|
||||
.transmissionModeCap = static_cast<uint32_t>(dvbt.transmissionModeCap),
|
||||
.bandwidthCap = static_cast<uint32_t>(dvbt.bandwidthCap),
|
||||
.constellationCap = static_cast<uint32_t>(dvbt.constellationCap),
|
||||
.coderateCap = static_cast<uint32_t>(dvbt.codeRateCap),
|
||||
.hierarchyCap = static_cast<uint32_t>(dvbt.hierarchyCap),
|
||||
.guardIntervalCap = static_cast<uint32_t>(dvbt.guardIntervalCap),
|
||||
.isT2Supported = dvbt.isT2Supported,
|
||||
.isMisoSupported = dvbt.isMisoSupported,
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::isdbsCaps: {
|
||||
auto isdbs = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::isdbsCaps>();
|
||||
hidlFrontendInfo.frontendCaps.isdbsCaps({
|
||||
.modulationCap = static_cast<uint32_t>(isdbs.modulationCap),
|
||||
.coderateCap = static_cast<uint32_t>(isdbs.codeRateCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::isdbs3Caps: {
|
||||
auto isdbs3 = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::isdbs3Caps>();
|
||||
hidlFrontendInfo.frontendCaps.isdbs3Caps({
|
||||
.modulationCap = static_cast<uint32_t>(isdbs3.modulationCap),
|
||||
.coderateCap = static_cast<uint32_t>(isdbs3.codeRateCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case TunerFrontendCapabilities::isdbtCaps: {
|
||||
auto isdbt = aidlFrontendInfo.caps.get<TunerFrontendCapabilities::isdbtCaps>();
|
||||
hidlFrontendInfo.frontendCaps.isdbtCaps({
|
||||
.modeCap = static_cast<uint32_t>(isdbt.modeCap),
|
||||
.bandwidthCap = static_cast<uint32_t>(isdbt.bandwidthCap),
|
||||
.modulationCap = static_cast<uint32_t>(isdbt.modulationCap),
|
||||
.coderateCap = static_cast<uint32_t>(isdbt.codeRateCap),
|
||||
.guardIntervalCap = static_cast<uint32_t>(isdbt.guardIntervalCap),
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
return hidlFrontendInfo;
|
||||
}
|
||||
|
||||
|
||||
@@ -147,7 +147,7 @@ private:
|
||||
sp<IDescrambler> openHidlDescrambler();
|
||||
vector<int> getLnbHandles();
|
||||
DemuxCapabilities getHidlDemuxCaps(TunerDemuxCapabilities& aidlCaps);
|
||||
FrontendInfo FrontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo);
|
||||
FrontendInfo frontendInfoAidlToHidl(TunerFrontendInfo aidlFrontendInfo);
|
||||
void updateTunerResources();
|
||||
void updateFrontendResources();
|
||||
void updateLnbResources();
|
||||
|
||||
Reference in New Issue
Block a user