diff options
Diffstat (limited to 'libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h')
-rw-r--r-- | libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h | 58 |
1 files changed, 13 insertions, 45 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h index b72f2a7..70e963b 100644 --- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h +++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterfaceModule.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,8 @@ #ifndef EXYNOS_DISPLAY_DRM_INTERFACE_MODULE_H #define EXYNOS_DISPLAY_DRM_INTERFACE_MODULE_H -#include <gs101/displaycolor/displaycolor_gs101.h> -#include <gs101/histogram/histogram.h> - +#include <histogram/histogram.h> +#include "DisplayColorModule.h" #include "ExynosDisplayDrmInterface.h" namespace gs101 { @@ -27,6 +26,7 @@ namespace gs101 { using namespace displaycolor; class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { + using GsInterfaceType = gs::ColorDrmBlobFactory::GsInterfaceType; public: ExynosDisplayDrmInterfaceModule(ExynosDisplay *exynosDisplay); virtual ~ExynosDisplayDrmInterfaceModule(); @@ -37,37 +37,13 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { virtual int32_t setPlaneColorSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq, const std::unique_ptr<DrmPlane> &plane, - const exynos_win_config_data &config); + const exynos_win_config_data &config, + uint32_t &solidColor); void setColorSettingChanged(bool changed, bool forceDisplay = false) { mColorSettingChanged = changed; mForceDisplayColorSetting = forceDisplay; }; void destroyOldBlobs(std::vector<uint32_t> &oldBlobs); - - int32_t createCgcBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createDegammaLutBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createRegammaLutBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createGammaMatBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createLinearMatBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createDispDitherBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - int32_t createCgcDitherBlobFromIDqe(const IDisplayColorGS101::IDqe &dqe, - uint32_t &blobId); - - int32_t createEotfBlobFromIDpp(const IDisplayColorGS101::IDpp &dpp, - uint32_t &blobId); - int32_t createGmBlobFromIDpp(const IDisplayColorGS101::IDpp &dpp, - uint32_t &blobId); - int32_t createDtmBlobFromIDpp(const IDisplayColorGS101::IDpp &dpp, - uint32_t &blobId); - int32_t createOetfBlobFromIDpp(const IDisplayColorGS101::IDpp &dpp, - uint32_t &blobId); - void getDisplayInfo(std::vector<displaycolor::DisplayInfo> &display_info); /* For Histogram */ @@ -77,18 +53,11 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { virtual int32_t setDisplayHistogramSetting( ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq); - void registerHistogramInfo(HistogramInfo *info) { - if (info) - mHistogramInfo.reset(info); - else - mHistogramInfo.reset(); - - if (mHistogramInfo.get()) - mHistogramInfoRegistered = true; - else - mHistogramInfoRegistered = false; + virtual void registerHistogramInfo(const std::shared_ptr<IDLHistogram> &info) { + mHistogramInfo = info; } - int32_t setHistogramControl(int32_t enabled); + bool isHistogramInfoRegistered() { return mHistogramInfo != nullptr; } + int32_t setHistogramControl(hidl_histogram_control_t enabled); virtual int32_t setHistogramData(void *bin); protected: @@ -140,7 +109,7 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { const DrmProperty &prop, const uint32_t type, const StageDataType &stage, - const IDisplayColorGS101::IDqe &dqe, + const typename GsInterfaceType::IDqe &dqe, ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq); template<typename StageDataType> int32_t setPlaneColorBlob( @@ -148,7 +117,7 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { const DrmProperty &prop, const uint32_t type, const StageDataType &stage, - const IDisplayColorGS101::IDpp &dpp, + const typename GsInterfaceType::IDpp &dpp, const uint32_t dppIndex, ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq, bool forceUpdate); @@ -183,8 +152,7 @@ class ExynosDisplayDrmInterfaceModule : public ExynosDisplayDrmInterface { ExynosDisplayDrmInterface::DrmModeAtomicReq &drmReq); HistoBlobs mOldHistoBlobs; - std::shared_ptr<HistogramInfo> mHistogramInfo; - bool mHistogramInfoRegistered = false; + std::shared_ptr<IDLHistogram> mHistogramInfo; private: const std::string GetPanelInfo(const std::string &sysfs_rel, char delim); |