Capture first display for multi-display devices
When no display id is explicitly specified, the first display is
captured, and a warning message is printed out. This is to make
the utility to be backward compatible with previous versions so
tools depending on it continue to work.
Bug: 241285477
Test: manual, run screencap command to verify
Change-Id: I713e1e5c625fd80ecb5587e0b2313f58baaffd40
diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp
index 44fb6b3..d7222d2 100644
--- a/cmds/screencap/screencap.cpp
+++ b/cmds/screencap/screencap.cpp
@@ -159,12 +159,14 @@
}
if (!displayId) { // no diplsay id is specified
- if (ids.size() == 1) {
- displayId = ids.front();
- } else {
- fprintf(stderr, "Please specify a display ID (-d display-id) for multi-display device.\n");
+ displayId = ids.front();
+ if (ids.size() > 1) {
+ fprintf(stderr,
+ "[Warning] Multiple displays were found, but no display id was specified! "
+ "Defaulting to the first display found, however this default is not guaranteed "
+ "to be consistent across captures. A display id should be specified.\n");
+ fprintf(stderr, "A display ID can be specified with the [-d display-id] option.\n");
fprintf(stderr, "See \"dumpsys SurfaceFlinger --display-id\" for valid display IDs.\n");
- return 1;
}
}