DisplayDeviceInfo.java revision 848c2dc93b6795e171f3dd6f64ea0be65e2762ca
1fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown/*
2fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * Copyright (C) 2012 The Android Open Source Project
3fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown *
4fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
5fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * you may not use this file except in compliance with the License.
6fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * You may obtain a copy of the License at
7fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown *
8fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
9fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown *
10fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * Unless required by applicable law or agreed to in writing, software
11fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
12fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * See the License for the specific language governing permissions and
14fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * limitations under the License.
15fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown */
16fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
17fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownpackage com.android.server.display;
18fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
19fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown/**
20fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * Describes the characteristics of a physical display device.
21fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown */
22fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownpublic final class DisplayDeviceInfo {
23fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    /**
24848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown     * Gets the name of the display device, which may be derived from
25848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown     * EDID or other sources.  The name may be displayed to the user.
26848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown     */
27848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown    public String name;
28848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown
29848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown    /**
30fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     * The width of the display in its natural orientation, in pixels.
31fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     * This value is not affected by display rotation.
32fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     */
33fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public int width;
34fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
35fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    /**
36fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     * The height of the display in its natural orientation, in pixels.
37fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     * This value is not affected by display rotation.
38fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown     */
39fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public int height;
40fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
41fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public float refreshRate;
42908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn    public int densityDpi;
43fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public float xDpi;
44fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public float yDpi;
45fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
46fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public void copyFrom(DisplayDeviceInfo other) {
47848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown        name = other.name;
48fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        width = other.width;
49fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        height = other.height;
50fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        refreshRate = other.refreshRate;
51908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn        densityDpi = other.densityDpi;
52fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        xDpi = other.xDpi;
53fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        yDpi = other.yDpi;
54fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    }
55fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
56848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown    // For debugging purposes
57fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    @Override
58fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public String toString() {
59848c2dc93b6795e171f3dd6f64ea0be65e2762caJeff Brown        return "\"" + name + "\": " + width + " x " + height + ", " + refreshRate + " fps, "
60908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn                + "density " + densityDpi + ", " + xDpi + " x " + yDpi + " dpi";
61fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    }
62fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown}
63