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 android.hardware.display; 18fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown 19bd6e1500aedc5461e832f69e76341bff0e55fa2bJeff Brownimport android.hardware.display.IDisplayManagerCallback; 20e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brownimport android.hardware.display.WifiDisplay; 21e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brownimport android.hardware.display.WifiDisplayStatus; 22fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brownimport android.view.DisplayInfo; 23a506a6ec94863a35acca9feb165db76ddac3892cJeff Brownimport android.view.Surface; 24fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown 25fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown/** @hide */ 26fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Browninterface IDisplayManager { 27bd6e1500aedc5461e832f69e76341bff0e55fa2bJeff Brown DisplayInfo getDisplayInfo(int displayId); 28bd6e1500aedc5461e832f69e76341bff0e55fa2bJeff Brown int[] getDisplayIds(); 29bd6e1500aedc5461e832f69e76341bff0e55fa2bJeff Brown 30bd6e1500aedc5461e832f69e76341bff0e55fa2bJeff Brown void registerCallback(in IDisplayManagerCallback callback); 31e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown 32feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 33feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // The process must have previously registered a callback. 34feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown void startWifiDisplayScan(); 35e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown 36feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 37feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown void stopWifiDisplayScan(); 38feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown 39feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 40e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown void connectWifiDisplay(String address); 41e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown 42bc335457462a12434a9df6955de1dd693cdccac7Jeff Brown // No permissions required. 43e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown void disconnectWifiDisplay(); 44e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown 45e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 4689d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown void renameWifiDisplay(String address, String alias); 4789d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown 4889d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 4989d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown void forgetWifiDisplay(String address); 5089d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown 51feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 52feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown void pauseWifiDisplay(); 53feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown 54feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown // Requires CONFIGURE_WIFI_DISPLAY permission. 55feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown void resumeWifiDisplay(); 56feef9887e8f8eb6f64fc1b4552c02efb5755cdc1Jeff Brown 57bc335457462a12434a9df6955de1dd693cdccac7Jeff Brown // No permissions required. 58e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9Jeff Brown WifiDisplayStatus getWifiDisplayStatus(); 59a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 607d00affce6e25b22fd8fc135933b3bf6b547a0dcJeff Brown // Requires CAPTURE_VIDEO_OUTPUT or CAPTURE_SECURE_VIDEO_OUTPUT for certain 617d00affce6e25b22fd8fc135933b3bf6b547a0dcJeff Brown // combinations of flags. 627d00affce6e25b22fd8fc135933b3bf6b547a0dcJeff Brown int createVirtualDisplay(IBinder token, String packageName, 637d00affce6e25b22fd8fc135933b3bf6b547a0dcJeff Brown String name, int width, int height, int densityDpi, in Surface surface, int flags); 64a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown 65a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown // No permissions required but must be same Uid as the creator. 66a506a6ec94863a35acca9feb165db76ddac3892cJeff Brown void releaseVirtualDisplay(in IBinder token); 67fa25bf5382467b1018bd9af7f1cb30a23d7d59f7Jeff Brown} 68