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

Commit b6805242 authored by Patrick Rohr's avatar Patrick Rohr
Browse files

add tuner delay hint to TunerFilter

Test: TreeHugger -- will be covered by CTS
Bug: 183057734
Change-Id: I11757359ebf2534f27f821351882c4ac1509db7e
parent 159257a4
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -405,6 +405,17 @@ TunerFilter::~TunerFilter() {
    return ::ndk::ScopedAStatus::ok();
}

::ndk::ScopedAStatus TunerFilter::setDelayHint(const FilterDelayHint& in_hint) {
    Mutex::Autolock _l(mLock);
    if (mFilter == nullptr) {
        ALOGE("IFilter is not initialized");
        return ::ndk::ScopedAStatus::fromServiceSpecificError(
                static_cast<int32_t>(Result::UNAVAILABLE));
    }

    return mFilter->setDelayHint(in_hint);
}

bool TunerFilter::isSharedFilterAllowed(int callingPid) {
    return mShared && mClientPid != callingPid;
}
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <aidl/android/hardware/tv/tuner/DemuxFilterSettings.h>
#include <aidl/android/hardware/tv/tuner/DemuxFilterStatus.h>
#include <aidl/android/hardware/tv/tuner/DemuxFilterType.h>
#include <aidl/android/hardware/tv/tuner/FilterDelayHint.h>
#include <aidl/android/hardware/tv/tuner/IFilter.h>
#include <aidl/android/media/tv/tuner/BnTunerFilter.h>
#include <aidl/android/media/tv/tuner/ITunerFilterCallback.h>
@@ -37,6 +38,7 @@ using ::aidl::android::hardware::tv::tuner::DemuxFilterEvent;
using ::aidl::android::hardware::tv::tuner::DemuxFilterSettings;
using ::aidl::android::hardware::tv::tuner::DemuxFilterStatus;
using ::aidl::android::hardware::tv::tuner::DemuxFilterType;
using ::aidl::android::hardware::tv::tuner::FilterDelayHint;
using ::aidl::android::hardware::tv::tuner::IFilter;
using ::aidl::android::media::tv::tuner::BnTunerFilter;
using ::android::Mutex;
@@ -94,6 +96,7 @@ public:
    ::ndk::ScopedAStatus createSharedFilter(string* _aidl_return) override;
    ::ndk::ScopedAStatus releaseSharedFilter(const string& in_filterToken) override;
    ::ndk::ScopedAStatus getFilterType(DemuxFilterType* _aidl_return) override;
    ::ndk::ScopedAStatus setDelayHint(const FilterDelayHint& in_hint) override;

    bool isSharedFilterAllowed(int32_t pid);
    void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.hardware.tv.tuner.DemuxFilterSettings;
import android.hardware.tv.tuner.DemuxFilterType;
import android.hardware.tv.tuner.AvStreamType;
import android.hardware.tv.tuner.DemuxFilterMonitorEventType;
import android.hardware.tv.tuner.FilterDelayHint;

/**
 * Tuner Filter interface handles tuner related operations.
@@ -121,4 +122,6 @@ interface ITunerFilter {
     * @return filter type.
     */
    DemuxFilterType getFilterType();

    void setDelayHint(in FilterDelayHint hint);
}
+6 −0
Original line number Diff line number Diff line
@@ -580,6 +580,12 @@ TunerHidlFilter::~TunerHidlFilter() {
    return ::ndk::ScopedAStatus::ok();
}

::ndk::ScopedAStatus TunerHidlFilter::setDelayHint(const FilterDelayHint&) {
    // setDelayHint is not supported in HIDL HAL
    return ::ndk::ScopedAStatus::fromServiceSpecificError(
                static_cast<int32_t>(Result::UNAVAILABLE));
}

bool TunerHidlFilter::isSharedFilterAllowed(int callingPid) {
    return mShared && mClientPid != callingPid;
}
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ using ::aidl::android::hardware::tv::tuner::DemuxFilterSettings;
using ::aidl::android::hardware::tv::tuner::DemuxFilterStatus;
using ::aidl::android::hardware::tv::tuner::DemuxFilterType;
using ::aidl::android::hardware::tv::tuner::DemuxIpAddressIpAddress;
using ::aidl::android::hardware::tv::tuner::FilterDelayHint;
using ::aidl::android::media::tv::tuner::BnTunerFilter;
using ::aidl::android::media::tv::tuner::ITunerFilterCallback;
using ::android::Mutex;
@@ -185,6 +186,7 @@ public:
    ::ndk::ScopedAStatus createSharedFilter(string* _aidl_return) override;
    ::ndk::ScopedAStatus releaseSharedFilter(const string& in_filterToken) override;
    ::ndk::ScopedAStatus getFilterType(DemuxFilterType* _aidl_return) override;
    ::ndk::ScopedAStatus setDelayHint(const FilterDelayHint& in_hint) override;

    bool isSharedFilterAllowed(int32_t pid);
    void attachSharedFilterCallback(const shared_ptr<ITunerFilterCallback>& in_cb);