From 2d10de7d88f49bdc98181cda4c05950b9ee5ea92 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 16 Jun 2015 18:00:40 +0200 Subject: [PATCH] InAppSettingsVideo: add video preset, video FPS and bandwidth limit preferences --- Classes/LinphoneCoreSettingsStore.m | 14 +++- Classes/LinphoneUI/Base.lproj/UICallCell.xib | 25 ++++--- Classes/LinphoneUI/UICallCell.h | 8 +-- Classes/LinphoneUI/UICallCell.m | 42 ++++++------ Classes/SettingsViewController.m | 41 ++++++----- Settings/InAppSettings.bundle/Video.plist | 72 +++++++++++++++++++- submodules/linphone | 2 +- 7 files changed, 148 insertions(+), 56 deletions(-) diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 35ffcf31d..6db747a45 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -218,6 +218,9 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self setBool:linphone_core_self_view_enabled(lc) forKey:@"self_video_preference"]; BOOL previewEnabled = [lm lpConfigBoolForKey:@"preview_preference" withDefault:YES]; [self setBool:previewEnabled forKey:@"preview_preference"]; + + const char *preset = linphone_core_get_video_preset(lc); + [self setCString:preset ? preset : "default" forKey:@"video_preset_preference"]; MSVideoSize vsize = linphone_core_get_preferred_video_size(lc); int index; if ((vsize.width == MS_VIDEO_SIZE_720P_W) && (vsize.height == MS_VIDEO_SIZE_720P_H)) { @@ -228,6 +231,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); index = 2; } [self setInteger:index forKey:@"video_preferred_size_preference"]; + [self setInteger:linphone_core_get_preferred_framerate(lc) forKey:@"video_preferred_fps_preference"]; + [self setInteger:linphone_core_get_download_bandwidth(lc) forKey:@"download_bandwidth_preference"]; } // call section @@ -603,6 +608,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); linphone_core_enable_self_view(lc, [self boolForKey:@"self_video_preference"]); BOOL preview_preference = [self boolForKey:@"preview_preference"]; [lm lpConfigSetInt:preview_preference forKey:@"preview_preference"]; + + linphone_core_set_video_preset(lc, [[self stringForKey:@"video_preset_preference"] UTF8String]); int bw; MSVideoSize vsize; switch ([self integerForKey:@"video_preferred_size_preference"]) { @@ -623,9 +630,12 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); bw = 380; break; } - [self setInteger:bw forKey:@"upload_bandwidth_preference"]; - [self setInteger:bw forKey:@"download_bandwidth_preference"]; linphone_core_set_preferred_video_size(lc, vsize); + if (![[self stringForKey:@"video_preset_preference"] isEqualToString:@"custom"]) { + [self setInteger:bw forKey:@"download_bandwidth_preference"]; + } + linphone_core_set_preferred_framerate(lc, [self integerForKey:@"video_preferred_fps_preference"]); + linphone_core_set_download_bandwidth(lc, [self integerForKey:@"download_bandwidth_preference"]); } // call section diff --git a/Classes/LinphoneUI/Base.lproj/UICallCell.xib b/Classes/LinphoneUI/Base.lproj/UICallCell.xib index c46edde08..a4b4f72ce 100644 --- a/Classes/LinphoneUI/Base.lproj/UICallCell.xib +++ b/Classes/LinphoneUI/Base.lproj/UICallCell.xib @@ -1,8 +1,7 @@ - + - - + @@ -33,10 +32,10 @@ - - - - + + + + @@ -218,11 +217,11 @@ - + - - + -