blob: ca3e58094400530ada0a89dc7fbe995b920d72c9 [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.display;
import android.content.pm.ParceledListSlice;
import android.graphics.Point;
import android.hardware.display.BrightnessConfiguration;
import android.hardware.display.BrightnessInfo;
import android.hardware.display.Curve;
import android.hardware.graphics.common.DisplayDecorationSupport;
import android.hardware.display.IDisplayManagerCallback;
import android.hardware.display.IVirtualDisplayCallback;
import android.hardware.display.VirtualDisplayConfig;
import android.hardware.display.WifiDisplay;
import android.hardware.display.WifiDisplayStatus;
import android.media.projection.IMediaProjection;
import android.view.Display.Mode;
import android.view.DisplayInfo;
import android.view.Surface;
/** @hide */
interface IDisplayManager {
@UnsupportedAppUsage
DisplayInfo getDisplayInfo(int displayId);
int[] getDisplayIds();
boolean isUidPresentOnDisplay(int uid, int displayId);
void registerCallback(in IDisplayManagerCallback callback);
void registerCallbackWithEventMask(in IDisplayManagerCallback callback, long eventsMask);
// Requires CONFIGURE_WIFI_DISPLAY permission.
// The process must have previously registered a callback.
void startWifiDisplayScan();
// Requires CONFIGURE_WIFI_DISPLAY permission.
void stopWifiDisplayScan();
// Requires CONFIGURE_WIFI_DISPLAY permission.
void connectWifiDisplay(String address);
// No permissions required.
void disconnectWifiDisplay();
// Requires CONFIGURE_WIFI_DISPLAY permission.
void renameWifiDisplay(String address, String alias);
// Requires CONFIGURE_WIFI_DISPLAY permission.
void forgetWifiDisplay(String address);
// Requires CONFIGURE_WIFI_DISPLAY permission.
void pauseWifiDisplay();
// Requires CONFIGURE_WIFI_DISPLAY permission.
void resumeWifiDisplay();
// No permissions required.
WifiDisplayStatus getWifiDisplayStatus();
// Requires WRITE_SECURE_SETTINGS permission.
void setUserDisabledHdrTypes(in int[] userDisabledTypes);
// Requires WRITE_SECURE_SETTINGS permission.
void setAreUserDisabledHdrTypesAllowed(boolean areUserDisabledHdrTypesAllowed);
// No permissions required.
boolean areUserDisabledHdrTypesAllowed();
// No permissions required.
int[] getUserDisabledHdrTypes();
// Requires CONFIGURE_DISPLAY_COLOR_MODE
void requestColorMode(int displayId, int colorMode);
// Requires CAPTURE_VIDEO_OUTPUT, CAPTURE_SECURE_VIDEO_OUTPUT, or an appropriate
// MediaProjection token for certain combinations of flags.
int createVirtualDisplay(in VirtualDisplayConfig virtualDisplayConfig,
in IVirtualDisplayCallback callback, in IMediaProjection projectionToken,
String packageName);
// No permissions required, but must be same Uid as the creator.
void resizeVirtualDisplay(in IVirtualDisplayCallback token,
int width, int height, int densityDpi);
// No permissions required but must be same Uid as the creator.
void setVirtualDisplaySurface(in IVirtualDisplayCallback token, in Surface surface);
// No permissions required but must be same Uid as the creator.
void releaseVirtualDisplay(in IVirtualDisplayCallback token);
// No permissions required but must be same Uid as the creator.
void setVirtualDisplayState(in IVirtualDisplayCallback token, boolean isOn);
// Get a stable metric for the device's display size. No permissions required.
Point getStableDisplaySize();
// Requires BRIGHTNESS_SLIDER_USAGE permission.
ParceledListSlice getBrightnessEvents(String callingPackage);
// Requires ACCESS_AMBIENT_LIGHT_STATS permission.
ParceledListSlice getAmbientBrightnessStats();
// Sets the global brightness configuration for a given user. Requires
// CONFIGURE_DISPLAY_BRIGHTNESS, and INTERACT_ACROSS_USER if the user being configured is not
// the same as the calling user.
void setBrightnessConfigurationForUser(in BrightnessConfiguration c, int userId,
String packageName);
// Sets the global brightness configuration for a given display. Requires
// CONFIGURE_DISPLAY_BRIGHTNESS.
void setBrightnessConfigurationForDisplay(in BrightnessConfiguration c, String uniqueDisplayId,
int userId, String packageName);
// Gets the brightness configuration for a given display. Requires
// CONFIGURE_DISPLAY_BRIGHTNESS.
BrightnessConfiguration getBrightnessConfigurationForDisplay(String uniqueDisplayId,
int userId);
// Gets the global brightness configuration for a given user. Requires
// CONFIGURE_DISPLAY_BRIGHTNESS, and INTERACT_ACROSS_USER if the user is not
// the same as the calling user.
BrightnessConfiguration getBrightnessConfigurationForUser(int userId);
// Gets the default brightness configuration if configured.
BrightnessConfiguration getDefaultBrightnessConfiguration();
// Gets the last requested minimal post processing settings for display with displayId.
boolean isMinimalPostProcessingRequested(int displayId);
// Temporarily sets the display brightness.
void setTemporaryBrightness(int displayId, float brightness);
// Saves the display brightness.
void setBrightness(int displayId, float brightness);
// Retrieves the display brightness.
float getBrightness(int displayId);
// Temporarily sets the auto brightness adjustment factor.
void setTemporaryAutoBrightnessAdjustment(float adjustment);
// Get the minimum brightness curve.
Curve getMinimumBrightnessCurve();
// Get Brightness Information for the specified display.
BrightnessInfo getBrightnessInfo(int displayId);
// Gets the id of the preferred wide gamut color space for all displays.
// The wide gamut color space is returned from composition pipeline
// based on hardware capability.
int getPreferredWideGamutColorSpaceId();
// Sets the user preferred display mode.
// Requires MODIFY_USER_PREFERRED_DISPLAY_MODE permission.
void setUserPreferredDisplayMode(int displayId, in Mode mode);
Mode getUserPreferredDisplayMode(int displayId);
Mode getSystemPreferredDisplayMode(int displayId);
// When enabled the app requested display resolution and refresh rate is always selected
// in DisplayModeDirector regardless of user settings and policies for low brightness, low
// battery etc.
void setShouldAlwaysRespectAppRequestedMode(boolean enabled);
boolean shouldAlwaysRespectAppRequestedMode();
// Sets the refresh rate switching type.
void setRefreshRateSwitchingType(int newValue);
// Returns the refresh rate switching type.
int getRefreshRateSwitchingType();
// Query for DISPLAY_DECORATION support.
DisplayDecorationSupport getDisplayDecorationSupport(int displayId);
}