From b8478bfedcca8f245c4dd2acbcaadb86ab01f601 Mon Sep 17 00:00:00 2001 From: TrueZhuanjia Date: Wed, 23 Jul 2025 13:10:16 +0800 Subject: [PATCH] HDR info button --- VoidLink/Base.lproj/iPad.storyboard | 12 ++++---- VoidLink/Base.lproj/iPhone.storyboard | 4 +-- VoidLink/Localization/Localizable.xcstrings | 29 +++++++++++++++++++ .../ViewControllers/SettingsViewController.h | 2 +- .../ViewControllers/SettingsViewController.m | 14 +++++++-- 5 files changed, 50 insertions(+), 11 deletions(-) diff --git a/VoidLink/Base.lproj/iPad.storyboard b/VoidLink/Base.lproj/iPad.storyboard index 4ec8402b..b3f02769 100644 --- a/VoidLink/Base.lproj/iPad.storyboard +++ b/VoidLink/Base.lproj/iPad.storyboard @@ -60,7 +60,7 @@ - + @@ -935,7 +935,6 @@ - @@ -964,6 +963,7 @@ + @@ -1660,19 +1660,19 @@ - + - + - + - + diff --git a/VoidLink/Base.lproj/iPhone.storyboard b/VoidLink/Base.lproj/iPhone.storyboard index fc1c9a67..9fb1c0e7 100644 --- a/VoidLink/Base.lproj/iPhone.storyboard +++ b/VoidLink/Base.lproj/iPhone.storyboard @@ -13,7 +13,7 @@ - + @@ -1585,7 +1585,6 @@ - @@ -1614,6 +1613,7 @@ + diff --git a/VoidLink/Localization/Localizable.xcstrings b/VoidLink/Localization/Localizable.xcstrings index 85a1c7bd..1ae1e730 100644 --- a/VoidLink/Localization/Localizable.xcstrings +++ b/VoidLink/Localization/Localizable.xcstrings @@ -1900,6 +1900,35 @@ } } }, + "hdrStackTip" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "HDR video stream decoding is not supported on current device" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "当前系统不支持HDR视频流解码" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "當前裝置不支援HDR視訊串流解碼" + } + }, + "zh-HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "當前裝置不支援HDR視訊串流解碼" + } + } + } + }, "Height" : { "extractionState" : "manual", "localizations" : { diff --git a/VoidLink/ViewControllers/SettingsViewController.h b/VoidLink/ViewControllers/SettingsViewController.h index d42528b1..ebc85e00 100644 --- a/VoidLink/ViewControllers/SettingsViewController.h +++ b/VoidLink/ViewControllers/SettingsViewController.h @@ -48,7 +48,7 @@ @property (strong, nonatomic) IBOutlet UIStackView *codecStack; @property (strong, nonatomic) IBOutlet UIStackView *yuv444Stack; @property (strong, nonatomic) IBOutlet UIStackView *pipStack; -@property (strong, nonatomic) IBOutlet UIStackView *HdrStack; +@property (strong, nonatomic) IBOutlet UIStackView *hdrStack; @property (strong, nonatomic) IBOutlet UIStackView *framepacingStack; @property (strong, nonatomic) IBOutlet UIStackView *reverseMouseWheelDirectionStack; @property (strong, nonatomic) IBOutlet UIStackView *citrixX1MouseStack; diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m index 76b0ce7f..462998ca 100644 --- a/VoidLink/ViewControllers/SettingsViewController.m +++ b/VoidLink/ViewControllers/SettingsViewController.m @@ -519,7 +519,7 @@ BOOL isCustomResolution(CGSize res) { [self addSetting:self.bitrateStack ofId:@"bitrateStack" withInfoTag:YES withDynamicLabel:YES to:videoSection]; [self addSetting:self.framepacingStack ofId:@"framepacingStack" withInfoTag:NO withDynamicLabel:NO to:videoSection]; [self addSetting:self.codecStack ofId:@"codecStack" withInfoTag:NO withDynamicLabel:NO to:videoSection]; - [self addSetting:self.HdrStack ofId:@"HdrStack" withInfoTag:NO withDynamicLabel:NO to:videoSection]; + [self addSetting:self.hdrStack ofId:@"hdrStack" withInfoTag:![self hdrSupported] withDynamicLabel:NO to:videoSection]; [self addSetting:self.yuv444Stack ofId:@"yuv444Stack" withInfoTag:YES withDynamicLabel:NO to:videoSection]; [self addSetting:self.pipStack ofId:@"pipStack" withInfoTag:YES withDynamicLabel:NO to:videoSection]; [videoSection addToParentStack:_parentStack]; @@ -973,6 +973,11 @@ BOOL isCustomResolution(CGSize res) { showOnlineDocAction = true; } + if([sender.superview.accessibilityIdentifier isEqualToString: @"hdrStack"]){ + tipText = [LocalizationHelper localizedStringForKey:@"hdrStackTip"]; + showOnlineDocAction = false; + } + @@ -1271,7 +1276,7 @@ BOOL isCustomResolution(CGSize res) { break; } - if (!VTIsHardwareDecodeSupported(kCMVideoCodecType_HEVC) || !(AVPlayer.availableHDRModes & AVPlayerHDRModeHDR10)) { + if ([self hdrSupported]) { [self.hdrSwitch setOn:NO]; [self.hdrSwitch setEnabled:NO]; } @@ -1862,6 +1867,11 @@ BOOL isCustomResolution(CGSize res) { [self updateBitrateText]; } +- (bool)hdrSupported{ + return false; + return !VTIsHardwareDecodeSupported(kCMVideoCodecType_HEVC) || !(AVPlayer.availableHDRModes & AVPlayerHDRModeHDR10); +} + - (void) updateBitrateText { // Display bitrate in Mbps UILabel* label = [self findDynamicLabelFromStack:self.bitrateStack];