Loading tv/tuner/aidl/default/Android.bp +17 −3 Original line number Diff line number Diff line Loading @@ -7,10 +7,9 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } cc_binary { name: "android.hardware.tv.tuner-service.example", cc_defaults { name: "tuner_hal_example_defaults", relative_install_path: "hw", init_rc: ["tuner-default.rc"], vintf_fragments: ["tuner-default.xml"], vendor: true, compile_multilib: "first", Loading Loading @@ -44,3 +43,18 @@ cc_binary { "media_plugin_headers", ], } cc_binary { name: "android.hardware.tv.tuner-service.example", defaults: ["tuner_hal_example_defaults"], init_rc: ["tuner-default.rc"], } cc_binary { name: "android.hardware.tv.tuner-service.example-lazy", defaults: ["tuner_hal_example_defaults"], init_rc: ["tuner-default-lazy.rc"], cflags: [ "-DLAZY_HAL", ], } tv/tuner/aidl/default/Demux.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ Demux::Demux(int32_t demuxId, std::shared_ptr<Tuner> tuner) { } Demux::~Demux() { ALOGV("%s", __FUNCTION__); close(); } Loading Loading @@ -180,7 +181,10 @@ Demux::~Demux() { mRecordFilterIds.clear(); mFilters.clear(); mLastUsedFilterId = -1; if (mTuner != nullptr) { mTuner->removeDemux(mDemuxId); mTuner = nullptr; } return ::ndk::ScopedAStatus::ok(); } Loading tv/tuner/aidl/default/Frontend.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -28,10 +28,10 @@ namespace hardware { namespace tv { namespace tuner { Frontend::Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner) { Frontend::Frontend(FrontendType type, int32_t id) { mType = type; mId = id; mTuner = tuner; mTuner = nullptr; // Init callback to nullptr mCallback = nullptr; Loading Loading @@ -170,7 +170,12 @@ Frontend::Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner) } } Frontend::~Frontend() {} Frontend::~Frontend() { ALOGV("%s", __FUNCTION__); mCallback = nullptr; mIsLocked = false; mTuner = nullptr; } ::ndk::ScopedAStatus Frontend::close() { ALOGV("%s", __FUNCTION__); Loading @@ -178,6 +183,7 @@ Frontend::~Frontend() {} mCallback = nullptr; mIsLocked = false; mTuner->removeFrontend(mId); mTuner = nullptr; return ::ndk::ScopedAStatus::ok(); } Loading Loading @@ -233,6 +239,10 @@ Frontend::~Frontend() {} return ::ndk::ScopedAStatus::ok(); } void Frontend::setTunerService(std::shared_ptr<Tuner> tuner) { mTuner = tuner; } void Frontend::scanThreadLoop() { if (mIsLocked) { FrontendScanMessage msg; Loading tv/tuner/aidl/default/Frontend.h +2 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ class Tuner; class Frontend : public BnFrontend { public: Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner); Frontend(FrontendType type, int32_t id); ::ndk::ScopedAStatus setCallback( const std::shared_ptr<IFrontendCallback>& in_callback) override; Loading Loading @@ -62,6 +62,7 @@ class Frontend : public BnFrontend { string getSourceFile(); bool isLocked(); void getFrontendInfo(FrontendInfo* _aidl_return); void setTunerService(std::shared_ptr<Tuner> tuner); private: virtual ~Frontend(); Loading tv/tuner/aidl/default/Tuner.cpp +11 −10 Original line number Diff line number Diff line Loading @@ -38,16 +38,16 @@ void Tuner::init() { // Static Frontends array to maintain local frontends information // Array index matches their FrontendId in the default impl mFrontendSize = 10; mFrontends[0] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS, 0, this->ref<Tuner>()); mFrontends[1] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC3, 1, this->ref<Tuner>()); mFrontends[2] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBC, 2, this->ref<Tuner>()); mFrontends[3] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBS, 3, this->ref<Tuner>()); mFrontends[4] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBT, 4, this->ref<Tuner>()); mFrontends[5] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBT, 5, this->ref<Tuner>()); mFrontends[6] = ndk::SharedRefBase::make<Frontend>(FrontendType::ANALOG, 6, this->ref<Tuner>()); mFrontends[7] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC, 7, this->ref<Tuner>()); mFrontends[8] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS3, 8, this->ref<Tuner>()); mFrontends[9] = ndk::SharedRefBase::make<Frontend>(FrontendType::DTMB, 9, this->ref<Tuner>()); mFrontends[0] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS, 0); mFrontends[1] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC3, 1); mFrontends[2] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBC, 2); mFrontends[3] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBS, 3); mFrontends[4] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBT, 4); mFrontends[5] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBT, 5); mFrontends[6] = ndk::SharedRefBase::make<Frontend>(FrontendType::ANALOG, 6); mFrontends[7] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC, 7); mFrontends[8] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS3, 8); mFrontends[9] = ndk::SharedRefBase::make<Frontend>(FrontendType::DTMB, 9); mMaxUsableFrontends[FrontendType::ISDBS] = 1; mMaxUsableFrontends[FrontendType::ATSC3] = 1; Loading Loading @@ -89,6 +89,7 @@ Tuner::~Tuner() {} static_cast<int32_t>(Result::INVALID_ARGUMENT)); } mFrontends[in_frontendId]->setTunerService(this->ref<Tuner>()); *_aidl_return = mFrontends[in_frontendId]; return ::ndk::ScopedAStatus::ok(); } Loading Loading
tv/tuner/aidl/default/Android.bp +17 −3 Original line number Diff line number Diff line Loading @@ -7,10 +7,9 @@ package { default_applicable_licenses: ["hardware_interfaces_license"], } cc_binary { name: "android.hardware.tv.tuner-service.example", cc_defaults { name: "tuner_hal_example_defaults", relative_install_path: "hw", init_rc: ["tuner-default.rc"], vintf_fragments: ["tuner-default.xml"], vendor: true, compile_multilib: "first", Loading Loading @@ -44,3 +43,18 @@ cc_binary { "media_plugin_headers", ], } cc_binary { name: "android.hardware.tv.tuner-service.example", defaults: ["tuner_hal_example_defaults"], init_rc: ["tuner-default.rc"], } cc_binary { name: "android.hardware.tv.tuner-service.example-lazy", defaults: ["tuner_hal_example_defaults"], init_rc: ["tuner-default-lazy.rc"], cflags: [ "-DLAZY_HAL", ], }
tv/tuner/aidl/default/Demux.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ Demux::Demux(int32_t demuxId, std::shared_ptr<Tuner> tuner) { } Demux::~Demux() { ALOGV("%s", __FUNCTION__); close(); } Loading Loading @@ -180,7 +181,10 @@ Demux::~Demux() { mRecordFilterIds.clear(); mFilters.clear(); mLastUsedFilterId = -1; if (mTuner != nullptr) { mTuner->removeDemux(mDemuxId); mTuner = nullptr; } return ::ndk::ScopedAStatus::ok(); } Loading
tv/tuner/aidl/default/Frontend.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -28,10 +28,10 @@ namespace hardware { namespace tv { namespace tuner { Frontend::Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner) { Frontend::Frontend(FrontendType type, int32_t id) { mType = type; mId = id; mTuner = tuner; mTuner = nullptr; // Init callback to nullptr mCallback = nullptr; Loading Loading @@ -170,7 +170,12 @@ Frontend::Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner) } } Frontend::~Frontend() {} Frontend::~Frontend() { ALOGV("%s", __FUNCTION__); mCallback = nullptr; mIsLocked = false; mTuner = nullptr; } ::ndk::ScopedAStatus Frontend::close() { ALOGV("%s", __FUNCTION__); Loading @@ -178,6 +183,7 @@ Frontend::~Frontend() {} mCallback = nullptr; mIsLocked = false; mTuner->removeFrontend(mId); mTuner = nullptr; return ::ndk::ScopedAStatus::ok(); } Loading Loading @@ -233,6 +239,10 @@ Frontend::~Frontend() {} return ::ndk::ScopedAStatus::ok(); } void Frontend::setTunerService(std::shared_ptr<Tuner> tuner) { mTuner = tuner; } void Frontend::scanThreadLoop() { if (mIsLocked) { FrontendScanMessage msg; Loading
tv/tuner/aidl/default/Frontend.h +2 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ class Tuner; class Frontend : public BnFrontend { public: Frontend(FrontendType type, int32_t id, std::shared_ptr<Tuner> tuner); Frontend(FrontendType type, int32_t id); ::ndk::ScopedAStatus setCallback( const std::shared_ptr<IFrontendCallback>& in_callback) override; Loading Loading @@ -62,6 +62,7 @@ class Frontend : public BnFrontend { string getSourceFile(); bool isLocked(); void getFrontendInfo(FrontendInfo* _aidl_return); void setTunerService(std::shared_ptr<Tuner> tuner); private: virtual ~Frontend(); Loading
tv/tuner/aidl/default/Tuner.cpp +11 −10 Original line number Diff line number Diff line Loading @@ -38,16 +38,16 @@ void Tuner::init() { // Static Frontends array to maintain local frontends information // Array index matches their FrontendId in the default impl mFrontendSize = 10; mFrontends[0] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS, 0, this->ref<Tuner>()); mFrontends[1] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC3, 1, this->ref<Tuner>()); mFrontends[2] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBC, 2, this->ref<Tuner>()); mFrontends[3] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBS, 3, this->ref<Tuner>()); mFrontends[4] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBT, 4, this->ref<Tuner>()); mFrontends[5] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBT, 5, this->ref<Tuner>()); mFrontends[6] = ndk::SharedRefBase::make<Frontend>(FrontendType::ANALOG, 6, this->ref<Tuner>()); mFrontends[7] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC, 7, this->ref<Tuner>()); mFrontends[8] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS3, 8, this->ref<Tuner>()); mFrontends[9] = ndk::SharedRefBase::make<Frontend>(FrontendType::DTMB, 9, this->ref<Tuner>()); mFrontends[0] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS, 0); mFrontends[1] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC3, 1); mFrontends[2] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBC, 2); mFrontends[3] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBS, 3); mFrontends[4] = ndk::SharedRefBase::make<Frontend>(FrontendType::DVBT, 4); mFrontends[5] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBT, 5); mFrontends[6] = ndk::SharedRefBase::make<Frontend>(FrontendType::ANALOG, 6); mFrontends[7] = ndk::SharedRefBase::make<Frontend>(FrontendType::ATSC, 7); mFrontends[8] = ndk::SharedRefBase::make<Frontend>(FrontendType::ISDBS3, 8); mFrontends[9] = ndk::SharedRefBase::make<Frontend>(FrontendType::DTMB, 9); mMaxUsableFrontends[FrontendType::ISDBS] = 1; mMaxUsableFrontends[FrontendType::ATSC3] = 1; Loading Loading @@ -89,6 +89,7 @@ Tuner::~Tuner() {} static_cast<int32_t>(Result::INVALID_ARGUMENT)); } mFrontends[in_frontendId]->setTunerService(this->ref<Tuner>()); *_aidl_return = mFrontends[in_frontendId]; return ::ndk::ScopedAStatus::ok(); } Loading