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

Commit d1fbbd6e authored by Amy Zhang's avatar Amy Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add get64BitId in TunerFilter"

parents 172de8c3 78e405a5
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();
}