[vlc-commits] macosx/main: move activePlayback property to player controller as it does not belong in the main singleton

Felix Paul Kühne git at videolan.org
Sun Jun 16 13:50:04 CEST 2019


vlc | branch: master | Felix Paul Kühne <felix at feepk.net> | Sun Jun 16 13:10:15 2019 +0200| [f5824de9ec61c0dedebe6e714f8de8ac55f32592] | committer: Felix Paul Kühne

macosx/main: move activePlayback property to player controller as it does not belong in the main singleton

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f5824de9ec61c0dedebe6e714f8de8ac55f32592
---

 modules/gui/macosx/library/VLCLibraryWindow.m       |  3 ++-
 modules/gui/macosx/main/VLCMain.h                   |  1 -
 modules/gui/macosx/main/VLCMain.m                   | 17 +----------------
 modules/gui/macosx/playlist/VLCPlayerController.h   |  5 +++++
 .../macosx/windows/video/VLCVideoOutputProvider.m   |  6 +++---
 .../gui/macosx/windows/video/VLCVideoWindowCommon.m | 21 +++++++++++----------
 6 files changed, 22 insertions(+), 31 deletions(-)

diff --git a/modules/gui/macosx/library/VLCLibraryWindow.m b/modules/gui/macosx/library/VLCLibraryWindow.m
index f714ed9eb4..f19475b84b 100644
--- a/modules/gui/macosx/library/VLCLibraryWindow.m
+++ b/modules/gui/macosx/library/VLCLibraryWindow.m
@@ -27,6 +27,7 @@
 #import "extensions/NSView+VLCAdditions.h"
 #import "main/VLCMain.h"
 
+#import "playlist/VLCPlayerController.h"
 #import "playlist/VLCPlaylistController.h"
 #import "playlist/VLCPlaylistDataSource.h"
 #import "playlist/VLCPlaylistSortingMenuController.h"
