drm_hwcomposer: Tidy-up DrmConnector class

Implement DrmConnector instantiation through CreateInstance() static method,
which helps to reduce complexity of DrmDevice::Init() function.

Move Connector-to-CRTC binding information to the DrmDevice class.

Move drm/DrmConnector.h to Normal clang-tidy checks list by fixing
clang-tidy findings.

Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/hwc2_device/DrmHwcTwo.cpp b/hwc2_device/DrmHwcTwo.cpp
index 87cc238..698c1e5 100644
--- a/hwc2_device/DrmHwcTwo.cpp
+++ b/hwc2_device/DrmHwcTwo.cpp
@@ -165,42 +165,40 @@
 
 void DrmHwcTwo::HandleInitialHotplugState(DrmDevice *drmDevice) {
   for (const auto &conn : drmDevice->connectors()) {
-    int display_id = conn->display();
+    int display_id = drmDevice->GetDisplayId(conn.get());
     auto &display = displays_.at(display_id);
 
-    if (conn->state() != DRM_MODE_CONNECTED && !display.IsInHeadlessMode())
+    if (!conn->IsConnected() && !display.IsInHeadlessMode())
       continue;
-    HandleDisplayHotplug(conn->display(), display.IsInHeadlessMode()
-                                              ? DRM_MODE_CONNECTED
-                                              : conn->state());
+    HandleDisplayHotplug(display_id, display.IsInHeadlessMode()
+                                         ? 1
+                                         : (conn->IsConnected() ? 1 : 0));
   }
 }
 
 void DrmHwcTwo::HandleHotplugUEvent() {
   for (const auto &drm : resource_manager_.GetDrmDevices()) {
     for (const auto &conn : drm->connectors()) {
-      drmModeConnection old_state = conn->state();
-      drmModeConnection cur_state = conn->UpdateModes()
-                                        ? DRM_MODE_UNKNOWNCONNECTION
-                                        : conn->state();
+      int display_id = drm->GetDisplayId(conn.get());
 
+      bool old_state = conn->IsConnected();
+      bool cur_state = conn->UpdateModes() ? false : conn->IsConnected();
       if (cur_state == old_state)
         continue;
 
       ALOGI("%s event for connector %u on display %d",
-            cur_state == DRM_MODE_CONNECTED ? "Plug" : "Unplug", conn->id(),
-            conn->display());
+            cur_state == DRM_MODE_CONNECTED ? "Plug" : "Unplug", conn->GetId(),
+            display_id);
 
-      int display_id = conn->display();
       auto &display = displays_.at(display_id);
       display.ChosePreferredConfig();
-      if (cur_state != DRM_MODE_CONNECTED) {
+      if (cur_state) {
         display.ClearDisplay();
       }
 
       HandleDisplayHotplug(display_id, display.IsInHeadlessMode()
                                            ? DRM_MODE_CONNECTED
-                                           : cur_state);
+                                           : (cur_state ? 1 : 0));
     }
   }
 }
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index f18e00d..54cf867 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -69,7 +69,7 @@
   }
 
   std::stringstream ss;
-  ss << "- Display on: " << connector_->name() << "\n"
+  ss << "- Display on: " << connector_->GetName() << "\n"
      << "  Flattening state: " << flattening_state_str << "\n"
      << "Statistics since system boot:\n"
      << DumpDelta(total_stats_) << "\n\n"
@@ -363,7 +363,7 @@
 
 HWC2::Error HwcDisplay::GetDisplayName(uint32_t *size, char *name) {
   std::ostringstream stream;
-  stream << "display-" << connector_->id();
+  stream << "display-" << connector_->GetId();
   std::string string = stream.str();
   size_t length = string.length();
   if (!name) {
@@ -715,9 +715,9 @@
   /* Primary display should be always internal,
    * otherwise SF will be unhappy and will crash
    */
-  if (connector_->internal() || handle_ == kPrimaryDisplay)
+  if (connector_->IsInternal() || handle_ == kPrimaryDisplay)
     *outType = static_cast<uint32_t>(HWC2::DisplayConnectionType::Internal);
-  else if (connector_->external())
+  else if (connector_->IsExternal())
     *outType = static_cast<uint32_t>(HWC2::DisplayConnectionType::External);
   else
     return HWC2::Error::BadConfig;
@@ -785,7 +785,7 @@
   } else {
     *outDataSize = blob->length;
   }
-  *outPort = connector_->id();
+  *outPort = connector_->GetId();
 
   return HWC2::Error::None;
 }
diff --git a/hwc2_device/HwcDisplay.h b/hwc2_device/HwcDisplay.h
index 76456b7..3e8a548 100644
--- a/hwc2_device/HwcDisplay.h
+++ b/hwc2_device/HwcDisplay.h
@@ -209,8 +209,7 @@
    * https://source.android.com/devices/graphics/hotplug#handling-common-scenarios
    */
   bool IsInHeadlessMode() {
-    return handle_ == kPrimaryDisplay &&
-           connector_->state() != DRM_MODE_CONNECTED;
+    return handle_ == kPrimaryDisplay && !connector_->IsConnected();
   }
 
  private:
diff --git a/hwc2_device/HwcDisplayConfigs.cpp b/hwc2_device/HwcDisplayConfigs.cpp
index 16f1ed0..f6ccdb7 100644
--- a/hwc2_device/HwcDisplayConfigs.cpp
+++ b/hwc2_device/HwcDisplayConfigs.cpp
@@ -61,14 +61,14 @@
     return HWC2::Error::BadDisplay;
   }
 
-  if (connector.modes().empty()) {
+  if (connector.GetModes().empty()) {
     ALOGE("No modes reported by KMS");
     return HWC2::Error::BadDisplay;
   }
 
   hwc_configs.clear();
-  mm_width = connector.mm_width();
-  mm_height = connector.mm_height();
+  mm_width = connector.GetMmWidth();
+  mm_height = connector.GetMmHeight();
 
   preferred_config_id = 0;
   int preferred_config_group_id = 0;
@@ -77,7 +77,7 @@
   int last_group_id = 1;
 
   /* Group modes */
-  for (const auto &mode : connector.modes()) {
+  for (const auto &mode : connector.GetModes()) {
     /* Find group for the new mode or create new group */
     int group_found = 0;
     for (auto &hwc_config : hwc_configs) {