Explorar el Código

macosx/framework: Make sure -[VLCExtensionManager mediaPlayer] is KVO.

Pierre d'Herbemont hace 15 años
padre
commit
003901639f
Se han modificado 2 ficheros con 14 adiciones y 0 borrados
  1. 3 0
      Headers/Public/VLCExtensionsManager.h
  2. 11 0
      Sources/VLCExtensionsManager.m

+ 3 - 0
Headers/Public/VLCExtensionsManager.h

@@ -15,8 +15,11 @@
     void *instance;
     NSMutableArray *_extensions;
     VLCMediaPlayer *_player;
+    void *_previousInput;
 }
 + (VLCExtensionsManager *)sharedManager;
 - (NSArray *)extensions;
 - (void)runExtension:(VLCExtension *)extension;
+
+@property (readwrite, retain) VLCMediaPlayer *mediaPlayer;
 @end

+ 11 - 0
Sources/VLCExtensionsManager.m

@@ -88,6 +88,12 @@ static VLCExtensionsManager *sharedManager = nil;
 - (void)mediaPlayerLikelyChangedInput
 {
     input_thread_t *input = _player ? libvlc_media_player_get_input_thread([_player libVLCMediaPlayer]) : NULL;
+
+    // Don't send more than appropriate
+    if (_previousInput == input)
+        return;
+    _previousInput = input;
+
     for(VLCExtension *extension in _extensions)
         extension_SetInput(_instance, [extension instance], input);
     if (input)
@@ -110,4 +116,9 @@ static VLCExtensionsManager *sharedManager = nil;
     if (player)
         [center addObserver:self selector:@selector(mediaPlayerLikelyChangedInput) name:VLCMediaPlayerStateChanged object:_player];
 }
+
+- (VLCMediaPlayer *)mediaPlayer
+{
+    return _player;
+}
 @end