From: Derk-Jan Hartman Date: Wed, 5 Feb 2003 14:58:15 +0000 (+0000) Subject: * Added AppleScript support X-Git-Tag: 0.5.1~123 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0e925ba035109b649742a72110e102860473a0b9;p=vlc * Added AppleScript support * We can now handle mms:// etc on a systemwide level. - No way to set this other then trough Explorer Prefs at the moment --- diff --git a/extras/MacOSX/Resources/English.lproj/vlc.scriptTerminology b/extras/MacOSX/Resources/English.lproj/vlc.scriptTerminology new file mode 100644 index 0000000000..a31ee21a7e --- /dev/null +++ b/extras/MacOSX/Resources/English.lproj/vlc.scriptTerminology @@ -0,0 +1,15 @@ +{ + "Name" = "vlc suite"; + "Description" = "vlc specific classes."; + + "Commands" = { + "OpenURL" = { + Name = "OpenURL"; + Description = "Open a URL"; + }; + "GetURL" = { + Name = "GetURL"; + Description = "Get a URL"; + }; + }; +} \ No newline at end of file diff --git a/extras/MacOSX/Resources/vlc.scriptSuite b/extras/MacOSX/Resources/vlc.scriptSuite new file mode 100644 index 0000000000..d12be36f38 --- /dev/null +++ b/extras/MacOSX/Resources/vlc.scriptSuite @@ -0,0 +1,17 @@ +{ + "Name" = "vlc"; + "AppleEventCode" = "VLC#"; + + "Commands" = { + "OpenURL" = { + AppleEventClassCode = "WWW!"; + AppleEventCode = "OURL"; + CommandClass = "VLGetURLScriptCommand"; + }; + "GetURL" = { + AppleEventClassCode = "GURL"; + AppleEventCode = "GURL"; + CommandClass = "VLGetURLScriptCommand"; + }; + }; +} \ No newline at end of file diff --git a/extras/MacOSX/vlc.pbproj/project.pbxproj b/extras/MacOSX/vlc.pbproj/project.pbxproj index 5dbc67fe3d..4f37a487b5 100644 --- a/extras/MacOSX/vlc.pbproj/project.pbxproj +++ b/extras/MacOSX/vlc.pbproj/project.pbxproj @@ -400,6 +400,8 @@ CFBundleVersion 0.5.0 + NSAppleScriptEnabled + YES NSMainNibFile MainMenu NSPrincipalClass @@ -434,6 +436,8 @@ 8E68B0BF03E2EA230059A3A7, 8ED6C29F03E2F32E0059A3A7, 8ED6C2A003E2F32E0059A3A7, + 8EBF3FA403F13FFB0059A3A7, + 8EBF3FA803F140A80059A3A7, ); isa = PBXResourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -478,6 +482,8 @@ 8E68B0BE03E2EA230059A3A7, 8ED6C29D03E2F32E0059A3A7, 8ED6C29E03E2F32E0059A3A7, + 8EBF3FA303F13FFB0059A3A7, + 8EBF3FA703F140A80059A3A7, ); isa = PBXGroup; name = Resources; @@ -602,6 +608,38 @@ settings = { }; }; + 8EBF3FA303F13FFB0059A3A7 = { + isa = PBXFileReference; + name = vlc.scriptSuite; + path = Resources/vlc.scriptSuite; + refType = 2; + }; + 8EBF3FA403F13FFB0059A3A7 = { + fileRef = 8EBF3FA303F13FFB0059A3A7; + isa = PBXBuildFile; + settings = { + }; + }; + 8EBF3FA503F140960059A3A7 = { + isa = PBXFileReference; + name = vlc.scriptTerminology; + path = Resources/English.lproj/vlc.scriptTerminology; + refType = 2; + }; + 8EBF3FA703F140A80059A3A7 = { + children = ( + 8EBF3FA503F140960059A3A7, + ); + isa = PBXVariantGroup; + name = vlc.scriptTerminology; + refType = 4; + }; + 8EBF3FA803F140A80059A3A7 = { + fileRef = 8EBF3FA703F140A80059A3A7; + isa = PBXBuildFile; + settings = { + }; + }; 8ED6C27A03E2EB1C0059A3A7 = { fileEncoding = 30; isa = PBXFileReference; diff --git a/modules/gui/macosx/open.m b/modules/gui/macosx/open.m index fb77335500..5c47159b4f 100644 --- a/modules/gui/macosx/open.m +++ b/modules/gui/macosx/open.m @@ -2,7 +2,7 @@ * open.m: MacOS X plugin for vlc ***************************************************************************** * Copyright (C) 2002 VideoLAN - * $Id: open.m,v 1.19 2003/02/05 02:31:27 hartman Exp $ + * $Id: open.m,v 1.20 2003/02/05 14:58:15 hartman Exp $ * * Authors: Jon Lech Johansen * Christophe Massiot @@ -876,13 +876,14 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) @implementation VLGetURLScriptCommand - (id)performDefaultImplementation { - NSString *command = [[self commandDescription] commandName]; - NSString *urlString = [self directParameter]; + NSString *o_command = [[self commandDescription] commandName]; + NSString *o_urlString = [self directParameter]; - if ( [command isEqualToString:@"GetURL"] ) + NSLog(@"test1"); + if ( [o_command isEqualToString:@"GetURL"] || [o_command isEqualToString:@"OpenURL"] ) { intf_thread_t * p_intf = [NSApp getIntf]; - + NSLog( o_command ); playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); if( p_playlist == NULL ) @@ -890,9 +891,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) return nil; } - [p_playlist appendArray: - [NSArray arrayWithObject: urlString] atPos: -1 enqueue:NO]; - + if ( o_urlString ) + { + NSURL * o_url; + + int i_mode = PLAYLIST_INSERT | PLAYLIST_GO; + + playlist_Add( p_playlist, [o_urlString fileSystemRepresentation], + i_mode, PLAYLIST_END ); + NSLog( o_urlString ); + o_url = [NSURL fileURLWithPath: o_urlString]; + if( o_url != nil ) + { + [[NSDocumentController sharedDocumentController] + noteNewRecentDocumentURL: o_url]; + } + } vlc_object_release( p_playlist ); } return nil;