Commit 9c77f505 authored by Felix Paul Kühne's avatar Felix Paul Kühne

Initial Commit

parents
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
7D94FCDF16DE7D1000F2623B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCDE16DE7D1000F2623B /* UIKit.framework */; };
7D94FCE116DE7D1000F2623B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCE016DE7D1000F2623B /* Foundation.framework */; };
7D94FCE316DE7D1000F2623B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D94FCE216DE7D1000F2623B /* CoreGraphics.framework */; };
7D94FCE916DE7D1000F2623B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCE716DE7D1000F2623B /* InfoPlist.strings */; };
7D94FCEB16DE7D1000F2623B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D94FCEA16DE7D1000F2623B /* main.m */; };
7D94FCEF16DE7D1000F2623B /* VLCAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D94FCEE16DE7D1000F2623B /* VLCAppDelegate.m */; };
7D94FCF116DE7D1000F2623B /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCF016DE7D1000F2623B /* Default.png */; };
7D94FCF316DE7D1000F2623B /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCF216DE7D1000F2623B /* Default@2x.png */; };
7D94FCF516DE7D1100F2623B /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCF416DE7D1100F2623B /* Default-568h@2x.png */; };
7D94FCF816DE7D1100F2623B /* VLCMasterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D94FCF716DE7D1100F2623B /* VLCMasterViewController.m */; };
7D94FCFB16DE7D1100F2623B /* VLCDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D94FCFA16DE7D1100F2623B /* VLCDetailViewController.m */; };
7D94FCFE16DE7D1100F2623B /* VLCMasterViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCFC16DE7D1100F2623B /* VLCMasterViewController_iPhone.xib */; };
7D94FD0116DE7D1100F2623B /* VLCMasterViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FCFF16DE7D1100F2623B /* VLCMasterViewController_iPad.xib */; };
7D94FD0416DE7D1100F2623B /* VLCDetailViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FD0216DE7D1100F2623B /* VLCDetailViewController_iPhone.xib */; };
7D94FD0716DE7D1100F2623B /* VLCDetailViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D94FD0516DE7D1100F2623B /* VLCDetailViewController_iPad.xib */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
7D94FCDB16DE7D1000F2623B /* AspenProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AspenProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
7D94FCDE16DE7D1000F2623B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
7D94FCE016DE7D1000F2623B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
7D94FCE216DE7D1000F2623B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
7D94FCE616DE7D1000F2623B /* AspenProject-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "AspenProject-Info.plist"; sourceTree = "<group>"; };
7D94FCE816DE7D1000F2623B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
7D94FCEA16DE7D1000F2623B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
7D94FCEC16DE7D1000F2623B /* AspenProject-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AspenProject-Prefix.pch"; sourceTree = "<group>"; };
7D94FCED16DE7D1000F2623B /* VLCAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCAppDelegate.h; sourceTree = "<group>"; };
7D94FCEE16DE7D1000F2623B /* VLCAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCAppDelegate.m; sourceTree = "<group>"; };
7D94FCF016DE7D1000F2623B /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
7D94FCF216DE7D1000F2623B /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
7D94FCF416DE7D1100F2623B /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
7D94FCF616DE7D1100F2623B /* VLCMasterViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCMasterViewController.h; sourceTree = "<group>"; };
7D94FCF716DE7D1100F2623B /* VLCMasterViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCMasterViewController.m; sourceTree = "<group>"; };
7D94FCF916DE7D1100F2623B /* VLCDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCDetailViewController.h; sourceTree = "<group>"; };
7D94FCFA16DE7D1100F2623B /* VLCDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCDetailViewController.m; sourceTree = "<group>"; };
7D94FCFD16DE7D1100F2623B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/VLCMasterViewController_iPhone.xib; sourceTree = "<group>"; };
7D94FD0016DE7D1100F2623B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/VLCMasterViewController_iPad.xib; sourceTree = "<group>"; };
7D94FD0316DE7D1100F2623B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/VLCDetailViewController_iPhone.xib; sourceTree = "<group>"; };
7D94FD0616DE7D1100F2623B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/VLCDetailViewController_iPad.xib; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
7D94FCD816DE7D1000F2623B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
7D94FCDF16DE7D1000F2623B /* UIKit.framework in Frameworks */,
7D94FCE116DE7D1000F2623B /* Foundation.framework in Frameworks */,
7D94FCE316DE7D1000F2623B /* CoreGraphics.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7D94FCD216DE7D1000F2623B = {
isa = PBXGroup;
children = (
7D94FCE416DE7D1000F2623B /* AspenProject */,
7D94FCDD16DE7D1000F2623B /* Frameworks */,
7D94FCDC16DE7D1000F2623B /* Products */,
);
sourceTree = "<group>";
};
7D94FCDC16DE7D1000F2623B /* Products */ = {
isa = PBXGroup;
children = (
7D94FCDB16DE7D1000F2623B /* AspenProject.app */,
);
name = Products;
sourceTree = "<group>";
};
7D94FCDD16DE7D1000F2623B /* Frameworks */ = {
isa = PBXGroup;
children = (
7D94FCDE16DE7D1000F2623B /* UIKit.framework */,
7D94FCE016DE7D1000F2623B /* Foundation.framework */,
7D94FCE216DE7D1000F2623B /* CoreGraphics.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
7D94FCE416DE7D1000F2623B /* AspenProject */ = {
isa = PBXGroup;
children = (
7D94FCED16DE7D1000F2623B /* VLCAppDelegate.h */,
7D94FCEE16DE7D1000F2623B /* VLCAppDelegate.m */,
7D94FCF616DE7D1100F2623B /* VLCMasterViewController.h */,
7D94FCF716DE7D1100F2623B /* VLCMasterViewController.m */,
7D94FCF916DE7D1100F2623B /* VLCDetailViewController.h */,
7D94FCFA16DE7D1100F2623B /* VLCDetailViewController.m */,
7D94FCFC16DE7D1100F2623B /* VLCMasterViewController_iPhone.xib */,
7D94FCFF16DE7D1100F2623B /* VLCMasterViewController_iPad.xib */,
7D94FD0216DE7D1100F2623B /* VLCDetailViewController_iPhone.xib */,
7D94FD0516DE7D1100F2623B /* VLCDetailViewController_iPad.xib */,
7D94FCE516DE7D1000F2623B /* Supporting Files */,
);
path = AspenProject;
sourceTree = "<group>";
};
7D94FCE516DE7D1000F2623B /* Supporting Files */ = {
isa = PBXGroup;
children = (
7D94FCE616DE7D1000F2623B /* AspenProject-Info.plist */,
7D94FCE716DE7D1000F2623B /* InfoPlist.strings */,
7D94FCEA16DE7D1000F2623B /* main.m */,
7D94FCEC16DE7D1000F2623B /* AspenProject-Prefix.pch */,
7D94FCF016DE7D1000F2623B /* Default.png */,
7D94FCF216DE7D1000F2623B /* Default@2x.png */,
7D94FCF416DE7D1100F2623B /* Default-568h@2x.png */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
7D94FCDA16DE7D1000F2623B /* AspenProject */ = {
isa = PBXNativeTarget;
buildConfigurationList = 7D94FD0A16DE7D1100F2623B /* Build configuration list for PBXNativeTarget "AspenProject" */;
buildPhases = (
7D94FCD716DE7D1000F2623B /* Sources */,
7D94FCD816DE7D1000F2623B /* Frameworks */,
7D94FCD916DE7D1000F2623B /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = AspenProject;
productName = AspenProject;
productReference = 7D94FCDB16DE7D1000F2623B /* AspenProject.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
7D94FCD316DE7D1000F2623B /* Project object */ = {
isa = PBXProject;
attributes = {
CLASSPREFIX = VLC;
LastUpgradeCheck = 0460;
ORGANIZATIONNAME = VideoLAN;
};
buildConfigurationList = 7D94FCD616DE7D1000F2623B /* Build configuration list for PBXProject "AspenProject" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 7D94FCD216DE7D1000F2623B;
productRefGroup = 7D94FCDC16DE7D1000F2623B /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
7D94FCDA16DE7D1000F2623B /* AspenProject */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
7D94FCD916DE7D1000F2623B /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7D94FCE916DE7D1000F2623B /* InfoPlist.strings in Resources */,
7D94FCF116DE7D1000F2623B /* Default.png in Resources */,
7D94FCF316DE7D1000F2623B /* Default@2x.png in Resources */,
7D94FCF516DE7D1100F2623B /* Default-568h@2x.png in Resources */,
7D94FCFE16DE7D1100F2623B /* VLCMasterViewController_iPhone.xib in Resources */,
7D94FD0116DE7D1100F2623B /* VLCMasterViewController_iPad.xib in Resources */,
7D94FD0416DE7D1100F2623B /* VLCDetailViewController_iPhone.xib in Resources */,
7D94FD0716DE7D1100F2623B /* VLCDetailViewController_iPad.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
7D94FCD716DE7D1000F2623B /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7D94FCEB16DE7D1000F2623B /* main.m in Sources */,
7D94FCEF16DE7D1000F2623B /* VLCAppDelegate.m in Sources */,
7D94FCF816DE7D1100F2623B /* VLCMasterViewController.m in Sources */,
7D94FCFB16DE7D1100F2623B /* VLCDetailViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
7D94FCE716DE7D1000F2623B /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
7D94FCE816DE7D1000F2623B /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
7D94FCFC16DE7D1100F2623B /* VLCMasterViewController_iPhone.xib */ = {
isa = PBXVariantGroup;
children = (
7D94FCFD16DE7D1100F2623B /* en */,
);
name = VLCMasterViewController_iPhone.xib;
sourceTree = "<group>";
};
7D94FCFF16DE7D1100F2623B /* VLCMasterViewController_iPad.xib */ = {
isa = PBXVariantGroup;
children = (
7D94FD0016DE7D1100F2623B /* en */,
);
name = VLCMasterViewController_iPad.xib;
sourceTree = "<group>";
};
7D94FD0216DE7D1100F2623B /* VLCDetailViewController_iPhone.xib */ = {
isa = PBXVariantGroup;
children = (
7D94FD0316DE7D1100F2623B /* en */,
);
name = VLCDetailViewController_iPhone.xib;
sourceTree = "<group>";
};
7D94FD0516DE7D1100F2623B /* VLCDetailViewController_iPad.xib */ = {
isa = PBXVariantGroup;
children = (
7D94FD0616DE7D1100F2623B /* en */,
);
name = VLCDetailViewController_iPad.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
7D94FD0816DE7D1100F2623B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
7D94FD0916DE7D1100F2623B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
7D94FD0B16DE7D1100F2623B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "AspenProject/AspenProject-Prefix.pch";
INFOPLIST_FILE = "AspenProject/AspenProject-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Debug;
};
7D94FD0C16DE7D1100F2623B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "AspenProject/AspenProject-Prefix.pch";
INFOPLIST_FILE = "AspenProject/AspenProject-Info.plist";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7D94FCD616DE7D1000F2623B /* Build configuration list for PBXProject "AspenProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7D94FD0816DE7D1100F2623B /* Debug */,
7D94FD0916DE7D1100F2623B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
7D94FD0A16DE7D1100F2623B /* Build configuration list for PBXNativeTarget "AspenProject" */ = {
isa = XCConfigurationList;
buildConfigurations = (
7D94FD0B16DE7D1100F2623B /* Debug */,
7D94FD0C16DE7D1100F2623B /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = 7D94FCD316DE7D1000F2623B /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>org.videolan.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UIStatusBarTintParameters</key>
<dict>
<key>UINavigationBar</key>
<dict>
<key>Style</key>
<string>UIBarStyleDefault</string>
<key>Translucent</key>
<false/>
</dict>
</dict>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
//
// Prefix header for all source files of the 'AspenProject' target in the 'AspenProject' project
//
#import <Availability.h>
#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
//
// VLCAppDelegate.h
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "VLCPlaylistViewController.h"
@interface VLCAppDelegate : UIResponder <UIApplicationDelegate>
{
VLCPlaylistViewController *_playlistViewController;
}
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UINavigationController *navigationController;
@property (strong, nonatomic) UISplitViewController *splitViewController;
@end
//
// VLCAppDelegate.m
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import "VLCAppDelegate.h"
#import "MLMediaLibrary.h"
#import "VLCPlaylistViewController.h"
#import "VLCDetailViewController.h"
@implementation VLCAppDelegate
- (void)dealloc
{
[_playlistViewController release];
[_window release];
[_navigationController release];
[_splitViewController release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
_playlistViewController = [[VLCPlaylistViewController alloc] initWithNibName:@"VLCPlaylistViewController_iPhone" bundle:nil];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:_playlistViewController] autorelease];
self.window.rootViewController = self.navigationController;
} else {
_playlistViewController = [[VLCPlaylistViewController alloc] initWithNibName:@"VLCPlaylistViewController_iPad" bundle:nil];
UINavigationController *masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:_playlistViewController] autorelease];
VLCDetailViewController *detailViewController = [[[VLCDetailViewController alloc] initWithNibName:@"VLCDetailViewController_iPad" bundle:nil] autorelease];
UINavigationController *detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:detailViewController] autorelease];
_playlistViewController.detailViewController = detailViewController;
self.splitViewController = [[[UISplitViewController alloc] init] autorelease];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];
self.window.rootViewController = self.splitViewController;
}
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[MLMediaLibrary sharedMediaLibrary] applicationWillExit];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[self updateMediaList];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
- (void)updateMediaList
{
#define LOCAL_PLAYBACK_HACK 1
#if LOCAL_PLAYBACK_HACK && TARGET_IPHONE_SIMULATOR
NSString *directoryPath = @"/Users/fkuehne/Desktop/VideoLAN docs/Clips/sel/";
#else
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSUserDomainMask, NSDocumentDirectory, YES);
NSString *directoryPath = [paths objectAtIndex:0];
#endif
NSArray *foundFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directoryPath error:nil];
NSMutableArray *filePaths = [NSMutableArray arrayWithCapacity:[foundFiles count]];
for (NSString * fileName in foundFiles) {
if ([fileName rangeOfString:@"\\.(3gp|3gp|3gp2|3gpp|amv|asf|avi|divx|dv|flv|f4v|gvi|gxf|m1v|m2p|m2t|m2ts|m2v|m4v|mkv|moov|mov|mp2v|mp4|mpeg|mpeg1|mpeg2|mpeg4|mpg|mpv|mt2s|mts|mxf|oga|ogm|ogv|ogx|spx|ps|qt|rm|rmvb|ts|tts|vob|webm|wm|wmv)$" options:NSRegularExpressionSearch|NSCaseInsensitiveSearch].length != 0) {
[filePaths addObject:[directoryPath stringByAppendingPathComponent:fileName]];
}
}
[[MLMediaLibrary sharedMediaLibrary] addFilePaths:filePaths];
[[MLMediaLibrary sharedMediaLibrary] updateDatabase];
[_playlistViewController updateMediaDatabase];
}
@end
//
// VLCDetailViewController.h
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface VLCDetailViewController : UIViewController <UISplitViewControllerDelegate>
@property (strong, nonatomic) id detailItem;
@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
@end
//
// VLCDetailViewController.m
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import "VLCDetailViewController.h"
@interface VLCDetailViewController ()
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
- (void)configureView;
@end
@implementation VLCDetailViewController
- (void)dealloc
{
[_detailItem release];
[_detailDescriptionLabel release];
[_masterPopoverController release];
[super dealloc];
}
#pragma mark - Managing the detail item
- (void)setDetailItem:(id)newDetailItem
{
if (_detailItem != newDetailItem) {
[_detailItem release];
_detailItem = [newDetailItem retain];
// Update the view.
[self configureView];
}
if (self.masterPopoverController != nil) {
[self.masterPopoverController dismissPopoverAnimated:YES];
}
}
- (void)configureView
{
// Update the user interface for the detail item.
if (self.detailItem) {
self.detailDescriptionLabel.text = [self.detailItem description];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self configureView];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Detail", @"Detail");
}
return self;
}
#pragma mark - Split view
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = NSLocalizedString(@"Master", @"Master");
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
// Called when the view is shown again in the split view, invalidating the button and popover controller.
[self.navigationItem setLeftBarButtonItem:nil animated:YES];
self.masterPopoverController = nil;
}
@end
//
// VLCMasterViewController.h
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import <UIKit/UIKit.h>
@class VLCDetailViewController;
@interface VLCPlaylistViewController : UITableViewController
@property (strong, nonatomic) VLCDetailViewController *detailViewController;
- (void)updateMediaDatabase;
@end
//
// VLCMasterViewController.m
// AspenProject
//
// Created by Felix Paul Kühne on 27.02.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
#import "MLFile.h"
#import "MLMediaLibrary.h"
#import "VLCPlaylistViewController.h"