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