瀏覽代碼

playback: move sleep timer to vpc and adapt to logic changes (closes #14829)

(cherry picked from commit d473fecae30bfce655fe9549b32e59a55f0b62e0)
Felix Paul Kühne 10 年之前
父節點
當前提交
0ec56c4b8c
共有 3 個文件被更改,包括 13 次插入7 次删除
  1. 2 6
      Sources/VLCMovieViewController.m
  2. 1 1
      Sources/VLCPlaybackController.h
  3. 10 0
      Sources/VLCPlaybackController.m

+ 2 - 6
Sources/VLCMovieViewController.m

@@ -59,7 +59,6 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
     UIActionSheet *_audiotrackActionSheet;
 
     NSTimer *_idleTimer;
-    NSTimer *_sleepTimer;
 
     BOOL _viewAppeared;
     BOOL _displayRemainingTime;
@@ -1008,11 +1007,8 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
 
 - (IBAction)sleepTimerAction:(id)sender
 {
-    if (_sleepTimer) {
-        [_sleepTimer invalidate];
-        _sleepTimer = nil;
-    }
-    _sleepTimer = [NSTimer scheduledTimerWithTimeInterval:_sleepTimeDatePicker.countDownDuration target:self selector:@selector(closePlayback:) userInfo:nil repeats:NO];
+    VLCPlaybackController *vpc = [VLCPlaybackController sharedInstance];
+    [vpc scheduleSleepTimerWithInterval:_sleepTimeDatePicker.countDownDuration];
 }
 
 - (void)moreActions:(id)sender

+ 1 - 1
Sources/VLCPlaybackController.h

@@ -89,6 +89,6 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
 - (void)recoverPlaybackState;
 
 - (void)setNeedsMetadataUpdate;
-
+- (void)scheduleSleepTimerWithInterval:(NSTimeInterval)timeInterval;
 
 @end

+ 10 - 0
Sources/VLCPlaybackController.m

@@ -37,6 +37,7 @@ NSString *const VLCPlaybackControllerPlaybackDidFail = @"VLCPlaybackControllerPl
     BOOL _playerIsSetup;
     BOOL _playbackFailed;
     BOOL _shouldResumePlaying;
+    NSTimer *_sleepTimer;
 
     NSArray *_aspectRatios;
     NSUInteger _currentAspectRatioMask;
@@ -931,6 +932,15 @@ setstuff:
                          forPlaybackController:self];
 }
 
+- (void)scheduleSleepTimerWithInterval:(NSTimeInterval)timeInterval
+{
+    if (_sleepTimer) {
+        [_sleepTimer invalidate];
+        _sleepTimer = nil;
+    }
+    _sleepTimer = [NSTimer scheduledTimerWithTimeInterval:timeInterval target:self selector:@selector(stopPlayback) userInfo:nil repeats:NO];
+}
+
 #pragma mark - remote events
 
 static inline NSArray * RemoteCommandCenterCommandsToHandle(MPRemoteCommandCenter *cc)