From: Pierre d'Herbemont Date: Fri, 29 Jan 2010 10:48:56 +0000 (+0100) Subject: macosx/framework: Make sure -[VLCExtensionManager mediaPlayer] is KVO. X-Git-Tag: 1.1.0-ff~712 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=a406c0827f3f1e5b08989582c410e37677ec8cf8;p=vlc macosx/framework: Make sure -[VLCExtensionManager mediaPlayer] is KVO. --- diff --git a/projects/macosx/framework/Headers/Public/VLCExtensionsManager.h b/projects/macosx/framework/Headers/Public/VLCExtensionsManager.h index dee0fb90f4..6c3417659e 100644 --- a/projects/macosx/framework/Headers/Public/VLCExtensionsManager.h +++ b/projects/macosx/framework/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 diff --git a/projects/macosx/framework/Sources/VLCExtensionsManager.m b/projects/macosx/framework/Sources/VLCExtensionsManager.m index e202536b73..85f38965b4 100644 --- a/projects/macosx/framework/Sources/VLCExtensionsManager.m +++ b/projects/macosx/framework/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