diff options
author | Mathias Agopian <mathias@google.com> | 2010-10-04 20:04:42 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-04 20:04:42 -0700 |
commit | 19058877df9bf94f197a72855f810f7f6bf8d068 (patch) | |
tree | f88763bcad2b9d97f19538bb0a4f40e83c4f8a8a /cmds | |
parent | b9aacfdfb014cc0299f7999d2a8940cd60a4cc59 (diff) | |
parent | 597c7f67b5f2491c6098a1de241a3f0fd274688a (diff) | |
download | frameworks_base-19058877df9bf94f197a72855f810f7f6bf8d068.zip frameworks_base-19058877df9bf94f197a72855f810f7f6bf8d068.tar.gz frameworks_base-19058877df9bf94f197a72855f810f7f6bf8d068.tar.bz2 |
Merge "refactored screenshot code" into gingerbread
Diffstat (limited to 'cmds')
-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); |