From 9e53d4e91b159571886a5cc2242c66b830501e76 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 3 Dec 2017 23:51:07 +0000 Subject: [PATCH] Accepts URLs as command line arguments. Fixes #9793 Signed-off-by: Kacper Kasper --- src/apps/mediaplayer/MainApp.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/apps/mediaplayer/MainApp.cpp b/src/apps/mediaplayer/MainApp.cpp index d61e8e9e8b..af37a1b47c 100644 --- a/src/apps/mediaplayer/MainApp.cpp +++ b/src/apps/mediaplayer/MainApp.cpp @@ -229,9 +229,19 @@ MainApp::ArgvReceived(int32 argc, char** argv) char cwd[B_PATH_NAME_LENGTH]; getcwd(cwd, sizeof(cwd)); - BMessage message(B_REFS_RECEIVED); - for (int i = 1; i < argc; i++) { + BUrl url(argv[i]); + if (url.IsValid()) { + BMessage archivedUrl; + url.Archive(&archivedUrl); + + BMessage msg(M_URL_RECEIVED); + if (msg.AddMessage("mediaplayer:url", &archivedUrl) == B_OK) + RefsReceived(&msg); + + continue; + } + BPath path; if (argv[i][0] != '/') path.SetTo(cwd, argv[i]); @@ -241,13 +251,11 @@ MainApp::ArgvReceived(int32 argc, char** argv) if (!entry.Exists() || !entry.IsFile()) continue; + BMessage message(B_REFS_RECEIVED); entry_ref ref; - if (entry.GetRef(&ref) == B_OK) - message.AddRef("refs", &ref); + if (entry.GetRef(&ref) == B_OK && message.AddRef("refs", &ref) == B_OK) + RefsReceived(&message); } - - if (message.HasRef("refs")) - RefsReceived(&message); }