diff --git a/.clang-format b/.clang-format index 38b431e17..3abb4e62e 100644 --- a/.clang-format +++ b/.clang-format @@ -181,7 +181,7 @@ ReferenceAlignment: Right RemoveSemicolon: false RequiresClausePosition: WithPreceding RequiresExpressionIndentation: OuterScope -SeparateDefinitionBlocks: Always +SeparateDefinitionBlocks: Leave ShortNamespaceLines: 1 SortIncludes: false #SortUsingDeclarations: LexicographicNumeric diff --git a/plugins/mac-capture/mac-sck-audio-capture.m b/plugins/mac-capture/mac-sck-audio-capture.m index 32b39cd65..595e46b72 100644 --- a/plugins/mac-capture/mac-sck-audio-capture.m +++ b/plugins/mac-capture/mac-sck-audio-capture.m @@ -5,7 +5,7 @@ const char *sck_audio_capture_getname(void *unused __unused) return obs_module_text("SCK.Audio.Name"); } -static void destroy_audio_screen_stream(struct screen_capture *sc) +API_AVAILABLE(macos(13.0)) static void destroy_audio_screen_stream(struct screen_capture *sc) { if (sc->disp && !sc->capture_failed) { [sc->disp stopCaptureWithCompletionHandler:^(NSError *_Nullable error) { @@ -32,7 +32,7 @@ static void destroy_audio_screen_stream(struct screen_capture *sc) os_event_destroy(sc->stream_start_completed); } -static void sck_audio_capture_destroy(void *data) +API_AVAILABLE(macos(13.0)) static void sck_audio_capture_destroy(void *data) { struct screen_capture *sc = data; @@ -57,7 +57,7 @@ static void sck_audio_capture_destroy(void *data) bfree(sc); } -static bool init_audio_screen_stream(struct screen_capture *sc) +API_AVAILABLE(macos(13.0)) static bool init_audio_screen_stream(struct screen_capture *sc) { SCContentFilter *content_filter; if (sc->capture_failed) { @@ -178,7 +178,7 @@ static void sck_audio_capture_defaults(obs_data_t *settings) obs_data_set_default_int(settings, "type", ScreenCaptureAudioDesktopStream); } -static void *sck_audio_capture_create(obs_data_t *settings, obs_source_t *source) +API_AVAILABLE(macos(13.0)) static void *sck_audio_capture_create(obs_data_t *settings, obs_source_t *source) { struct screen_capture *sc = bzalloc(sizeof(struct screen_capture)); @@ -209,6 +209,7 @@ fail: #pragma mark - obs_properties +API_AVAILABLE(macos(13.0)) static bool audio_capture_method_changed(void *data, obs_properties_t *props, obs_property_t *list __unused, obs_data_t *settings) { @@ -233,6 +234,7 @@ static bool audio_capture_method_changed(void *data, obs_properties_t *props, ob return true; } +API_AVAILABLE(macos(13.0)) static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t *property, void *data) { struct screen_capture *sc = data; @@ -248,7 +250,7 @@ static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t return true; } -static obs_properties_t *sck_audio_capture_properties(void *data) +API_AVAILABLE(macos(13.0)) static obs_properties_t *sck_audio_capture_properties(void *data) { struct screen_capture *sc = data; @@ -284,7 +286,7 @@ static obs_properties_t *sck_audio_capture_properties(void *data) return props; } -static void sck_audio_capture_update(void *data, obs_data_t *settings) +API_AVAILABLE(macos(13.0)) static void sck_audio_capture_update(void *data, obs_data_t *settings) { struct screen_capture *sc = data; @@ -300,6 +302,7 @@ static void sck_audio_capture_update(void *data, obs_data_t *settings) #pragma mark - obs_source_info +API_AVAILABLE(macos(13.0)) struct obs_source_info sck_audio_capture_info = { .id = "sck_audio_capture", .type = OBS_SOURCE_TYPE_INPUT, diff --git a/plugins/mac-capture/mac-sck-common.h b/plugins/mac-capture/mac-sck-common.h index 32ca8d246..6bbd0a6e8 100644 --- a/plugins/mac-capture/mac-sck-common.h +++ b/plugins/mac-capture/mac-sck-common.h @@ -1,9 +1,6 @@ #include #include -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunguarded-availability-new" - #include #include #include @@ -28,15 +25,16 @@ typedef enum { ScreenCaptureAudioApplicationStream = 1, } ScreenCaptureAudioStreamType; -typedef SCDisplay *SCDisplayRef; +API_AVAILABLE(macos(12.5)) typedef SCDisplay *SCDisplayRef; +API_AVAILABLE(macos(12.5)) @interface ScreenCaptureDelegate : NSObject @property struct screen_capture *sc; @end -struct screen_capture { +struct API_AVAILABLE(macos(12.5)) screen_capture { obs_source_t *source; gs_effect_t *effect; @@ -71,18 +69,16 @@ struct screen_capture { bool is_screen_capture_available(void); -void screen_capture_build_content_list(struct screen_capture *sc, bool display_capture); +API_AVAILABLE(macos(12.5)) void screen_capture_build_content_list(struct screen_capture *sc, bool display_capture); -bool build_display_list(struct screen_capture *sc, obs_properties_t *props); +API_AVAILABLE(macos(12.5)) bool build_display_list(struct screen_capture *sc, obs_properties_t *props); -bool build_window_list(struct screen_capture *sc, obs_properties_t *props); +API_AVAILABLE(macos(12.5)) bool build_window_list(struct screen_capture *sc, obs_properties_t *props); -bool build_application_list(struct screen_capture *sc, obs_properties_t *props); +API_AVAILABLE(macos(12.5)) bool build_application_list(struct screen_capture *sc, obs_properties_t *props); static const char *screen_capture_getname(void *unused __unused); -void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer); +API_AVAILABLE(macos(12.5)) void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer); -void screen_stream_audio_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer); - -#pragma clang diagnostic pop +API_AVAILABLE(macos(12.5)) void screen_stream_audio_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer); diff --git a/plugins/mac-capture/mac-sck-common.m b/plugins/mac-capture/mac-sck-common.m index f9f6de7d0..67e488170 100644 --- a/plugins/mac-capture/mac-sck-common.m +++ b/plugins/mac-capture/mac-sck-common.m @@ -198,7 +198,7 @@ bool build_application_list(struct screen_capture *sc, obs_properties_t *props) #pragma mark - audio/video -void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer) +API_AVAILABLE(macos(12.5)) void screen_stream_video_update(struct screen_capture *sc, CMSampleBufferRef sample_buffer) { bool frame_detail_errored = false; float scale_factor = 1.0f; diff --git a/plugins/mac-capture/mac-sck-video-capture.m b/plugins/mac-capture/mac-sck-video-capture.m index 0e2c700b3..2b34851e9 100644 --- a/plugins/mac-capture/mac-sck-video-capture.m +++ b/plugins/mac-capture/mac-sck-video-capture.m @@ -1,7 +1,7 @@ #include "mac-sck-common.h" #include "window-utils.h" -static void destroy_screen_stream(struct screen_capture *sc) +API_AVAILABLE(macos(12.5)) static void destroy_screen_stream(struct screen_capture *sc) { if (sc->disp && !sc->capture_failed) { [sc->disp stopCaptureWithCompletionHandler:^(NSError *_Nullable error) { @@ -45,7 +45,7 @@ static void destroy_screen_stream(struct screen_capture *sc) os_event_destroy(sc->stream_start_completed); } -static void sck_video_capture_destroy(void *data) +API_AVAILABLE(macos(12.5)) static void sck_video_capture_destroy(void *data) { struct screen_capture *sc = data; @@ -74,7 +74,7 @@ static void sck_video_capture_destroy(void *data) bfree(sc); } -static bool init_screen_stream(struct screen_capture *sc) +API_AVAILABLE(macos(12.5)) static bool init_screen_stream(struct screen_capture *sc) { SCContentFilter *content_filter; if (sc->capture_failed) { @@ -270,7 +270,7 @@ static bool init_screen_stream(struct screen_capture *sc) return did_stream_start; } -static void *sck_video_capture_create(obs_data_t *settings, obs_source_t *source) +API_AVAILABLE(macos(12.5)) static void *sck_video_capture_create(obs_data_t *settings, obs_source_t *source) { struct screen_capture *sc = bzalloc(sizeof(struct screen_capture)); @@ -309,7 +309,7 @@ fail: return NULL; } -static void sck_video_capture_tick(void *data, float seconds __unused) +API_AVAILABLE(macos(12.5)) static void sck_video_capture_tick(void *data, float seconds __unused) { struct screen_capture *sc = data; @@ -341,7 +341,7 @@ static void sck_video_capture_tick(void *data, float seconds __unused) } } -static void sck_video_capture_render(void *data, gs_effect_t *effect __unused) +API_AVAILABLE(macos(12.5)) static void sck_video_capture_render(void *data, gs_effect_t *effect __unused) { struct screen_capture *sc = data; @@ -368,14 +368,14 @@ static const char *sck_video_capture_getname(void *unused __unused) return obs_module_text("SCK.Name.Beta"); } -static uint32_t sck_video_capture_getwidth(void *data) +API_AVAILABLE(macos(12.5)) static uint32_t sck_video_capture_getwidth(void *data) { struct screen_capture *sc = data; return (uint32_t) sc->frame.size.width; } -static uint32_t sck_video_capture_getheight(void *data) +API_AVAILABLE(macos(12.5)) static uint32_t sck_video_capture_getheight(void *data) { struct screen_capture *sc = data; @@ -410,7 +410,7 @@ static void sck_video_capture_defaults(obs_data_t *settings) obs_data_set_default_bool(settings, "show_hidden_windows", false); } -static void sck_video_capture_update(void *data, obs_data_t *settings) +API_AVAILABLE(macos(12.5)) static void sck_video_capture_update(void *data, obs_data_t *settings) { struct screen_capture *sc = data; @@ -472,6 +472,7 @@ static void sck_video_capture_update(void *data, obs_data_t *settings) #pragma mark - obs_properties +API_AVAILABLE(macos(12.5)) static bool content_settings_changed(void *data, obs_properties_t *props, obs_property_t *list __unused, obs_data_t *settings) { @@ -543,6 +544,7 @@ static bool content_settings_changed(void *data, obs_properties_t *props, obs_pr return true; } +API_AVAILABLE(macos(12.5)) static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t *property, void *data) { struct screen_capture *sc = data; @@ -560,7 +562,7 @@ static bool reactivate_capture(obs_properties_t *props __unused, obs_property_t return true; } -static obs_properties_t *sck_video_capture_properties(void *data) +API_AVAILABLE(macos(12.5)) static obs_properties_t *sck_video_capture_properties(void *data) { struct screen_capture *sc = data; @@ -693,6 +695,7 @@ enum gs_color_space sck_video_capture_get_color_space(void *data, size_t count, #pragma mark - obs_source_info +API_AVAILABLE(macos(12.5)) struct obs_source_info sck_video_capture_info = { .id = "screen_capture", .type = OBS_SOURCE_TYPE_INPUT,