diff --git a/tv/tuner/1.0/default/Lnb.cpp b/tv/tuner/1.0/default/Lnb.cpp index 51931d67fe..6025339ba7 100644 --- a/tv/tuner/1.0/default/Lnb.cpp +++ b/tv/tuner/1.0/default/Lnb.cpp @@ -27,6 +27,9 @@ namespace V1_0 { namespace implementation { Lnb::Lnb() {} +Lnb::Lnb(int id) { + mId = id; +} Lnb::~Lnb() {} @@ -66,9 +69,13 @@ Return Lnb::close() { return Result::SUCCESS; } +int Lnb::getId() { + return mId; +} + } // namespace implementation } // namespace V1_0 } // namespace tuner } // namespace tv } // namespace hardware -} // namespace android \ No newline at end of file +} // namespace android diff --git a/tv/tuner/1.0/default/Lnb.h b/tv/tuner/1.0/default/Lnb.h index f285cb9e65..1e97214430 100644 --- a/tv/tuner/1.0/default/Lnb.h +++ b/tv/tuner/1.0/default/Lnb.h @@ -38,6 +38,7 @@ using ::android::hardware::tv::tuner::V1_0::Result; class Lnb : public ILnb { public: Lnb(); + Lnb(int id); virtual Return setCallback(const sp& callback) override; @@ -51,7 +52,10 @@ class Lnb : public ILnb { virtual Return close() override; + int getId(); + private: + int mId; virtual ~Lnb(); }; @@ -62,4 +66,4 @@ class Lnb : public ILnb { } // namespace hardware } // namespace android -#endif // ANDROID_HARDWARE_TV_TUNER_V1_0_LNB_H_ \ No newline at end of file +#endif // ANDROID_HARDWARE_TV_TUNER_V1_0_LNB_H_ diff --git a/tv/tuner/1.0/default/Tuner.cpp b/tv/tuner/1.0/default/Tuner.cpp index e39333ce3e..27a67bf6fe 100644 --- a/tv/tuner/1.0/default/Tuner.cpp +++ b/tv/tuner/1.0/default/Tuner.cpp @@ -88,6 +88,10 @@ Tuner::Tuner() { caps = FrontendInfo::FrontendCapabilities(); caps.atscCaps(FrontendAtscCapabilities()); mFrontendCaps[7] = caps; + + mLnbs.resize(2); + mLnbs[0] = new Lnb(0); + mLnbs[1] = new Lnb(1); } Tuner::~Tuner() {} @@ -194,17 +198,24 @@ Return Tuner::getLnbIds(getLnbIds_cb _hidl_cb) { ALOGV("%s", __FUNCTION__); vector lnbIds; + lnbIds.resize(mLnbs.size()); + for (int i = 0; i < lnbIds.size(); i++) { + lnbIds[i] = mLnbs[i]->getId(); + } _hidl_cb(Result::SUCCESS, lnbIds); return Void(); } -Return Tuner::openLnbById(LnbId /* lnbId */, openLnbById_cb _hidl_cb) { +Return Tuner::openLnbById(LnbId lnbId, openLnbById_cb _hidl_cb) { ALOGV("%s", __FUNCTION__); - sp lnb = new Lnb(); + if (lnbId >= mLnbs.size()) { + _hidl_cb(Result::INVALID_ARGUMENT, nullptr); + return Void(); + } - _hidl_cb(Result::SUCCESS, lnb); + _hidl_cb(Result::SUCCESS, mLnbs[lnbId]); return Void(); } diff --git a/tv/tuner/1.0/default/Tuner.h b/tv/tuner/1.0/default/Tuner.h index d17b5aeb64..3f2d60d7b4 100644 --- a/tv/tuner/1.0/default/Tuner.h +++ b/tv/tuner/1.0/default/Tuner.h @@ -21,6 +21,7 @@ #include #include "Demux.h" #include "Frontend.h" +#include "Lnb.h" using namespace std; @@ -76,6 +77,7 @@ class Tuner : public ITuner { // The last used demux id. Initial value is -1. // First used id will be 0. int mLastUsedId = -1; + vector> mLnbs; }; } // namespace implementation