diff options
| author | Xavier Ducrohet <xav@android.com> | 2009-05-14 18:19:52 -0700 |
|---|---|---|
| committer | Xavier Ducrohet <xav@android.com> | 2009-05-15 14:01:12 -0700 |
| commit | 5542fe492293223a81e604a49aa6fa55b1719847 (patch) | |
| tree | 5a8377e382e930e99c7ebe0b729ae2c2833cbf22 /screenshot/src | |
| parent | c28e97a0db9c383cd656cb51f3b720dfb53b8d21 (diff) | |
| download | sdk-5542fe492293223a81e604a49aa6fa55b1719847.zip sdk-5542fe492293223a81e604a49aa6fa55b1719847.tar.gz sdk-5542fe492293223a81e604a49aa6fa55b1719847.tar.bz2 | |
Make the ddmlib API use IDevice instead of Device
Device is now private. All the API is using IDevice.
Updated ddms, ADT, hierarchyviewer and other tools that relied on ddmlib.
Diffstat (limited to 'screenshot/src')
| -rw-r--r-- | screenshot/src/com/android/screenshot/Screenshot.java | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/screenshot/src/com/android/screenshot/Screenshot.java b/screenshot/src/com/android/screenshot/Screenshot.java index 40ceffa..06e1f6b 100644 --- a/screenshot/src/com/android/screenshot/Screenshot.java +++ b/screenshot/src/com/android/screenshot/Screenshot.java @@ -17,7 +17,7 @@ package com.android.screenshot; import com.android.ddmlib.AndroidDebugBridge; -import com.android.ddmlib.Device; +import com.android.ddmlib.IDevice; import com.android.ddmlib.Log; import com.android.ddmlib.RawImage; import com.android.ddmlib.Log.ILogOutput; @@ -30,7 +30,7 @@ import java.io.IOException; import javax.imageio.ImageIO; /** - * Connects to a device using ddmlib and dumps its event log as long as the device is connected. + * Connects to a device using ddmlib and dumps its event log as long as the device is connected. */ public class Screenshot { @@ -40,7 +40,7 @@ public class Screenshot { String serial = null; String filepath = null; boolean landscape = false; - + if (args.length == 0) { printUsageAndQuit(); } @@ -69,7 +69,7 @@ public class Screenshot { if (device || emulator) { printAndExit("-s conflicts with -d and -e", false /* terminate */); } - + serial = args[index++]; } else if ("-l".equals(argument)) { landscape = true; @@ -83,11 +83,11 @@ public class Screenshot { } } } while (index < args.length); - + if (filepath == null) { printUsageAndQuit(); } - + Log.setLogOutput(new ILogOutput() { public void printAndPromptLog(LogLevel logLevel, String tag, String message) { System.err.println(logLevel.getStringValue() + ":" + tag + ":" + message); @@ -97,7 +97,7 @@ public class Screenshot { System.err.println(logLevel.getStringValue() + ":" + tag + ":" + message); } }); - + // init the lib // [try to] ensure ADB is running String adbLocation = System.getProperty("com.android.screenshot.bindir"); //$NON-NLS-1$ @@ -108,11 +108,11 @@ public class Screenshot { } AndroidDebugBridge.init(false /* debugger support */); - + try { AndroidDebugBridge bridge = AndroidDebugBridge.createBridge( adbLocation, true /* forceNewBridge */); - + // we can't just ask for the device list right away, as the internal thread getting // them from ADB may not be done getting the first list. // Since we don't really want getDevices() to be blocking, we wait here manually. @@ -124,7 +124,7 @@ public class Screenshot { } catch (InterruptedException e) { // pass } - + // let's not wait > 10 sec. if (count > 100) { System.err.println("Timeout getting device list!"); @@ -133,16 +133,16 @@ public class Screenshot { } // now get the devices - Device[] devices = bridge.getDevices(); - + IDevice[] devices = bridge.getDevices(); + if (devices.length == 0) { printAndExit("No devices found!", true /* terminate */); } - - Device target = null; - + + IDevice target = null; + if (emulator || device) { - for (Device d : devices) { + for (IDevice d : devices) { // this test works because emulator and device can't both be true at the same // time. if (d.isEmulator() == emulator) { @@ -159,7 +159,7 @@ public class Screenshot { } } } else if (serial != null) { - for (Device d : devices) { + for (IDevice d : devices) { if (serial.equals(d.getSerialNumber())) { target = d; break; @@ -172,7 +172,7 @@ public class Screenshot { } target = devices[0]; } - + if (target != null) { try { System.out.println("Taking screenshot from: " + target.getSerialNumber()); @@ -188,11 +188,11 @@ public class Screenshot { AndroidDebugBridge.terminate(); } } - + /* * Grab an image from an ADB-connected device. */ - private static void getDeviceImage(Device device, String filepath, boolean landscape) + private static void getDeviceImage(IDevice device, String filepath, boolean landscape) throws IOException { RawImage rawImage; @@ -209,28 +209,28 @@ public class Screenshot { return; assert rawImage.bpp == 16; - + BufferedImage image; - + if (landscape) { // convert raw data to an Image image = new BufferedImage(rawImage.height, rawImage.width, BufferedImage.TYPE_INT_ARGB); - + byte[] buffer = rawImage.data; int index = 0; for (int y = 0 ; y < rawImage.height ; y++) { for (int x = 0 ; x < rawImage.width ; x++) { - + int value = buffer[index++] & 0x00FF; value |= (buffer[index++] << 8) & 0x0FF00; - + int r = ((value >> 11) & 0x01F) << 3; int g = ((value >> 5) & 0x03F) << 2; int b = ((value >> 0) & 0x01F) << 3; - + value = 0xFF << 24 | r << 16 | g << 8 | b; - + image.setRGB(y, rawImage.width - x - 1, value); } } @@ -238,31 +238,31 @@ public class Screenshot { // convert raw data to an Image image = new BufferedImage(rawImage.width, rawImage.height, BufferedImage.TYPE_INT_ARGB); - + byte[] buffer = rawImage.data; int index = 0; for (int y = 0 ; y < rawImage.height ; y++) { for (int x = 0 ; x < rawImage.width ; x++) { - + int value = buffer[index++] & 0x00FF; value |= (buffer[index++] << 8) & 0x0FF00; - + int r = ((value >> 11) & 0x01F) << 3; int g = ((value >> 5) & 0x03F) << 2; int b = ((value >> 0) & 0x01F) << 3; - + value = 0xFF << 24 | r << 16 | g << 8 | b; - + image.setRGB(x, y, value); } } } - + if (!ImageIO.write(image, "png", new File(filepath))) { throw new IOException("Failed to find png writer"); } } - + private static void printUsageAndQuit() { // 80 cols marker: 01234567890123456789012345678901234567890123456789012345678901234567890123456789 System.out.println("Usage: screenshot2 [-d | -e | -s SERIAL] [-l] OUT_FILE"); @@ -273,10 +273,10 @@ public class Screenshot { System.out.println(""); System.out.println(" -l Rotate images for landscape mode."); System.out.println(""); - + System.exit(1); } - + private static void printAndExit(String message, boolean terminate) { System.out.println(message); if (terminate) { |
