libhwc2.1: Modify concept of display's type and ID

Bug: 162322019
Test: single/dual display boot to OS, and suspend/resume
Change-Id: Iebac9728b274eef0b3291fd4505edfe8ec51ca97
Signed-off-by: Seungchul Kim <sc377.kim@samsung.com>
Signed-off-by: HyunKyung Kim <hk310.kim@samsung.com>
diff --git a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
index 50fe6f8..6c103a3 100644
--- a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
+++ b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp
@@ -22,11 +22,12 @@
 #endif
 
 #include "ExynosHWCDebug.h"
+#include "ExynosHWCHelper.h"
 
 #define SKIP_FRAME_COUNT        3
 
-ExynosExternalDisplayModule::ExynosExternalDisplayModule(uint32_t __unused type, ExynosDevice *device)
-    :    ExynosExternalDisplay(HWC_DISPLAY_EXTERNAL, device)
+ExynosExternalDisplayModule::ExynosExternalDisplayModule(uint32_t index, ExynosDevice *device)
+    :    ExynosExternalDisplay(index, device)
 {
 
 }
diff --git a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
index 9e789a0..ff36c28 100644
--- a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
+++ b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.h
@@ -21,7 +21,7 @@
 
 class ExynosExternalDisplayModule : public ExynosExternalDisplay {
     public:
-        ExynosExternalDisplayModule(uint32_t type, ExynosDevice *device);
+        ExynosExternalDisplayModule(uint32_t index, ExynosDevice *device);
         ~ExynosExternalDisplayModule();
         virtual int32_t validateWinConfigData();
 };
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
index ce44160..32f16de 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
@@ -38,8 +38,8 @@
     return lm1.dppIdx == lm2.dppIdx && lm1.planeId == lm2.planeId;
 }
 
-ExynosPrimaryDisplayModule::ExynosPrimaryDisplayModule(uint32_t __unused type, ExynosDevice *device)
-    :    ExynosPrimaryDisplay(HWC_DISPLAY_PRIMARY, device), mDisplayColorLoader(DISPLAY_COLOR_LIB)
+ExynosPrimaryDisplayModule::ExynosPrimaryDisplayModule(uint32_t index, ExynosDevice *device)
+    :    ExynosPrimaryDisplay(index, device), mDisplayColorLoader(DISPLAY_COLOR_LIB)
 {
 #ifdef FORCE_GPU_COMPOSITION
     exynosHWCControl.forceGpu = true;
@@ -106,10 +106,8 @@
 
 void ExynosPrimaryDisplayModule::doPreProcessing() {
     ExynosDisplay::doPreProcessing();
-    ExynosDisplay *externalDisplay = mDevice->getDisplay(HWC_DISPLAY_EXTERNAL);
-    ExynosDisplay *virtualDisplay = mDevice->getDisplay(HWC_DISPLAY_VIRTUAL);
 
-    if ((externalDisplay->mPlugState) || (virtualDisplay->mPlugState)) {
+    if (mDevice->checkAdditionalConnection()) {
         mDisplayControl.adjustDisplayFrame = true;
     } else {
         mDisplayControl.adjustDisplayFrame = false;
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
index 6ccff87..47191b9 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
@@ -27,7 +27,7 @@
 
 class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
     public:
-        ExynosPrimaryDisplayModule(uint32_t type, ExynosDevice *device);
+        ExynosPrimaryDisplayModule(uint32_t index, ExynosDevice *device);
         ~ExynosPrimaryDisplayModule();
         void usePreDefinedWindow(bool use);
         virtual int32_t validateWinConfigData();
diff --git a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
index 9e77169..8cc99de 100644
--- a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
+++ b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.cpp
@@ -18,12 +18,11 @@
 
 #include "ExynosVirtualDisplayModule.h"
 
-ExynosVirtualDisplayModule::ExynosVirtualDisplayModule(uint32_t __unused type, ExynosDevice *device)
-    :   ExynosVirtualDisplay(type, device)
+ExynosVirtualDisplayModule::ExynosVirtualDisplayModule(uint32_t index, ExynosDevice *device)
+    :   ExynosVirtualDisplay(index, device)
 {
     mGLESFormat = HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M;
 
-    mDisplayId = HWC_DISPLAY_VIRTUAL;
     mDisplayName = android::String8("VirtualDisplay");
 
     if (device == NULL) {
diff --git a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
index a71489d..398441b 100644
--- a/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
+++ b/libhwc2.1/libvirtualdisplay/ExynosVirtualDisplayModule.h
@@ -21,7 +21,7 @@
 
 class ExynosVirtualDisplayModule : public ExynosVirtualDisplay {
 public:
-    ExynosVirtualDisplayModule(uint32_t type, ExynosDevice *device);
+    ExynosVirtualDisplayModule(uint32_t displayId, ExynosDevice *device);
     ~ExynosVirtualDisplayModule();
 
     /* getDisplayAttribute(..., config, attribute, outValue)