diff options
author | Mathias Agopian <mathias@google.com> | 2010-09-29 13:02:36 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-09-29 16:55:15 -0700 |
commit | 38ed2e39c54a42dda8f00620f960788f569a3698 (patch) | |
tree | bf7d48a3bb3c372e7348cab154cb73301ce4a87f /cmds/screencap | |
parent | e17c054d34676c25f03b4eb0d8daebe41b84bf6e (diff) | |
download | frameworks_base-38ed2e39c54a42dda8f00620f960788f569a3698.zip frameworks_base-38ed2e39c54a42dda8f00620f960788f569a3698.tar.gz frameworks_base-38ed2e39c54a42dda8f00620f960788f569a3698.tar.bz2 |
refactored screenshot code
the core screenshot function now can capture the screen at any lower resolution
performing bilinear filtering.
we also now have some client code to interface with the screenshot service.
it's now possible to request a screenshot at a lower resolution.
Change-Id: I5a3b0e431421800e3aad601d9af8f94adffbc71f
Diffstat (limited to 'cmds/screencap')
-rw-r--r-- | cmds/screencap/screencap.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp index 6ce5b86..bc5e10d 100644 --- a/cmds/screencap/screencap.cpp +++ b/cmds/screencap/screencap.cpp @@ -17,32 +17,21 @@ #include <unistd.h> #include <fcntl.h> -#include <utils/Log.h> - -#include <binder/IPCThreadState.h> -#include <binder/ProcessState.h> -#include <binder/IServiceManager.h> - #include <binder/IMemory.h> -#include <surfaceflinger/ISurfaceComposer.h> +#include <surfaceflinger/SurfaceComposerClient.h> using namespace android; int main(int argc, char** argv) { - const String16 name("SurfaceFlinger"); - sp<ISurfaceComposer> composer; - if (getService(name, &composer) != NO_ERROR) - return 0; - - sp<IMemoryHeap> heap; - uint32_t w, h; - PixelFormat f; - status_t err = composer->captureScreen(0, &heap, &w, &h, &f); - if (err != NO_ERROR) + ScreenshotClient screenshot; + if (screenshot.update() != NO_ERROR) return 0; - uint8_t* base = (uint8_t*)heap->getBase(); + void const* base = screenshot.getPixels(); + uint32_t w = screenshot.getWidth(); + uint32_t h = screenshot.getHeight(); + uint32_t f = screenshot.getFormat(); int fd = dup(STDOUT_FILENO); write(fd, &w, 4); write(fd, &h, 4); |