drm_hwcomposer: Rework DrmMode class
Simplify code and raise-up clang-tidy level of DrmMode class
to 'normal'.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index 333857e..cfef776 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -301,25 +301,25 @@
auto attribute = static_cast<HWC2::Attribute>(attribute_in);
switch (attribute) {
case HWC2::Attribute::Width:
- *value = static_cast<int>(hwc_config.mode.h_display());
+ *value = static_cast<int>(hwc_config.mode.GetRawMode().hdisplay);
break;
case HWC2::Attribute::Height:
- *value = static_cast<int>(hwc_config.mode.v_display());
+ *value = static_cast<int>(hwc_config.mode.GetRawMode().vdisplay);
break;
case HWC2::Attribute::VsyncPeriod:
// in nanoseconds
- *value = static_cast<int>(1E9 / hwc_config.mode.v_refresh());
+ *value = static_cast<int>(1E9 / hwc_config.mode.GetVRefresh());
break;
case HWC2::Attribute::DpiX:
// Dots per 1000 inches
- *value = mm_width ? static_cast<int>(hwc_config.mode.h_display() *
- kUmPerInch / mm_width)
+ *value = mm_width ? int(hwc_config.mode.GetRawMode().hdisplay *
+ kUmPerInch / mm_width)
: -1;
break;
case HWC2::Attribute::DpiY:
// Dots per 1000 inches
- *value = mm_height ? static_cast<int>(hwc_config.mode.v_display() *
- kUmPerInch / mm_height)
+ *value = mm_height ? int(hwc_config.mode.GetRawMode().vdisplay *
+ kUmPerInch / mm_height)
: -1;
break;
#if PLATFORM_SDK_VERSION > 29
@@ -451,7 +451,7 @@
}
auto PrevModeVsyncPeriodNs = static_cast<int>(
- 1E9 / GetPipe().connector->Get()->GetActiveMode().v_refresh());
+ 1E9 / GetPipe().connector->Get()->GetActiveMode().GetVRefresh());
auto mode_update_commited_ = false;
if (staged_mode_ &&
@@ -459,8 +459,8 @@
client_layer_.SetLayerDisplayFrame(
(hwc_rect_t){.left = 0,
.top = 0,
- .right = static_cast<int>(staged_mode_->h_display()),
- .bottom = static_cast<int>(staged_mode_->v_display())});
+ .right = int(staged_mode_->GetRawMode().hdisplay),
+ .bottom = int(staged_mode_->GetRawMode().vdisplay)});
configs_.active_config_id = staged_mode_config_id_;
diff --git a/hwc2_device/HwcDisplayConfigs.cpp b/hwc2_device/HwcDisplayConfigs.cpp
index 346572f..9727989 100644
--- a/hwc2_device/HwcDisplayConfigs.cpp
+++ b/hwc2_device/HwcDisplayConfigs.cpp
@@ -87,8 +87,10 @@
/* Find group for the new mode or create new group */
uint32_t group_found = 0;
for (auto &hwc_config : hwc_configs) {
- if (mode.h_display() == hwc_config.second.mode.h_display() &&
- mode.v_display() == hwc_config.second.mode.v_display()) {
+ if (mode.GetRawMode().hdisplay ==
+ hwc_config.second.mode.GetRawMode().hdisplay &&
+ mode.GetRawMode().vdisplay ==
+ hwc_config.second.mode.GetRawMode().vdisplay) {
group_found = hwc_config.second.group_id;
}
}
@@ -97,9 +99,9 @@
}
bool disabled = false;
- if ((mode.flags() & DRM_MODE_FLAG_3D_MASK) != 0) {
+ if ((mode.GetRawMode().flags & DRM_MODE_FLAG_3D_MASK) != 0) {
ALOGI("Disabling display mode %s (Modes with 3D flag aren't supported)",
- mode.name().c_str());
+ mode.GetName().c_str());
disabled = true;
}
@@ -112,7 +114,7 @@
};
/* Chwck if the mode is preferred */
- if ((mode.type() & DRM_MODE_TYPE_PREFERRED) != 0 &&
+ if ((mode.GetRawMode().type & DRM_MODE_TYPE_PREFERRED) != 0 &&
preferred_config_id == 0) {
preferred_config_id = last_config_id;
preferred_config_group_id = group_found;
@@ -167,7 +169,7 @@
ALOGI(
"Group %i: Disabling display mode %s (This group should consist "
"of %s modes)",
- group, hwc_config.second.mode.name().c_str(),
+ group, hwc_config.second.mode.GetName().c_str(),
group_contains_preferred_interlaced ? "interlaced" : "progressive");
hwc_config.second.disabled = true;
@@ -183,13 +185,13 @@
for (uint32_t m2 = first_config_id; m2 < last_config_id; m2++) {
if (m1 != m2 && hwc_configs[m1].group_id == hwc_configs[m2].group_id &&
!hwc_configs[m1].disabled && !hwc_configs[m2].disabled &&
- fabsf(hwc_configs[m1].mode.v_refresh() -
- hwc_configs[m2].mode.v_refresh()) < kMinFpsDelta) {
+ fabsf(hwc_configs[m1].mode.GetVRefresh() -
+ hwc_configs[m2].mode.GetVRefresh()) < kMinFpsDelta) {
ALOGI(
"Group %i: Disabling display mode %s (Refresh rate value is "
"too close to existing mode %s)",
- hwc_configs[m2].group_id, hwc_configs[m2].mode.name().c_str(),
- hwc_configs[m1].mode.name().c_str());
+ hwc_configs[m2].group_id, hwc_configs[m2].mode.GetName().c_str(),
+ hwc_configs[m1].mode.GetName().c_str());
hwc_configs[m2].disabled = true;
}
diff --git a/hwc2_device/HwcDisplayConfigs.h b/hwc2_device/HwcDisplayConfigs.h
index 639b302..98067c1 100644
--- a/hwc2_device/HwcDisplayConfigs.h
+++ b/hwc2_device/HwcDisplayConfigs.h
@@ -29,11 +29,11 @@
struct HwcDisplayConfig {
uint32_t id{};
uint32_t group_id{};
- DrmMode mode;
+ DrmMode mode{};
bool disabled{};
bool IsInterlaced() const {
- return (mode.flags() & DRM_MODE_FLAG_INTERLACE) != 0;
+ return (mode.GetRawMode().flags & DRM_MODE_FLAG_INTERLACE) != 0;
}
};