Merge "Add get64BitId in TunerFilter"
diff --git a/services/tuner/TunerFilter.cpp b/services/tuner/TunerFilter.cpp
index 5a2f404..18a84a6 100644
--- a/services/tuner/TunerFilter.cpp
+++ b/services/tuner/TunerFilter.cpp
@@ -24,11 +24,13 @@
TunerFilter::TunerFilter(sp<IFilter> filter, sp<IFilterCallback> callback) {
mFilter = filter;
+ mFilter_1_1 = ::android::hardware::tv::tuner::V1_1::IFilter::castFrom(filter);
mFilterCallback = callback;
}
TunerFilter::~TunerFilter() {
mFilter = nullptr;
+ mFilter_1_1 = nullptr;
mFilterCallback = nullptr;
}
@@ -50,6 +52,24 @@
return Status::ok();
}
+Status TunerFilter::getId64Bit(int64_t* _aidl_return) {
+ if (mFilter_1_1 == nullptr) {
+ ALOGE("IFilter_1_1 is not initialized");
+ return Status::fromServiceSpecificError(static_cast<int32_t>(Result::UNAVAILABLE));
+ }
+
+ Result res;
+ mFilter_1_1->getId64Bit([&](Result r, uint64_t filterId) {
+ res = r;
+ mId64Bit = filterId;
+ });
+ if (res != Result::SUCCESS) {
+ return ::ndk::ScopedAStatus::fromServiceSpecificError(static_cast<int32_t>(res));
+ }
+ *_aidl_return = mId64Bit;
+ return Status::ok();
+}
+
/////////////// FilterCallback ///////////////////////
Return<void> TunerFilter::FilterCallback::onFilterStatus(DemuxFilterStatus status) {
diff --git a/services/tuner/TunerFilter.h b/services/tuner/TunerFilter.h
index 54c618e..e7e436a 100644
--- a/services/tuner/TunerFilter.h
+++ b/services/tuner/TunerFilter.h
@@ -19,6 +19,7 @@
#include <aidl/android/media/tv/tuner/BnTunerFilter.h>
#include <aidl/android/media/tv/tuner/ITunerFilterCallback.h>
+#include <android/hardware/tv/tuner/1.1/IFilter.h>
#include <android/hardware/tv/tuner/1.0/ITuner.h>
#include <media/stagefright/foundation/ADebug.h>
@@ -41,6 +42,7 @@
TunerFilter(sp<IFilter> filter, sp<IFilterCallback> callback);
virtual ~TunerFilter();
Status getId(int32_t* _aidl_return) override;
+ Status getId64Bit(int64_t* _aidl_return) override;
struct FilterCallback : public IFilterCallback {
FilterCallback(const std::shared_ptr<ITunerFilterCallback> tunerFilterCallback)
@@ -54,8 +56,10 @@
private:
sp<IFilter> mFilter;
+ sp<::android::hardware::tv::tuner::V1_1::IFilter> mFilter_1_1;
sp<IFilterCallback> mFilterCallback;
int32_t mId;
+ int64_t mId64Bit;
};
} // namespace android
diff --git a/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl b/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
index 24c6289..8855725 100644
--- a/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
+++ b/services/tuner/aidl/android/media/tv/tuner/ITunerFilter.aidl
@@ -26,4 +26,9 @@
* Get the filter Id.
*/
int getId();
+
+ /**
+ * Get the 64-bit filter Id.
+ */
+ long getId64Bit();
}