Как проверить, встроен ли дисплей в Mac OSX?
В Системной информации (или эквиваленте командной строки: system_profiler) мы можем проверить, встроен ли дисплей:
Displays:
Color LCD:
Display Type: LCD
Resolution: 1680 x 1050
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
Какой API я должен использовать, чтобы проверить ту же информацию? Приложению необходимо отключить воспроизведение при подключении внешнего дисплея. Обратите внимание, что HDCP недоступен на Mac, поэтому отключить его можно только одним способом. (DRM вещи, которые я ненавижу).
1 ответ
Использовать CGDisplayIsBuiltin(_:)
метод:
Возвращает логическое значение, указывающее, является ли дисплей встроенным, например, внутренний дисплей в портативных системах.
которая является частью Quartz Display Services:
Quartz Display Services включает в себя функции доступа, которые сообщают о текущих свойствах оборудования отображения, свойства, которые также находятся в текущем режиме отображения. Поскольку эти функции не зависят от информации из текущего режима отображения, они предоставляют наиболее точную информацию о дисплее (свойства режима отображения могут изменяться драйвером устройства).
Рекомендации
CGDisplayIsBuiltin(_:) - Основная графика | Документация для разработчиков Apple
Quartz Display Services - основная графика | Документация для разработчиков Apple
Темы программирования служб Quartz Display: получение информации о дисплеях
GitHub - kfix/ddcctl: управление монитором DDC (яркость) для командной строки Mac OSX