Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78e405a5 authored by Amy Zhang's avatar Amy Zhang
Browse files

Add get64BitId in TunerFilter

Test: make
Bug: 159067322
Change-Id: I05a811ce9c66dcf32f3dbd65c085f3efa2bc650b
parent ce2cb401
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -24,11 +24,13 @@ namespace android {

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 @@ Status TunerFilter::getId(int32_t* _aidl_return) {
    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) {
+4 −0
Original line number Diff line number Diff line
@@ -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 @@ public:
    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 @@ public:

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
+5 −0
Original line number Diff line number Diff line
@@ -26,4 +26,9 @@ interface ITunerFilter {
     * Get the filter Id.
     */
    int getId();

    /**
     * Get the 64-bit filter Id.
     */
    long getId64Bit();
}