VirtualDisplay.java revision a506a6ec94863a35acca9feb165db76ddac3892c
1a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown/* 2a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Copyright (C) 2013 The Android Open Source Project 3a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * 4a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * you may not use this file except in compliance with the License. 6a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * You may obtain a copy of the License at 7a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * 8a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * 10a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Unless required by applicable law or agreed to in writing, software 11a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * See the License for the specific language governing permissions and 14a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * limitations under the License. 15a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown */ 16a506a6ec94863a35acca9feb165db76ddac3892cJeff Brownpackage android.hardware.display; 17a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 18a506a6ec94863a35acca9feb165db76ddac3892cJeff Brownimport android.os.IBinder; 19a506a6ec94863a35acca9feb165db76ddac3892cJeff Brownimport android.view.Display; 20a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 21a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown/** 22a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Represents a virtual display. 23a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * 24a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * @see DisplayManager#createPrivateVirtualDisplay 25a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown */ 26a506a6ec94863a35acca9feb165db76ddac3892cJeff Brownpublic final class VirtualDisplay { 27a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown private final DisplayManagerGlobal mGlobal; 28a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown private final Display mDisplay; 29a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown private IBinder mToken; 30a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 31a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown VirtualDisplay(DisplayManagerGlobal global, Display display, IBinder token) { 32a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown mGlobal = global; 33a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown mDisplay = display; 34a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown mToken = token; 35a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown } 36a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 37a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown /** 38a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Gets the virtual display. 39a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown */ 40a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown public Display getDisplay() { 41a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown return mDisplay; 42a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown } 43a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 44a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown /** 45a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * Releases the virtual display and destroys its underlying surface. 46a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * <p> 47a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * All remaining windows on the virtual display will be forcibly removed 48a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * as part of releasing the virtual display. 49a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown * </p> 50a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown */ 51a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown public void release() { 52a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown if (mToken != null) { 53a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown mGlobal.releaseVirtualDisplay(mToken); 54a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown mToken = null; 55a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown } 56a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown } 57a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 58a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown @Override 59a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown public String toString() { 60a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown return "VirtualDisplay{display=" + mDisplay + ", token=" + mToken + "}"; 61a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown } 62a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown} 63