[vlc-devel] commit: macosx: Do not load resources when the VLC interface is not loaded. (Jean-Paul Saman )

git version control git at videolan.org
Sun Jun 14 20:09:11 CEST 2009


vlc | branch: 1.0-bugfix | Jean-Paul Saman <jpsaman at videolan.org> | Sun Jun 14 12:02:12 2009 +0200| [e4b9f90737c4f21c77498c1ff403df5bd9f03c06] | committer: Jean-Paul Saman 

macosx: Do not load resources when the VLC interface is not loaded.

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

 modules/gui/macosx/intf.m |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index 7d758b1..725acd1 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -314,6 +314,8 @@ static VLCMain *_o_sharedMainInstance = nil;
     else
         _o_sharedMainInstance = [super init];
 
+    p_intf = NULL;
+
     o_msg_lock = [[NSLock alloc] init];
     o_msg_arr = [[NSMutableArray arrayWithCapacity: 200] retain];
     /* subscribe to LibVLC's debug messages as early as possible (for us) */
@@ -365,7 +367,10 @@ static VLCMain *_o_sharedMainInstance = nil;
     playlist_t *p_playlist;
     vlc_value_t val;
 
-    /* Check if we already did this once. Opening the other nibs calls it too, because VLCMain is the owner */
+    if( !p_intf ) return;
+
+    /* Check if we already did this once. Opening the other nibs calls it too,
+       because VLCMain is the owner */
     if( nib_main_loaded ) return;
 
     /* check whether the user runs a valid version of OS X */
@@ -543,6 +548,8 @@ static VLCMain *_o_sharedMainInstance = nil;
 
 - (void)applicationWillFinishLaunching:(NSNotification *)o_notification
 {
+    if( !p_intf ) return;
+
     /* FIXME: don't poll */
     interfaceTimer = [[NSTimer scheduledTimerWithTimeInterval: 0.5
                                      target: self selector: @selector(manageIntf:)
@@ -559,6 +566,8 @@ static VLCMain *_o_sharedMainInstance = nil;
 
 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
 {
+    if( !p_intf ) return;
+
     [self _removeOldPreferences];
 
 #ifdef UPDATE_CHECK
@@ -579,6 +588,8 @@ static VLCMain *_o_sharedMainInstance = nil;
 
 - (void)initStrings
 {
+    if( !p_intf ) return;
+
     [o_window setTitle: _NS("VLC media player")];
     [self setScrollField:_NS("VLC media player") stopAfter:-1];
 
@@ -749,6 +760,8 @@ static VLCMain *_o_sharedMainInstance = nil;
 
 - (void)releaseRepresentedObjects:(NSMenu *)the_menu
 {
+    if( !p_intf ) return;
+
     NSArray *menuitems_array = [the_menu itemArray];
     for( int i=0; i<[menuitems_array count]; i++ )
     {
@@ -766,6 +779,8 @@ static VLCMain *_o_sharedMainInstance = nil;
     vout_thread_t * p_vout;
     int returnedValue = 0;
  
+    if( !p_intf ) return;
+
     msg_Dbg( p_intf, "Terminating" );
 
     /* Make sure the manage_thread won't call -terminate: again */
@@ -906,7 +921,6 @@ static NSString * VLCToolbarMediaControl     = @"VLCToolbarMediaControl";
 {
     NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease];
 
- 
     if( [itemIdentifier isEqual: VLCToolbarMediaControl] )
     {
         [toolbarItem setLabel:@"Media Controls"];
@@ -988,12 +1002,14 @@ static NSString * VLCToolbarMediaControl     = @"VLCToolbarMediaControl";
    application */
 - (void)applicationDidBecomeActive:(NSNotification *)aNotification
 {
+    if( !p_intf ) return;
 #ifndef __x86_64__
     [o_remote startListening: self];
 #endif
 }
 - (void)applicationDidResignActive:(NSNotification *)aNotification
 {
+    if( !p_intf ) return;
 #ifndef __x86_64__
     [o_remote stopListening: self];
 #endif
@@ -1003,7 +1019,7 @@ static NSString * VLCToolbarMediaControl     = @"VLCToolbarMediaControl";
 - (void)computerWillSleep: (NSNotification *)notification
 {
     /* Pause */
-    if( p_intf->p_sys->i_play_status == PLAYING_S )
+    if( p_intf && p_intf->p_sys->i_play_status == PLAYING_S )
     {
         vlc_value_t val;
         val.i_int = config_GetInt( p_intf, "key-play-pause" );
@@ -1500,11 +1516,11 @@ static void manage_cleanup( void * args )
     id self = manage_cleanup_stack->self;
     playlist_t * p_playlist = manage_cleanup_stack->p_playlist;
 
-    var_AddCallback( p_playlist, "item-current", PlaylistChanged, self );
-    var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self );
-    var_AddCallback( p_playlist, "item-change", PlaylistChanged, self );
-    var_AddCallback( p_playlist, "playlist-item-append", PlaylistChanged, self );
-    var_AddCallback( p_playlist, "playlist-item-deleted", PlaylistChanged, self );
+    var_DelCallback( p_playlist, "item-current", PlaylistChanged, self );
+    var_DelCallback( p_playlist, "intf-change", PlaylistChanged, self );
+    var_DelCallback( p_playlist, "item-change", PlaylistChanged, self );
+    var_DelCallback( p_playlist, "playlist-item-append", PlaylistChanged, self );
+    var_DelCallback( p_playlist, "playlist-item-deleted", PlaylistChanged, self );
 
     pl_Release( p_intf );
 




More information about the vlc-devel mailing list