From b90f1b4c57cc6777b7e45647bf77f05aa8e34cb1 Mon Sep 17 00:00:00 2001 From: Alexandre Janniaux Date: Thu, 9 Feb 2023 16:12:29 +0100 Subject: [PATCH] audiounit_ios: fix compatibility with iOS < 11 AVAudioSessionRouteSharingPolicy type and values are available starting with SDK iOS 11. This commit is tagging the structures properly so that it doesn't raise warning/errors and move the functions to runtime availability. --- modules/audio_output/audiounit_ios.m | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/audio_output/audiounit_ios.m b/modules/audio_output/audiounit_ios.m index ecd8a5a454..4e47413208 100644 --- a/modules/audio_output/audiounit_ios.m +++ b/modules/audio_output/audiounit_ios.m @@ -335,19 +335,21 @@ avas_GetPortType(audio_output_t *p_aout, enum port_type *pport_type) return VLC_SUCCESS; } -struct role2policy +struct API_AVAILABLE(ios(11.0)) +role2policy { char role[sizeof("accessibility")]; AVAudioSessionRouteSharingPolicy policy; }; -static int role2policy_cmp(const void *key, const void *val) +static int API_AVAILABLE(ios(11.0)) +role2policy_cmp(const void *key, const void *val) { const struct role2policy *entry = val; return strcmp(key, entry->role); } -static AVAudioSessionRouteSharingPolicy +static AVAudioSessionRouteSharingPolicy API_AVAILABLE(ios(11.0)) GetRouteSharingPolicy(audio_output_t *p_aout) { #if __IPHONEOS_VERSION_MAX_ALLOWED < 130000 @@ -404,9 +406,10 @@ avas_SetActive(audio_output_t *p_aout, bool active, NSUInteger options) if (active) { - AVAudioSessionRouteSharingPolicy policy = GetRouteSharingPolicy(p_aout); if (@available(iOS 11.0, tvOS 11.0, *)) { + AVAudioSessionRouteSharingPolicy policy = GetRouteSharingPolicy(p_aout); + ret = [instance setCategory:AVAudioSessionCategoryPlayback mode:AVAudioSessionModeMoviePlayback routeSharingPolicy:policy