[vlc-commits] [Git][videolan/vlc][master] 6 commits: macosx: Add loading indicator to main video view XIB
Steve Lhomme (@robUx4)
gitlab at videolan.org
Tue May 7 04:03:41 UTC 2024
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
f3a8d4af by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Add loading indicator to main video view XIB
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
f11df7bc by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Show and hide loading indicator in main video view based on buffer fill state
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
b4ec0537 by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Run animation for main video view loading indicator
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
823f9a79 by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Hide main video view loading indicator on load
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
32399ea6 by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Do not mark audio decorative view property as readwrite outlet
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
ff02f0a9 by Claudio Cambra at 2024-05-07T03:32:49+00:00
macosx: Ensure loading indicator is visible above decorative view
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
3 changed files:
- modules/gui/macosx/UI/VLCMainVideoView.xib
- modules/gui/macosx/windows/video/VLCMainVideoViewController.h
- modules/gui/macosx/windows/video/VLCMainVideoViewController.m
Changes:
=====================================
modules/gui/macosx/UI/VLCMainVideoView.xib
=====================================
@@ -14,6 +14,7 @@
<outlet property="controlsBar" destination="3" id="Mfq-2w-2uR"/>
<outlet property="fakeTitleBar" destination="jnw-gL-nrF" id="7lZ-al-c3d"/>
<outlet property="fakeTitleBarHeightConstraint" destination="wY4-If-nIp" id="wPt-X4-mgu"/>
+ <outlet property="loadingIndicator" destination="xOQ-YR-iAc" id="CtX-Yo-UX2"/>
<outlet property="mainControlsView" destination="D4V-Zd-qvB" id="KwM-ya-ETn"/>
<outlet property="overlayView" destination="FGS-tq-54S" id="RSC-7m-N0y"/>
<outlet property="playlistButton" destination="Drq-if-dw4" id="BZe-Cr-mzZ"/>
@@ -426,13 +427,19 @@
</view>
<color key="fillColor" red="0.0" green="0.0" blue="0.0" alpha="0.35060533940397354" colorSpace="custom" customColorSpace="sRGB"/>
</box>
+ <progressIndicator maxValue="100" indeterminate="YES" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="xOQ-YR-iAc">
+ <rect key="frame" x="344" y="156" width="32" height="32"/>
+ </progressIndicator>
</subviews>
<constraints>
<constraint firstItem="D4V-Zd-qvB" firstAttribute="bottom" secondItem="mAS-4a-RS8" secondAttribute="bottom" id="AaN-hq-IgD"/>
<constraint firstItem="mAS-4a-RS8" firstAttribute="top" secondItem="WRu-Ic-lQK" secondAttribute="top" id="F3X-8V-3Hg"/>
<constraint firstAttribute="bottom" secondItem="mAS-4a-RS8" secondAttribute="bottom" id="RPX-tv-ZTb"/>
<constraint firstItem="D4V-Zd-qvB" firstAttribute="top" secondItem="mAS-4a-RS8" secondAttribute="top" id="RUD-Fr-n5w"/>
+ <constraint firstItem="xOQ-YR-iAc" firstAttribute="top" secondItem="CvV-yX-Nbh" secondAttribute="bottom" constant="20" id="S0Y-3b-Ibd"/>
<constraint firstItem="mAS-4a-RS8" firstAttribute="leading" secondItem="WRu-Ic-lQK" secondAttribute="leading" id="Ygq-Dt-Lbg"/>
+ <constraint firstItem="xOQ-YR-iAc" firstAttribute="centerX" secondItem="WRu-Ic-lQK" secondAttribute="centerX" id="enR-Xo-ume"/>
+ <constraint firstItem="1GA-GG-Sdx" firstAttribute="top" relation="greaterThanOrEqual" secondItem="xOQ-YR-iAc" secondAttribute="bottom" constant="20" id="jM9-dz-8jm"/>
<constraint firstAttribute="trailing" secondItem="mAS-4a-RS8" secondAttribute="trailing" id="jOZ-5U-ips"/>
<constraint firstItem="D4V-Zd-qvB" firstAttribute="leading" secondItem="mAS-4a-RS8" secondAttribute="leading" id="rIC-FU-Uxl"/>
<constraint firstItem="D4V-Zd-qvB" firstAttribute="trailing" secondItem="mAS-4a-RS8" secondAttribute="trailing" id="z4h-I8-bGU"/>
=====================================
modules/gui/macosx/windows/video/VLCMainVideoViewController.h
=====================================
@@ -35,7 +35,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (readwrite, strong) IBOutlet VLCVoutView *voutView;
@property (readwrite, strong) IBOutlet NSBox *mainControlsView;
@property (readwrite, strong) IBOutlet VLCMainVideoViewOverlayView *overlayView;
- at property (readwrite, strong) IBOutlet VLCMainVideoViewAudioMediaDecorativeView *audioDecorativeView;
@property (readwrite, strong) IBOutlet NSView *bottomBarView;
@property (readwrite, strong) IBOutlet NSStackView *centralControlsStackView;
@property (readwrite, strong) IBOutlet VLCMainVideoViewControlsBar *controlsBar;
@@ -47,7 +46,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (readwrite, strong) IBOutlet NSLayoutConstraint *playlistButtonTrailingConstraint;
@property (readwrite, strong) IBOutlet NSVisualEffectView *fakeTitleBar;
@property (readwrite, strong) IBOutlet NSLayoutConstraint *fakeTitleBarHeightConstraint;
+ at property (readwrite, strong) IBOutlet NSProgressIndicator *loadingIndicator;
+ at property (readonly, strong) VLCMainVideoViewAudioMediaDecorativeView *audioDecorativeView;
@property (readwrite, nonatomic) BOOL autohideControls;
@property (readwrite, nonatomic) BOOL displayLibraryControls;
@property (readonly) BOOL mouseOnControls;
=====================================
modules/gui/macosx/windows/video/VLCMainVideoViewController.m
=====================================
@@ -73,6 +73,10 @@
selector:@selector(playerCurrentItemTrackListChanged:)
name:VLCPlayerTrackListChanged
object:nil];
+ [notificationCenter addObserver:self
+ selector:@selector(playerBufferChanged:)
+ name:VLCPlayerBufferChanged
+ object:nil];
}
return self;
}
@@ -122,6 +126,7 @@
- (void)viewDidLoad
{
+ self.loadingIndicator.hidden = YES;
_autohideControls = YES;
[self setDisplayLibraryControls:NO];
@@ -194,6 +199,23 @@
[self updateDecorativeViewVisibilityOnControllerChange:controller];
}
+- (void)playerBufferChanged:(NSNotification *)notification
+{
+ NSParameterAssert(notification);
+ NSParameterAssert(notification.userInfo != nil);
+
+ NSNumber * const bufferFillNumber = notification.userInfo[VLCPlayerBufferFill];
+ NSAssert(bufferFillNumber != nil, @"Buffer fill number should not be nil");
+
+ const float bufferFill = bufferFillNumber.floatValue;
+ self.loadingIndicator.hidden = bufferFill == 1.0;
+ if (self.loadingIndicator.hidden) {
+ [self.loadingIndicator stopAnimation:self];
+ } else {
+ [self.loadingIndicator startAnimation:self];
+ }
+}
+
- (BOOL)mouseOnControls
{
NSPoint mousePos = [self.view.window mouseLocationOutsideOfEventStream];
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/010853ff241ac37d5ee9e88211899eb832251d9f...ff02f0a9502a996c9d62baf453fb8ff030d94d67
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/010853ff241ac37d5ee9e88211899eb832251d9f...ff02f0a9502a996c9d62baf453fb8ff030d94d67
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list