Commit ca8ec50d authored by Felix Paul Kühne's avatar Felix Paul Kühne

ATV playback: add media info

parent 6bb90ea2
/*****************************************************************************
* VLC for iOS
*****************************************************************************
* Copyright (c) 2015 VideoLAN. All rights reserved.
* $Id$
*
* Authors: Felix Paul Kühne <fkuehne # videolan.org>
*
* Refer to the COPYING file of the official project for license.
*****************************************************************************/
#import "VLCPlaybackInfoPanelTVViewController.h"
@interface VLCPlaybackInfoMediaInfoTVViewController : VLCPlaybackInfoPanelTVViewController
@property (readwrite, nonatomic, weak) IBOutlet UILabel *titleLabel;
@property (readwrite, nonatomic, weak) IBOutlet UILabel *metaDataLabel;
@end
/*****************************************************************************
* VLC for iOS
*****************************************************************************
* Copyright (c) 2015 VideoLAN. All rights reserved.
* $Id$
*
* Authors: Felix Paul Kühne <fkuehne # videolan.org>
*
* Refer to the COPYING file of the official project for license.
*****************************************************************************/
#import "VLCPlaybackInfoMediaInfoTVViewController.h"
@interface VLCPlaybackInfoMediaInfoTVViewController ()
@end
@implementation VLCPlaybackInfoMediaInfoTVViewController
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"MEDIA_INFO", nil);
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.titleLabel.text = nil;
self.metaDataLabel.text = nil;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateMediaTitle)
name:VLCPlaybackControllerPlaybackMetadataDidChange
object:nil];
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)viewWillAppear:(BOOL)animated
{
VLCPlaybackController *vpc = [VLCPlaybackController sharedInstance];
self.titleLabel.text = vpc.mediaTitle;
VLCMediaPlayer *player = vpc.mediaPlayer;
VLCMedia *media = player.media;
NSArray *mediaTrackData = media.tracksInformation;
NSUInteger trackDataCount = mediaTrackData.count;
NSUInteger videoWidth = 0, videoHeight = 0;
NSString *videoCodec;
NSString *audioCodecs;
NSString *spuCodecs;
for (NSUInteger x = 0; x < trackDataCount; x++) {
NSDictionary *trackItem = mediaTrackData[x];
NSString *trackType = trackItem[VLCMediaTracksInformationType];
if ([trackType isEqualToString:VLCMediaTracksInformationTypeVideo]) {
videoWidth = [trackItem[VLCMediaTracksInformationVideoWidth] unsignedIntegerValue];
videoHeight = [trackItem[VLCMediaTracksInformationVideoHeight] unsignedIntegerValue];
videoCodec = [VLCMedia codecNameForFourCC:[trackItem[VLCMediaTracksInformationCodec] unsignedIntValue]
trackType:VLCMediaTracksInformationTypeVideo];
} else if ([trackType isEqualToString:VLCMediaTracksInformationTypeAudio]) {
NSString *language = trackItem[VLCMediaTracksInformationLanguage];
NSString *codec = [VLCMedia codecNameForFourCC:[trackItem[VLCMediaTracksInformationCodec] unsignedIntValue]
trackType:VLCMediaTracksInformationTypeAudio];
if (audioCodecs) {
if (language)
audioCodecs = [audioCodecs stringByAppendingFormat:@", %@ — %@", language, codec];
else
audioCodecs = [audioCodecs stringByAppendingFormat:@", %@", codec];
} else {
if (language)
audioCodecs = [NSString stringWithFormat:@"%@ — %@", language, codec];
else
audioCodecs = codec;
}
} else if ([trackType isEqualToString:VLCMediaTracksInformationTypeText]) {
NSString *language = trackItem[VLCMediaTracksInformationLanguage];
NSString *codec = [VLCMedia codecNameForFourCC:[trackItem[VLCMediaTracksInformationCodec] unsignedIntValue]
trackType:VLCMediaTracksInformationTypeText];
if (spuCodecs) {
if (language)
spuCodecs = [spuCodecs stringByAppendingFormat:@", %@ — %@", language, codec];
else
spuCodecs = [spuCodecs stringByAppendingFormat:@", %@", codec];
} else {
if (language)
spuCodecs = [NSString stringWithFormat:@"%@ — %@", language, codec];
else
spuCodecs = codec;
}
}
}
NSString *metaDataString = @"";
if (media.length.intValue > 0) {
metaDataString = [NSString stringWithFormat:@"%@: %@\n",
NSLocalizedString(@"DURATION", nil),
media.length.verboseStringValue];
}
if (!vpc.audioOnlyPlaybackSession) {
metaDataString = [metaDataString stringByAppendingFormat:@"%@: %@ (%@)\n",
NSLocalizedString(@"VIDEO_DIMENSIONS", nil),
[NSString stringWithFormat:NSLocalizedString(@"FORMAT_VIDEO_DIMENSIONS", nil),
videoWidth, videoHeight],
videoCodec];
}
NSInteger audioTrackCount = player.numberOfAudioTracks - 1; // minus fake disable track
if (audioTrackCount > 0) {
if (audioTrackCount > 1) {
metaDataString = [metaDataString stringByAppendingFormat:NSLocalizedString(@"FORMAT_AUDIO_TRACKS", nil),
audioTrackCount];
} else {
metaDataString = [metaDataString stringByAppendingString:NSLocalizedString(@"ONE_AUDIO_TRACK", nil)];
}
NSLog(@"audioCodecs %@", audioCodecs);
metaDataString = [metaDataString stringByAppendingFormat:@" (%@)\n", audioCodecs];
}
NSInteger spuTrackCount = player.numberOfSubtitlesTracks - 1; // minus fake disable track
if (spuTrackCount > 0) {
if (spuTrackCount > 1) {
metaDataString = [metaDataString stringByAppendingFormat:NSLocalizedString(@"FORMAT_SPU_TRACKS", nil),
spuTrackCount];
} else {
metaDataString = [metaDataString stringByAppendingString:NSLocalizedString(@"ONE_SPU_TRACK", nil)];
}
metaDataString = [metaDataString stringByAppendingFormat:@" (%@)\n", spuCodecs];
}
self.metaDataLabel.text = metaDataString;
[self.metaDataLabel sizeToFit];
[super viewWillAppear:animated];
}
- (CGSize)preferredContentSize
{
return CGSizeMake(CGRectGetWidth(self.view.bounds), 31. + self.titleLabel.frame.size.height + 8. + self.metaDataLabel.frame.size.height + 82.);
}
- (void)updateMediaTitle
{
self.titleLabel.text = [VLCPlaybackController sharedInstance].mediaTitle;
}
@end
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9527.1" systemVersion="15B42" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9525.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoMediaInfoTVViewController">
<connections>
<outlet property="metaDataLabel" destination="b7O-A0-Y88" id="NbQ-VD-PPT"/>
<outlet property="titleLabel" destination="BjN-MN-SPQ" id="ivu-is-23f"/>
<outlet property="view" destination="iN0-l3-epB" id="Eym-vH-oyN"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="1920" height="525"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="media title name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BjN-MN-SPQ">
<rect key="frame" x="82" y="31" width="283" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="f0P-yq-3wI"/>
</constraints>
<fontDescription key="fontDescription" style="UICTFontTextStyleHeadline"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b7O-A0-Y88">
<rect key="frame" x="82" y="91" width="1756" height="403"/>
<string key="text">Contra quos omnis dicendum breviter existimo.
Quamquam philosophiae quidem vituperatoribus satis responsum est eo libro, quo a nobis philosophia defensa et collaudata est, cum esset accusata et vituperata ab Hortensio.
qui liber cum et tibi probatus videretur et iis, quos ego posse iudicare arbitrarer, plura suscepi veritus ne movere hominum studia viderer, retinere non posse.</string>
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="b7O-A0-Y88" secondAttribute="bottom" constant="31" id="9Cs-dk-Olf"/>
<constraint firstItem="BjN-MN-SPQ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="82" id="fZq-fy-Xfm"/>
<constraint firstAttribute="trailing" secondItem="b7O-A0-Y88" secondAttribute="trailing" constant="82" id="pJQ-1G-ptw"/>
<constraint firstItem="b7O-A0-Y88" firstAttribute="leading" secondItem="BjN-MN-SPQ" secondAttribute="leading" id="uRq-r6-rcc"/>
<constraint firstItem="b7O-A0-Y88" firstAttribute="top" secondItem="BjN-MN-SPQ" secondAttribute="bottom" constant="20" id="v5i-ea-4Xs"/>
<constraint firstItem="BjN-MN-SPQ" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="31" id="xv0-M9-ChE"/>
</constraints>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="1125" y="874.5"/>
</view>
</objects>
</document>
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
} }
return self; return self;
} }
- (CGSize)preferredContentSize - (CGSize)preferredContentSize
{ {
return CGSizeMake(CGRectGetWidth(self.view.bounds), 100); return CGSizeMake(CGRectGetWidth(self.view.bounds), 100);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#import "VLCPlaybackInfoTVViewController.h" #import "VLCPlaybackInfoTVViewController.h"
#import "VLCPlaybackInfoRateTVViewController.h" #import "VLCPlaybackInfoRateTVViewController.h"
#import "VLCPlaybackInfoAudioTVViewController.h" #import "VLCPlaybackInfoMediaInfoTVViewController.h"
#import "VLCPlaybackInfoTVAnimators.h" #import "VLCPlaybackInfoTVAnimators.h"
// just for appearance reasons // just for appearance reasons
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
{ {
return @[ return @[
[[VLCPlaybackInfoRateTVViewController alloc] initWithNibName:nil bundle:nil], [[VLCPlaybackInfoRateTVViewController alloc] initWithNibName:nil bundle:nil],
[[VLCPlaybackInfoAudioTVViewController alloc] initWithNibName:nil bundle:nil], [[VLCPlaybackInfoMediaInfoTVViewController alloc] initWithNibName:nil bundle:nil],
]; ];
} }
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoAudioTVViewController">
<connections>
<outlet property="view" destination="SfU-3e-bi3" id="dbi-nU-kf2"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="SfU-3e-bi3">
<rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Put audio stuff here" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RD5-yN-Bxj">
<rect key="frame" x="884" y="530" width="151" height="21"/>
<animations/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<animations/>
<constraints>
<constraint firstItem="RD5-yN-Bxj" firstAttribute="centerY" secondItem="SfU-3e-bi3" secondAttribute="centerY" id="U6D-ND-4bN"/>
<constraint firstItem="RD5-yN-Bxj" firstAttribute="centerX" secondItem="SfU-3e-bi3" secondAttribute="centerX" id="eNA-sk-bI6"/>
</constraints>
</view>
</objects>
</document>
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES"> <document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9527.1" systemVersion="15B42" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
<dependencies> <dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9525.1"/>
</dependencies> </dependencies>
<objects> <objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoRateTVViewController"> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoRateTVViewController">
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
<subviews> <subviews>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="a34-9y-ZcI"> <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="a34-9y-ZcI">
<rect key="frame" x="783" y="16" width="354" height="70"/> <rect key="frame" x="783" y="16" width="354" height="70"/>
<animations/>
<color key="backgroundColor" white="0.0" alpha="0.10000000000000001" colorSpace="calibratedWhite"/> <color key="backgroundColor" white="0.0" alpha="0.10000000000000001" colorSpace="calibratedWhite"/>
<segments> <segments>
<segment title="First"/> <segment title="First"/>
...@@ -29,7 +28,6 @@ ...@@ -29,7 +28,6 @@
</connections> </connections>
</segmentedControl> </segmentedControl>
</subviews> </subviews>
<animations/>
<constraints> <constraints>
<constraint firstItem="a34-9y-ZcI" firstAttribute="top" relation="greaterThanOrEqual" secondItem="vgW-9U-IlZ" secondAttribute="top" id="9aM-8g-ySI"/> <constraint firstItem="a34-9y-ZcI" firstAttribute="top" relation="greaterThanOrEqual" secondItem="vgW-9U-IlZ" secondAttribute="top" id="9aM-8g-ySI"/>
<constraint firstItem="a34-9y-ZcI" firstAttribute="centerX" secondItem="vgW-9U-IlZ" secondAttribute="centerX" id="FTw-3L-I11"/> <constraint firstItem="a34-9y-ZcI" firstAttribute="centerX" secondItem="vgW-9U-IlZ" secondAttribute="centerX" id="FTw-3L-I11"/>
......
...@@ -76,6 +76,7 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom ...@@ -76,6 +76,7 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
@property (nonatomic, readonly) BOOL currentMediaHasTrackToChooseFrom; @property (nonatomic, readonly) BOOL currentMediaHasTrackToChooseFrom;
@property (nonatomic, readonly) BOOL activePlaybackSession; @property (nonatomic, readonly) BOOL activePlaybackSession;
@property (nonatomic, readonly) BOOL audioOnlyPlaybackSession; @property (nonatomic, readonly) BOOL audioOnlyPlaybackSession;
@property (nonatomic, readonly) NSString *mediaTitle;
@property (nonatomic, readwrite) BOOL fullscreenSessionRequested; @property (nonatomic, readwrite) BOOL fullscreenSessionRequested;
@property (nonatomic, readonly) NSDictionary *mediaOptionsDictionary; @property (nonatomic, readonly) NSDictionary *mediaOptionsDictionary;
@property (nonatomic, readonly) NSTimer* sleepTimer; @property (nonatomic, readonly) NSTimer* sleepTimer;
......
...@@ -525,6 +525,11 @@ NSString *const VLCPlaybackControllerPlaybackDidFail = @"VLCPlaybackControllerPl ...@@ -525,6 +525,11 @@ NSString *const VLCPlaybackControllerPlaybackDidFail = @"VLCPlaybackControllerPl
return _mediaIsAudioOnly; return _mediaIsAudioOnly;
} }
- (NSString *)mediaTitle
{
return _title;
}
- (float)playbackRate - (float)playbackRate
{ {
float f_rate = _mediaPlayer.rate; float f_rate = _mediaPlayer.rate;
......
...@@ -121,6 +121,8 @@ ...@@ -121,6 +121,8 @@
7D4CAAFC1BDE548A00A08EF5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79246C6170F11DF0036AAF2 /* Localizable.strings */; }; 7D4CAAFC1BDE548A00A08EF5 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79246C6170F11DF0036AAF2 /* Localizable.strings */; };
7D4DF2181B55209200739326 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4DF2171B55209200739326 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 7D4DF2181B55209200739326 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4DF2171B55209200739326 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
7D50903218F41C7900180139 /* VLCAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D50903118F41C7900180139 /* VLCAlertView.m */; }; 7D50903218F41C7900180139 /* VLCAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D50903118F41C7900180139 /* VLCAlertView.m */; };
7D51B3B01BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D51B3AE1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.m */; };
7D51B3B11BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D51B3AF1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.xib */; };
7D5278D81BD7DEF600D0CA0E /* DropboxTVSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5278D11BD7DE3D00D0CA0E /* DropboxTVSDK.framework */; }; 7D5278D81BD7DEF600D0CA0E /* DropboxTVSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5278D11BD7DE3D00D0CA0E /* DropboxTVSDK.framework */; };
7D5278DE1BD7DF1800D0CA0E /* DropboxTVSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5278D11BD7DE3D00D0CA0E /* DropboxTVSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 7D5278DE1BD7DF1800D0CA0E /* DropboxTVSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5278D11BD7DE3D00D0CA0E /* DropboxTVSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
7D5278E21BD7E06E00D0CA0E /* VLCDropboxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784AA183A9906009EE944 /* VLCDropboxController.m */; }; 7D5278E21BD7E06E00D0CA0E /* VLCDropboxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784AA183A9906009EE944 /* VLCDropboxController.m */; };
...@@ -325,8 +327,6 @@ ...@@ -325,8 +327,6 @@
DD8095E51BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DD8095E41BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib */; }; DD8095E51BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DD8095E41BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib */; };
DD8095EB1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */; }; DD8095EB1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */; };
DD8095EC1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */; }; DD8095EC1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */; };
DD8095F21BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095F01BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.m */; };
DD8095F31BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DD8095F11BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.xib */; };
DD8095F61BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095F51BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m */; }; DD8095F61BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095F51BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m */; };
DD8095F91BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095F81BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m */; }; DD8095F91BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095F81BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m */; };
DD8F84311B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8F84301B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m */; }; DD8F84311B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8F84301B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m */; };
...@@ -661,6 +661,9 @@ ...@@ -661,6 +661,9 @@
7D4DF2171B55209200739326 /* CoreSpotlight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreSpotlight.framework; path = System/Library/Frameworks/CoreSpotlight.framework; sourceTree = SDKROOT; }; 7D4DF2171B55209200739326 /* CoreSpotlight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreSpotlight.framework; path = System/Library/Frameworks/CoreSpotlight.framework; sourceTree = SDKROOT; };
7D50903018F41C7900180139 /* VLCAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAlertView.h; path = Sources/VLCAlertView.h; sourceTree = SOURCE_ROOT; }; 7D50903018F41C7900180139 /* VLCAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAlertView.h; path = Sources/VLCAlertView.h; sourceTree = SOURCE_ROOT; };
7D50903118F41C7900180139 /* VLCAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCAlertView.m; path = Sources/VLCAlertView.m; sourceTree = SOURCE_ROOT; }; 7D50903118F41C7900180139 /* VLCAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCAlertView.m; path = Sources/VLCAlertView.m; sourceTree = SOURCE_ROOT; };
7D51B3AD1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoMediaInfoTVViewController.h; sourceTree = "<group>"; };
7D51B3AE1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoMediaInfoTVViewController.m; sourceTree = "<group>"; };
7D51B3AF1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCPlaybackInfoMediaInfoTVViewController.xib; path = "Playback/Playback Info/VLCPlaybackInfoMediaInfoTVViewController.xib"; sourceTree = "<group>"; };
7D5278C31BD7DE3D00D0CA0E /* DropboxSDK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DropboxSDK.xcodeproj; path = ImportedSources/Dropbox/DropboxSDK/DropboxSDK.xcodeproj; sourceTree = SOURCE_ROOT; }; 7D5278C31BD7DE3D00D0CA0E /* DropboxSDK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DropboxSDK.xcodeproj; path = ImportedSources/Dropbox/DropboxSDK/DropboxSDK.xcodeproj; sourceTree = SOURCE_ROOT; };
7D5C204D17999A74004F9443 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; }; 7D5C204D17999A74004F9443 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; };
7D5CAA871A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTrackSelectorTableViewCell.h; path = Sources/VLCTrackSelectorTableViewCell.h; sourceTree = SOURCE_ROOT; }; 7D5CAA871A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTrackSelectorTableViewCell.h; path = Sources/VLCTrackSelectorTableViewCell.h; sourceTree = SOURCE_ROOT; };
...@@ -954,9 +957,6 @@ ...@@ -954,9 +957,6 @@
DD8095E81BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoRateTVViewController.h; sourceTree = "<group>"; }; DD8095E81BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoRateTVViewController.h; sourceTree = "<group>"; };
DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoRateTVViewController.m; sourceTree = "<group>"; }; DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoRateTVViewController.m; sourceTree = "<group>"; };
DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VLCPlaybackInfoRateTVViewController.xib; sourceTree = "<group>"; }; DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VLCPlaybackInfoRateTVViewController.xib; sourceTree = "<group>"; };
DD8095EF1BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoAudioTVViewController.h; sourceTree = "<group>"; };
DD8095F01BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoAudioTVViewController.m; sourceTree = "<group>"; };
DD8095F11BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VLCPlaybackInfoAudioTVViewController.xib; sourceTree = "<group>"; };
DD8095F41BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoTVAnimators.h; sourceTree = "<group>"; }; DD8095F41BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoTVAnimators.h; sourceTree = "<group>"; };
DD8095F51BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoTVAnimators.m; sourceTree = "<group>"; }; DD8095F51BE624C00065D8E1 /* VLCPlaybackInfoTVAnimators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCPlaybackInfoTVAnimators.m; sourceTree = "<group>"; };
DD8095F71BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoPanelTVViewController.h; sourceTree = "<group>"; }; DD8095F71BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCPlaybackInfoPanelTVViewController.h; sourceTree = "<group>"; };
...@@ -1644,10 +1644,10 @@ ...@@ -1644,10 +1644,10 @@
7D3E528A1BD7B5E100309D15 /* VLCCloudServicesTVViewController.xib */, 7D3E528A1BD7B5E100309D15 /* VLCCloudServicesTVViewController.xib */,
7DEC8BDD1BD67899006E1093 /* VLCFullscreenMovieTVViewController.xib */, 7DEC8BDD1BD67899006E1093 /* VLCFullscreenMovieTVViewController.xib */,
DD8095E41BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib */, DD8095E41BE3F4240065D8E1 /* VLCPlaybackInfoTVViewController.xib */,
DD8095F11BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.xib */,
DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */, DD8095EA1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.xib */,
7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */, 7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */,
DDEAECF51BDFEAFA00756C83 /* VLCLocalNetworkServerTVCell.xib */, DDEAECF51BDFEAFA00756C83 /* VLCLocalNetworkServerTVCell.xib */,
7D51B3AF1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.xib */,
); );
name = xibs; name = xibs;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2104,8 +2104,8 @@ ...@@ -2104,8 +2104,8 @@
DD8095F81BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m */, DD8095F81BE6268A0065D8E1 /* VLCPlaybackInfoPanelTVViewController.m */,
DD8095E81BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.h */, DD8095E81BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.h */,
DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */, DD8095E91BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m */,
DD8095EF1BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.h */, 7D51B3AD1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.h */,
DD8095F01BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.m */, 7D51B3AE1BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.m */,
); );
path = "Playback Info"; path = "Playback Info";
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -2395,8 +2395,8 @@ ...@@ -2395,8 +2395,8 @@
7D7EF3DB1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib in Resources */, 7D7EF3DB1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib in Resources */,
7DDE41901BE9225A0065C53A /* VLCAboutViewController.xib in Resources */, 7DDE41901BE9225A0065C53A /* VLCAboutViewController.xib in Resources */,
7D405EE21BEA1FAD006ED886 /* index.html in Resources */, 7D405EE21BEA1FAD006ED886 /* index.html in Resources */,
7D51B3B11BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.xib in Resources */,
7DEDD38D1BE936F30053802C /* SourceCodePro-Regular.ttf in Resources */, 7DEDD38D1BE936F30053802C /* SourceCodePro-Regular.ttf in Resources */,
DD8095F31BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.xib in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -2616,6 +2616,7 @@ ...@@ -2616,6 +2616,7 @@
7D7EF3DD1BD5779F00CD4CEE /* VLCPlaybackController.m in Sources */, 7D7EF3DD1BD5779F00CD4CEE /* VLCPlaybackController.m in Sources */,
DD3EFF361BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserNetService.m in Sources */, DD3EFF361BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserNetService.m in Sources */,
7D1334831BE135700012E919 /* VLCCloudStorageTVTableViewController.m in Sources */, 7D1334831BE135700012E919 /* VLCCloudStorageTVTableViewController.m in Sources */,
7D51B3B01BF0EEF4005AF4D5 /* VLCPlaybackInfoMediaInfoTVViewController.m in Sources */,
7D13347C1BE132EA0012E919 /* VLCLocalNetworkServiceBrowserUPnP.m in Sources */, 7D13347C1BE132EA0012E919 /* VLCLocalNetworkServiceBrowserUPnP.m in Sources */,
DDEAECF11BDFE9E800756C83 /* VLCServerListTVTableViewController.m in Sources */, DDEAECF11BDFE9E800756C83 /* VLCServerListTVTableViewController.m in Sources */,
7DEC8BDE1BD67899006E1093 /* VLCFullscreenMovieTVViewController.m in Sources */, 7DEC8BDE1BD67899006E1093 /* VLCFullscreenMovieTVViewController.m in Sources */,
...@@ -2631,7 +2632,6 @@ ...@@ -2631,7 +2632,6 @@
7D5278E21BD7E06E00D0CA0E /* VLCDropboxController.m in Sources */, 7D5278E21BD7E06E00D0CA0E /* VLCDropboxController.m in Sources */,
7DEC8BD91BD670EB006E1093 /* VLCPlaybackNavigationController.m in Sources */, 7DEC8BD91BD670EB006E1093 /* VLCPlaybackNavigationController.m in Sources */,
7DEC8BDA1BD67112006E1093 /* VLCFrostedGlasView.m in Sources */, 7DEC8BDA1BD67112006E1093 /* VLCFrostedGlasView.m in Sources */,
DD8095F21BE510770065D8E1 /* VLCPlaybackInfoAudioTVViewController.m in Sources */,
DD8095EB1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m in Sources */, DD8095EB1BE4F04E0065D8E1 /* VLCPlaybackInfoRateTVViewController.m in Sources */,
DD3EAC051BE153B4003668DA /* VLCNetworkImageView.m in Sources */, DD3EAC051BE153B4003668DA /* VLCNetworkImageView.m in Sources */,
7D0C35341BD97C7B0058CD19 /* VLCOneDriveObject.m in Sources */, 7D0C35341BD97C7B0058CD19 /* VLCOneDriveObject.m in Sources */,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment