]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/applescript.m
Use pl_Locked and pl_Unlocked.
[vlc] / modules / gui / macosx / applescript.m
index adf31885bcdb8692dc0a9d00f09ba80b946773b9..cfba3bb341d922fd75935874d088d68b5321d9b1 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * applescript.m: MacOS X AppleScript support
  *****************************************************************************
- * Copyright (C) 2002-2003 the VideoLAN team
+ * Copyright (C) 2002-2003, 2005, 2007-2008 the VideoLAN team
  * $Id$
  *
  * Authors: Derk-Jan Hartman <thedj@users.sourceforge.net>
@@ -10,7 +10,7 @@
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -30,7 +30,7 @@
 #include "open.h"
 
 /*****************************************************************************
- * VLGetURLScriptCommand implementation 
+ * VLGetURLScriptCommand implementation
  *****************************************************************************/
 @implementation VLGetURLScriptCommand
 
@@ -41,8 +41,7 @@
     if ( [o_command isEqualToString:@"GetURL"] || [o_command isEqualToString:@"OpenURL"] )
     {
         intf_thread_t * p_intf = VLCIntf;
-        playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
-                                                        FIND_ANYWHERE );
+        playlist_t * p_playlist = pl_Yield( p_intf );
         if( p_playlist == NULL )
         {
             return nil;
                                     [o_urlString fileSystemRepresentation],
                                     [[[NSFileManager defaultManager]
                                     displayNameAtPath: o_urlString] UTF8String] );
+            /* FIXME: playlist_AddInput() can fail */
             playlist_AddInput( p_playlist, p_input, PLAYLIST_INSERT,
-                               PLAYLIST_END, VLC_TRUE );
+                               PLAYLIST_END, true, pl_Unlocked );
 
+            vlc_gc_decref( p_input );
 
             o_url = [NSURL fileURLWithPath: o_urlString];
             if( o_url != nil )
@@ -77,7 +78,7 @@
 
 
 /*****************************************************************************
- * VLControlScriptCommand implementation 
+ * VLControlScriptCommand implementation
  *****************************************************************************/
 /*
  * This entire control command needs a better design. more object oriented.
     NSString *o_command = [[self commandDescription] commandName];
 
     intf_thread_t * p_intf = VLCIntf;
-    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
-                                                    FIND_ANYWHERE );
+    playlist_t * p_playlist = pl_Yield( p_intf );
     if( p_playlist == NULL )
     {
         return nil;
     }
-    
     VLCControls * o_controls = (VLCControls *)[[NSApp delegate] getControls];
-    
     if ( o_controls )
     {
         if ( [o_command isEqualToString:@"play"] )
  *****************************************************************************/
 @implementation NSApplication(ScriptSupport)
 
-- (BOOL) scriptFullscreenMode {        
+- (BOOL) scriptFullscreenMode {    
     VLCControls * o_controls = (VLCControls *)[[self delegate] getControls];
 
     return [o_controls isFullscreen];
     [o_controls toogleFullscreen: self];
 }
 
-@end
\ No newline at end of file
+@end