summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libhwc2.1/libdevice/ExynosDevice.cpp5
-rw-r--r--libhwc2.1/libdevice/ExynosDevice.h2
-rw-r--r--libhwc2.1/libdevice/ExynosDisplay.h1
-rw-r--r--libhwc2.1/pixel-display.cpp6
4 files changed, 13 insertions, 1 deletions
diff --git a/libhwc2.1/libdevice/ExynosDevice.cpp b/libhwc2.1/libdevice/ExynosDevice.cpp
index b20f090..2056ff0 100644
--- a/libhwc2.1/libdevice/ExynosDevice.cpp
+++ b/libhwc2.1/libdevice/ExynosDevice.cpp
@@ -1015,6 +1015,11 @@ bool ExynosDevice::isLbeSupported() {
return mLbeSupported;
}
+bool ExynosDevice::isColorCalibratedByDevice() {
+ ExynosDisplay *display = getDisplay(getDisplayId(HWC_DISPLAY_PRIMARY, 0));
+ return display->isColorCalibratedByDevice();
+}
+
template <class Operator>
void ExynosDevice::findActiveDisplay(Operator optor) {
for (uint32_t i = 0; i < mDisplays.size(); i++) {
diff --git a/libhwc2.1/libdevice/ExynosDevice.h b/libhwc2.1/libdevice/ExynosDevice.h
index 0532938..12c82c5 100644
--- a/libhwc2.1/libdevice/ExynosDevice.h
+++ b/libhwc2.1/libdevice/ExynosDevice.h
@@ -333,6 +333,8 @@ class ExynosDevice {
int32_t setLhbmState(bool enabled);
bool getLhbmState();
+ bool isColorCalibratedByDevice();
+
template <class Operator>
void findActiveDisplay(Operator optor);
diff --git a/libhwc2.1/libdevice/ExynosDisplay.h b/libhwc2.1/libdevice/ExynosDisplay.h
index 296f543..67d3ede 100644
--- a/libhwc2.1/libdevice/ExynosDisplay.h
+++ b/libhwc2.1/libdevice/ExynosDisplay.h
@@ -1113,6 +1113,7 @@ class ExynosDisplay {
virtual int32_t updateColorConversionInfo() { return NO_ERROR; };
virtual int32_t updatePresentColorConversionInfo() { return NO_ERROR; };
virtual bool checkRrCompensationEnabled() { return false; };
+ virtual bool isColorCalibratedByDevice() { return false; };
virtual int32_t getColorAdjustedDbv(uint32_t &) { return NO_ERROR; }
virtual int32_t SetCurrentPanelGammaSource(const displaycolor::DisplayType /* type */,
const PanelGammaSource& /* source */) {
diff --git a/libhwc2.1/pixel-display.cpp b/libhwc2.1/pixel-display.cpp
index b6d0eb3..4f5f07d 100644
--- a/libhwc2.1/pixel-display.cpp
+++ b/libhwc2.1/pixel-display.cpp
@@ -137,7 +137,11 @@ ndk::ScopedAStatus Display::getLhbmState(bool *_aidl_return) {
ndk::ScopedAStatus Display::setCompensationImageHandle(const NativeHandle &native_handle,
const std::string &imageName,
int *_aidl_return) {
- *_aidl_return = readCompensationImage(native_handle, imageName);
+ if (mDevice && mDevice->isColorCalibratedByDevice()) {
+ *_aidl_return = readCompensationImage(native_handle, imageName);
+ } else {
+ *_aidl_return = -1;
+ }
return ndk::ScopedAStatus::ok();
}
} // namespace display