]> git.sesse.net Git - vlc/commitdiff
macosx/framework: Make sure -[VLCExtensionManager mediaPlayer] is KVO.
authorPierre d'Herbemont <pdherbemont@free.fr>
Fri, 29 Jan 2010 10:48:56 +0000 (11:48 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Fri, 29 Jan 2010 10:49:26 +0000 (11:49 +0100)
projects/macosx/framework/Headers/Public/VLCExtensionsManager.h
projects/macosx/framework/Sources/VLCExtensionsManager.m

index dee0fb90f4e75a882d4722569e83a6f9a3633c5f..6c3417659edaf6dec2bc5e3697b5bcd0b6d52688 100644 (file)
     void *instance;
     NSMutableArray *_extensions;
     VLCMediaPlayer *_player;
+    void *_previousInput;
 }
 + (VLCExtensionsManager *)sharedManager;
 - (NSArray *)extensions;
 - (void)runExtension:(VLCExtension *)extension;
+
+@property (readwrite, retain) VLCMediaPlayer *mediaPlayer;
 @end
index e202536b7309cb811dc4a4b45b2aa2b33f16c18e..85f38965b4eb1a96d4e16b21024b436713bbd51a 100644 (file)
@@ -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