Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 125c5f3a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "make-displayid-opaque" into main

* changes:
  SF: Cache display port in physical DisplaySnapshot
  SF: Cache display port in DisplayIdentification on onHotplugConnect
parents b587a472 17029d81
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -417,6 +417,7 @@ std::optional<DisplayIdentificationInfo> parseDisplayIdentificationData(
    return DisplayIdentificationInfo{
            .id = displayId,
            .name = std::string(edid->displayName),
            .port = port,
            .deviceProductInfo = buildDeviceProductInfo(*edid),
            .preferredDetailedTimingDescriptor = edid->preferredDetailedTimingDescriptor,
    };
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ struct DetailedTimingDescriptor {
struct DisplayIdentificationInfo {
    PhysicalDisplayId id;
    std::string name;
    uint8_t port;
    std::optional<DeviceProductInfo> deviceProductInfo;
    std::optional<DetailedTimingDescriptor> preferredDetailedTimingDescriptor;
};
+4 −1
Original line number Diff line number Diff line
@@ -26,11 +26,12 @@

namespace android::display {

DisplaySnapshot::DisplaySnapshot(PhysicalDisplayId displayId,
DisplaySnapshot::DisplaySnapshot(PhysicalDisplayId displayId, uint8_t port,
                                 ui::DisplayConnectionType connectionType,
                                 DisplayModes&& displayModes, ui::ColorModes&& colorModes,
                                 std::optional<DeviceProductInfo>&& deviceProductInfo)
      : mDisplayId(displayId),
        mPort(port),
        mConnectionType(connectionType),
        mDisplayModes(std::move(displayModes)),
        mColorModes(std::move(colorModes)),
@@ -62,6 +63,8 @@ ui::ColorModes DisplaySnapshot::filterColorModes(bool supportsWideColor) const {
void DisplaySnapshot::dump(utils::Dumper& dumper) const {
    using namespace std::string_view_literals;

    dumper.dump("port"sv, mPort);

    dumper.dump("connectionType"sv, ftl::enum_string(mConnectionType));

    dumper.dump("colorModes"sv);
+5 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#pragma once

#include <cstdint>
#include <optional>

#include <ui/ColorMode.h>
@@ -30,13 +31,14 @@ namespace android::display {
// Immutable state of a physical display, captured on hotplug.
class DisplaySnapshot {
public:
    DisplaySnapshot(PhysicalDisplayId, ui::DisplayConnectionType, DisplayModes&&, ui::ColorModes&&,
                    std::optional<DeviceProductInfo>&&);
    DisplaySnapshot(PhysicalDisplayId, uint8_t, ui::DisplayConnectionType, DisplayModes&&,
                    ui::ColorModes&&, std::optional<DeviceProductInfo>&&);

    DisplaySnapshot(const DisplaySnapshot&) = delete;
    DisplaySnapshot(DisplaySnapshot&&) = default;

    PhysicalDisplayId displayId() const { return mDisplayId; }
    uint8_t port() const { return mPort; }
    ui::DisplayConnectionType connectionType() const { return mConnectionType; }

    std::optional<DisplayModeId> translateModeId(hal::HWConfigId) const;
@@ -51,6 +53,7 @@ public:

private:
    const PhysicalDisplayId mDisplayId;
    const uint8_t mPort;
    const ui::DisplayConnectionType mConnectionType;

    // Effectively const except in move constructor.
+1 −0
Original line number Diff line number Diff line
@@ -1180,6 +1180,7 @@ std::optional<DisplayIdentificationInfo> HWComposer::onHotplugConnect(
            return DisplayIdentificationInfo{.id = PhysicalDisplayId::fromPort(port),
                                             .name = isPrimary ? "Primary display"
                                                               : "Secondary display",
                                             .port = port,
                                             .deviceProductInfo = std::nullopt};
        }();

Loading