Complete TunerDescrambler aidl interface and implementation
Test: make
Bug: 159067322
Change-Id: I84322f8597080643ad5bbb829eb92f3dcd1493db
diff --git a/services/tuner/TunerService.cpp b/services/tuner/TunerService.cpp
index 4376188..b356039 100644
--- a/services/tuner/TunerService.cpp
+++ b/services/tuner/TunerService.cpp
@@ -23,6 +23,7 @@
#include "TunerFrontend.h"
#include "TunerLnb.h"
#include "TunerDemux.h"
+#include "TunerDescrambler.h"
using ::aidl::android::media::tv::tuner::TunerFrontendAnalogCapabilities;
using ::aidl::android::media::tv::tuner::TunerFrontendAtsc3Capabilities;
@@ -273,6 +274,28 @@
return Status::ok();
}
+Status TunerService::openDescrambler(int32_t /*descramblerHandle*/,
+ std::shared_ptr<ITunerDescrambler>* _aidl_return) {
+ if (!getITuner()) {
+ ALOGD("get ITuner failed");
+ return Status::fromServiceSpecificError(static_cast<int32_t>(Result::UNAVAILABLE));
+ }
+
+ Result status;
+ sp<IDescrambler> descrambler;
+ //int id = getResourceIdFromHandle(descramblerHandle, DESCRAMBLER);
+ mTuner->openDescrambler([&](Result r, const sp<IDescrambler>& descramblerSp) {
+ status = r;
+ descrambler = descramblerSp;
+ });
+ if (status != Result::SUCCESS) {
+ return Status::fromServiceSpecificError(static_cast<int32_t>(status));
+ }
+
+ *_aidl_return = ::ndk::SharedRefBase::make<TunerDescrambler>(descrambler);
+ return Status::ok();
+}
+
Status TunerService::updateTunerResources() {
if (!getITuner()) {
return Status::fromServiceSpecificError(static_cast<int32_t>(Result::UNAVAILABLE));