@@ -623,7 +624,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
     id currentWindow = [NSApp keyWindow];
     if ([currentWindow respondsToSelector:@selector(hasActiveVideo)] && [currentWindow hasActiveVideo]) {
         if ([currentWindow respondsToSelector:@selector(fullscreen)] && [currentWindow fullscreen] && ![[currentWindow videoView] isHidden]) {
-            if ([[VLCMain sharedInstance] activeVideoPlayback]) {
+            if ([_playlistController.playerController activeVideoPlayback]) {
                 [_fspanel fadeIn];
             }
         }
diff --git a/modules/gui/macosx/main/VLCMain.h b/modules/gui/macosx/main/VLCMain.h
index 77dbc82054..b03d0767f4 100644
--- a/modules/gui/macosx/main/VLCMain.h
+++ b/modules/gui/macosx/main/VLCMain.h
@@ -67,7 +67,6 @@ extern NSString *VLCConfigurationChangedNotification;
 
 + (VLCMain *)sharedInstance;
 
- at property (readwrite) BOOL activeVideoPlayback;
 @property (readonly) BOOL isTerminating;
 
 @property (readonly) VLCAudioEffectsWindowController *audioEffectsPanel;
diff --git a/modules/gui/macosx/main/VLCMain.m b/modules/gui/macosx/main/VLCMain.m
index 93917c8cdb..cdd90699f4 100644
--- a/modules/gui/macosx/main/VLCMain.m
+++ b/modules/gui/macosx/main/VLCMain.m
@@ -346,7 +346,7 @@ static VLCMain *sharedInstance = nil;
 /* don't be enthusiastic about an update if we currently play a video */
 - (BOOL)updaterMayCheckForUpdates:(SUUpdater *)bundle
 {
-    if ([self activeVideoPlayback])
+    if ([_playlistController.playerController activeVideoPlayback])
         return NO;
 
     return YES;
@@ -408,16 +408,6 @@ static VLCMain *sharedInstance = nil;
     return YES;
 }
 
-- (void)setActiveVideoPlayback:(BOOL)b_value
-{
-    assert([NSThread isMainThread]);
-
-    b_active_videoplayback = b_value;
-    if ([self libraryWindow]) {
-//        [[self libraryWindow] toggleVideoPlaybackAppearance];
-    }
-}
-
 #pragma mark -
 #pragma mark Other objects getters
 
@@ -523,9 +513,4 @@ static VLCMain *sharedInstance = nil;
     return _resume_dialog;
 }
 
-- (BOOL)activeVideoPlayback
-{
-    return b_active_videoplayback;
-}
-
 @end
diff --git a/modules/gui/macosx/playlist/VLCPlayerController.h b/modules/gui/macosx/playlist/VLCPlayerController.h
index 1909beac13..7ae1c11254 100644
--- a/modules/gui/macosx/playlist/VLCPlayerController.h
+++ b/modules/gui/macosx/playlist/VLCPlayerController.h
@@ -771,6 +771,11 @@ extern const CGFloat VLCVolumeDefault;
 @property (readwrite, nonatomic) BOOL fullscreen;
 
 /**
+ * indicates whether we currently have an active video playback session
+ */
+ at property (readwrite) BOOL activeVideoPlayback;
+
+/**
  * helper function to inverse the current fullscreen state
  */
 - (void)toggleFullscreen;
diff --git a/modules/gui/macosx/windows/video/VLCVideoOutputProvider.m b/modules/gui/macosx/windows/video/VLCVideoOutputProvider.m
index 378dce3f2d..928928c58f 100644
--- a/modules/gui/macosx/windows/video/VLCVideoOutputProvider.m
+++ b/modules/gui/macosx/windows/video/VLCVideoOutputProvider.m
@@ -355,7 +355,7 @@ int WindowOpen(vout_window_t *p_wnd)
     [newVideoWindow setHasActiveVideo: YES];
     [_voutWindows setObject:newVideoWindow forKey:[NSValue valueWithPointer:p_wnd]];
 
-    [mainInstance setActiveVideoPlayback: YES];
+    [_playerController setActiveVideoPlayback: YES];
     [[mainInstance libraryWindow] setNonembedded:!b_mainWindowHasVideo];
 
     // TODO: find a cleaner way for "start in fullscreen"
@@ -418,7 +418,7 @@ int WindowOpen(vout_window_t *p_wnd)
 
     [_voutWindows removeObjectForKey:key];
     if ([_voutWindows count] == 0) {
-        [mainInstance setActiveVideoPlayback:NO];
+        [_playerController setActiveVideoPlayback:NO];
         _statusLevelWindowCounter = 0;
     }
 
@@ -507,7 +507,7 @@ int WindowOpen(vout_window_t *p_wnd)
         assert(o_current_window);
 
         if (b_fullscreen) {
-            if (_playerController.playerState != VLC_PLAYER_STATE_STOPPED && [[VLCMain sharedInstance] activeVideoPlayback]) {
+            if (_playerController.playerState != VLC_PLAYER_STATE_STOPPED && [_playerController activeVideoPlayback]) {
                 // activate app, as method can also be triggered from outside the app (prevents nasty window layout)
                 [NSApp activateIgnoringOtherApps:YES];
                 [o_current_window enterFullscreenWithAnimation:b_animation];
diff --git a/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m b/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m
index 00975761e4..cd362fd3a9 100644
--- a/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m
+++ b/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m
@@ -61,6 +61,7 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
     BOOL b_video_view_was_hidden;
 
     NSRect frameBeforeLionFullscreen;
+    VLCPlayerController *_playerController;
 }
 
 - (void)customZoom:(id)sender;
@@ -86,6 +87,8 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
 
         o_temp_view = [[NSView alloc] init];
         [o_temp_view setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable];
+
+        _playerController = [[[VLCMain sharedInstance] playlistController] playerController];
     }
 
     return self;
@@ -125,7 +128,7 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
 {
     VLCPlaylistController *playlistController = [[VLCMain sharedInstance] playlistController];
     input_item_t *mediaItem = [playlistController currentlyPlayingInputItem];
-    if (mediaItem == NULL || playlistController.playerController.playerState == VLC_PLAYER_STATE_STOPPED) {
+    if (mediaItem == NULL || _playerController.playerState == VLC_PLAYER_STATE_STOPPED) {
         [self setTitle:_NS("VLC media player")];
         self.representedURL = nil;
         return;
@@ -390,7 +393,7 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
 
 - (NSSize)windowWillResize:(NSWindow *)window toSize:(NSSize)proposedFrameSize
 {
-    if (![[VLCMain sharedInstance] activeVideoPlayback] || self.nativeVideoSize.width == 0. || self.nativeVideoSize.height == 0. || window != self)
+    if (![_playerController activeVideoPlayback] || self.nativeVideoSize.width == 0. || self.nativeVideoSize.height == 0. || window != self)
         return proposedFrameSize;
 
     // needed when entering lion fullscreen mode
@@ -400,7 +403,7 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
     if ([_videoView isHidden])
         return proposedFrameSize;
 
-    if ([[[[VLCMain sharedInstance] playlistController] playerController] aspectRatioIsLocked]) {
+    if ([_playerController aspectRatioIsLocked]) {
         NSRect videoWindowFrame = [self frame];
         NSRect viewRect = [_videoView convertRect:[_videoView bounds] toView: nil];
         NSRect contentRect = [self contentRectForFrameRect:videoWindowFrame];
@@ -504,7 +507,7 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
 
 - (void)windowWillEnterFullScreen:(NSNotification *)notification
 {
-    _windowShouldExitFullscreenWhenFinished = [[VLCMain sharedInstance] activeVideoPlayback];
+    _windowShouldExitFullscreenWhenFinished = [_playerController activeVideoPlayback];
 
     NSInteger i_currLevel = [self level];
     // self.fullscreen and _inFullscreenTransition must not be true yet
@@ -514,13 +517,12 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
 
     _inFullscreenTransition = YES;
 
-    VLCPlayerController *playerController = [[[VLCMain sharedInstance] playlistController] playerController];
-    playerController.fullscreen = YES;
+    _playerController.fullscreen = YES;
 
     frameBeforeLionFullscreen = [self frame];
 
     if ([self hasActiveVideo]) {
-        vout_thread_t *p_vout = [playerController videoOutputThreadForKeyWindow];
+        vout_thread_t *p_vout = [_playerController videoOutputThreadForKeyWindow];
         if (p_vout) {
             var_SetBool(p_vout, "fullscreen", true);
             vout_Release(p_vout);
@@ -566,10 +568,9 @@ NSString *VLCWindowShouldShowController = @"VLCWindowShouldShowController";
     [self setFullscreen: NO];
 
     if ([self hasActiveVideo]) {
-        VLCPlayerController *playerController = [[[VLCMain sharedInstance] playlistController] playerController];
-        playerController.fullscreen = NO;
+        _playerController.fullscreen = NO;
 
-        vout_thread_t *p_vout = [playerController videoOutputThreadForKeyWindow];
+        vout_thread_t *p_vout = [_playerController videoOutputThreadForKeyWindow];
         if (p_vout) {
             var_SetBool(p_vout, "fullscreen", false);
             vout_Release(p_vout);



More information about the vlc-commits mailing list