From 494d40858351bbe4a83c98758440621d3fcdc5c9 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 7 Sep 2013 15:37:02 +0200 Subject: [PATCH] macosx_application: handle mpv:// links Pretty useful for people writing userscripts for web browsers. Links starting with 'mpv://' are forwarded to the mpv OSX bundle. The leading 'mpv://' is stripped from the recived url and the rest of the string is inserted as is in the playlist. --- TOOLS/osxbundle/mpv.app/Contents/Info.plist | 10 ++++++++++ osdep/macosx_application.m | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/TOOLS/osxbundle/mpv.app/Contents/Info.plist b/TOOLS/osxbundle/mpv.app/Contents/Info.plist index 4c9340d808..152e118416 100644 --- a/TOOLS/osxbundle/mpv.app/Contents/Info.plist +++ b/TOOLS/osxbundle/mpv.app/Contents/Info.plist @@ -186,6 +186,16 @@ CFBundleURLTypes + + CFBundleTypeRole + Viewer + CFBundleURLName + mpv Custom Protocol + CFBundleURLSchemes + + mpv + + CFBundleTypeRole Viewer diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m index 7c5990d912..a522ad77fa 100644 --- a/osdep/macosx_application.m +++ b/osdep/macosx_application.m @@ -26,6 +26,8 @@ #include "osdep/macosx_application_objc.h" #include "osdep/macosx_compat.h" +#define MPV_PROTOCOL @"mpv://" + static pthread_t playback_thread_id; @interface Application (PrivateMethods) @@ -241,6 +243,11 @@ static NSString *escape_loadfile_name(NSString *input) NSString *url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; + url = [url stringByReplacingOccurrencesOfString:MPV_PROTOCOL + withString:@"" + options:NSAnchoredSearch + range:NSMakeRange(0, [MPV_PROTOCOL length])]; + self.files = @[url]; if (self.willStopOnOpenEvent) {