Added LayerCapture args to captureLayers functions

Pass LayerCaptureArgs and ScreenCaptureResults to captureLayers
functions.

Test: Recents takes screenshot
Test: SurfaceFlinger_test
Bug: 162367424

Change-Id: Ib4cfeb0e60c12009ffe271578f04522970a1f769
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp
index 2982a99..dc6001f 100644
--- a/libs/gui/SurfaceComposerClient.cpp
+++ b/libs/gui/SurfaceComposerClient.cpp
@@ -1950,12 +1950,12 @@
     return ret;
 }
 
-status_t ScreenshotClient::capture(const sp<IBinder>& display, ui::Dataspace reqDataSpace,
+status_t ScreenshotClient::capture(const sp<IBinder>& display, ui::Dataspace reqDataspace,
                                    ui::PixelFormat reqPixelFormat, const Rect& sourceCrop,
                                    uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform,
                                    ui::Rotation rotation, sp<GraphicBuffer>* outBuffer) {
     bool ignored;
-    return capture(display, reqDataSpace, reqPixelFormat, sourceCrop, reqWidth, reqHeight,
+    return capture(display, reqDataspace, reqPixelFormat, sourceCrop, reqWidth, reqHeight,
                    useIdentityTransform, rotation, false, outBuffer, ignored);
 }
 
@@ -1970,26 +1970,46 @@
     return ret;
 }
 
-status_t ScreenshotClient::captureLayers(const sp<IBinder>& layerHandle, ui::Dataspace reqDataSpace,
+status_t ScreenshotClient::captureLayers(const sp<IBinder>& layerHandle,
+                                         ui::Dataspace /* reqDataspace */,
                                          ui::PixelFormat reqPixelFormat, const Rect& sourceCrop,
                                          float frameScale, sp<GraphicBuffer>* outBuffer) {
     sp<ISurfaceComposer> s(ComposerService::getComposerService());
     if (s == nullptr) return NO_INIT;
-    status_t ret = s->captureLayers(layerHandle, outBuffer, reqDataSpace, reqPixelFormat,
-                                    sourceCrop, {}, frameScale, false /* childrenOnly */);
+
+    LayerCaptureArgs args;
+    args.layerHandle = layerHandle;
+    args.pixelFormat = reqPixelFormat;
+    args.sourceCrop = sourceCrop;
+    args.frameScale = frameScale;
+
+    ScreenCaptureResults captureResults;
+    status_t ret = s->captureLayers(args, captureResults);
+
+    *outBuffer = captureResults.buffer;
     return ret;
 }
 
 status_t ScreenshotClient::captureChildLayers(
-        const sp<IBinder>& layerHandle, ui::Dataspace reqDataSpace, ui::PixelFormat reqPixelFormat,
-        const Rect& sourceCrop,
+        const sp<IBinder>& layerHandle, ui::Dataspace /* reqDataspace */,
+        ui::PixelFormat reqPixelFormat, const Rect& sourceCrop,
         const std::unordered_set<sp<IBinder>, ISurfaceComposer::SpHash<IBinder>>& excludeHandles,
         float frameScale, sp<GraphicBuffer>* outBuffer) {
     sp<ISurfaceComposer> s(ComposerService::getComposerService());
     if (s == nullptr) return NO_INIT;
-    status_t ret =
-            s->captureLayers(layerHandle, outBuffer, reqDataSpace, reqPixelFormat, sourceCrop,
-                             excludeHandles, frameScale, true /* childrenOnly */);
+
+    LayerCaptureArgs args;
+    args.layerHandle = layerHandle;
+    args.pixelFormat = reqPixelFormat;
+    args.sourceCrop = sourceCrop;
+    args.frameScale = frameScale;
+    args.excludeHandles = excludeHandles;
+    args.childrenOnly = true;
+
+    ScreenCaptureResults captureResults;
+    status_t ret = s->captureLayers(args, captureResults);
+
+    *outBuffer = captureResults.buffer;
     return ret;
 }