[vlc-commits] macosx/apple script: remove dependency on core interaction singleton

Felix Paul Kühne git at videolan.org
Sat Apr 13 22:10:00 CEST 2019


vlc | branch: master | Felix Paul Kühne <felix at feepk.net> | Sat Apr 13 21:19:32 2019 +0200| [53fe076816151f9be1ecd59c92b0e7f051625ba5] | committer: Felix Paul Kühne

macosx/apple script: remove dependency on core interaction singleton

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

 modules/gui/macosx/os-integration/applescript.h |   4 +-
 modules/gui/macosx/os-integration/applescript.m | 108 ++++++++++++------------
 2 files changed, 54 insertions(+), 58 deletions(-)

diff --git a/modules/gui/macosx/os-integration/applescript.h b/modules/gui/macosx/os-integration/applescript.h
index eecfd15a47..2f83864e53 100644
--- a/modules/gui/macosx/os-integration/applescript.h
+++ b/modules/gui/macosx/os-integration/applescript.h
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * applescript.h: MacOS X AppleScript support
  *****************************************************************************
- * Copyright (C) 2002-2012 VLC authors and VideoLAN
+ * Copyright (C) 2002-2019 VLC authors and VideoLAN
  *
  * Authors: Derk-Jan Hartman <thedj at users.sourceforge.net>
  *
@@ -40,7 +40,7 @@
 @interface NSApplication(ScriptSupport)
 
 @property (readwrite) BOOL scriptFullscreenMode;
- at property (readwrite) int audioVolume;
+ at property (readwrite) float audioVolume;
 @property (readwrite) long long audioDesync;
 @property (readwrite) int currentTime;
 @property (readonly) NSInteger durationOfCurrentItem;
diff --git a/modules/gui/macosx/os-integration/applescript.m b/modules/gui/macosx/os-integration/applescript.m
index 8e20127548..120d81bb8f 100644
--- a/modules/gui/macosx/os-integration/applescript.m
+++ b/modules/gui/macosx/os-integration/applescript.m
@@ -31,7 +31,6 @@
 #import <vlc_url.h>
 
 #import "main/VLCMain.h"
-#import "coreinteraction/VLCCoreInteraction.h"
 #import "playlist/VLCPlaylistController.h"
 #import "playlist/VLCPlayerController.h"
 #import "windows/VLCOpenInputMetadata.h"
@@ -59,7 +58,6 @@
 
 @end
 
-
 /*****************************************************************************
  * VLControlScriptCommand implementation
  *****************************************************************************/
@@ -67,86 +65,84 @@
  * This entire control command needs a better design. more object oriented.
  * Applescript developers would be very welcome (hartman)
  */
