HeadlessDisplayAdapter.java revision 908aecc3a63c5520d5b11da14a9383f885b7d126
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
19908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackbornimport android.util.DisplayMetrics;
20908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn
21fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown/**
22fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown * Provides a fake default display for headless systems.
23fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown */
24fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownpublic final class HeadlessDisplayAdapter extends DisplayAdapter {
25fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    private final DisplayDevice mDefaultDisplay = new DisplayDevice() {
26fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        @Override
27fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        public void getInfo(DisplayDeviceInfo outInfo) {
28fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown            outInfo.width = 640;
29fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown            outInfo.height = 480;
30fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown            outInfo.refreshRate = 60;
31908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn            outInfo.densityDpi = DisplayMetrics.DENSITY_DEFAULT;
32fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown            outInfo.xDpi = 160;
33fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown            outInfo.yDpi = 160;
34fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        }
35fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    };
36fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
37fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    @Override
38fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public String getName() {
39fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        return "HeadlessDisplayAdapter";
40fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    }
41fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown
42fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    @Override
43fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    public DisplayDevice[] getDisplayDevices() {
44fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown        return new DisplayDevice[] { mDefaultDisplay };
45fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown    }
46fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown}
47