xref: /aosp_15_r20/external/autotest/client/cros/multimedia/display_info.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li# Copyright 2014 The Chromium OS Authors. All rights reserved.
2*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
3*9c5db199SXin Li# found in the LICENSE file.
4*9c5db199SXin Li
5*9c5db199SXin Li"""Module for display info."""
6*9c5db199SXin Li
7*9c5db199SXin Liclass DisplayInfo(object):
8*9c5db199SXin Li    """The class match displayInfo object from chrome.system.display API.
9*9c5db199SXin Li    """
10*9c5db199SXin Li
11*9c5db199SXin Li    class Bounds(object):
12*9c5db199SXin Li        def __init__(self, d):
13*9c5db199SXin Li            """The class match Bounds object from chrome.system.display API.
14*9c5db199SXin Li
15*9c5db199SXin Li            @param d: Map of display properties.
16*9c5db199SXin Li            """
17*9c5db199SXin Li
18*9c5db199SXin Li            self.left = d['left']
19*9c5db199SXin Li            self.top = d['top']
20*9c5db199SXin Li            self.width = d['width']
21*9c5db199SXin Li            self.height = d['height']
22*9c5db199SXin Li
23*9c5db199SXin Li
24*9c5db199SXin Li    class Insets(object):
25*9c5db199SXin Li        def __init__(self, d):
26*9c5db199SXin Li            """The class match Insets object from chrome.system.display API.
27*9c5db199SXin Li
28*9c5db199SXin Li            @param d: Map of display properties.
29*9c5db199SXin Li            """
30*9c5db199SXin Li
31*9c5db199SXin Li            self.left = d['left']
32*9c5db199SXin Li            self.top = d['top']
33*9c5db199SXin Li            self.right = d['right']
34*9c5db199SXin Li            self.bottom = d['bottom']
35*9c5db199SXin Li
36*9c5db199SXin Li
37*9c5db199SXin Li    class Edid(object):
38*9c5db199SXin Li        def __init__(self, edid):
39*9c5db199SXin Li            """The class match the Edid object from chrome.system.display API.
40*9c5db199SXin Li
41*9c5db199SXin Li            @param edid: Map of Edid properties.
42*9c5db199SXin Li            """
43*9c5db199SXin Li
44*9c5db199SXin Li            self.manufacturer_id = edid['manufacturerId']
45*9c5db199SXin Li            self.year_of_manufacture = edid['yearOfManufacture']
46*9c5db199SXin Li            self.product_id = edid['productId']
47*9c5db199SXin Li
48*9c5db199SXin Li
49*9c5db199SXin Li    def __init__(self, d):
50*9c5db199SXin Li        self.display_id = d['id']
51*9c5db199SXin Li        self.name = d['name']
52*9c5db199SXin Li        self.mirroring_source_id = d['mirroringSourceId']
53*9c5db199SXin Li        self.is_primary = d['isPrimary']
54*9c5db199SXin Li        self.is_internal = d['isInternal']
55*9c5db199SXin Li        self.is_enabled = d['isEnabled']
56*9c5db199SXin Li        self.dpi_x = d['dpiX']
57*9c5db199SXin Li        self.dpi_y = d['dpiY']
58*9c5db199SXin Li        self.rotation = d['rotation']
59*9c5db199SXin Li        self.bounds = self.Bounds(d['bounds'])
60*9c5db199SXin Li        self.overscan = self.Insets(d['overscan'])
61*9c5db199SXin Li        self.work_area = self.Bounds(d['workArea'])
62*9c5db199SXin Li        self.edid = self.Edid(d['edid'])
63