diff options
author | 2014-05-02 15:26:25 -0700 | |
---|---|---|
committer | 2014-05-05 16:45:26 -0700 | |
commit | 7f7da32569f8e0b3d383a40b95f8ac1d55afd801 (patch) | |
tree | 447e2fe85342ab3be8df946d40e4574905104df7 /libs/gui/SurfaceComposerClient.cpp | |
parent | 39c5e9f87670a8bc543a716ac994c8c85ac94cd5 (diff) |
Enable changing display configuration
This allows querying and switching display device configurations
through the ISurfaceComposer/SurfaceComposerClient interface.
Bug: 14320401
Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
-rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index b7af4152c2..1dffdb2013 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -623,10 +623,36 @@ void SurfaceComposerClient::setDisplayProjection(const sp<IBinder>& token, // ---------------------------------------------------------------------------- -status_t SurfaceComposerClient::getDisplayInfo( - const sp<IBinder>& display, DisplayInfo* info) +status_t SurfaceComposerClient::getDisplayConfigs( + const sp<IBinder>& display, Vector<DisplayInfo>* configs) { - return ComposerService::getComposerService()->getDisplayInfo(display, info); + return ComposerService::getComposerService()->getDisplayConfigs(display, configs); +} + +status_t SurfaceComposerClient::getDisplayInfo(const sp<IBinder>& display, + DisplayInfo* info) { + Vector<DisplayInfo> configs; + status_t result = getDisplayConfigs(display, &configs); + if (result != NO_ERROR) { + return result; + } + + int activeId = getActiveConfig(display); + if (activeId < 0) { + ALOGE("No active configuration found"); + return NAME_NOT_FOUND; + } + + *info = configs[activeId]; + return NO_ERROR; +} + +int SurfaceComposerClient::getActiveConfig(const sp<IBinder>& display) { + return ComposerService::getComposerService()->getActiveConfig(display); +} + +status_t SurfaceComposerClient::setActiveConfig(const sp<IBinder>& display, int id) { + return ComposerService::getComposerService()->setActiveConfig(display, id); } void SurfaceComposerClient::blankDisplay(const sp<IBinder>& token) { |