Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
VideoLAN
VLC-iOS
Commits
4b9996e8
Commit
4b9996e8
authored
Jun 18, 2015
by
Felix Paul Kühne
Browse files
don't use the app delegate as a proxy to the playback controller
parent
bbcfcdd6
Changes
16
Hide whitespace changes
Inline
Side-by-side
Sources/VLCAppDelegate.h
View file @
4b9996e8
...
...
@@ -34,10 +34,6 @@ extern NSString *const VLCDropboxSessionWasAuthorized;
-
(
void
)
cleanCache
;
-
(
void
)
openMediaFromManagedObject
:(
NSManagedObject
*
)
file
;
-
(
void
)
openMovieFromURL
:(
NSURL
*
)
url
;
-
(
void
)
openMovieWithExternalSubtitleFromURL
:(
NSURL
*
)
url
externalSubURL
:(
NSString
*
)
SubtitlePath
;
@property
(
nonatomic
,
readonly
)
VLCPlaylistViewController
*
playlistViewController
;
@property
(
nonatomic
,
readonly
)
VLCPlayerDisplayController
*
playerDisplayController
;
...
...
Sources/VLCAppDelegate.m
View file @
4b9996e8
...
...
@@ -221,14 +221,19 @@ continueUserActivity:(NSUserActivity *)userActivity
return
NO
;
}
-
(
void
)
application
:(
UIApplication
*
)
application
didFailToContinueUserActivityWithType
:(
NSString
*
)
userActivityType
error
:(
NSError
*
)
error
-
(
void
)
application
:(
UIApplication
*
)
application
didFailToContinueUserActivityWithType
:(
NSString
*
)
userActivityType
error
:(
NSError
*
)
error
{
if
(
error
.
code
!=
NSUserCancelledError
){
//TODO: present alert
}
}
-
(
BOOL
)
application
:(
UIApplication
*
)
application
openURL
:(
NSURL
*
)
url
sourceApplication
:(
NSString
*
)
sourceApplication
annotation
:(
id
)
annotation
-
(
BOOL
)
application
:(
UIApplication
*
)
application
openURL
:(
NSURL
*
)
url
sourceApplication
:(
NSString
*
)
sourceApplication
annotation
:(
id
)
annotation
{
if
([[
DBSession
sharedSession
]
handleOpenURL
:
url
])
{
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
VLCDropboxSessionWasAuthorized
object
:
nil
];
...
...
@@ -273,7 +278,8 @@ continueUserActivity:(NSUserActivity *)userActivity
errorCallback
=
[
NSURL
URLWithString
:
value
];
}
if
([
action
isEqualToString
:
@"stream"
]
&&
movieURL
)
{
[
self
openMovieFromURL
:
movieURL
successCallback
:
successCallback
errorCallback
:
errorCallback
];
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:
movieURL
successCallback
:
successCallback
errorCallback
:
errorCallback
];
}
else
if
([
action
isEqualToString
:
@"download"
]
&&
movieURL
)
{
[
self
downloadMovieFromURL
:
movieURL
fileNameOfMedia
:
fileName
];
...
...
@@ -307,12 +313,16 @@ continueUserActivity:(NSUserActivity *)userActivity
alert
.
completion
=
^
(
BOOL
cancelled
,
NSInteger
buttonIndex
)
{
if
(
cancelled
)
[
self
downloadMovieFromURL
:
url
fileNameOfMedia
:
nil
];
else
[
self
openMovieFromURL
:
url
];
else
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:
url
successCallback
:
nil
errorCallback
:
nil
];
}
};
[
alert
show
];
}
else
[
self
openMovieFromURL
:
url
];
}
else
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:
url
successCallback
:
nil
errorCallback
:
nil
];
}
}
return
YES
;
}
...
...
@@ -505,44 +515,10 @@ continueUserActivity:(NSUserActivity *)userActivity
scrollPosition:
UITableViewScrollPositionNone
];
}
#pragma mark - playback view handling
-
(
void
)
openMediaFromManagedObject
:(
NSManagedObject
*
)
mediaObject
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playMediaLibraryObject
:
mediaObject
];
}
-
(
void
)
openMovieFromURL
:(
NSURL
*
)
url
successCallback
:(
NSURL
*
)
successCallback
errorCallback
:(
NSURL
*
)
errorCallback
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
vpc
.
url
=
url
;
vpc
.
successCallback
=
successCallback
;
vpc
.
errorCallback
=
errorCallback
;
[
vpc
startPlayback
];
}
-
(
void
)
openMovieFromURL
:(
NSURL
*
)
url
{
[
self
openMovieFromURL
:
url
successCallback
:
nil
errorCallback
:
nil
];
}
-
(
void
)
openMovieWithExternalSubtitleFromURL
:(
NSURL
*
)
url
externalSubURL
:(
NSString
*
)
SubtitlePath
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
vpc
.
url
=
url
;
vpc
.
pathToExternalSubtitlesFile
=
SubtitlePath
;
[
vpc
startPlayback
];
}
#pragma mark - watch struff
-
(
void
)
application
:(
UIApplication
*
)
application
handleWatchKitExtensionRequest
:(
NSDictionary
*
)
userInfo
reply
:(
void
(
^
)(
NSDictionary
*
))
reply
-
(
void
)
application
:(
UIApplication
*
)
application
handleWatchKitExtensionRequest
:(
NSDictionary
*
)
userInfo
reply
:(
void
(
^
)(
NSDictionary
*
))
reply
{
/* dispatch background task */
__block
UIBackgroundTaskIdentifier
taskIdentifier
=
[
application
beginBackgroundTaskWithName
:
nil
...
...
@@ -586,7 +562,8 @@ continueUserActivity:(NSUserActivity *)userActivity
return
;
}
[
self
openMediaFromManagedObject
:
managedObject
];
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playMediaLibraryObject
:
managedObject
];
}
-
(
void
)
setVolumeFromWatch
:(
VLCWatchMessage
*
)
message
...
...
Sources/VLCBoxController.m
View file @
4b9996e8
...
...
@@ -12,6 +12,7 @@
#import "VLCBoxController.h"
#import "NSString+SupportedMedia.h"
#import "VLCPlaybackController.h"
#import "VLCAppDelegate.h"
#import <SSKeychain/SSKeychain.h>
...
...
@@ -178,8 +179,8 @@
[
connection
cancel
];
/* now ask VLC to stream the URL we were just passed */
VLC
AppDelegate
*
appDelegate
=
(
VLC
AppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieFromURL
:
theActualURL
];
VLC
PlaybackController
*
vpc
=
[
VLC
PlaybackController
sharedInstance
]
;
[
vpc
playURL
:
theActualURL
successCallback
:
nil
errorCallback
:
nil
];
}
return
request
;
...
...
Sources/VLCDropboxController.m
View file @
4b9996e8
...
...
@@ -13,6 +13,7 @@
#import "VLCDropboxController.h"
#import "NSString+SupportedMedia.h"
#import "VLCPlaybackController.h"
#import "VLCAppDelegate.h"
@interface
VLCDropboxController
()
...
...
@@ -195,8 +196,8 @@
-
(
void
)
restClient
:(
DBRestClient
*
)
restClient
loadedStreamableURL
:(
NSURL
*
)
url
forFile
:(
NSString
*
)
path
{
VLC
AppDelegate
*
appDelegate
=
(
VLC
AppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieFromURL
:
ur
l
];
VLC
PlaybackController
*
vpc
=
[
VLC
PlaybackController
sharedInstance
]
;
[
vpc
playURL
:
url
successCallback
:
nil
errorCallback
:
ni
l
];
}
-
(
void
)
restClient
:(
DBRestClient
*
)
restClient
loadStreamableURLFailedWithError
:(
NSError
*
)
error
...
...
Sources/VLCFTPServerListViewController.m
View file @
4b9996e8
...
...
@@ -17,6 +17,7 @@
#import "NSString+SupportedMedia.h"
#import "UIDevice+VLC.h"
#import "VLCStatusLabel.h"
#import "VLCPlaybackController.h"
#import "WhiteRaccoon.h"
...
...
@@ -113,8 +114,8 @@
NSURL
*
URLToPlay
=
[
NSURL
URLWithString
:[[
@"ftp"
stringByAppendingFormat
:
@"://%@%@/%@/%@"
,
[
self
_credentials
],
_ftpServerAddress
,
_ftpServerPath
,
fileName
]
stringByAddingPercentEscapesUsingEncoding
:
NSUTF8StringEncoding
]];
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieWithExternalSubtitleFromURL
:
URLToPlay
externalSubURL
:
URLofSubtitle
];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
URLToPlay
subtitlesFilePath
:
URLofSubtitle
];
}
-
(
NSArray
*
)
_searchSubtitle
:(
NSString
*
)
url
...
...
Sources/VLCGoogleDriveController.m
View file @
4b9996e8
...
...
@@ -13,6 +13,7 @@
#import "VLCGoogleDriveController.h"
#import "NSString+SupportedMedia.h"
#import "VLCPlaybackController.h"
#import "VLCAppDelegate.h"
@interface
VLCGoogleDriveController
()
...
...
@@ -152,10 +153,10 @@
-
(
void
)
streamFile
:(
GTLDriveFile
*
)
file
{
VLCAppDelegate
*
appDelegate
=
(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
;
NSString
*
token
=
((
GTMOAuth2Authentication
*
)
self
.
driveService
.
authorizer
).
accessToken
;
NSString
*
downloadString
=
[
file
.
downloadUrl
stringByAppendingString
:[
NSString
stringWithFormat
:
@"&access_token=%@"
,
token
]];
[
appDelegate
openMovieFromURL
:[
NSURL
URLWithString
:
downloadString
]];
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:[
NSURL
URLWithString
:
downloadString
]
successCallback
:
nil
errorCallback
:
nil
];
}
-
(
void
)
_triggerNextDownload
...
...
Sources/VLCLocalPlexFolderListViewController.m
View file @
4b9996e8
...
...
@@ -15,7 +15,7 @@
#import "VLCPlexParser.h"
#import "VLCPlexWebAPI.h"
#import "VLCNetworkListCell.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "VLCPlaylistViewController.h"
#import "VLCDownloadViewController.h"
#import "NSString+SupportedMedia.h"
...
...
@@ -288,8 +288,8 @@
NSURL
*
itemURL
=
[
NSURL
URLWithString
:[
self
_urlAuth
:
firstObject
[
@"keyMedia"
]]];
if
(
itemURL
)
{
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieWithExternalSubtitleFromURL
:
itemURL
externalSubURL
:
URLofSubtitle
];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
itemURL
subtitlesFilePath
:
URLofSubtitle
];
}
}
else
{
VLCLocalPlexFolderListViewController
*
targetViewController
=
[[
VLCLocalPlexFolderListViewController
alloc
]
initWithPlexServer
:
_PlexServerName
serverAddress
:
_PlexServerAddress
portNumber
:
_PlexServerPort
atPath
:
newPath
authentification
:
_PlexAuthentification
];
...
...
@@ -327,8 +327,8 @@
NSURL
*
itemURL
=
[
NSURL
URLWithString
:[
self
_urlAuth
:[
firstObject
objectForKey
:
@"keyMedia"
]]];
if
(
itemURL
)
{
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieWithExternalSubtitleFromURL
:
itemURL
externalSubURL
:
URLofSubtitle
];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
itemURL
subtitlesFilePath
:
URLofSubtitle
];
}
}
}
...
...
Sources/VLCOneDriveTableViewController.m
View file @
4b9996e8
...
...
@@ -13,7 +13,7 @@
#import "VLCOneDriveTableViewController.h"
#import "VLCOneDriveController.h"
#import "VLCCloudStorageTableViewCell.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "VLCOneDriveController.h"
#import "VLCProgressView.h"
#import "UIDevice+VLC.h"
...
...
@@ -104,8 +104,8 @@
}
else
{
/* stream file */
NSURL
*
url
=
[
NSURL
URLWithString
:
selectedObject
.
downloadPath
];
VLC
AppDelegate
*
appDelegate
=
(
VLC
AppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieFromURL
:
ur
l
];
VLC
PlaybackController
*
vpc
=
[
VLC
PlaybackController
sharedInstance
]
;
[
vpc
playURL
:
url
successCallback
:
nil
errorCallback
:
ni
l
];
}
[
self
.
tableView
deselectRowAtIndexPath
:
indexPath
animated
:
NO
];
...
...
Sources/VLCOpenNetworkStreamViewController.m
View file @
4b9996e8
...
...
@@ -13,7 +13,7 @@
*****************************************************************************/
#import "VLCOpenNetworkStreamViewController.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "VLCPlaylistViewController.h"
#import "VLCMenuTableViewController.h"
#import "UIDevice+VLC.h"
...
...
@@ -249,7 +249,8 @@ forRowAtIndexPath:(NSIndexPath *)indexPath
if
(
self
.
ScanSubToggleSwitch
.
on
)
URLofSubtitle
=
[
self
_checkURLofSubtitle
:
url
];
[(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
openMovieWithExternalSubtitleFromURL
:[
NSURL
URLWithString
:
url
]
externalSubURL
:
URLofSubtitle
];
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:[
NSURL
URLWithString
:
url
]
subtitlesFilePath
:
URLofSubtitle
];
}
-
(
NSString
*
)
_checkURLofSubtitle
:(
NSString
*
)
url
...
...
Sources/VLCPlaybackController.h
View file @
4b9996e8
...
...
@@ -92,5 +92,7 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
-
(
void
)
scheduleSleepTimerWithInterval
:(
NSTimeInterval
)
timeInterval
;
-
(
void
)
playMediaList
:(
VLCMediaList
*
)
mediaList
firstIndex
:(
int
)
index
;
-
(
void
)
playURL
:(
NSURL
*
)
url
successCallback
:(
NSURL
*
)
successCallback
errorCallback
:(
NSURL
*
)
errorCallback
;
-
(
void
)
playURL
:(
NSURL
*
)
url
subtitlesFilePath
:(
NSString
*
)
subsFilePath
;
@end
Sources/VLCPlaybackController.m
View file @
4b9996e8
...
...
@@ -160,6 +160,35 @@ NSString *const VLCPlaybackControllerPlaybackDidFail = @"VLCPlaybackControllerPl
}
}
-
(
void
)
playURL
:(
NSURL
*
)
url
successCallback
:(
NSURL
*
)
successCallback
errorCallback
:(
NSURL
*
)
errorCallback
{
self
.
url
=
url
;
self
.
successCallback
=
successCallback
;
self
.
errorCallback
=
errorCallback
;
if
(
self
.
activePlaybackSession
)
{
self
.
sessionWillRestart
=
YES
;
[
self
stopPlayback
];
}
else
{
self
.
sessionWillRestart
=
NO
;
[
self
startPlayback
];
}
}
-
(
void
)
playURL
:(
NSURL
*
)
url
subtitlesFilePath
:(
NSString
*
)
subsFilePath
{
self
.
url
=
url
;
self
.
pathToExternalSubtitlesFile
=
subsFilePath
;
if
(
self
.
activePlaybackSession
)
{
self
.
sessionWillRestart
=
YES
;
[
self
stopPlayback
];
}
else
{
self
.
sessionWillRestart
=
NO
;
[
self
startPlayback
];
}
}
-
(
void
)
startPlayback
{
if
(
_playerIsSetup
)
...
...
Sources/VLCPlaylistViewController.m
View file @
4b9996e8
...
...
@@ -26,6 +26,7 @@
#import "LXReorderableCollectionViewFlowLayout.h"
#import "VLCOpenInActivity.h"
#import "VLCNavigationController.h"
#import "VLCPlaybackController+MediaLibrary.h"
#import <AssetsLibrary/AssetsLibrary.h>
...
...
@@ -300,8 +301,10 @@ static NSString *kUsingTableViewToShowData = @"UsingTableViewToShowData";
[
self
reloadViews
];
return
;
}
else
[(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
openMediaFromManagedObject
:
mediaObject
];
}
else
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playMediaLibraryObject
:
mediaObject
];
}
}
-
(
void
)
removeMediaObject
:(
id
)
managedObject
updateDatabase
:(
BOOL
)
updateDB
...
...
Sources/VLCPlexMediaInformationViewController.m
View file @
4b9996e8
...
...
@@ -12,7 +12,8 @@
#import "VLCPlexMediaInformationViewController.h"
#import "VLCPlexParser.h"
#import "VLCPlexWebAPI.h"
#import "VLCAppDelegate.h"
#import "VLCPlaybackController.h"
#import "VLCDownloadViewController.h"
#import "NSString+SupportedMedia.h"
#import "UIDevice+VLC.h"
...
...
@@ -131,8 +132,8 @@
NSURL
*
itemURL
=
[
NSURL
URLWithString
:[
_PlexWebAPI
urlAuth
:
firstObject
[
@"keyMedia"
]
autentification
:
_PlexAuthentification
]];
if
(
itemURL
)
{
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieWithExternalSubtitleFromURL
:
itemURL
externalSubURL
:
URLofSubtitle
];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
itemURL
subtitlesFilePath
:
URLofSubtitle
];
}
}
}
...
...
Sources/VLCServerListViewController.m
View file @
4b9996e8
...
...
@@ -13,7 +13,7 @@
*****************************************************************************/
#import "VLCServerListViewController.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "UPnPManager.h"
#import "VLCNetworkListCell.h"
...
...
@@ -452,11 +452,12 @@
case
6
:
{
VLCAppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
VLCMedia
*
cellMedia
=
[
_sapDiscoverer
.
discoveredMedia
mediaAtIndex
:
row
];
VLCMediaType
mediaType
=
cellMedia
.
mediaType
;
if
(
mediaType
!=
VLCMediaTypeDirectory
&&
mediaType
!=
VLCMediaTypeDisc
)
[
appDelegate
openMovieFromURL
:[[
_sapDiscoverer
.
discoveredMedia
mediaAtIndex
:
row
]
url
]];
if
(
mediaType
!=
VLCMediaTypeDirectory
&&
mediaType
!=
VLCMediaTypeDisc
)
{
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
];
[
vpc
playURL
:[[
_sapDiscoverer
.
discoveredMedia
mediaAtIndex
:
row
]
url
]
successCallback
:
nil
errorCallback
:
nil
];
}
break
;
}
...
...
Sources/VLCSharedLibraryListViewController.m
View file @
4b9996e8
...
...
@@ -13,7 +13,7 @@
#import "VLCSharedLibraryListViewController.h"
#import "VLCSharedLibraryParser.h"
#import "VLCNetworkListCell.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "VLCPlaylistViewController.h"
#import "VLCDownloadViewController.h"
#import "NSString+SupportedMedia.h"
...
...
@@ -228,8 +228,8 @@
NSURL
*
itemURL
=
[
NSURL
URLWithString
:[
selectedObject
objectForKey
:
@"pathfile"
]];
if
(
itemURL
)
{
VLCAppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieWithExternalSubtitleFromURL
:
itemURL
externalSubURL
:
URLofSubtitle
];
VLCPlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
itemURL
subtitlesFilePath
:
URLofSubtitle
];
}
[
tableView
deselectRowAtIndexPath
:
indexPath
animated
:
NO
];
...
...
Sources/VLCUPnPServerListViewController.m
View file @
4b9996e8
...
...
@@ -13,9 +13,10 @@
*****************************************************************************/
#import "VLCUPnPServerListViewController.h"
#import "VLCDownloadViewController.h"
#import "VLCNetworkListCell.h"
#import "VLC
AppDelegate
.h"
#import "VLC
PlaybackController
.h"
#import "VLCStatusLabel.h"
#import "NSString+SupportedMedia.h"
...
...
@@ -262,8 +263,8 @@
itemURL
=
[
NSURL
URLWithString
:
uriCollectionObjects
[
correctIndex
]];
}
if
(
itemURL
)
{
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieFromURL
:
itemURL
];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
playURL
:
itemURL
successCallback
:
nil
errorCallback
:
nil
];
}
}
}
...
...
@@ -456,8 +457,8 @@
NSString
*
itemURLString
=
uriCollectionObjects
[
buttonIndex
];
if
([
itemURLString
length
])
{
VLC
AppDelegate
*
appDelegate
=
[
UIApplication
sharedApplication
].
delegate
;
[
appDelegate
openMovieFrom
URL
:[
NSURL
URLWithString
:
itemURLString
]];
VLC
PlaybackController
*
vpc
=
[
VLCPlaybackController
sharedInstance
]
;
[
vpc
play
URL
:[
NSURL
URLWithString
:
itemURLString
]
successCallback
:
nil
errorCallback
:
nil
];
}
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment