How to check a CGDisplay is iPad by sidecar on MacOS?

Viewed 11

As MacOS and iPad support sidecar now, CGGetActiveDisplayList provides the list of displays contains iPad when sidecar working, but how to check witch CGDisplay is the iPad?

  CGDirectDisplayID displays[10] = {0};
  uint32_t count;
  CGError err = CGGetActiveDisplayList(10, displays, &count);
  printf("%d %d\n", displays[0], displays[1]);
  for (int i = 0; i < count; i++) {
    CGDisplayModeRef mode = CGDisplayCopyDisplayMode(displays[i]);
    int32_t io = CGDisplayModeGetIODisplayModeID(mode);
    uint32_t io_flag = CGDisplayModeGetIOFlags(mode);
    bool usable = CGDisplayModeIsUsableForDesktopGUI(mode);
    size_t width = CGDisplayModeGetPixelWidth(mode);
    size_t height = CGDisplayModeGetPixelHeight(mode);
    printf("i: %d io: %d usable: %s, io flag: 0x%x, pixel size: %dx%d\n",i, io, usable ? "T": "F", io_flag, width, height);
  }

Output:

i: 0 io: 8 usable: T, io flag: 0x7, pixel size: 2880x1800
i: 1 io: 0 usable: T, io flag: 0x2000007, pixel size: 2576x1892
0 Answers
Related