Loading services/tuner/TunerFilter.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -285,6 +285,7 @@ void TunerFilter::getHidlIpSettings( .srcPort = static_cast<uint16_t>(ipConf.ipAddr.srcPort), .dstPort = static_cast<uint16_t>(ipConf.ipAddr.dstPort), }; ipConf.ipAddr.srcIpAddress.isIpV6 ? ipAddr.srcIpAddress.v6(getIpV6Address(ipConf.ipAddr.srcIpAddress)) : ipAddr.srcIpAddress.v4(getIpV4Address(ipConf.ipAddr.srcIpAddress)); Loading Loading @@ -314,7 +315,7 @@ void TunerFilter::getHidlIpSettings( } hidl_array<uint8_t, IP_V6_LENGTH> TunerFilter::getIpV6Address(TunerDemuxIpAddress addr) { hidl_array<uint8_t, IP_V6_LENGTH> ip = {0}; hidl_array<uint8_t, IP_V6_LENGTH> ip; if (addr.addr.size() != IP_V6_LENGTH) { return ip; } Loading @@ -323,7 +324,7 @@ hidl_array<uint8_t, IP_V6_LENGTH> TunerFilter::getIpV6Address(TunerDemuxIpAddres } hidl_array<uint8_t, IP_V4_LENGTH> TunerFilter::getIpV4Address(TunerDemuxIpAddress addr) { hidl_array<uint8_t, IP_V4_LENGTH> ip = {0}; hidl_array<uint8_t, IP_V4_LENGTH> ip; if (addr.addr.size() != IP_V4_LENGTH) { return ip; } Loading Loading @@ -620,16 +621,17 @@ void TunerFilter::FilterCallback::getAidlFilterEvent(vector<DemuxFilterEvent::Ev switch (eventExt.getDiscriminator()) { case DemuxFilterEventExt::Event::hidl_discriminator::monitorEvent: { getMonitorEvent(eventsExt, tunerEvent); break; return; } case DemuxFilterEventExt::Event::hidl_discriminator::startId: { getRestartEvent(eventsExt, tunerEvent); break; return; } default: { break; } } return; } if (!events.empty()) { Loading Loading @@ -889,9 +891,6 @@ void TunerFilter::FilterCallback::getMonitorEvent( tunerMonitor.set<TunerFilterMonitorEvent::cid>(static_cast<int>(monitorEvent.cid())); break; } default: { break; } } TunerFilterEvent tunerEvent; Loading services/tuner/TunerFrontend.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -804,13 +804,13 @@ void TunerFrontend::getAidlFrontendStatusExt( case FrontendStatusExt1_1::hidl_discriminator::rollOff: { switch (s.rollOff().getDiscriminator()) { case FrontendRollOff::hidl_discriminator::dvbs: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().dvbs()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().dvbs()); break; case FrontendRollOff::hidl_discriminator::isdbs: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().isdbs()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().isdbs()); break; case FrontendRollOff::hidl_discriminator::isdbs3: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().isdbs3()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().isdbs3()); break; } aidlStatus.push_back(status); Loading services/tuner/TunerService.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -52,10 +52,10 @@ namespace android { TunerService::TunerService() {} TunerService::~TunerService() {} void TunerService::instantiate() { binder_status_t TunerService::instantiate() { shared_ptr<TunerService> service = ::ndk::SharedRefBase::make<TunerService>(); AServiceManager_addService(service->asBinder().get(), getServiceName()); return AServiceManager_addService(service->asBinder().get(), getServiceName()); } bool TunerService::hasITuner() { Loading @@ -68,23 +68,20 @@ bool TunerService::hasITuner() { ALOGE("Failed to get ITuner service"); return false; } mTunerVersion = TUNER_HAL_VERSION_1_0; mTuner_1_1 = ::android::hardware::tv::tuner::V1_1::ITuner::castFrom(mTuner); if (mTuner_1_1 != nullptr) { mTunerVersion = TUNER_HAL_VERSION_1_1; } else { ALOGE("Failed to get ITuner_1_1 service"); } return true; } bool TunerService::hasITuner_1_1() { ALOGD("hasITuner_1_1"); if (mTuner_1_1 != nullptr) { return true; } if (!hasITuner()) { return false; } mTuner_1_1 = ::android::hardware::tv::tuner::V1_1::ITuner::castFrom(mTuner); if (mTuner_1_1 == nullptr) { ALOGE("Failed to get ITuner_1_1 service"); return false; } return true; hasITuner(); return (mTunerVersion == TUNER_HAL_VERSION_1_1); } Status TunerService::openDemux( Loading Loading @@ -300,6 +297,12 @@ Status TunerService::updateTunerResources() { return Status::ok(); } Status TunerService::getTunerHalVersion(int* _aidl_return) { hasITuner(); *_aidl_return = mTunerVersion; return Status::ok(); } void TunerService::updateFrontendResources() { hidl_vec<FrontendId> ids; Result res = getHidlFrontendIds(ids); Loading services/tuner/TunerService.h +8 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,10 @@ using namespace std; namespace android { const static int TUNER_HAL_VERSION_UNKNOWN = 0; const static int TUNER_HAL_VERSION_1_0 = 1 << 16; const static int TUNER_HAL_VERSION_1_1 = (1 << 16) | 1; typedef enum { FRONTEND, LNB, Loading @@ -93,7 +97,7 @@ class TunerService : public BnTunerService { public: static char const *getServiceName() { return "media.tuner"; } static void instantiate(); static binder_status_t instantiate(); TunerService(); virtual ~TunerService(); Loading @@ -110,6 +114,7 @@ public: Status openDescrambler(int32_t descramblerHandle, std::shared_ptr<ITunerDescrambler>* _aidl_return) override; Status updateTunerResources() override; Status getTunerHalVersion(int* _aidl_return) override; // TODO: create a map between resource id and handles. static int getResourceIdFromHandle(int resourceHandle, int /*type*/) { Loading Loading @@ -141,6 +146,8 @@ private: shared_ptr<ITunerResourceManager> mTunerResourceManager; int mResourceRequestCount = 0; int mTunerVersion = TUNER_HAL_VERSION_UNKNOWN; }; } // namespace android Loading services/tuner/aidl/android/media/tv/tuner/ITunerService.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -101,4 +101,11 @@ interface ITunerService { */ // TODO: b/178124017 update TRM in TunerService independently. void updateTunerResources(); /** * Get an integer that carries the Tuner HIDL version. The high 16 bits are the * major version number while the low 16 bits are the minor version. Default * value is unknown version 0. */ int getTunerHalVersion(); } Loading
services/tuner/TunerFilter.cpp +6 −7 Original line number Diff line number Diff line Loading @@ -285,6 +285,7 @@ void TunerFilter::getHidlIpSettings( .srcPort = static_cast<uint16_t>(ipConf.ipAddr.srcPort), .dstPort = static_cast<uint16_t>(ipConf.ipAddr.dstPort), }; ipConf.ipAddr.srcIpAddress.isIpV6 ? ipAddr.srcIpAddress.v6(getIpV6Address(ipConf.ipAddr.srcIpAddress)) : ipAddr.srcIpAddress.v4(getIpV4Address(ipConf.ipAddr.srcIpAddress)); Loading Loading @@ -314,7 +315,7 @@ void TunerFilter::getHidlIpSettings( } hidl_array<uint8_t, IP_V6_LENGTH> TunerFilter::getIpV6Address(TunerDemuxIpAddress addr) { hidl_array<uint8_t, IP_V6_LENGTH> ip = {0}; hidl_array<uint8_t, IP_V6_LENGTH> ip; if (addr.addr.size() != IP_V6_LENGTH) { return ip; } Loading @@ -323,7 +324,7 @@ hidl_array<uint8_t, IP_V6_LENGTH> TunerFilter::getIpV6Address(TunerDemuxIpAddres } hidl_array<uint8_t, IP_V4_LENGTH> TunerFilter::getIpV4Address(TunerDemuxIpAddress addr) { hidl_array<uint8_t, IP_V4_LENGTH> ip = {0}; hidl_array<uint8_t, IP_V4_LENGTH> ip; if (addr.addr.size() != IP_V4_LENGTH) { return ip; } Loading Loading @@ -620,16 +621,17 @@ void TunerFilter::FilterCallback::getAidlFilterEvent(vector<DemuxFilterEvent::Ev switch (eventExt.getDiscriminator()) { case DemuxFilterEventExt::Event::hidl_discriminator::monitorEvent: { getMonitorEvent(eventsExt, tunerEvent); break; return; } case DemuxFilterEventExt::Event::hidl_discriminator::startId: { getRestartEvent(eventsExt, tunerEvent); break; return; } default: { break; } } return; } if (!events.empty()) { Loading Loading @@ -889,9 +891,6 @@ void TunerFilter::FilterCallback::getMonitorEvent( tunerMonitor.set<TunerFilterMonitorEvent::cid>(static_cast<int>(monitorEvent.cid())); break; } default: { break; } } TunerFilterEvent tunerEvent; Loading
services/tuner/TunerFrontend.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -804,13 +804,13 @@ void TunerFrontend::getAidlFrontendStatusExt( case FrontendStatusExt1_1::hidl_discriminator::rollOff: { switch (s.rollOff().getDiscriminator()) { case FrontendRollOff::hidl_discriminator::dvbs: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().dvbs()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().dvbs()); break; case FrontendRollOff::hidl_discriminator::isdbs: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().isdbs()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().isdbs()); break; case FrontendRollOff::hidl_discriminator::isdbs3: status.set<TunerFrontendStatus::interleaving>((int)s.rollOff().isdbs3()); status.set<TunerFrontendStatus::rollOff>((int)s.rollOff().isdbs3()); break; } aidlStatus.push_back(status); Loading
services/tuner/TunerService.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -52,10 +52,10 @@ namespace android { TunerService::TunerService() {} TunerService::~TunerService() {} void TunerService::instantiate() { binder_status_t TunerService::instantiate() { shared_ptr<TunerService> service = ::ndk::SharedRefBase::make<TunerService>(); AServiceManager_addService(service->asBinder().get(), getServiceName()); return AServiceManager_addService(service->asBinder().get(), getServiceName()); } bool TunerService::hasITuner() { Loading @@ -68,23 +68,20 @@ bool TunerService::hasITuner() { ALOGE("Failed to get ITuner service"); return false; } mTunerVersion = TUNER_HAL_VERSION_1_0; mTuner_1_1 = ::android::hardware::tv::tuner::V1_1::ITuner::castFrom(mTuner); if (mTuner_1_1 != nullptr) { mTunerVersion = TUNER_HAL_VERSION_1_1; } else { ALOGE("Failed to get ITuner_1_1 service"); } return true; } bool TunerService::hasITuner_1_1() { ALOGD("hasITuner_1_1"); if (mTuner_1_1 != nullptr) { return true; } if (!hasITuner()) { return false; } mTuner_1_1 = ::android::hardware::tv::tuner::V1_1::ITuner::castFrom(mTuner); if (mTuner_1_1 == nullptr) { ALOGE("Failed to get ITuner_1_1 service"); return false; } return true; hasITuner(); return (mTunerVersion == TUNER_HAL_VERSION_1_1); } Status TunerService::openDemux( Loading Loading @@ -300,6 +297,12 @@ Status TunerService::updateTunerResources() { return Status::ok(); } Status TunerService::getTunerHalVersion(int* _aidl_return) { hasITuner(); *_aidl_return = mTunerVersion; return Status::ok(); } void TunerService::updateFrontendResources() { hidl_vec<FrontendId> ids; Result res = getHidlFrontendIds(ids); Loading
services/tuner/TunerService.h +8 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,10 @@ using namespace std; namespace android { const static int TUNER_HAL_VERSION_UNKNOWN = 0; const static int TUNER_HAL_VERSION_1_0 = 1 << 16; const static int TUNER_HAL_VERSION_1_1 = (1 << 16) | 1; typedef enum { FRONTEND, LNB, Loading @@ -93,7 +97,7 @@ class TunerService : public BnTunerService { public: static char const *getServiceName() { return "media.tuner"; } static void instantiate(); static binder_status_t instantiate(); TunerService(); virtual ~TunerService(); Loading @@ -110,6 +114,7 @@ public: Status openDescrambler(int32_t descramblerHandle, std::shared_ptr<ITunerDescrambler>* _aidl_return) override; Status updateTunerResources() override; Status getTunerHalVersion(int* _aidl_return) override; // TODO: create a map between resource id and handles. static int getResourceIdFromHandle(int resourceHandle, int /*type*/) { Loading Loading @@ -141,6 +146,8 @@ private: shared_ptr<ITunerResourceManager> mTunerResourceManager; int mResourceRequestCount = 0; int mTunerVersion = TUNER_HAL_VERSION_UNKNOWN; }; } // namespace android Loading
services/tuner/aidl/android/media/tv/tuner/ITunerService.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -101,4 +101,11 @@ interface ITunerService { */ // TODO: b/178124017 update TRM in TunerService independently. void updateTunerResources(); /** * Get an integer that carries the Tuner HIDL version. The high 16 bits are the * major version number while the low 16 bits are the minor version. Default * value is unknown version 0. */ int getTunerHalVersion(); }