summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-10-04 20:04:42 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-10-04 20:04:42 -0700
commit19058877df9bf94f197a72855f810f7f6bf8d068 (patch)
treef88763bcad2b9d97f19538bb0a4f40e83c4f8a8a /cmds
parentb9aacfdfb014cc0299f7999d2a8940cd60a4cc59 (diff)
parent597c7f67b5f2491c6098a1de241a3f0fd274688a (diff)
downloadframeworks_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.cpp25
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);