+
 @implementation VLControlScriptCommand
 
 - (id)performDefaultImplementation
 {
+    VLCPlaylistController *playlistController;
+    VLCPlayerController *playerController;
+
     NSString *commandString = [[self commandDescription] commandName];
     NSString *parameterString = [self directParameter];
-    VLCCoreInteraction *coreInteractionInstance = [VLCCoreInteraction sharedInstance];
-
-    if ([commandString isEqualToString:@"play"])
-        [coreInteractionInstance playOrPause];
-    else if ([commandString isEqualToString:@"stop"])
-        [coreInteractionInstance stop];
-    else if ([commandString isEqualToString:@"previous"])
-        [coreInteractionInstance previous];
-    else if ([commandString isEqualToString:@"next"])
-        [coreInteractionInstance next];
-    else if ([commandString isEqualToString:@"fullscreen"])
-        [coreInteractionInstance toggleFullscreen];
-    else if ([commandString isEqualToString:@"mute"])
-        [coreInteractionInstance toggleMute];
-    else if ([commandString isEqualToString:@"volumeUp"])
-        [coreInteractionInstance volumeUp];
-    else if ([commandString isEqualToString:@"volumeDown"])
-        [coreInteractionInstance volumeDown];
-    else if ([commandString isEqualToString:@"moveMenuFocusUp"])
-        [coreInteractionInstance moveMenuFocusUp];
-    else if ([commandString isEqualToString:@"moveMenuFocusDown"])
-        [coreInteractionInstance moveMenuFocusDown];
-    else if ([commandString isEqualToString:@"moveMenuFocusLeft"])
-        [coreInteractionInstance moveMenuFocusLeft];
-    else if ([commandString isEqualToString:@"moveMenuFocusRight"])
-        [coreInteractionInstance moveMenuFocusRight];
-    else if ([commandString isEqualToString:@"menuFocusActivate"])
-        [coreInteractionInstance menuFocusActivate];
-    else if ([commandString isEqualToString:@"stepForward"]) {
-        //default: forwardShort
+
+    if ([commandString isEqualToString:@"play"]) {
+        [playerController togglePlayPause];
+    } else if ([commandString isEqualToString:@"stop"]) {
+        [playerController stop];
+    } else if ([commandString isEqualToString:@"previous"]) {
+        [playlistController playPreviousItem];
+    } else if ([commandString isEqualToString:@"next"]) {
+        [playlistController playNextItem];
+    } else if ([commandString isEqualToString:@"fullscreen"]) {
+        [playerController toggleFullscreen];
+    } else if ([commandString isEqualToString:@"mute"]) {
+        [playerController toggleMute];
+    } else if ([commandString isEqualToString:@"volumeUp"]) {
+        [playerController incrementVolume];
+    } else if ([commandString isEqualToString:@"volumeDown"]) {
+        [playerController decrementVolume];
+    } else if ([commandString isEqualToString:@"moveMenuFocusUp"]) {
+        [playerController navigateInInteractiveContent:VLC_PLAYER_NAV_UP];
+    } else if ([commandString isEqualToString:@"moveMenuFocusDown"]) {
+        [playerController navigateInInteractiveContent:VLC_PLAYER_NAV_DOWN];
+    } else if ([commandString isEqualToString:@"moveMenuFocusLeft"]) {
+        [playerController navigateInInteractiveContent:VLC_PLAYER_NAV_LEFT];
+    } else if ([commandString isEqualToString:@"moveMenuFocusRight"]) {
+        [playerController navigateInInteractiveContent:VLC_PLAYER_NAV_RIGHT];
+    } else if ([commandString isEqualToString:@"menuFocusActivate"]) {
+        [playerController navigateInInteractiveContent:VLC_PLAYER_NAV_ACTIVATE];
+    } else if ([commandString isEqualToString:@"stepForward"]) {
         if (parameterString) {
             int parameterInt = [parameterString intValue];
             switch (parameterInt) {
                 case 1:
-                    [coreInteractionInstance forwardExtraShort];
-                    break;
-                case 2:
-                    [coreInteractionInstance forwardShort];
+                    [playerController jumpForwardExtraShort];
                     break;
                 case 3:
-                    [coreInteractionInstance forwardMedium];
+                    [playerController jumpForwardMedium];
                     break;
                 case 4:
-                    [coreInteractionInstance forwardLong];
+                    [playerController jumpForwardLong];
                     break;
+                case 2:
                 default:
-                    [coreInteractionInstance forwardShort];
+                    [playerController jumpForwardShort];
                     break;
             }
         } else
-            [coreInteractionInstance forwardShort];
+            [playerController jumpForwardShort];
     } else if ([commandString isEqualToString:@"stepBackward"]) {
         //default: backwardShort
         if (parameterString) {
             int parameterInt = [parameterString intValue];
             switch (parameterInt) {
                 case 1:
-                    [coreInteractionInstance backwardExtraShort];
-                    break;
-                case 2:
-                    [coreInteractionInstance backwardShort];
+                    [playerController jumpBackwardExtraShort];
                     break;
                 case 3:
-                    [coreInteractionInstance backwardMedium];
+                    [playerController jumpBackwardMedium];
                     break;
                 case 4:
-                    [coreInteractionInstance backwardLong];
+                    [playerController jumpBackwardLong];
                     break;
+                case 2:
                 default:
-                    [coreInteractionInstance backwardShort];
+                    [playerController jumpBackwardShort];
                     break;
             }
         } else
-            [coreInteractionInstance backwardShort];
+            [playerController jumpBackwardShort];
     }
    return nil;
 }
@@ -170,7 +166,7 @@
 
 - (BOOL)muted
 {
-    return [[VLCCoreInteraction sharedInstance] mute];
+    return [[[[VLCMain sharedInstance] playlistController] playerController] mute];
 }
 
 - (BOOL)playing
@@ -184,14 +180,14 @@
     return NO;
 }
 
-- (int)audioVolume
+- (float)audioVolume
 {
-    return [[VLCCoreInteraction sharedInstance] volume];
+    return [[[[VLCMain sharedInstance] playlistController] playerController] volume];
 }
 
-- (void)setAudioVolume:(int)volume
+- (void)setAudioVolume:(float)volume
 {
-    [[VLCCoreInteraction sharedInstance] setVolume:volume];
+    [[[[VLCMain sharedInstance] playlistController] playerController] setVolume:volume];
 }
 
 - (long long)audioDesync
@@ -216,17 +212,17 @@
 
 - (NSInteger)durationOfCurrentItem
 {
-    return [[VLCCoreInteraction sharedInstance] durationOfCurrentPlaylistItem];
+    return SEC_FROM_VLC_TICK([[[VLCMain sharedInstance] playlistController] playerController].durationOfCurrentMediaItem);
 }
 
 - (NSString *)pathOfCurrentItem
 {
-    return [[[VLCCoreInteraction sharedInstance] URLOfCurrentPlaylistItem] path];
+    return [[[[VLCMain sharedInstance] playlistController] playerController].URLOfCurrentMediaItem path];
 }
 
 - (NSString *)nameOfCurrentItem
 {
-    return [[VLCCoreInteraction sharedInstance] nameOfCurrentPlaylistItem];
+    return [[[[VLCMain sharedInstance] playlistController] playerController] nameOfCurrentMediaItem];
 }
 
 - (BOOL)playbackShowsMenu



More information about the vlc-commits mailing list