mac-capture: Update display names

Display names for captured displays should render human readable
This commit is contained in:
Developer-Ecosystem-Engineering 2021-06-16 11:52:50 -07:00 committed by Jim
parent fdce267a9a
commit 0fd153f9e1

View File

@ -3,6 +3,7 @@
#include <util/threading.h>
#include <pthread.h>
#import <AvailabilityMacros.h>
#import <CoreGraphics/CGDisplayStream.h>
#import <Cocoa/Cocoa.h>
@ -602,11 +603,43 @@ static obs_properties_t *display_capture_properties(void *unused)
props, "display", obs_module_text("DisplayCapture.Display"),
OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT);
for (unsigned i = 0; i < [NSScreen screens].count; i++) {
char buf[10];
sprintf(buf, "%u", i);
obs_property_list_add_int(list, buf, i);
}
[[NSScreen screens] enumerateObjectsUsingBlock:^(
NSScreen *_Nonnull screen, NSUInteger index,
BOOL *_Nonnull stop
__attribute__((unused))) {
char dimension_buffer[4][12];
char name_buffer[256];
sprintf(dimension_buffer[0], "%u",
(uint32_t)[screen frame].size.width);
sprintf(dimension_buffer[1], "%u",
(uint32_t)[screen frame].size.height);
sprintf(dimension_buffer[2], "%d",
(int32_t)[screen frame].origin.x);
sprintf(dimension_buffer[3], "%d",
(int32_t)[screen frame].origin.y);
#if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_15
if (__builtin_available(macOS 10.15, *)) {
sprintf(name_buffer,
"%.200s: %.12sx%.12s @ %.12s,%.12s",
[[screen localizedName] UTF8String],
dimension_buffer[0], dimension_buffer[1],
dimension_buffer[2], dimension_buffer[3]);
} else
#endif
{
char disp_num_buffer[11];
sprintf(disp_num_buffer, "%lu", (unsigned long)index);
sprintf(name_buffer,
"%.189s %.10s: %.12sx%.12s @ %.12s,%.12s",
obs_module_text("DisplayCapture.Display"),
disp_num_buffer, dimension_buffer[0],
dimension_buffer[1], dimension_buffer[2],
dimension_buffer[3]);
}
obs_property_list_add_int(list, name_buffer, index);
}];
obs_properties_add_bool(props, "show_cursor",
obs_module_text("DisplayCapture.ShowCursor"));