OSDN Git Service

CameraService: Fix dump methods for two clients
authorEino-Ville Talvala <etalvala@google.com>
Thu, 18 Sep 2014 22:52:02 +0000 (15:52 -0700)
committerEino-Ville Talvala <etalvala@google.com>
Thu, 18 Sep 2014 23:12:38 +0000 (16:12 -0700)
Actually write dump text into the provided FD, and add a bit more
dump data into CameraDeviceClient.

Bug: 17570762
Change-Id: I37b1db85188855d4e89c8050c4b13f0d22e07e0c

services/camera/libcameraservice/api2/CameraDeviceClient.cpp
services/camera/libcameraservice/api_pro/ProCamera2Client.cpp

index 80c797a..e3301aa 100644 (file)
@@ -512,12 +512,24 @@ status_t CameraDeviceClient::flush(int64_t* lastFrameNumber) {
 
 status_t CameraDeviceClient::dump(int fd, const Vector<String16>& args) {
     String8 result;
-    result.appendFormat("CameraDeviceClient[%d] (%p) PID: %d, dump:\n",
+    result.appendFormat("CameraDeviceClient[%d] (%p) dump:\n",
             mCameraId,
-            getRemoteCallback()->asBinder().get(),
-            mClientPid);
-    result.append("  State: ");
-
+            getRemoteCallback()->asBinder().get());
+    result.appendFormat("  Current client: %s (PID %d, UID %u)\n",
+            String8(mClientPackageName).string(),
+            mClientPid, mClientUid);
+
+    result.append("  State:\n");
+    result.appendFormat("    Request ID counter: %d\n", mRequestIdCounter);
+    if (!mStreamMap.isEmpty()) {
+        result.append("    Current stream IDs:\n");
+        for (size_t i = 0; i < mStreamMap.size(); i++) {
+            result.appendFormat("      Stream %d\n", mStreamMap.valueAt(i));
+        }
+    } else {
+        result.append("    No streams configured.\n");
+    }
+    write(fd, result.string(), result.size());
     // TODO: print dynamic/request section from most recent requests
     mFrameProcessor->dump(fd, args);
 
index f8823a3..2ea460f 100644 (file)
@@ -336,11 +336,11 @@ status_t ProCamera2Client::dump(int fd, const Vector<String16>& args) {
             mCameraId,
             getRemoteCallback()->asBinder().get(),
             mClientPid);
-    result.append("  State: ");
+    result.append("  State:\n");
+    write(fd, result.string(), result.size());
 
     // TODO: print dynamic/request section from most recent requests
     mFrameProcessor->dump(fd, args);
-
     return dumpDevice(fd, args);
 }