window-utils.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #import <CoreGraphics/CGWindow.h>
  2. #import <Cocoa/Cocoa.h>
  3. #include <util/threading.h>
  4. #include <obs-module.h>
  5. struct cocoa_window {
  6. CGWindowID window_id;
  7. int owner_pid;
  8. pthread_mutex_t name_lock;
  9. NSString *owner_name;
  10. NSString *window_name;
  11. uint64_t next_search_time;
  12. };
  13. typedef struct cocoa_window *cocoa_window_t;
  14. NSArray *enumerate_cocoa_windows(void);
  15. bool find_window(cocoa_window_t cw, obs_data_t *settings, bool force);
  16. void init_window(cocoa_window_t cw, obs_data_t *settings);
  17. void destroy_window(cocoa_window_t cw);
  18. void update_window(cocoa_window_t cw, obs_data_t *settings);
  19. void window_defaults(obs_data_t *settings);
  20. void add_window_properties(obs_properties_t *props);
  21. void show_window_properties(obs_properties_t *props, bool show);
  22. /** Get the display ID of a display and simultaneously migrate pre-30.0 display IDs to 30.0 UUIDs.
  23. - Parameter settings: Pointer to `obs_data_t` object containing `display` int and/or `display_uuid` string
  24. - Returns: `CGDirectDisplayID` of the display the user selected. May be 0 if the display cannot be found. */
  25. CGDirectDisplayID get_display_migrate_settings(obs_data_t *settings);