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
This commit is contained in:
Huihong Luo
2022-10-07 19:24:00 -07:00
parent 5ef5f5172b
commit 6f645f7093

View File

@@ -159,12 +159,14 @@ int main(int argc, char** argv)
}
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;
}
}