+++ /dev/null
-!Makefile
-*.mode*
-*.pbxuser
-*.xcworkspace
-xcuserdata
+++ /dev/null
-#
-# Configure script
-#
-# used by VLCKit.xcodeproj
-
-if test "x$SYMROOT" = "x"; then
- echo " This script is bound to be launched by VLCKit.xcodeproj, not you"
- exit 1
-fi
-
-if test "$ACTION" = "clean"; then
- rm -Rf $VLC_BUILD_DIR
- exit 0
-fi
-
-# Construct the vlc_build_dir
-mkdir -p $VLC_BUILD_DIR
-cd $VLC_BUILD_DIR
-
-# Construct the argument list
-echo "Building for $ARCHS with sdk=\"$SDKROOT\" in $VLC_BUILD_DIR"
-
-args="--disable-nls $args"
-
-# Mac OS X related options
-args="--disable-macosx $args" # Disable old gui/macosx
-args="--disable-macosx-vlc-app $args" # Don't build old vlc.app
-
-args="--with-macosx-version-min=10.6 $args"
-
-# optional modules
-args="--enable-merge-ffmpeg $args"
-args="--enable-faad $args"
-args="--enable-flac $args"
-args="--enable-theora $args"
-args="--enable-shout $args"
-args="--enable-twolame $args"
-args="--enable-realrtsp $args"
-args="--enable-libass $args"
-args="--enable-macosx-audio $args"
-args="--enable-macosx-dialog-provider $args"
-args="--enable-macosx-eyetv $args"
-args="--enable-macosx-qtkit $args"
-args="--enable-macosx-vout $args"
-
-# disabled stuff
-args="--disable-growl $args"
-args="--disable-caca $args"
-args="--disable-ncurses $args"
-args="--disable-httpd $args"
-args="--disable-vlm $args"
-args="--disable-skins2 $args"
-args="--disable-glx $args"
-args="--disable-xvideo $args"
-args="--disable-xcb $args"
-args="--disable-sdl $args"
-args="--disable-sdl-image $args"
-args="--disable-visual $args"
-args="--disable-samplerate $args"
-
-if test "x$SDKROOT" != "x"
-then
- args="--with-macosx-sdk=$SDKROOT $args"
-fi
-
-# Debug Flags
-if test "$CONFIGURATION" = "Debug"; then
- args="--enable-debug $args"
-fi
-
-# 64 bits switches
-for arch in $ARCHS; do
- this_args="$args"
-
- # where to install
- this_args="--prefix=${VLC_BUILD_DIR}/$arch/vlc_install_dir $this_args"
-
- input="$VLC_SRC_DIR/configure"
- output="$arch/Makefile"
- if test -e ${output} && test ${output} -nt ${input}; then
- echo "No need to re-run configure for $arch"
- continue;
- fi
-
- # Construct the vlc_build_dir/$arch
- mkdir -p $arch
- cd $arch
-
- echo "Running [$arch] configure $this_args"
- if test $arch = "x86_64"; then
- export CFLAGS="-m64 -arch x86_64"
- export CXXFLAGS="-m64 -arch x86_64"
- export OBJCFLAGS="-m64 -arch x86_64"
- export CPPFLAGS="-m64 -arch x86_64"
- this_args="--build=x86_64-apple-darwin10 --with-contrib=$VLC_SRC_DIR/contrib/x86_64-apple-darwin10 $this_args"
- export PATH=$VLC_SRC_DIR/extras/tools/build/bin:$VLC_SRC_DIR/contrib/x86_64-apple-darwin10/bin:$PATH
- export PKG_CONFIG_PATH=$VLC_SRC_DIR/contrib/x86_64-apple-darwin10/lib/pkgconfig
- fi
- if test $arch = "i386"; then
- export CFLAGS="-m32 -arch i386"
- export CXXFLAGS="-m32 -arch i386"
- export OBJCFLAGS="-m32 -arch i386"
- export CPPFLAGS="-m32 -arch i386"
- this_args="--build=i686-apple-darwin9 --with-contrib=$VLC_SRC_DIR/contrib/i686-apple-darwin9 $this_args"
- fi
- if test $arch = "ppc"; then
- export CFLAGS="-m32 -arch ppc"
- export CXXFLAGS="-m32 -arch ppc"
- export OBJCFLAGS="-m32 -arch ppc"
- export CPPFLAGS="-m32 -arch ppc"
- this_args="--build=powerpc-apple-darwin9 --with-contrib=$VLC_SRC_DIR/contrib/powerpc-apple-darwin9 $this_args"
- fi
-
- $VLC_SRC_DIR/configure $this_args
- err=$?
- if test $err != 0; then
- exit $err
- fi
- cd ..
-done
+++ /dev/null
-/* Controller */
-
-#import <Cocoa/Cocoa.h>
-#import <VLCKit/VLCKit.h>
-
-@interface Controller : NSObject
-{
- IBOutlet NSView * remoteURLView;
- IBOutlet NSView * workingView;
- IBOutlet NSWindow * window;
- IBOutlet NSButton * openConvertedFileButton;
-
- NSNumber * selectedStreamOutput;
- NSString * remoteURLAsString;
-
- VLCMedia * media;
- VLCStreamSession * streamSession;
-
- NSString * outputFilePath;
- NSString * outputFolderPath;
-}
-
-- (void)awakeFromNib;
-
-@property (retain) VLCMedia * media;
-@property (retain) VLCStreamSession * streamSession;
-@property (assign) NSNumber * selectedStreamOutput;
-@property (retain,readonly) NSString * outputFilePath;
-@property (retain,readonly) NSString * outputFolderPath;
-@property (retain) NSString * remoteURLAsString;
-
-- (IBAction)convert:(id)sender;
-- (IBAction)openConvertedFile:(id)sender;
-- (IBAction)openConvertedEnclosingFolder:(id)sender;
-- (IBAction)pickOutputFolderPath:(id)sender;
-@end
+++ /dev/null
-#import "Controller.h"
-
-
-/**********************************************************
- * First off, some value transformer to easily play with
- * bindings
- */
-@interface VLCFloat10000FoldTransformer : NSObject
-@end
-
-@implementation VLCFloat10000FoldTransformer
-
-+ (Class)transformedValueClass
-{
- return [NSNumber class];
-}
-
-+ (BOOL)allowsReverseTransformation
-{
- return YES;
-}
-
-- (id)transformedValue:(id)value
-{
- if( !value ) return nil;
-
- if(![value respondsToSelector: @selector(floatValue)])
- {
- [NSException raise: NSInternalInconsistencyException
- format: @"Value (%@) does not respond to -floatValue.",
- [value class]];
- return nil;
- }
-
- return [NSNumber numberWithFloat: [value floatValue]*10000.];
-}
-
-- (id)reverseTransformedValue:(id)value
-{
- if( !value ) return nil;
-
- if(![value respondsToSelector: @selector(floatValue)])
- {
- [NSException raise: NSInternalInconsistencyException
- format: @"Value (%@) does not respond to -floatValue.",
- [value class]];
- return nil;
- }
-
- return [NSNumber numberWithFloat: [value floatValue]/10000.];
-}
-@end
-
-
-/**********************************************************
- * @implementation Controller
- */
-@interface Controller ()
-@property (retain,readwrite) NSString * outputFolderPath;
-@end
-
-@implementation Controller
-- (id)init
-{
- if(self = [super init])
- {
- [self bind:@"outputFolderPath" toObject:[NSUserDefaultsController sharedUserDefaultsController]
- withKeyPath:@"values.outputFolderPath" options:nil];
- [[[NSUserDefaultsController sharedUserDefaultsController] values] bind:@"outputFolderPath" toObject:self
- withKeyPath:@"outputFolderPath" options:nil];
- VLCFloat10000FoldTransformer *float100fold;
- float100fold = [[[VLCFloat10000FoldTransformer alloc] init] autorelease];
- [NSValueTransformer setValueTransformer:(id)float100fold forName:@"Float10000FoldTransformer"];
- self.media = nil;
- self.streamSession = nil;
- selectedStreamOutput = [[NSNumber alloc] initWithInt:0];
- self.remoteURLAsString = [NSString stringWithString:@"http://youtube.com/watch?v=IXpx2OEWBdA&feature=bz303"];
- outputFilePath = nil;
- if( !self.outputFolderPath || [self.outputFolderPath isKindOfClass:[NSNull class]])
- self.outputFolderPath = [@"~/Movies/Flash Video Converted" stringByExpandingTildeInPath];
- }
- return self;
-}
-
-- (void)dealloc
-{
- [outputFilePath release];
- [remoteURLAsString release];
- [streamSession release];
- [media release];
- [super dealloc];
-}
-
-@synthesize streamSession;
-@synthesize selectedStreamOutput;
-@synthesize media;
-@synthesize outputFolderPath;
-
-- (void)awakeFromNib
-{
- [window setShowsResizeIndicator:NO];
- [NSApp setDelegate: self];
-}
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
-{
- [VLCLibrary sharedLibrary];
-}
-
-- (NSString *)remoteURLAsString
-{
- return remoteURLAsString;
-}
-
-- (void)setRemoteURLAsString:(NSString *)newURLAsString
-{
- [remoteURLAsString release];
- remoteURLAsString = [[newURLAsString copy] retain];
- media = [[newURLAsString copy] retain];
- [self setMedia:[VLCMedia mediaWithPath:newURLAsString]];
-}
-
-+ (NSSet *)keyPathsForValuesAffectingOutputFilePath
-{
- return [NSSet setWithObjects:@"media.metaDictionary.title", nil];
-}
-
-- (void)freezeOutputFilePath
-{
- [outputFilePath release];
- outputFilePath = nil;
- outputFilePath = [self outputFilePath];
- [outputFilePath retain];
-}
-
-- (NSString *)outputFilePath
-{
- if(outputFilePath)
- return [outputFilePath copy];
- VLCMedia * aMedia = self.streamSession ? self.streamSession.media ? self.streamSession.media : self.media : self.media;
- NSString * name = [[[aMedia metaDictionary] objectForKey:@"title"] lastPathComponent];
- NSString * extension = [selectedStreamOutput intValue] == 2 ? @"mpeg" : @"mp4";
- NSString * path = [NSString stringWithFormat:@"%@/%@.%@", self.outputFolderPath, name, extension ];
- int i;
- for( i = 0; [[NSFileManager defaultManager] fileExistsAtPath:path]; i ++)
- {
- path = [NSString stringWithFormat:@"%@/%@ %d.%@", self.outputFolderPath, name, i, extension ];
- if( i > 256 )
- {
- /* Don't got too far */
- /* FIXME: Be nicer with the user and give him a choice for the new name */
- NSRunAlertPanelRelativeToWindow(@"File already exists",
- [NSString stringWithFormat:
- @"File '%@', already exists. The old one will be deleted when the OK button will be pressed", path],
- @"OK", nil, nil, window);
- break;
- }
- }
- return path;
-}
-
-
-- (IBAction)convert:(id)sender
-{
- VLCStreamOutput * streamOutput;
- [self.streamSession removeObserver:self forKeyPath:@"isComplete"];
-
- self.streamSession = [VLCStreamSession streamSession];
- [self freezeOutputFilePath];
-
- if([selectedStreamOutput intValue] == 2)
- {
- streamOutput = [VLCStreamOutput mpeg2StreamOutputWithFilePath:[self outputFilePath]];
- }
- else if([selectedStreamOutput intValue] == 1)
- {
- streamOutput = [VLCStreamOutput mpeg4StreamOutputWithFilePath:[self outputFilePath]];
- }
- else
- streamOutput = [VLCStreamOutput ipodStreamOutputWithFilePath:[self outputFilePath]];
-
- /* Make sure we are exporting to a well known directory */
- [[NSFileManager defaultManager] createDirectoryAtPath:self.outputFolderPath attributes:nil];
-
- [self.streamSession setStreamOutput:streamOutput];
- [self.streamSession setMedia:self.media];
- [self.streamSession startStreaming];
-
- [self.streamSession addObserver:self forKeyPath:@"isComplete" options:NSKeyValueObservingOptionNew context:nil];
-
- /* Show the new view */
- [[window contentView] addSubview:workingView];
- NSRect frame = [workingView frame];
- frame.origin.y -= NSHeight([window contentRectForFrameRect:[window frame]]) + 20.f;
- [workingView setFrame:frame];
- [[window animator] setFrame:NSMakeRect([window frame].origin.x, [window frame].origin.y-NSHeight([workingView frame]), NSWidth([window frame]), NSHeight([window frame])+NSHeight([workingView frame])) display:YES];
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
-{
- if([keyPath isEqualToString:@"isComplete"])
- {
- if([self.streamSession isComplete])
- {
- /* Notify the user */
- [[NSSound soundNamed:@"Glass"] play];
-
- /* Set the icon */
- [openConvertedFileButton setImage:[[NSWorkspace sharedWorkspace] iconForFile:[self outputFilePath]]];
-
- /* Rename the link with a nicer name */
- NSString * oldPath = [self outputFilePath];
- [self freezeOutputFilePath];
- [[NSFileManager defaultManager] moveItemAtPath:oldPath toPath:[self outputFilePath] error:NULL];
- }
- return;
- }
- [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
-}
-
-- (IBAction)openConvertedFile:(id)sender
-{
- [[NSWorkspace sharedWorkspace] openFile:[self outputFilePath]];
-}
-
-- (IBAction)pickOutputFolderPath:(id)sender;
-{
- NSOpenPanel * panel = [NSOpenPanel openPanel];
- [panel setCanChooseFiles:NO];
- [panel setCanChooseDirectories:YES];
- [panel setAllowsMultipleSelection:NO];
- [panel beginSheetForDirectory:self.outputFolderPath file:nil types:nil modalForWindow:[sender window] modalDelegate:self didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:) contextInfo:nil];
-}
-
-- (void)openPanelDidEnd:(NSOpenPanel *)panel returnCode:(int)returnCode contextInfo:(void *)contextInfo
-{
- if(returnCode != NSOKButton || ![[panel filenames] count])
- return;
- self.outputFolderPath = [[panel filenames] objectAtIndex:0];
-}
-
-- (IBAction)openConvertedEnclosingFolder:(id)sender
-{
- [[NSWorkspace sharedWorkspace] selectFile:[self outputFilePath] inFileViewerRootedAtPath:[[self outputFilePath] stringByDeletingLastPathComponent]];
-}
-
-- (IBAction)cancel:(id)sender
-{
- [self.streamSession stop];
-}
-
-@end
+++ /dev/null
-<?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>IBClasses</key>
- <array>
- <dict>
- <key>CLASS</key>
- <string>GradientBackgroundView</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSImageView</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>FirstResponder</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSObject</string>
- </dict>
- <dict>
- <key>ACTIONS</key>
- <dict>
- <key>convert</key>
- <string>id</string>
- <key>openConvertedEnclosingFolder</key>
- <string>id</string>
- <key>openConvertedFile</key>
- <string>id</string>
- <key>pickOutputFolderPath</key>
- <string>id</string>
- </dict>
- <key>CLASS</key>
- <string>Controller</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>OUTLETS</key>
- <dict>
- <key>openConvertedFileButton</key>
- <string>NSButton</string>
- <key>remoteURLView</key>
- <string>NSView</string>
- <key>titleView</key>
- <string>NSView</string>
- <key>window</key>
- <string>NSWindow</string>
- <key>workingView</key>
- <string>NSView</string>
- </dict>
- <key>SUPERCLASS</key>
- <string>NSObject</string>
- </dict>
- </array>
- <key>IBVersion</key>
- <string>1</string>
-</dict>
-</plist>
+++ /dev/null
-<?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>IBFramework Version</key>
- <string>629</string>
- <key>IBLastKnownRelativeProjectPath</key>
- <string>../../FlashVideoDownloader.xcodeproj</string>
- <key>IBOldestOS</key>
- <integer>5</integer>
- <key>IBOpenObjects</key>
- <array>
- <integer>21</integer>
- <integer>169</integer>
- <integer>940</integer>
- <integer>704</integer>
- </array>
- <key>IBSystem Version</key>
- <string>9B18</string>
- <key>targetFramework</key>
- <string>IBCocoaFramework</string>
-</dict>
-</plist>
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 42;
- objects = {
-
-/* Begin PBXBuildFile section */
- 632A105C0D39148A00AFC99B /* VLCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 632A0F710D38F71A00AFC99B /* VLCKit.framework */; };
- 632A122C0D3947D900AFC99B /* GradientBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */; };
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 633302790BD24CDB00193D7D /* Controller.m */; };
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
- 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 632A0F700D38F71A00AFC99B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
- remoteInfo = VLCKit;
- };
- 632A0F780D38F72F00AFC99B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
- remoteInfo = VLCKit;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
- 32CA4F630368D1EE00C91783 /* FlashVideoDownloader_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlashVideoDownloader_Prefix.pch; sourceTree = "<group>"; };
- 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = VLCKit.xcodeproj; path = ../../VLCKit.xcodeproj; sourceTree = SOURCE_ROOT; };
- 632A122A0D3947D900AFC99B /* GradientBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GradientBackgroundView.h; sourceTree = "<group>"; };
- 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GradientBackgroundView.m; sourceTree = "<group>"; };
- 633302780BD24CDB00193D7D /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; };
- 633302790BD24CDB00193D7D /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = "<group>"; };
- 636836780D3999E5003A1400 /* Flash Video Downloader.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Flash Video Downloader.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8D11072E0486CEB800E47090 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 632A105C0D39148A00AFC99B /* VLCKit.framework in Frameworks */,
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 080E96DDFE201D6D7F000001 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 632A122A0D3947D900AFC99B /* GradientBackgroundView.h */,
- 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */,
- 633302780BD24CDB00193D7D /* Controller.h */,
- 633302790BD24CDB00193D7D /* Controller.m */,
- );
- name = Classes;
- sourceTree = "<group>";
- };
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
- );
- name = "Linked Frameworks";
- sourceTree = "<group>";
- };
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "<group>";
- };
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 636836780D3999E5003A1400 /* Flash Video Downloader.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 29B97314FDCFA39411CA2CEA /* test */ = {
- isa = PBXGroup;
- children = (
- 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */,
- 080E96DDFE201D6D7F000001 /* Classes */,
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- name = test;
- sourceTree = "<group>";
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32CA4F630368D1EE00C91783 /* FlashVideoDownloader_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- 8D1107310486CEB800E47090 /* Info.plist */,
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 632A0F690D38F71A00AFC99B /* Products */ = {
- isa = PBXGroup;
- children = (
- 632A0F710D38F71A00AFC99B /* VLCKit.framework */,
- );
- name = Products;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 8D1107260486CEB800E47090 /* Flash Video Downloader */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Flash Video Downloader" */;
- buildPhases = (
- 636836C00D399CF0003A1400 /* ShellScript */,
- 8D1107290486CEB800E47090 /* Resources */,
- 8D11072C0486CEB800E47090 /* Sources */,
- 8D11072E0486CEB800E47090 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 632A0F790D38F72F00AFC99B /* PBXTargetDependency */,
- );
- name = "Flash Video Downloader";
- productInstallPath = "$(HOME)/Applications";
- productName = test;
- productReference = 636836780D3999E5003A1400 /* Flash Video Downloader.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "FlashVideoDownloader" */;
- compatibilityVersion = "Xcode 2.4";
- hasScannedForEncodings = 1;
- mainGroup = 29B97314FDCFA39411CA2CEA /* test */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 632A0F690D38F71A00AFC99B /* Products */;
- ProjectRef = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 8D1107260486CEB800E47090 /* Flash Video Downloader */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 632A0F710D38F71A00AFC99B /* VLCKit.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = VLCKit.framework;
- remoteRef = 632A0F700D38F71A00AFC99B /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8D1107290486CEB800E47090 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 636836C00D399CF0003A1400 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "if test \"$SYMROOT\" == \"$PROJECT_DIR/build\"\nthen\n\tVLCFRAMEWORK=\"$SRCROOT/../../build/$CONFIGURATION/VLCKit.framework\"\nelse\n\tVLCFRAMEWORK=\"$SYMROOT/$CONFIGURATION/VLCKit.framework\"\nfi\nmkdir -p \"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH\"\n/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks \"$VLCFRAMEWORK\" \"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH\"";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8D11072C0486CEB800E47090 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072D0486CEB800E47090 /* main.m in Sources */,
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */,
- 632A122C0D3947D900AFC99B /* GradientBackgroundView.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 632A0F790D38F72F00AFC99B /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = VLCKit;
- targetProxy = 632A0F780D38F72F00AFC99B /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 089C165DFE840E0CC02AAC07 /* English */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
- isa = PBXVariantGroup;
- children = (
- 29B97319FDCFA39411CA2CEA /* English */,
- );
- name = MainMenu.nib;
- sourceTree = "<group>";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- C01FCF4B08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../build/Release\"";
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../build/Debug\"";
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = "Flash Video Downloader";
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- ZERO_LINK = YES;
- };
- name = Debug;
- };
- C01FCF4C08A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../build/Release\"";
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../build/Debug\"";
- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
- GCC_MODEL_TUNING = G5;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = "Flash Video Downloader";
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Flash Video Downloader" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4B08A954540054247B /* Debug */,
- C01FCF4C08A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "FlashVideoDownloader" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
+++ /dev/null
-//
-// Prefix header for all source files of the 'test' target in the 'test' project
-//
-
-#ifdef __OBJC__
- #import <Cocoa/Cocoa.h>
-#endif
+++ /dev/null
-//
-// GradientBackgroundView.h
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface GradientBackgroundView : NSImageView {
-
-}
-
-@end
+++ /dev/null
-//
-// GradientBackgroundView.m
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import "GradientBackgroundView.h"
-
-/**********************************************************
- * Why not drawing something nice?
- */
-
-@implementation GradientBackgroundView
-- (void)awakeFromNib
-{
- /* Buggy nib files... Force us to be on the back of the view hierarchy */
- NSView * superView;
- [self retain];
- superView = [self superview];
- [self removeFromSuperview];
- [superView addSubview:self positioned: NSWindowBelow relativeTo:nil];
-}
-- (void)drawRect:(NSRect)rect
-{
-
- NSColor * topGradient = [NSColor colorWithCalibratedWhite:.12f alpha:1.0];
- NSColor * bottomGradient = [NSColor colorWithCalibratedWhite:0.55f alpha:0.9];
- NSGradient * gradient = [[NSGradient alloc] initWithColorsAndLocations:bottomGradient, 0.f, bottomGradient, 0.1f, topGradient, 1.f, nil];
- [gradient drawInRect:self.bounds angle:90.0];
- [super drawRect:rect];
-}
-@end
+++ /dev/null
-<?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>English</string>
- <key>CFBundleExecutable</key>
- <string>Flash Video Downloader</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>org.videolan.flashvideodownloader</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>Flash Video Downloader</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1.0</string>
- <key>NSMainNibFile</key>
- <string>MainMenu</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
-</dict>
-</plist>
+++ /dev/null
-//
-// main.m
-// test
-//
-// Created by Pierre d'Herbemont on 13/04/07.
-// Copyright __MyCompanyName__ 2007. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <VLCKit/VLCKit.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- return NSApplicationMain(argc, (const char **) argv);
-}
+++ /dev/null
-/* Controller */
-
-#import <Cocoa/Cocoa.h>
-#import <VLCKit/VLCKit.h>
-#import <VLCKit/VLCMediaPlayer.h>
-
-@interface Controller : NSObject
-{
- IBOutlet NSView * conversionView;
- IBOutlet NSWindow * window;
- IBOutlet NSButton * openConvertedFileButton;
-
- NSNumber * selectedStreamOutput;
-
- VLCMedia * media;
- VLCStreamSession * streamSession;
-}
-
-- (void)awakeFromNib;
-
-@property (retain) VLCMedia * media;
-@property (retain) VLCStreamSession * streamSession;
-@property (assign) NSNumber * selectedStreamOutput;
-@property (retain,readonly) NSString * outputFilePath;
-
-- (IBAction)convert:(id)sender;
-- (IBAction)openConvertedFile:(id)sender;
-- (IBAction)openConvertedEnclosingFolder:(id)sender;
-@end
+++ /dev/null
-#import "Controller.h"
-
-
-/**********************************************************
- * First off, some value transformer to easily play with
- * bindings
- */
-@interface VLCFloat10000FoldTransformer : NSObject
-@end
-
-@implementation VLCFloat10000FoldTransformer
-
-+ (Class)transformedValueClass
-{
- return [NSNumber class];
-}
-
-+ (BOOL)allowsReverseTransformation
-{
- return YES;
-}
-
-- (id)transformedValue:(id)value
-{
- if( !value ) return nil;
-
- if(![value respondsToSelector: @selector(floatValue)])
- {
- [NSException raise: NSInternalInconsistencyException
- format: @"Value (%@) does not respond to -floatValue.",
- [value class]];
- return nil;
- }
-
- return [NSNumber numberWithFloat: [value floatValue]*10000.];
-}
-
-- (id)reverseTransformedValue:(id)value
-{
- if( !value ) return nil;
-
- if(![value respondsToSelector: @selector(floatValue)])
- {
- [NSException raise: NSInternalInconsistencyException
- format: @"Value (%@) does not respond to -floatValue.",
- [value class]];
- return nil;
- }
-
- return [NSNumber numberWithFloat: [value floatValue]/10000.];
-}
-@end
-
-
-/**********************************************************
- * @implementation Controller
- */
-
-@implementation Controller
-- (id)init
-{
- if(self = [super init])
- {
- VLCFloat10000FoldTransformer *float100fold;
- float100fold = [[[VLCFloat10000FoldTransformer alloc] init] autorelease];
- [NSValueTransformer setValueTransformer:(id)float100fold forName:@"Float10000FoldTransformer"];
- self.media = nil;
- self.streamSession = nil;
- selectedStreamOutput = [[NSNumber alloc] initWithInt:0];
- }
- return self;
-}
-
-@synthesize streamSession;
-@synthesize selectedStreamOutput;
-
-- (void)awakeFromNib
-{
- [window setShowsResizeIndicator:NO];
- [NSApp setDelegate: self];
-}
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
-{
- [VLCLibrary sharedLibrary];
-}
-
-- (VLCMedia *)media
-{
- return media;
-}
-
-- (void)setMedia:(VLCMedia *)newMedia
-{
- [media release];
- media = [newMedia retain];
- NSRect newFrame = [window frameRectForContentRect:[conversionView frame]];
- [[window animator] setFrame:NSMakeRect([window frame].origin.x, [window frame].origin.y+NSHeight([window frame])-NSHeight(newFrame), NSWidth(newFrame), NSHeight(newFrame)) display:YES];
- [[window animator] setContentView:conversionView];
- [window setMinSize:newFrame.size];
- [window setMaxSize:NSMakeSize(10000., NSHeight(newFrame))];
- [window setShowsResizeIndicator:YES];
-}
-
-+ (NSSet *)keyPathsForValuesAffectingOutputFilePath
-{
- return [NSSet setWithObjects:@"media.metaDictionary.title", nil];
-}
-- (NSString *)outputFilePath
-{
- return [NSString stringWithFormat:[@"~/Movies/iPod Converted/%@.mp4" stringByExpandingTildeInPath],
- [[self.media metaDictionary] objectForKey:@"title"]];
-}
-
-- (IBAction)convert:(id)sender
-{
- self.streamSession = [VLCStreamSession streamSession];
- if([selectedStreamOutput intValue] == 0)
- {
- [self.streamSession setStreamOutput:
- [VLCStreamOutput ipodStreamOutputWithFilePath:
- [self outputFilePath]
- ]];
- }
- else
- {
- /* This doesn't really is useful for the iPod/iPhone...
- * But one day we'll figure that out */
- NSRunAlertPanelRelativeToWindow(@"Warning", @"We can't really stream to the iPod/iPhone for now...\n\nSo we're just streaming using the RTP protocol, and annoucing it via SAP.\n\n(Launch the SAP VLC service discovery module to see it).", @"OK", nil, nil, window);
- [self.streamSession setStreamOutput:
- [VLCStreamOutput rtpBroadcastStreamOutput]];
- }
-
-
- NSLog(@"Using %@", self.streamSession.streamOutput );
-
- [self.streamSession setMedia:self.media];
- [self.streamSession startStreaming];
-
- [openConvertedFileButton setImage:[[NSWorkspace sharedWorkspace] iconForFile:[self outputFilePath]]];
-}
-
-- (IBAction)openConvertedFile:(id)sender
-{
- [[NSWorkspace sharedWorkspace] openFile:[self outputFilePath]];
-}
-- (IBAction)openConvertedEnclosingFolder:(id)sender
-{
- [[NSWorkspace sharedWorkspace] openFile:[[self outputFilePath] stringByDeletingLastPathComponent]];
-
-}
-@end
+++ /dev/null
-<?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>IBClasses</key>
- <array>
- <dict>
- <key>CLASS</key>
- <string>GradientBackgroundView</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSImageView</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>FirstResponder</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSObject</string>
- </dict>
- <dict>
- <key>ACTIONS</key>
- <dict>
- <key>convert</key>
- <string>id</string>
- <key>openConvertedEnclosingFolder</key>
- <string>id</string>
- <key>openConvertedFile</key>
- <string>id</string>
- </dict>
- <key>CLASS</key>
- <string>Controller</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>OUTLETS</key>
- <dict>
- <key>conversionView</key>
- <string>NSView</string>
- <key>openConvertedFileButton</key>
- <string>NSButton</string>
- <key>window</key>
- <string>NSWindow</string>
- </dict>
- <key>SUPERCLASS</key>
- <string>NSObject</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>MovieReceiver</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>OUTLETS</key>
- <dict>
- <key>controller</key>
- <string>Controller</string>
- </dict>
- <key>SUPERCLASS</key>
- <string>NSView</string>
- </dict>
- </array>
- <key>IBVersion</key>
- <string>1</string>
-</dict>
-</plist>
+++ /dev/null
-<?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>IBFramework Version</key>
- <string>629</string>
- <key>IBLastKnownRelativeProjectPath</key>
- <string>../../iPodConverter.xcodeproj</string>
- <key>IBOldestOS</key>
- <integer>5</integer>
- <key>IBOpenObjects</key>
- <array>
- <integer>317</integer>
- </array>
- <key>IBSystem Version</key>
- <string>9B18</string>
- <key>targetFramework</key>
- <string>IBCocoaFramework</string>
-</dict>
-</plist>
+++ /dev/null
-//
-// GradientBackgroundView.h
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface GradientBackgroundView : NSImageView {
-
-}
-
-@end
+++ /dev/null
-//
-// GradientBackgroundView.m
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import "GradientBackgroundView.h"
-
-/**********************************************************
- * Why not drawing something nice?
- */
-
-@implementation GradientBackgroundView
-- (void)awakeFromNib
-{
- /* Buggy nib files... Force us to be on the back of the view hierarchy */
- NSView * superView;
- [self retain];
- superView = [self superview];
- [self removeFromSuperview];
- [superView addSubview:self positioned: NSWindowBelow relativeTo:nil];
-}
-- (void)drawRect:(NSRect)rect
-{
-
- NSColor * topGradient = [NSColor colorWithCalibratedWhite:.12f alpha:1.0];
- NSColor * bottomGradient = [NSColor colorWithCalibratedWhite:0.55f alpha:0.9];
- NSGradient * gradient = [[NSGradient alloc] initWithColorsAndLocations:bottomGradient, 0.f, bottomGradient, 0.1f, topGradient, 1.f, nil];
- [gradient drawInRect:self.bounds angle:90.0];
- [super drawRect:rect];
-}
-@end
+++ /dev/null
-<?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>English</string>
- <key>CFBundleExecutable</key>
- <string>iPodConverter</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>org.videolan.ipodconverter</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1.0</string>
- <key>NSMainNibFile</key>
- <string>MainMenu</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
-</dict>
-</plist>
+++ /dev/null
-//
-// MovieReceiver.h
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import "Controller.h"
-
-@interface MovieReceiver : NSView {
- IBOutlet Controller * controller;
-}
-
-@end
+++ /dev/null
-//
-// MovieReceiver.m
-// iPodConverter
-//
-// Created by Pierre d'Herbemont on 1/12/08.
-// Copyright 2008 __MyCompanyName__. All rights reserved.
-//
-
-#import "MovieReceiver.h"
-
-/**********************************************************
- * This handles drag-and-drop in the main window
- */
-
-@implementation MovieReceiver
-- (void)awakeFromNib
-{
- [self registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSURLPboardType, nil]];
-
-}
-- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
-{
- return NSDragOperationGeneric;
-}
-- (NSDragOperation)performDragOperation:(id <NSDraggingInfo>)sender
-{
- NSPasteboard *pboard = [sender draggingPasteboard];
-
- if ( [[pboard types] containsObject:NSFilenamesPboardType] )
- {
- NSArray *files = [pboard propertyListForType:NSFilenamesPboardType];
- for( NSString * filename in files )
- {
- [controller setMedia:[VLCMedia mediaWithPath:filename]];
- }
- }
- return YES;
-
- return NSDragOperationGeneric;
-}
-@end
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 42;
- objects = {
-
-/* Begin PBXBuildFile section */
- 632A105C0D39148A00AFC99B /* VLCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 632A0F710D38F71A00AFC99B /* VLCKit.framework */; };
- 632A121B0D3945EA00AFC99B /* MovieReceiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A121A0D3945EA00AFC99B /* MovieReceiver.m */; };
- 632A122C0D3947D900AFC99B /* GradientBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */; };
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 633302790BD24CDB00193D7D /* Controller.m */; };
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
- 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 632A0F700D38F71A00AFC99B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
- remoteInfo = VLCKit;
- };
- 632A0F780D38F72F00AFC99B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
- remoteInfo = VLCKit;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
- 32CA4F630368D1EE00C91783 /* test_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = test_Prefix.pch; sourceTree = "<group>"; };
- 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = VLCKit.xcodeproj; path = ../../VLCKit.xcodeproj; sourceTree = SOURCE_ROOT; };
- 632A12190D3945EA00AFC99B /* MovieReceiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MovieReceiver.h; sourceTree = "<group>"; };
- 632A121A0D3945EA00AFC99B /* MovieReceiver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MovieReceiver.m; sourceTree = "<group>"; };
- 632A122A0D3947D900AFC99B /* GradientBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GradientBackgroundView.h; sourceTree = "<group>"; };
- 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GradientBackgroundView.m; sourceTree = "<group>"; };
- 633302780BD24CDB00193D7D /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; };
- 633302790BD24CDB00193D7D /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = "<group>"; };
- 636836780D3999E5003A1400 /* iPodConverter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPodConverter.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8D11072E0486CEB800E47090 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 632A105C0D39148A00AFC99B /* VLCKit.framework in Frameworks */,
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 080E96DDFE201D6D7F000001 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 632A122A0D3947D900AFC99B /* GradientBackgroundView.h */,
- 632A122B0D3947D900AFC99B /* GradientBackgroundView.m */,
- 632A12190D3945EA00AFC99B /* MovieReceiver.h */,
- 632A121A0D3945EA00AFC99B /* MovieReceiver.m */,
- 633302780BD24CDB00193D7D /* Controller.h */,
- 633302790BD24CDB00193D7D /* Controller.m */,
- );
- name = Classes;
- sourceTree = "<group>";
- };
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
- );
- name = "Linked Frameworks";
- sourceTree = "<group>";
- };
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "<group>";
- };
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 636836780D3999E5003A1400 /* iPodConverter.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 29B97314FDCFA39411CA2CEA /* test */ = {
- isa = PBXGroup;
- children = (
- 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */,
- 080E96DDFE201D6D7F000001 /* Classes */,
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- name = test;
- sourceTree = "<group>";
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32CA4F630368D1EE00C91783 /* test_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- 8D1107310486CEB800E47090 /* Info.plist */,
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 632A0F690D38F71A00AFC99B /* Products */ = {
- isa = PBXGroup;
- children = (
- 632A0F710D38F71A00AFC99B /* VLCKit.framework */,
- );
- name = Products;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 8D1107260486CEB800E47090 /* iPodConverter */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "iPodConverter" */;
- buildPhases = (
- 636836C00D399CF0003A1400 /* ShellScript */,
- 8D1107290486CEB800E47090 /* Resources */,
- 8D11072C0486CEB800E47090 /* Sources */,
- 8D11072E0486CEB800E47090 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 632A0F790D38F72F00AFC99B /* PBXTargetDependency */,
- );
- name = iPodConverter;
- productInstallPath = "$(HOME)/Applications";
- productName = test;
- productReference = 636836780D3999E5003A1400 /* iPodConverter.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iPodConverter" */;
- compatibilityVersion = "Xcode 2.4";
- hasScannedForEncodings = 1;
- mainGroup = 29B97314FDCFA39411CA2CEA /* test */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 632A0F690D38F71A00AFC99B /* Products */;
- ProjectRef = 632A0F680D38F71A00AFC99B /* VLCKit.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 8D1107260486CEB800E47090 /* iPodConverter */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 632A0F710D38F71A00AFC99B /* VLCKit.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = VLCKit.framework;
- remoteRef = 632A0F700D38F71A00AFC99B /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8D1107290486CEB800E47090 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 636836C00D399CF0003A1400 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "if test \"$SYMROOT\" == \"$PROJECT_DIR/build\"\nthen\n\tVLCFRAMEWORK=\"$SRCROOT/../../build/$CONFIGURATION/VLCKit.framework\"\nelse\n\tVLCFRAMEWORK=\"$SYMROOT/$CONFIGURATION/VLCKit.framework\"\nfi\nmkdir -p $BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH\n/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks $VLCFRAMEWORK $BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8D11072C0486CEB800E47090 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072D0486CEB800E47090 /* main.m in Sources */,
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */,
- 632A121B0D3945EA00AFC99B /* MovieReceiver.m in Sources */,
- 632A122C0D3947D900AFC99B /* GradientBackgroundView.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 632A0F790D38F72F00AFC99B /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = VLCKit;
- targetProxy = 632A0F780D38F72F00AFC99B /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 089C165DFE840E0CC02AAC07 /* English */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
- isa = PBXVariantGroup;
- children = (
- 29B97319FDCFA39411CA2CEA /* English */,
- );
- name = MainMenu.nib;
- sourceTree = "<group>";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- C01FCF4B08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../build/Release\"";
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../build/Debug\"";
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = iPodConverter;
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- ZERO_LINK = YES;
- };
- name = Debug;
- };
- C01FCF4C08A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
- );
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../build/Release\"";
- FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../build/Debug\"";
- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
- GCC_MODEL_TUNING = G5;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = iPodConverter;
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "iPodConverter" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4B08A954540054247B /* Debug */,
- C01FCF4C08A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iPodConverter" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
+++ /dev/null
-//
-// Prefix header for all source files of the 'test' target in the 'test' project
-//
-
-#ifdef __OBJC__
- #import <Cocoa/Cocoa.h>
-#endif
+++ /dev/null
-//
-// main.m
-// test
-//
-// Created by Pierre d'Herbemont on 13/04/07.
-// Copyright __MyCompanyName__ 2007. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#import <VLCKit/VLCKit.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- return NSApplicationMain(argc, (const char **) argv);
-}
+++ /dev/null
-/* Controller */
-
-#import <Cocoa/Cocoa.h>
-#import <VLCKit/VLCKit.h>
-
-@interface Controller : NSObject
-{
- IBOutlet id window;
- IBOutlet id playlistOutline;
- IBOutlet id videoHolderView;
-
- VLCVideoView * videoView;
- VLCMediaList *playlist;
- VLCMediaPlayer *player;
- int mediaIndex;
-}
-- (void)awakeFromNib;
-
-- (void)setMediaIndex:(int)value;
-- (void)play:(id)sender;
-- (void)pause:(id)sender;
-
-@end
+++ /dev/null
-#import "Controller.h"
-
-static void *sleepForMe(void)
-{
- while (1) sleep(60);
-}
-
-@implementation Controller
-
-- (void)awakeFromNib
-{
-// atexit((void*)sleepForMe); // Only used for memory leak debugging
-
- [NSApp setDelegate:self];
-
- // Allocate a VLCVideoView instance and tell it what area to occupy.
- NSRect rect = NSMakeRect(0, 0, 0, 0);
- rect.size = [videoHolderView frame].size;
-
- videoView = [[VLCVideoView alloc] initWithFrame:rect];
- [videoHolderView addSubview:videoView];
- [videoView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable];
- videoView.fillScreen = YES;
-
- playlist = [[VLCMediaList alloc] init];
- [playlist addObserver:self forKeyPath:@"media" options:NSKeyValueObservingOptionNew context:nil];
-
- player = [[VLCMediaPlayer alloc] initWithVideoView:videoView];
- mediaIndex = -1;
-
- [playlistOutline registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSURLPboardType, nil]];
- [playlistOutline setDoubleAction:@selector(changeAndPlay:)];
-}
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
-{
-}
-
-- (void)applicationWillTerminate:(NSNotification *)aNotification
-{
- [playlist removeObserver:self forKeyPath:@"media"];
-
- [player pause];
- [player setMedia:nil];
- [player release];
- [playlist release];
- [videoView release];
-}
-
-- (void)changeAndPlay:(id)sender
-{
- if ([playlistOutline selectedRow] != mediaIndex)
- {
- [self setMediaIndex:[playlistOutline selectedRow]];
- if (![player isPlaying])
- [player play];
- }
-}
-
-- (void)setMediaIndex:(int)value
-{
- if ([playlist count] <= 0)
- return;
-
- if (value < 0)
- value = 0;
- if (value > [playlist count] - 1)
- value = [playlist count] - 1;
-
- mediaIndex = value;
- [player setMedia:[playlist mediaAtIndex:mediaIndex]];
-}
-
-- (void)play:(id)sender
-{
- [self setMediaIndex:mediaIndex+1];
- if (![player isPlaying])
- {
- NSLog(@"%@ length = %@", [playlist mediaAtIndex:mediaIndex], [[playlist mediaAtIndex:mediaIndex] lengthWaitUntilDate:[NSDate dateWithTimeIntervalSinceNow:60]]);
- [player play];
- }
-}
-
-- (void)pause:(id)sender
-{
- NSLog(@"Sending pause message to media player...");
- [player pause];
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
-{
- if ([keyPath isEqualToString:@"media"] && object == playlist) {
- [playlistOutline reloadData];
- }
-}
-
-// NSTableView Implementation
-- (int)numberOfRowsInTableView:(NSTableView *)tableView
-{
- return [playlist count];
-}
-
-- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn
- row:(int)row
-{
- return [(VLCMedia *)[playlist mediaAtIndex:row].metaDictionary valueForKey:VLCMetaInformationTitle];
-}
-
-- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info
- proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
-{
- return NSDragOperationEvery; /* This is for now */
-}
-
-- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info
- row:(int)row dropOperation:(NSTableViewDropOperation)operation
-{
- int i;
- NSArray *droppedItems = [[info draggingPasteboard] propertyListForType:NSFilenamesPboardType];
-
- for (i = 0; i < [droppedItems count]; i++)
- {
- NSString * filename = [droppedItems objectAtIndex:i];
- VLCMedia * media = [VLCMedia mediaWithURL:[NSURL fileURLWithPath:filename]];
- [playlist addMedia:media];
- }
- return YES;
-}
-
-@end
+++ /dev/null
-{
- IBClasses = (
- {
- ACTIONS = {pause = id; play = id; };
- CLASS = Controller;
- LANGUAGE = ObjC;
- OUTLETS = {playlistOutline = id; videoHolderView = id; window = id; };
- SUPERCLASS = NSObject;
- },
- {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
- {CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; }
- );
- IBVersion = 1;
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IBDocumentLocation</key>
- <string>111 87 356 240 0 0 1440 878 </string>
- <key>IBEditorPositions</key>
- <dict>
- <key>29</key>
- <string>108 299 338 44 0 0 1440 878 </string>
- </dict>
- <key>IBFramework Version</key>
- <string>446.1</string>
- <key>IBOpenObjects</key>
- <array>
- <integer>29</integer>
- <integer>21</integer>
- </array>
- <key>IBSystem Version</key>
- <string>8R2218</string>
-</dict>
-</plist>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>com.yourcompany.test</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1.0</string>
- <key>NSMainNibFile</key>
- <string>MainMenu</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
-</dict>
-</plist>
+++ /dev/null
-//
-// main.m
-// test
-//
-// Created by Pierre d'Herbemont on 13/04/07.
-// Copyright __MyCompanyName__ 2007. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- return NSApplicationMain(argc, (const char **) argv);
-}
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 42;
- objects = {
-
-/* Begin PBXBuildFile section */
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 633302790BD24CDB00193D7D /* Controller.m */; };
- 63F45B790D3E144E0055CBBE /* VLCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63F45B780D3E14450055CBBE /* VLCKit.framework */; };
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
- 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 63F45B770D3E14450055CBBE /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 63F45B6A0D3E14450055CBBE /* VLCKit.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 8DC2EF5B0486A6940098B216;
- remoteInfo = VLCKit;
- };
- 63F45B7E0D3E14F30055CBBE /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 63F45B6A0D3E14450055CBBE /* VLCKit.xcodeproj */;
- proxyType = 1;
- remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
- remoteInfo = VLCKit;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
- 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
- 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
- 32CA4F630368D1EE00C91783 /* test_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = test_Prefix.pch; sourceTree = "<group>"; };
- 633302780BD24CDB00193D7D /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; };
- 633302790BD24CDB00193D7D /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = "<group>"; };
- 63F45B6A0D3E14450055CBBE /* VLCKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = VLCKit.xcodeproj; path = ../../VLCKit.xcodeproj; sourceTree = SOURCE_ROOT; };
- 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
- 8D1107320486CEB800E47090 /* test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = test.app; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8D11072E0486CEB800E47090 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 63F45B790D3E144E0055CBBE /* VLCKit.framework in Frameworks */,
- 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 080E96DDFE201D6D7F000001 /* Classes */ = {
- isa = PBXGroup;
- children = (
- 633302780BD24CDB00193D7D /* Controller.h */,
- 633302790BD24CDB00193D7D /* Controller.m */,
- );
- name = Classes;
- sourceTree = "<group>";
- };
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
- isa = PBXGroup;
- children = (
- 63F45B6A0D3E14450055CBBE /* VLCKit.xcodeproj */,
- 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
- );
- name = "Linked Frameworks";
- sourceTree = "<group>";
- };
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
- 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
- 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "<group>";
- };
- 19C28FACFE9D520D11CA2CBB /* Products */ = {
- isa = PBXGroup;
- children = (
- 8D1107320486CEB800E47090 /* test.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 29B97314FDCFA39411CA2CEA /* test */ = {
- isa = PBXGroup;
- children = (
- 080E96DDFE201D6D7F000001 /* Classes */,
- 29B97315FDCFA39411CA2CEA /* Other Sources */,
- 29B97317FDCFA39411CA2CEA /* Resources */,
- 29B97323FDCFA39411CA2CEA /* Frameworks */,
- 19C28FACFE9D520D11CA2CBB /* Products */,
- );
- name = test;
- sourceTree = "<group>";
- };
- 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32CA4F630368D1EE00C91783 /* test_Prefix.pch */,
- 29B97316FDCFA39411CA2CEA /* main.m */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 29B97317FDCFA39411CA2CEA /* Resources */ = {
- isa = PBXGroup;
- children = (
- 8D1107310486CEB800E47090 /* Info.plist */,
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
- 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 63F45B6B0D3E14450055CBBE /* Products */ = {
- isa = PBXGroup;
- children = (
- 63F45B780D3E14450055CBBE /* VLCKit.framework */,
- );
- name = Products;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 8D1107260486CEB800E47090 /* test */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "test" */;
- buildPhases = (
- 8D1107290486CEB800E47090 /* Resources */,
- 8D11072C0486CEB800E47090 /* Sources */,
- 8D11072E0486CEB800E47090 /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 63F45B7F0D3E14F30055CBBE /* PBXTargetDependency */,
- );
- name = test;
- productInstallPath = "$(HOME)/Applications";
- productName = test;
- productReference = 8D1107320486CEB800E47090 /* test.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 29B97313FDCFA39411CA2CEA /* Project object */ = {
- isa = PBXProject;
- buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "test" */;
- compatibilityVersion = "Xcode 2.4";
- hasScannedForEncodings = 1;
- mainGroup = 29B97314FDCFA39411CA2CEA /* test */;
- projectDirPath = "";
- projectReferences = (
- {
- ProductGroup = 63F45B6B0D3E14450055CBBE /* Products */;
- ProjectRef = 63F45B6A0D3E14450055CBBE /* VLCKit.xcodeproj */;
- },
- );
- projectRoot = "";
- targets = (
- 8D1107260486CEB800E47090 /* test */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXReferenceProxy section */
- 63F45B780D3E14450055CBBE /* VLCKit.framework */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.framework;
- path = VLCKit.framework;
- remoteRef = 63F45B770D3E14450055CBBE /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
-/* End PBXReferenceProxy section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8D1107290486CEB800E47090 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */,
- 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8D11072C0486CEB800E47090 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8D11072D0486CEB800E47090 /* main.m in Sources */,
- 6333027B0BD24CDB00193D7D /* Controller.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 63F45B7F0D3E14F30055CBBE /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- name = VLCKit;
- targetProxy = 63F45B7E0D3E14F30055CBBE /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 089C165DFE840E0CC02AAC07 /* English */,
- );
- name = InfoPlist.strings;
- sourceTree = "<group>";
- };
- 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
- isa = PBXVariantGroup;
- children = (
- 29B97319FDCFA39411CA2CEA /* English */,
- );
- name = MainMenu.nib;
- sourceTree = "<group>";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- C01FCF4B08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = YES;
- GCC_MODEL_TUNING = G5;
- GCC_OPTIMIZATION_LEVEL = 0;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- LD_FLAGS_LIBINTL = "-dylib_file @loader_path/../lib/vlc_libintl.dylib:$(VLC_FRAMEWORK)/lib/vlc_libintl.dylib";
- LD_FLAGS_LIBVLC = "-dylib_file @loader_path/lib/libvlc.dylib:$(VLC_FRAMEWORK)/lib/libvlc.dylib -dylib_file @loader_path/../lib/libvlc.dylib:$(VLC_FRAMEWORK)/lib/libvlc.dylib";
- LD_FLAGS_LIBVLC_CONTROL = "-dylib_file @loader_path/lib/libvlc-control.dylib:$(VLC_FRAMEWORK)/lib/libvlc-control.dylib";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = test;
- SYMROOT = ../../build;
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- ZERO_LINK = YES;
- };
- name = Debug;
- };
- C01FCF4C08A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
- GCC_MODEL_TUNING = G5;
- INFOPLIST_FILE = Info.plist;
- INSTALL_PATH = "$(HOME)/Applications";
- LD_FLAGS_LIBINTL = "-dylib_file @loader_path/../lib/vlc_libintl.dylib:$(VLC_FRAMEWORK)/lib/vlc_libintl.dylib";
- LD_FLAGS_LIBVLC = "-dylib_file @loader_path/lib/libvlc.dylib:$(VLC_FRAMEWORK)/lib/libvlc.dylib -dylib_file @loader_path/../lib/libvlc.dylib:$(VLC_FRAMEWORK)/lib/libvlc.dylib";
- LD_FLAGS_LIBVLC_CONTROL = "-dylib_file @loader_path/lib/libvlc-control.dylib:$(VLC_FRAMEWORK)/lib/libvlc-control.dylib";
- OTHER_LDFLAGS = (
- "$(LD_FLAGS_LIBINTL)",
- "$(LD_FLAGS_LIBVLC)",
- "$(LD_FLAGS_LIBVLC_CONTROL)",
- );
- PRODUCT_NAME = test;
- SYMROOT = ../../build;
- VLC_FRAMEWORK = "$(TARGET_BUILD_DIR)/VLC.framework";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- C01FCF4F08A954540054247B /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Debug;
- };
- C01FCF5008A954540054247B /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(NATIVE_ARCH)";
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "test" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4B08A954540054247B /* Debug */,
- C01FCF4C08A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- C01FCF4E08A954540054247B /* Build configuration list for PBXProject "test" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- C01FCF4F08A954540054247B /* Debug */,
- C01FCF5008A954540054247B /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
-}
+++ /dev/null
-//
-// Prefix header for all source files of the 'test' target in the 'test' project
-//
-
-#ifdef __OBJC__
- #import <Cocoa/Cocoa.h>
-#endif
+++ /dev/null
-/*****************************************************************************
- * VLCEventManager.h: VLCKit.framework VLCEventManager header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <pthread.h>
-
-/**
- * The VLCEventManager class provides a safe way for inter-thread communications.
- */
-@interface VLCEventManager : NSObject
-{
- NSMutableArray *messageQueue; //< Holds a queue of messages.
- NSMutableArray *pendingMessagesOnMainThread; //< Holds the message that are being posted on main thread.
- NSLock *pendingMessagesLock;
- pthread_t dispatcherThread; //< Thread responsible for dispatching messages.
- pthread_mutex_t queueLock; //< Queue lock.
- pthread_cond_t signalData; //< Data lock.
-}
-
-/* Factories */
-/**
- * Returns the shared VLCEventManager. There should only be one instance of this class.
- * \return Shared event manager.
- */
-+ (id)sharedManager;
-
-/* Operations */
-/**
- * Sends a message to the target's delegate on the main thread.
- * \discussion The main thread is the one in which the main run loop is run, which usually
- * means the one in which the NSApplication object receives events. The method is performed
- * when the main thread runs the run loop in one of the common run loop modes (as specified
- * in the CFRunLoop documentation).
- *
- * The receiver is retained until the call is finished.
- * \param aTarget The target object who's delegate should receive the specified message.
- * \param aSelector A selector that identifies the method to invoke. The method should not
- * have a significant return value and should take a single argument of type NSNotification,
- * or no arguments.
- *
- * See “Selectors” for a description of the SEL type.
- * \param aNotificiationName The name of the notification that should be sent to the
- * distributed notification center.
- */
-- (void)callOnMainThreadDelegateOfObject:(id)aTarget
- withDelegateMethod:(SEL)aSelector
- withNotificationName:(NSString *)aNotificationName;
-
-/**
- * Sends a message to the target on the main thread.
- * \discussion The main thread is the one in which the main run loop is run, which usually
- * means the one in which the NSApplication object receives events. The method is performed
- * when the main thread runs the run loop in one of the common run loop modes (as specified
- * in the CFRunLoop documentation).
- *
- * The receiver and arg are retained until the call is finished.
- * \param aTarget The target object who should receive the specified message.
- * \param aSelector A selector that identifies the method to invoke. The method should not
- * have a significant return value and should take a single argument of type id,
- * or no arguments.
- *
- * See “Selectors” for a description of the SEL type.
- * \param arg The argument to pass in the message. Pass nil if the method does not take an
- * argument.
- * distributed notification center.
- */
-- (void)callOnMainThreadObject:(id)aTarget
- withMethod:(SEL)aSelector
- withArgumentAsObject:(id)arg;
-
-- (void)cancelCallToObject:(id)target;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCLibVLCbridging.h: VLCKit.framework VLCLibVLCBridging (Private) header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCLibrary.h"
-#if !TARGET_OS_IPHONE
-#import "VLCStreamOutput.h"
-#endif
-#import "VLCMediaPlayer.h"
-
-/**
- * Bridges functionality between libvlc and VLCMediaList implementation.
- */
-@interface VLCMediaList (LibVLCBridging)
-/* Factories */
-/**
- * Manufactures new object wrapped around specified media list.
- * \param p_new_mlist LibVLC media list pointer.
- * \return Newly create media list instance using specified media list
- * pointer.
- */
-+ (id)mediaListWithLibVLCMediaList:(void *)p_new_mlist;
-
-/* Initializers */
-/**
- * Initializes new object wrapped around specified media list.
- * \param p_new_mlist LibVLC media list pointer.
- * \return Newly create media list instance using specified media list
- * pointer.
- */
-- (id)initWithLibVLCMediaList:(void *)p_new_mlist;
-
-/* Properties */
-@property (readonly) void * libVLCMediaList; //< LibVLC media list pointer.
-@end
-
-/**
- * Bridges functionality between libvlc and VLCMedia implementation.
- */
-@interface VLCMedia (LibVLCBridging)
-/* Factories */
-/**
- * Manufactures new object wrapped around specified media descriptor.
- * \param md LibVLC media descriptor pointer.
- * \return Newly created media instance using specified descriptor.
- */
-+ (id)mediaWithLibVLCMediaDescriptor:(void *)md;
-
-/* Initializers */
-/**
- * Initializes new object wrapped around specified media descriptor.
- * \param md LibVLC media descriptor pointer.
- * \return Newly created media instance using specified descriptor.
- */
-- (id)initWithLibVLCMediaDescriptor:(void *)md;
-
-+ (id)mediaWithMedia:(VLCMedia *)media andLibVLCOptions:(NSDictionary *)options;
-
-/**
- * Returns the receiver's internal media descriptor pointer.
- * \return The receiver's internal media descriptor pointer.
- */
-@property (readonly) void * libVLCMediaDescriptor;
-@end
-
-/**
- * Bridges functionality between VLCMedia and VLCMediaPlayer
- */
-@interface VLCMediaPlayer (LibVLCBridging)
-
-/* Properties */
-@property (readonly) void * libVLCMediaPlayer; //< LibVLC media list pointer.
-@end
-
-/**
- * Bridges functionality between VLCMediaPlayer and LibVLC core
- */
-@interface VLCMedia (VLCMediaPlayerBridging)
-/**
- * Set's the length of the media object. This value becomes available once the
- * media object is being played.
- * \param value
- */
-- (void)setLength:(VLCTime *)value;
-@end
-
-/**
- * Bridges functionality between VLCLibrary and LibVLC core.
- */
-@interface VLCLibrary (VLCLibVLCBridging)
-/**
- * Shared singleton instance of libvlc library instance.
- * \return libvlc pointer of library instance.
- */
-+ (void *)sharedInstance;
-
-/**
- * Instance of libvlc library instance.
- * \return libvlc pointer of library instance.
- */
-@property (readonly) void * instance;
-@end
-
-/**
- * Bridges functionality between VLCLibrary and VLCAudio.
- */
-@interface VLCLibrary (VLCAudioBridging)
-/**
- * Called by VLCAudio, each library has a singleton VLCaudio instance. VLCAudio
- * calls this function to let the VLCLibrary instance know how to get in touch
- * with the VLCAudio instance. TODO: Each media player instance should have it's
- * own audio instance...not each library instance.
- */
-- (void)setAudio:(VLCAudio *)value;
-@end
-
-/**
- * Bridges functionality between VLCAudio and VLCLibrary.
- */
-@interface VLCAudio (VLCAudioBridging)
-/* Initializers */
-/**
- * Initializes a new object using the specified mediaPlayer instance.
- * \return Newly created audio object using specified VLCMediaPlayer instance.
- */
-- (id)initWithMediaPlayer:(VLCMediaPlayer *)mediaPlayer;
-@end
-
-/**
- * TODO: Documentation
- */
-#if !TARGET_OS_IPHONE
-@interface VLCStreamOutput (LibVLCBridge)
-- (NSString *)representedLibVLCOptions;
-@end
-#endif
+++ /dev/null
-/*****************************************************************************
- * VLCVideoCommon.h: VLCKit.framework VLCVideoCommon header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <QuartzCore/QuartzCore.h>
-
-/**
- * TODO: Documentation
- */
-@interface VLCVideoLayoutManager : NSObject
-{
- CGSize originalVideoSize;
- BOOL fillScreenEntirely;
-}
-
-/* Factories */
-+ (id)layoutManager;
-
-/* Properties */
-@property BOOL fillScreenEntirely;
-@property CGSize originalVideoSize;
-@end
+++ /dev/null
-/*
- * MobileVLCKit.h
- * VLCKit
- *
- * Created by Pierre d'Herbemont on 6/28/10.
- * Copyright 2010 __MyCompanyName__. All rights reserved.
- *
- */
-
-#import <MobileVLCKit/VLCLibrary.h>
-#import <MobileVLCKit/VLCMedia.h>
-#import <MobileVLCKit/VLCMediaList.h>
-#import <MobileVLCKit/VLCMediaPlayer.h>
-#import <MobileVLCKit/VLCMediaDiscoverer.h>
-#import <MobileVLCKit/VLCTime.h>
-#import <MobileVLCKit/VLCAudio.h>
-
-@class VLCMedia;
-@class VLCMediaLibrary;
-@class VLCMediaList;
-@class VLCTime;
-@class VLCVideoView;
-@class VLCAudio;
+++ /dev/null
-/*****************************************************************************
- * VLCAudio.h: VLCKit.framework VLCAudio header
- *****************************************************************************
- * Copyright (C) 2007 Faustino E. Osuna
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Faustino E. Osuna <enrique.osuna # gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-
-/* Notification Messages */
-/**
- * Standard notification messages that are emitted by VLCAudio object.
- */
-extern NSString * VLCMediaPlayerVolumeChanged;
-
-@class VLCMediaPlayer;
-
-/**
- * TODO: Documentation VLCAudio
- */
-@interface VLCAudio : NSObject
-{
- void *instance;
-}
-
-/* Properties */
-- (void)setMute:(BOOL)value;
-
-@property (setter=setMute:) BOOL isMuted;
-@property (assign) NSUInteger volume;
-
-- (void)volumeDown;
-- (void)volumeUp;
-@end
+++ /dev/null
-//
-// VLCExtension.h
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 1/26/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-
-@interface VLCExtension : NSObject {
- struct extension_t *_instance;
-}
-
-- (id)initWithInstance:(struct extension_t *)instance; // FIXME: Should be internal
-- (struct extension_t *)instance; // FIXME: Should be internal
-
-- (NSString *)name;
-- (NSString *)title;
-
-@end
+++ /dev/null
-//
-// VLCExtensionsManager.h
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 1/26/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@class VLCExtension;
-@class VLCMediaPlayer;
-
-@interface VLCExtensionsManager : NSObject {
- void *instance;
- NSMutableArray *_extensions;
- VLCMediaPlayer *_player;
- void *_previousInput;
-}
-+ (VLCExtensionsManager *)sharedManager;
-- (NSArray *)extensions;
-- (void)runExtension:(VLCExtension *)extension;
-
-@property (readwrite, retain) VLCMediaPlayer *mediaPlayer;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCKit.h: VLCKit.framework main header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-/**
- * TODO: Framework Documentation
- */
-
-#import <VLCKit/VLCLibrary.h>
-#import <VLCKit/VLCMedia.h>
-#import <VLCKit/VLCMediaLibrary.h>
-#import <VLCKit/VLCMediaList.h>
-#import <VLCKit/VLCMediaListPlayer.h>
-#import <VLCKit/VLCMediaDiscoverer.h>
-#import <VLCKit/VLCMediaPlayer.h>
-#import <VLCKit/VLCTime.h>
-#import <VLCKit/VLCVideoView.h>
-#import <VLCKit/VLCVideoLayer.h>
-#import <VLCKit/VLCStreamSession.h>
-#import <VLCKit/VLCStreamOutput.h>
-
-@class VLCMedia;
-@class VLCMediaLibrary;
-@class VLCMediaList;
-@class VLCTime;
-@class VLCVideoView;
+++ /dev/null
-/*****************************************************************************
- * VLCLibrary.h: VLCKit.framework VLCLibrary header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-#import "VLCAudio.h"
-#import "VLCMediaList.h"
-#import "VLCMedia.h"
-
-@class VLCAudio;
-
-/**
- * The VLCLibrary is the base library of the VLCKit.framework. This object provides a shared instance that exposes the
- * internal functionalities of libvlc and libvlc-control. The VLCLibrary object is instantiated automatically when
- * VLCKit.framework is loaded into memory. Also, it is automatically destroyed when the VLCKit.framework is unloaded
- * from memory.
- *
- * Currently, the framework does not support multiple instances of VLCLibrary. Furthermore, you cannot destroy any
- * instiantiation of VLCLibrary, as previously noted, this is done automatically by the dynamic link loader.
- */
-@interface VLCLibrary : NSObject
-{
- void * instance;
-}
-
-/* Factories */
-/**
- * Returns the library's shared instance.
- * \return The library's shared instance.
- */
-+ (VLCLibrary *)sharedLibrary;
-
-/**
- * Returns the library's version
- * \return The library version example "0.9.0-git Grishenko".
- */
-
-@property (readonly) NSString * version;
-
-/**
- * Returns the library's changeset
- * \return The library version example "adfee99".
- */
-
-@property (readonly) NSString * changeset;
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMedia.h: VLCKit.framework VLCMedia header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-#import "VLCMediaList.h"
-#import "VLCTime.h"
-
-/* Meta Dictionary Keys */
-/**
- * Standard dictionary keys for retreiving meta data.
- */
-extern NSString * VLCMetaInformationTitle; /* NSString */
-extern NSString * VLCMetaInformationArtist; /* NSString */
-extern NSString * VLCMetaInformationGenre; /* NSString */
-extern NSString * VLCMetaInformationCopyright; /* NSString */
-extern NSString * VLCMetaInformationAlbum; /* NSString */
-extern NSString * VLCMetaInformationTrackNumber; /* NSString */
-extern NSString * VLCMetaInformationDescription; /* NSString */
-extern NSString * VLCMetaInformationRating; /* NSString */
-extern NSString * VLCMetaInformationDate; /* NSString */
-extern NSString * VLCMetaInformationSetting; /* NSString */
-extern NSString * VLCMetaInformationURL; /* NSString */
-extern NSString * VLCMetaInformationLanguage; /* NSString */
-extern NSString * VLCMetaInformationNowPlaying; /* NSString */
-extern NSString * VLCMetaInformationPublisher; /* NSString */
-extern NSString * VLCMetaInformationEncodedBy; /* NSString */
-extern NSString * VLCMetaInformationArtworkURL; /* NSString */
-extern NSString * VLCMetaInformationArtwork; /* NSImage */
-extern NSString * VLCMetaInformationTrackID; /* NSString */
-
-/* Notification Messages */
-/**
- * Available notification messages.
- */
-extern NSString * VLCMediaMetaChanged; //< Notification message for when the media's meta data has changed
-
-// Forward declarations, supresses compiler error messages
-@class VLCMediaList;
-@class VLCMedia;
-
-typedef enum VLCMediaState
-{
- VLCMediaStateNothingSpecial, //< Nothing
- VLCMediaStateBuffering, //< Stream is buffering
- VLCMediaStatePlaying, //< Stream is playing
- VLCMediaStateError, //< Can't be played because an error occurred
-} VLCMediaState;
-
-/**
- * Informal protocol declaration for VLCMedia delegates. Allows data changes to be
- * trapped.
- */
-@protocol VLCMediaDelegate
-// TODO: SubItemAdded/SubItemRemoved implementation. Not sure if we really want to implement this.
-///**
-// * Delegate method called whenever a sub item has been added to the specified VLCMedia.
-// * \param aMedia The media resource that has received the new sub item.
-// * \param childMedia The new sub item added.
-// * \param index Location of the new subitem in the aMedia's sublist.
-// */
-// - (void)media:(VLCMedia *)media addedSubItem:(VLCMedia *)childMedia atIndex:(int)index;
-
-///**
-// * Delegate method called whenever a sub item has been removed from the specified VLCMedia.
-// * \param aMedia The media resource that has had a sub item removed from.
-// * \param childMedia The sub item removed.
-// * \param index The previous location of the recently removed sub item.
-// */
-// - (void)media:(VLCMedia *)aMedia removedSubItem:(VLCMedia *)childMedia atIndex:(int)index;
-
-/**
- * Delegate method called whenever the meta has changed for the receiver.
- * \param aMedia The media resource whose meta data has been changed.
- * \param oldValue The old meta data value.
- * \param key The key of the value that was changed.
- */
-- (void)media:(VLCMedia *)aMedia metaValueChangedFrom:(id)oldValue forKey:(NSString *)key;
-
-/**
- * Delegate method called whenever the media was parsed.
- * \param aMedia The media resource whose meta data has been changed.
- */
-
-- (void)mediaDidFinishParsing:(VLCMedia *)aMedia;
-@end
-
-/**
- * Defines files and streams as a managed object. Each media object can be
- * administered seperately. VLCMediaPlayer or VLCMediaList must be used
- * to execute the appropriate playback functions.
- * \see VLCMediaPlayer
- * \see VLCMediaList
- */
-@interface VLCMedia : NSObject
-{
- void * p_md; //< Internal media descriptor instance
- NSURL * url; //< URL (MRL) for this media resource
- VLCMediaList * subitems; //< Sub list of items
- VLCTime * length; //< Cached duration of the media
- NSMutableDictionary * metaDictionary; //< Meta data storage
- id delegate; //< Delegate object
- BOOL isArtFetched; //< Value used to determine of the artwork has been parsed
- BOOL areOthersMetaFetched; //< Value used to determine of the other meta has been parsed
- BOOL isArtURLFetched; //< Value used to determine of the other meta has been preparsed
- VLCMediaState state; //< Current state of the media
- BOOL isParsed;
-}
-
-/* Factories */
-/**
- * Manufactures a new VLCMedia object using the URL specified.
- * \param anURL URL to media to be accessed.
- * \return A new VLCMedia object, only if there were no errors. This object will be automatically released.
- * \see initWithMediaURL
- */
-+ (id)mediaWithURL:(NSURL *)anURL;
-
-/**
- * Manufactures a new VLCMedia object using the path specified.
- * \param aPath Path to the media to be accessed.
- * \return A new VLCMedia object, only if there were no errors. This object will be automatically released.
- * \see initWithPath
- */
-+ (id)mediaWithPath:(NSString *)aPath;
-
-/**
- * TODO
- * \param aName TODO
- * \return a new VLCMedia object, only if there were no errors. This object
- * will be automatically released.
- * \see initAsNodeWithName
- */
-+ (id)mediaAsNodeWithName:(NSString *)aName;
-
-/* Initializers */
-/**
- * Initializes a new VLCMedia object to use the specified URL.
- * \param aPath Path to media to be accessed.
- * \return A new VLCMedia object, only if there were no errors.
- */
-- (id)initWithURL:(NSURL *)anURL;
-
-/**
- * Initializes a new VLCMedia object to use the specified path.
- * \param aPath Path to media to be accessed.
- * \return A new VLCMedia object, only if there were no errors.
- */
-- (id)initWithPath:(NSString *)aPath;
-
-/**
- * TODO
- * \param aName TODO
- * \return A new VLCMedia object, only if there were no errors.
- */
-- (id)initAsNodeWithName:(NSString *)aName;
-
-/**
- * Returns an NSComparisonResult value that indicates the lexical ordering of
- * the receiver and a given meda.
- * \param media The media with which to compare with the receiver.
- * \return NSOrderedAscending if the URL of the receiver precedes media in
- * lexical ordering, NSOrderedSame if the URL of the receiver and media are
- * equivalent in lexical value, and NSOrderedDescending if the URL of the
- * receiver follows media. If media is nil, returns NSOrderedDescending.
- */
-- (NSComparisonResult)compare:(VLCMedia *)media;
-
-/* Properties */
-/**
- * Receiver's delegate.
- */
-@property (assign) id delegate;
-
-/**
- * A VLCTime object describing the length of the media resource, only if it is
- * available. Use lengthWaitUntilDate: to wait for a specified length of time.
- * \see lengthWaitUntilDate
- */
-@property (retain, readonly) VLCTime * length;
-
-/**
- * Returns a VLCTime object describing the length of the media resource,
- * however, this is a blocking operation and will wait until the preparsing is
- * completed before returning anything.
- * \param aDate Time for operation to wait until, if there are no results
- * before specified date then nil is returned.
- * \return The length of the media resource, nil if it couldn't wait for it.
- */
-- (VLCTime *)lengthWaitUntilDate:(NSDate *)aDate;
-
-/**
- * Determines if the media has already been preparsed.
- */
-@property (readonly) BOOL isParsed;
-
-/**
- * The URL for the receiver's media resource.
- */
-@property (retain, readonly) NSURL * url;
-
-/**
- * The receiver's sub list.
- */
-@property (retain, readonly) VLCMediaList * subitems;
-
-/**
- * The receiver's meta data as a NSDictionary object.
- */
-@property (retain, readonly) NSDictionary * metaDictionary;
-
-/**
- * The receiver's state, such as Playing, Error, NothingSpecial, Buffering.
- */
-@property (readonly) VLCMediaState state;
-
-/**
- * Tracks information NSDictionary Possible Keys
- */
-
-/**
- * \returns a NSNumber
- */
-extern NSString *VLCMediaTracksInformationCodec;
-
-/**
- * \returns a NSNumber
- */
-extern NSString *VLCMediaTracksInformationId;
-/**
- * \returns a NSString
- * \see VLCMediaTracksInformationTypeAudio
- * \see VLCMediaTracksInformationTypeVideo
- * \see VLCMediaTracksInformationTypeText
- * \see VLCMediaTracksInformationTypeUnknown
- */
-extern NSString *VLCMediaTracksInformationType;
-
-/**
- * \returns a NSNumber
- */
-extern NSString *VLCMediaTracksInformationCodecProfile;
-/**
- * \returns a NSNumber
- */
-extern NSString *VLCMediaTracksInformationCodecLevel;
-
-/**
- * \returns the audio channels number as NSNumber
- */
-extern NSString *VLCMediaTracksInformationAudioChannelsNumber;
-/**
- * \returns the audio rate as NSNumber
- */
-extern NSString *VLCMediaTracksInformationAudioRate;
-
-/**
- * \returns the height as NSNumber
- */
-extern NSString *VLCMediaTracksInformationVideoHeight;
-/**
- * \returns the width as NSNumber
- */
-extern NSString *VLCMediaTracksInformationVideoWidth;
-
-/**
- * Tracks information NSDictionary values for
- * VLCMediaTracksInformationType
- */
-extern NSString *VLCMediaTracksInformationTypeAudio;
-extern NSString *VLCMediaTracksInformationTypeVideo;
-extern NSString *VLCMediaTracksInformationTypeText;
-extern NSString *VLCMediaTracksInformationTypeUnknown;
-
-
-/**
- * Returns the tracks information.
- *
- * This is an array of NSDictionary representing each track.
- * It can contains the following keys:
- *
- * \see VLCMediaTracksInformationCodec
- * \see VLCMediaTracksInformationId
- * \see VLCMediaTracksInformationType
- *
- * \see VLCMediaTracksInformationCodecProfile
- * \see VLCMediaTracksInformationCodecLevel
- *
- * \see VLCMediaTracksInformationAudioChannelsNumber
- * \see VLCMediaTracksInformationAudioRate
- *
- * \see VLCMediaTracksInformationVideoHeight
- * \see VLCMediaTracksInformationVideoWidth
- */
-
-- (NSArray *)tracksInformation;
-
-/**
- * Start asynchronously to parse the media.
- * This will attempt to fetch the meta data and tracks information.
- *
- * This is automatically done when an accessor requiring parsing
- * is called.
- *
- * \see -[VLCMediaDelegate mediaDidFinishParsing:]
- */
-- (void)parse;
-
-/**
- * Add options to the media, that will be used to determine how
- * VLCMediaPlayer will read the media. This allow to use VLC advanced
- * reading/streaming options in a per-media basis
- *
- * The options are detailed in vlc --long-help, for instance "--sout-all"
- * And on the web: http://wiki.videolan.org/VLC_command-line_help
-*/
-- (void) addOptions:(NSDictionary*) options;
-
-/**
- * Getter for statistics information
- * Returns a NSDictionary with NSNumbers for values.
- *
- */
-- (NSDictionary*) stats;
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaDiscoverer.h: VLCKit.framework VLCMediaDiscoverer header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-#import "VLCMediaList.h"
-
-@class VLCMediaList;
-
-/**
- * TODO: Documentation VLCMediaDiscoverer
- */
-@interface VLCMediaDiscoverer : NSObject
-{
- NSString * localizedName; //< TODO: Documentation VLCMediaDiscoverer.localizedName
- VLCMediaList * discoveredMedia; //< TODO: Documentation VLCMediaDiscoverer.discoveredMedia
- void * mdis; //< TODO: Documentation VLCMediaDiscoverer.mdis
- BOOL running; //< TODO: Documentation VLCMediaDiscoverer.running
-}
-
-/**
- * Maintains a list of available media discoverers. This list is populated as new media
- * discoverers are created.
- * \return A list of available media discoverers.
- */
-+ (NSArray *)availableMediaDiscoverer;
-
-/* Initializers */
-/**
- * Initializes new object with specified name.
- * \param aSerchName Name of the service for this VLCMediaDiscoverer object.
- * \returns Newly created media discoverer.
- */
-- (id)initWithName:(NSString *)aServiceName;
-
-/**
- * TODO: Documentation VLCMediaDiscoverer.discoveredMedia
- */
-@property (readonly) VLCMediaList * discoveredMedia;
-
-/**
- * TODO: Documentation VLCMediaDiscoverer.localizedName
- */
-@property (readonly) NSString * localizedName;
-
-/**
- * TODO: Documentation VLCMediaDiscoverer.isRunning
- */
-@property (readonly) BOOL isRunning;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaLibrary.h: VLCKit.framework VLCMediaDiscoverer header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCMediaList.h"
-
-@class VLCMediaList;
-
-/**
- * TODO: Documentation
- */
-@interface VLCMediaLibrary : NSObject
-{
- void * mlib;
- VLCMediaList * allMedia;
-}
-/* Factories */
-+ (id)sharedMediaLibrary;
-
-/* Properties */
-@property (readonly) VLCMediaList * allMedia;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaList.h: VLCKit.framework VLCMediaList header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-#import "VLCMedia.h"
-
-/* Notification Messages */
-extern NSString * VLCMediaListItemAdded;
-extern NSString * VLCMediaListItemDeleted;
-
-@class VLCMedia;
-@class VLCMediaList;
-
-/**
- * TODO: Documentation VLCMediaListDelegate
- */
-@protocol VLCMediaListDelegate
-/**
- * TODO: Documentation - [VLCMediaListDelegate mediaList:mediaAdded:atIndex:]
- */
-- (void)mediaList:(VLCMediaList *)aMediaList mediaAdded:(VLCMedia *)media atIndex:(NSInteger)index;
-
-/**
- * TODO: Documentation - [VLCMediaListDelegate mediaList:mediaRemovedAtIndex:]
- */
-- (void)mediaList:(VLCMediaList *)aMediaList mediaRemovedAtIndex:(NSInteger)index;
-@end
-
-/**
- * TODO: Documentation VLCMediaList
- */
-@interface VLCMediaList : NSObject
-{
- void * p_mlist; //< Internal instance of media list
- id <VLCMediaListDelegate,NSObject> delegate; //< Delegate object
- /* We need that private copy because of Cocoa Bindings, that need to be working on first thread */
- NSMutableArray * cachedMedia; //< Private copy of media objects.
-}
-
-/* Operations */
-/**
- * TODO: Documentation - [VLCMediaList lock]
- */
-- (void)lock;
-
-/**
- * TODO: Documentation - [VLCMediaList unlock]
- */
-- (void)unlock;
-
-/**
- * TODO: Documentation - [VLCMediaList addMedia:]
- */
-- (NSInteger)addMedia:(VLCMedia *)media;
-
-/**
- * TODO: Documentation - [VLCMediaList insertMedia:atIndex:]
- */
-- (void)insertMedia:(VLCMedia *)media atIndex:(NSInteger)index;
-
-/**
- * TODO: Documentation - [VLCMediaList removeMediaAtIndex:]
- */
-- (void)removeMediaAtIndex:(NSInteger)index;
-
-/**
- * TODO: Documentation - [VLCMediaList mediaAtIndex:]
- */
-- (VLCMedia *)mediaAtIndex:(NSInteger)index;
-
-/**
- * TODO: Documentation - [VLCMediaList indexOfMedia:]
- */
-- (NSInteger)indexOfMedia:(VLCMedia *)media;
-
-/* Properties */
-/**
- * TODO: Documentation VLCMediaList.count
- */
-@property (readonly) NSInteger count;
-
-/**
- * TODO: Documentation VLCMediaList.delegate
- */
-@property (assign) id delegate;
-
-/**
- * TODO: Documentation VLCMediaList.isReadOnly
- */
-@property (readonly) BOOL isReadOnly;
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaListPlayer.h: VLCKit.framework VLCMediaListPlayer implementation
- *****************************************************************************
- * Copyright (C) 2009 Pierre d'Herbemont
- * Partial Copyright (C) 2009 Felix Paul Kühne
- * Copyright (C) 2009 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- * Felix Paul Kühne <fkuehne # videolan.org
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-@class VLCMedia, VLCMediaPlayer, VLCMediaList;
-
-/**
- * VLCRepeatMode
- * (don't repeat anything, repeat one, repeat all)
- */
-enum VLCRepeatMode {
- VLCDoNotRepeat,
- VLCRepeatCurrentItem,
- VLCRepeatAllItems
-};
-typedef NSInteger VLCRepeatMode;
-
-@interface VLCMediaListPlayer : NSObject {
- void *instance;
- VLCMedia *_rootMedia;
- VLCMediaPlayer *_mediaPlayer;
- VLCMediaList *_mediaList;
- VLCRepeatMode _repeatMode;
-}
-
-@property (readwrite, retain) VLCMediaList *mediaList;
-
-/**
- * rootMedia - Use this method to play a media and its subitems.
- * This will erase mediaList.
- * Setting mediaList will erase rootMedia.
- */
-@property (readwrite, retain) VLCMedia *rootMedia;
-@property (readonly, retain) VLCMediaPlayer *mediaPlayer;
-
-
-/**
- * Basic play and stop are here. For other method, use the mediaPlayer.
- * This may change.
- */
-- (void)play;
-- (void)stop;
-
-/**
- * Playmode selection (don't repeat anything, repeat one, repeat all)
- * See VLCRepeatMode.
- */
-
-@property (readwrite) VLCRepeatMode repeatMode;
-
-/**
- * media must be in the current media list.
- */
-- (void)playMedia:(VLCMedia *)media;
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaPlayer.h: VLCKit.framework VLCMediaPlayer header
- *****************************************************************************
- * Copyright (C) 2007-2009 Pierre d'Herbemont
- * Copyright (C) 2007-2009 VLC authors and VideoLAN
- * Partial Copyright (C) 2009 Felix Paul Kühne
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- * Felix Paul Kühne <fkuehne # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-#if TARGET_OS_IPHONE
-# import <CoreGraphics/CoreGraphics.h>
-#endif
-#import "VLCMedia.h"
-#import "VLCTime.h"
-#import "VLCAudio.h"
-
-#if !TARGET_OS_IPHONE
-@class VLCVideoView;
-@class VLCVideoLayer;
-#endif
-
-/* Notification Messages */
-extern NSString * VLCMediaPlayerTimeChanged;
-extern NSString * VLCMediaPlayerStateChanged;
-
-/**
- * VLCMediaPlayerState describes the state of the media player.
- */
-typedef enum VLCMediaPlayerState
-{
- VLCMediaPlayerStateStopped, //< Player has stopped
- VLCMediaPlayerStateOpening, //< Stream is opening
- VLCMediaPlayerStateBuffering, //< Stream is buffering
- VLCMediaPlayerStateEnded, //< Stream has ended
- VLCMediaPlayerStateError, //< Player has generated an error
- VLCMediaPlayerStatePlaying, //< Stream is playing
- VLCMediaPlayerStatePaused //< Stream is paused
-} VLCMediaPlayerState;
-
-/**
- * Returns the name of the player state as a string.
- * \param state The player state.
- * \return A string containing the name of state. If state is not a valid state, returns nil.
- */
-extern NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state);
-
-/**
- * Formal protocol declaration for playback delegates. Allows playback messages
- * to be trapped by delegated objects.
- */
-@protocol VLCMediaPlayerDelegate
-/**
- * Sent by the default notification center whenever the player's time has changed.
- * \details Discussion The value of aNotification is always an VLCMediaPlayerTimeChanged notification. You can retrieve
- * the VLCMediaPlayer object in question by sending object to aNotification.
- */
-- (void)mediaPlayerTimeChanged:(NSNotification *)aNotification;
-
-/**
- * Sent by the default notification center whenever the player's state has changed.
- * \details Discussion The value of aNotification is always an VLCMediaPlayerStateChanged notification. You can retrieve
- * the VLCMediaPlayer object in question by sending object to aNotification.
- */
-- (void)mediaPlayerStateChanged:(NSNotification *)aNotification;
-@end
-
-
-// TODO: Should we use medialist_player or our own flavor of media player?
-@interface VLCMediaPlayer : NSObject
-{
- id delegate; //< Object delegate
- void * instance; // Internal
- VLCMedia * media; //< Current media being played
- VLCTime * cachedTime; //< Cached time of the media being played
- VLCTime * cachedRemainingTime; //< Cached remaining time of the media being played
- VLCMediaPlayerState cachedState; //< Cached state of the media being played
- float position; //< The position of the media being played
- id drawable; //< The drawable associated to this media player
- VLCAudio *audio;
-}
-
-#if !TARGET_OS_IPHONE
-/* Initializers */
-- (id)initWithVideoView:(VLCVideoView *)aVideoView;
-- (id)initWithVideoLayer:(VLCVideoLayer *)aVideoLayer;
-#endif
-
-/* Properties */
-- (void)setDelegate:(id)value;
-- (id)delegate;
-
-/* Video View Options */
-// TODO: Should be it's own object?
-
-#if !TARGET_OS_IPHONE
-- (void)setVideoView:(VLCVideoView *)aVideoView;
-- (void)setVideoLayer:(VLCVideoLayer *)aVideoLayer;
-#endif
-
-@property (retain) id drawable; /* The videoView or videoLayer */
-
-- (void)setVideoAspectRatio:(char *)value;
-- (char *)videoAspectRatio;
-
-- (void)setVideoCropGeometry:(char *)value;
-- (char *)videoCropGeometry;
-
-/**
- * Take a snapshot of the current video.
- *
- * If width AND height is 0, original size is used.
- * If width OR height is 0, original aspect-ratio is preserved.
- *
- * \param path the path where to save the screenshot to
- * \param width the snapshot's width
- * \param height the snapshot's height
- */
-- (void)saveVideoSnapshotAt: (NSString *)path withWidth:(NSUInteger)width andHeight:(NSUInteger)height;
-
-/**
- * Enable or disable deinterlace filter
- *
- * \param name of deinterlace filter to use (availability depends on underlying VLC version), NULL to disable.
- */
-- (void)setDeinterlaceFilter: (NSString *)name;
-
-@property float rate;
-
-@property (readonly) VLCAudio * audio;
-
-/* Video Information */
-- (CGSize)videoSize;
-- (BOOL)hasVideoOut;
-- (float)framesPerSecond;
-
-/**
- * Sets the current position (or time) of the feed.
- * \param value New time to set the current position to. If time is [VLCTime nullTime], 0 is assumed.
- */
-- (void)setTime:(VLCTime *)value;
-
-/**
- * Returns the current position (or time) of the feed.
- * \return VLCTIme object with current time.
- */
-- (VLCTime *)time;
-
-@property (readonly) VLCTime *remainingTime;
-@property (readonly) NSUInteger fps;
-
-/**
- * Return the current video subtitle index
- * \return 0 if none is set.
- *
- * Pass 0 to disable.
- */
-@property (readwrite) NSUInteger currentVideoSubTitleIndex;
-
-/**
- * Return the video subtitle tracks
- *
- * It includes the disabled fake track at index 0.
- */
-- (NSArray *)videoSubTitles;
-
-/**
- * Load and set a specific video subtitle, from a file.
- * \param path to a file
- * \return if the call succeed..
- */
-- (BOOL)openVideoSubTitlesFromFile:(NSString *)path;
-
-/**
- * Chapter selection and enumeration, it is bound
- * to a title option.
- */
-
-/**
- * Return the current video subtitle index, or
- * \return NSNotFound if none is set.
- *
- * To disable subtitle pass NSNotFound.
- */
-@property (readwrite) NSUInteger currentChapterIndex;
-- (void)previousChapter;
-- (void)nextChapter;
-- (NSArray *)chaptersForTitleIndex:(NSUInteger)titleIndex;
-
-/**
- * Title selection and enumeration
- * \return NSNotFound if none is set.
- */
-@property (readwrite) NSUInteger currentTitleIndex;
-- (NSArray *)titles;
-
-/* Audio Options */
-
-/**
- * Return the current audio track index
- * \return 0 if none is set.
- *
- * Pass 0 to disable.
- */
-@property (readwrite) NSUInteger currentAudioTrackIndex;
-
-/**
- * Return the audio tracks
- *
- * It includes the "Disable" fake track at index 0.
- */
-- (NSArray *)audioTracks;
-
-- (void)setAudioChannel:(NSInteger)value;
-- (NSInteger)audioChannel;
-
-/* Media Options */
-- (void)setMedia:(VLCMedia *)value;
-- (VLCMedia *)media;
-
-/* Playback Operations */
-/**
- * Plays a media resource using the currently selected media controller (or
- * default controller. If feed was paused then the feed resumes at the position
- * it was paused in.
- * \return A Boolean determining whether the stream was played or not.
- */
-- (BOOL)play;
-
-/**
- * Toggle's the pause state of the feed.
- */
-- (void)pause;
-
-/**
- * Stop the playing.
- */
-- (void)stop;
-
-/**
- * Advance one frame.
- */
-- (void)gotoNextFrame;
-
-/**
- * Fast forwards through the feed at the standard 1x rate.
- */
-- (void)fastForward;
-
-/**
- * Fast forwards through the feed at the rate specified.
- * \param rate Rate at which the feed should be fast forwarded.
- */
-- (void)fastForwardAtRate:(float)rate;
-
-/**
- * Rewinds through the feed at the standard 1x rate.
- */
-- (void)rewind;
-
-/**
- * Rewinds through the feed at the rate specified.
- * \param rate Rate at which the feed should be fast rewound.
- */
-- (void)rewindAtRate:(float)rate;
-
-/**
- * Jumps shortly backward in current stream if seeking is supported.
- * \param interval to skip, in sec.
- */
-- (void)jumpBackward:(NSInteger)interval;
-
-/**
- * Jumps shortly forward in current stream if seeking is supported.
- * \param interval to skip, in sec.
- */
-- (void)jumpForward:(NSInteger)interval;
-
-/**
- * Jumps shortly backward in current stream if seeking is supported.
- */
-- (void)extraShortJumpBackward;
-
-/**
- * Jumps shortly forward in current stream if seeking is supported.
- */
-- (void)extraShortJumpForward;
-
-/**
- * Jumps shortly backward in current stream if seeking is supported.
- */
-- (void)shortJumpBackward;
-
-/**
- * Jumps shortly forward in current stream if seeking is supported.
- */
-- (void)shortJumpForward;
-
-/**
- * Jumps shortly backward in current stream if seeking is supported.
- */
-- (void)mediumJumpBackward;
-
-/**
- * Jumps shortly forward in current stream if seeking is supported.
- */
-- (void)mediumJumpForward;
-
-/**
- * Jumps shortly backward in current stream if seeking is supported.
- */
-- (void)longJumpBackward;
-
-/**
- * Jumps shortly forward in current stream if seeking is supported.
- */
-- (void)longJumpForward;
-
-/* Playback Information */
-/**
- * Playback state flag identifying that the stream is currently playing.
- * \return TRUE if the feed is playing, FALSE if otherwise.
- */
-- (BOOL)isPlaying;
-
-/**
- * Playback state flag identifying wheather the stream will play.
- * \return TRUE if the feed is ready for playback, FALSE if otherwise.
- */
-- (BOOL)willPlay;
-
-/**
- * Playback's current state.
- * \see VLCMediaState
- */
-- (VLCMediaPlayerState)state;
-
-/**
- * Returns the receiver's position in the reading.
- * \return A number between 0 and 1. indicating the position
- */
-- (float)position;
-- (void)setPosition:(float)newPosition;
-
-- (BOOL)isSeekable;
-
-- (BOOL)canPause;
-
-@end
+++ /dev/null
-//
-// VLCMediaThumbnailer.h
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 7/10/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#if TARGET_OS_IPHONE
-# import <CoreGraphics/CoreGraphics.h>
-#endif
-
-@class VLCMedia;
-@protocol VLCMediaThumbnailerDelegate;
-
-@interface VLCMediaThumbnailer : NSObject {
- id<VLCMediaThumbnailerDelegate> _delegate;
- VLCMedia *_media;
- void *_mp;
- CGImageRef _thumbnail;
- void *_data;
- NSTimer *_parsingTimeoutTimer;
- NSTimer *_thumbnailingTimeoutTimer;
-
- CGFloat _thumbnailHeight,_thumbnailWidth;
- CGFloat _effectiveThumbnailHeight,_effectiveThumbnailWidth;
- int _numberOfReceivedFrames;
- BOOL _shouldRejectFrames;
-}
-
-+ (VLCMediaThumbnailer *)thumbnailerWithMedia:(VLCMedia *)media andDelegate:(id<VLCMediaThumbnailerDelegate>)delegate;
-- (void)fetchThumbnail;
-
-@property (readwrite, assign) id<VLCMediaThumbnailerDelegate> delegate;
-@property (readwrite, retain) VLCMedia *media;
-@property (readwrite, assign) CGImageRef thumbnail;
-
-/**
- * Thumbnail Height
- * You shouldn't change this after -fetchThumbnail
- * has been called.
- * @return thumbnail height. Default value 240.
- */
-@property (readwrite, assign) CGFloat thumbnailHeight;
-
-/**
- * Thumbnail Width
- * You shouldn't change this after -fetchThumbnail
- * has been called.
- * @return thumbnail height. Default value 320
- */
-@property (readwrite, assign) CGFloat thumbnailWidth;
-@end
-
-@protocol VLCMediaThumbnailerDelegate
-@required
-- (void)mediaThumbnailerDidTimeOut:(VLCMediaThumbnailer *)mediaThumbnailer;
-- (void)mediaThumbnailer:(VLCMediaThumbnailer *)mediaThumbnailer didFinishThumbnail:(CGImageRef)thumbnail;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCPlaylistDataSource.h: VLC.framework VLCPlaylistDataSource header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <VLC/VLCPlaylist.h>
-#import <VLC/VLCVideoView.h>
-
-/* This class can be used as a data source for an NSOutlineView
- * it will display the playlist content. If provided the videoView
- * will automatically be associated to the given playlist, and actions
- * in the outlineView will trigger the videoView, visual feedback of the
- * current item in the videoview will be displayed in the outlineview
- */
-@interface VLCPlaylistDataSource : NSObject
-{
- VLCPlaylist * playlist;
- VLCVideoView * videoView;
-
- NSOutlineView *outlineView;
-}
-- (id)initWithPlaylist:(VLCPlaylist *)aPlaylist;
-- (id)initWithPlaylist:(VLCPlaylist *)aPlaylist videoView:(VLCVideoView *)aVideoView;
-
-- (VLCPlaylist *)playlist;
-- (VLCVideoView *)videoView;
-@end
-
-/* It could be really useful to use that, this probably need to be reviewed to see
- * if it really belongs here */
-@interface VLCPlaylistDataSource (OutlineViewDataSource)
-- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item;
-- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item;
-- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item;
-- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item;
-@end
-
-@interface VLCPlaylistDataSource (OutlineViewDataSourceDropping)
-- (BOOL)outlineView:(NSOutlineView *)outlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)item childIndex:(int)index;
-- (NSDragOperation)outlineView:(NSOutlineView *)outlineView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(int)index;
-@end
-
-
+++ /dev/null
-/*****************************************************************************
- * VLCServicesDiscoverer.h: VLC.framework VLCMediaDiscoverer header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-@interface VLCServicesDiscoverer : NSObject
-{
- NSArray * services;
-}
-+ (id)sharedDiscoverer;
-- (id)init;
-- (NSArray *)services;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCStreamOutput.h: VLCKit.framework VLCStreamOutput header
- *****************************************************************************
- * Copyright (C) 2008 Pierre d'Herbemont
- * Copyright (C) 2008 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-extern NSString * VLCDefaultStreamOutputRTSP;
-extern NSString * VLCDefaultStreamOutputRTP;
-extern NSString * VLCDefaultStreamOutputRTP;
-
-@interface VLCStreamOutput : NSObject {
- NSMutableDictionary * options;
-}
-
-- (id)initWithOptionDictionary:(NSDictionary *)dictionary;
-+ (id)streamOutputWithOptionDictionary:(NSDictionary *)dictionary;
-
-+ (id)rtpBroadcastStreamOutputWithSAPAnnounce:(NSString *)announceName;
-+ (id)rtpBroadcastStreamOutput;
-+ (id)ipodStreamOutputWithFilePath:(NSString *)filePath;
-+ (id)streamOutputWithFilePath:(NSString *)filePath;
-+ (id)mpeg2StreamOutputWithFilePath:(NSString *)filePath;
-+ (id)mpeg4StreamOutputWithFilePath:(NSString *)filePath;
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCStreamSession.h: VLCKit.framework VLCStreamSession header
- *****************************************************************************
- * Copyright (C) 2008 Pierre d'Herbemont
- * Copyright (C) 2008 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <VLCKit/VLCStreamOutput.h>
-#import <VLCKit/VLCMediaPlayer.h>
-#import <VLCKit/VLCMedia.h>
-
-
-@interface VLCStreamSession : VLCMediaPlayer {
- VLCStreamOutput * streamOutput;
- VLCMedia * originalMedia;
- NSUInteger reattemptedConnections;
- BOOL isComplete;
-}
-
-+ (id)streamSession;
-
-@property (retain) VLCMedia * media;
-@property (retain) VLCStreamOutput * streamOutput;
-@property (readonly) BOOL isComplete;
-
-- (void)startStreaming;
-- (void)stopStreaming;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCTime.h: VLCKit.framework VLCTime header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Foundation/Foundation.h>
-
-/**
- * Provides an object to define VLCMedia's time.
- */
-@interface VLCTime : NSObject <NSCopying>
-{
- NSNumber * value; //< Holds, in milliseconds, the VLCTime value
-}
-
-/* Factories */
-+ (VLCTime *)nullTime;
-+ (VLCTime *)timeWithNumber:(NSNumber *)aNumber;
-+ (VLCTime *)timeWithInt:(NSInteger)aInt;
-
-/* Initializers */
-- (id)initWithNumber:(NSNumber *)aNumber;
-- (id)initWithInt:(int)aInt;
-
-/* Properties */
-@property (readonly) NSNumber * numberValue;
-@property (readonly) NSString * stringValue;
-@property (readonly) NSString * verboseStringValue;
-@property (readonly) int intValue;
-
-/* Comparitors */
-- (NSComparisonResult)compare:(VLCTime *)aTime;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCVideoLayer.h: VLCKit.framework VLCVideoLayer header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <QuartzCore/QuartzCore.h>
-
-@interface VLCVideoLayer : CALayer
-{
- BOOL hasVideo;
-}
-
-/* Properties */
-@property (readonly) BOOL hasVideo;
-@property BOOL fillScreen;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCVideoView.h: VLCKit.framework VLCVideoView header
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <QuartzCore/QuartzCore.h>
-
-@interface VLCVideoView : NSView
-{
- id delegate;
- NSColor * backColor;
- BOOL stretchesVideo;
- id layoutManager;
- BOOL hasVideo;
-}
-
-/* Properties */
-@property (assign) id delegate;
-@property (copy) NSColor *backColor;
-@property BOOL fillScreen;
-@property (readonly) BOOL hasVideo;
-@end
+++ /dev/null
-VLCKit.zip: VLCKit
- zip -r -y -9 $@ $<
-
-VLCKit: build/Debug/VLCKit.framework
- rm -rf $@-tmp && mkdir -p $@-tmp
- cp -R $< $@-tmp
- cp ../../../COPYING $@-tmp
- mv $@-tmp $@ && touch $@
-
-build/Debug/VLCKit.framework:
- xcodebuild -project VLCKit.xcodeproj -target "Build Everything"
-
-clean:
- xcodebuild -project VLCKit.xcodeproj clean
- rm -fr VLCKit VLCKit.zip
-
-.PHONY: clean
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXAggregateTarget section */
- 7A5ECAF911DE917B00F66AF3 /* Aggregate static plugins */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 7A5ECB1011DE919F00F66AF3 /* Build configuration list for PBXAggregateTarget "Aggregate static plugins" */;
- buildPhases = (
- 7A5ECAF811DE917B00F66AF3 /* Aggregate static plugins script */,
- );
- dependencies = (
- );
- name = "Aggregate static plugins";
- productName = "Aggregate static plugins";
- };
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
- 6360B0E211E7F0C000EAD790 /* VLCMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6360B0E111E7F0C000EAD790 /* VLCMediaDiscoverer.m */; };
- 6360B10611E7F27300EAD790 /* VLCMediaDiscoverer.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 6360B0E311E7F0D300EAD790 /* VLCMediaDiscoverer.h */; };
- 636E975811EBC67A002FE8A9 /* VLCMediaThumbnailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 636E975711EBC67A002FE8A9 /* VLCMediaThumbnailer.m */; };
- 636E979111EBC97C002FE8A9 /* VLCMediaThumbnailer.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 636E979011EBC96D002FE8A9 /* VLCMediaThumbnailer.h */; };
- 7A5ECACB11DE8F7300F66AF3 /* VLCEventManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC411DE8F7300F66AF3 /* VLCEventManager.m */; };
- 7A5ECACC11DE8F7300F66AF3 /* VLCLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC511DE8F7300F66AF3 /* VLCLibrary.m */; };
- 7A5ECACD11DE8F7300F66AF3 /* VLCMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC611DE8F7300F66AF3 /* VLCMedia.m */; };
- 7A5ECACE11DE8F7300F66AF3 /* VLCMediaList.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC711DE8F7300F66AF3 /* VLCMediaList.m */; };
- 7A5ECACF11DE8F7300F66AF3 /* VLCMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC811DE8F7300F66AF3 /* VLCMediaPlayer.m */; };
- 7A5ECAD011DE8F7300F66AF3 /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECAC911DE8F7300F66AF3 /* VLCTime.m */; };
- 7A5ECAD111DE8F7300F66AF3 /* VLCAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5ECACA11DE8F7300F66AF3 /* VLCAudio.m */; };
- 7A5ECB5511DE961700F66AF3 /* VLCLibrary.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD411DE8FAB00F66AF3 /* VLCLibrary.h */; };
- 7A5ECB5611DE961700F66AF3 /* VLCMedia.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD511DE8FAB00F66AF3 /* VLCMedia.h */; };
- 7A5ECB5711DE961700F66AF3 /* VLCMediaList.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD611DE8FAB00F66AF3 /* VLCMediaList.h */; };
- 7A5ECB5811DE961700F66AF3 /* VLCMediaPlayer.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD711DE8FAB00F66AF3 /* VLCMediaPlayer.h */; };
- 7A5ECB5911DE961700F66AF3 /* VLCTime.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD811DE8FAB00F66AF3 /* VLCTime.h */; };
- 7A5ECB5A11DE961700F66AF3 /* VLCAudio.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECAD911DE8FAB00F66AF3 /* VLCAudio.h */; };
- 7A5ECB9E11DE975A00F66AF3 /* MobileVLCKit.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */; };
- AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 7A5ECB6211DE961B00F66AF3 /* Copy Headers */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = include/MobileVLCKit;
- dstSubfolderSpec = 16;
- files = (
- 7A5ECB9E11DE975A00F66AF3 /* MobileVLCKit.h in Copy Headers */,
- 7A5ECB5511DE961700F66AF3 /* VLCLibrary.h in Copy Headers */,
- 7A5ECB5611DE961700F66AF3 /* VLCMedia.h in Copy Headers */,
- 636E979111EBC97C002FE8A9 /* VLCMediaThumbnailer.h in Copy Headers */,
- 7A5ECB5711DE961700F66AF3 /* VLCMediaList.h in Copy Headers */,
- 7A5ECB5811DE961700F66AF3 /* VLCMediaPlayer.h in Copy Headers */,
- 6360B10611E7F27300EAD790 /* VLCMediaDiscoverer.h in Copy Headers */,
- 7A5ECB5911DE961700F66AF3 /* VLCTime.h in Copy Headers */,
- 7A5ECB5A11DE961700F66AF3 /* VLCAudio.h in Copy Headers */,
- );
- name = "Copy Headers";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 6360B0E111E7F0C000EAD790 /* VLCMediaDiscoverer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaDiscoverer.m; path = Sources/VLCMediaDiscoverer.m; sourceTree = "<group>"; };
- 6360B0E311E7F0D300EAD790 /* VLCMediaDiscoverer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaDiscoverer.h; path = Headers/Public/VLCMediaDiscoverer.h; sourceTree = "<group>"; };
- 636E975711EBC67A002FE8A9 /* VLCMediaThumbnailer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaThumbnailer.m; path = Sources/VLCMediaThumbnailer.m; sourceTree = "<group>"; };
- 636E979011EBC96D002FE8A9 /* VLCMediaThumbnailer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaThumbnailer.h; path = Headers/Public/VLCMediaThumbnailer.h; sourceTree = "<group>"; };
- 7A5ECAC411DE8F7300F66AF3 /* VLCEventManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCEventManager.m; path = Sources/VLCEventManager.m; sourceTree = "<group>"; };
- 7A5ECAC511DE8F7300F66AF3 /* VLCLibrary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCLibrary.m; path = Sources/VLCLibrary.m; sourceTree = "<group>"; };
- 7A5ECAC611DE8F7300F66AF3 /* VLCMedia.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMedia.m; path = Sources/VLCMedia.m; sourceTree = "<group>"; };
- 7A5ECAC711DE8F7300F66AF3 /* VLCMediaList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaList.m; path = Sources/VLCMediaList.m; sourceTree = "<group>"; };
- 7A5ECAC811DE8F7300F66AF3 /* VLCMediaPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaPlayer.m; path = Sources/VLCMediaPlayer.m; sourceTree = "<group>"; };
- 7A5ECAC911DE8F7300F66AF3 /* VLCTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTime.m; path = Sources/VLCTime.m; sourceTree = "<group>"; };
- 7A5ECACA11DE8F7300F66AF3 /* VLCAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCAudio.m; path = Sources/VLCAudio.m; sourceTree = "<group>"; };
- 7A5ECAD411DE8FAB00F66AF3 /* VLCLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCLibrary.h; path = Headers/Public/VLCLibrary.h; sourceTree = "<group>"; };
- 7A5ECAD511DE8FAB00F66AF3 /* VLCMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMedia.h; path = Headers/Public/VLCMedia.h; sourceTree = "<group>"; };
- 7A5ECAD611DE8FAB00F66AF3 /* VLCMediaList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaList.h; path = Headers/Public/VLCMediaList.h; sourceTree = "<group>"; };
- 7A5ECAD711DE8FAB00F66AF3 /* VLCMediaPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaPlayer.h; path = Headers/Public/VLCMediaPlayer.h; sourceTree = "<group>"; };
- 7A5ECAD811DE8FAB00F66AF3 /* VLCTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTime.h; path = Headers/Public/VLCTime.h; sourceTree = "<group>"; };
- 7A5ECAD911DE8FAB00F66AF3 /* VLCAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAudio.h; path = Headers/Public/VLCAudio.h; sourceTree = "<group>"; };
- 7A5ECAE411DE8FEF00F66AF3 /* VLCLibVLCBridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCLibVLCBridging.h; path = Headers/Internal/VLCLibVLCBridging.h; sourceTree = "<group>"; };
- 7A5ECAE511DE8FEF00F66AF3 /* VLCEventManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCEventManager.h; path = Headers/Internal/VLCEventManager.h; sourceTree = "<group>"; };
- 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = MobileVLCKit.xcconfig; path = MobileVLCKit/MobileVLCKit.xcconfig; sourceTree = "<group>"; };
- 7A5ECB3411DE94D600F66AF3 /* vlc-plugins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "vlc-plugins.h"; path = "MobileVLCKit/vlc-plugins.h"; sourceTree = "<group>"; };
- 7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MobileVLCKit.h; path = Headers/Public/MobileVLCKit.h; sourceTree = "<group>"; };
- 7A5ECBAC11DE987400F66AF3 /* AggregateStaticPlugins.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = AggregateStaticPlugins.sh; path = MobileVLCKit/AggregateStaticPlugins.sh; sourceTree = "<group>"; };
- AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileVLCKit_Prefix.pch; sourceTree = SOURCE_ROOT; };
- AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- D2AAC07E0554694100DB518D /* libMobileVLCKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileVLCKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- D2AAC07C0554694100DB518D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 034768DFFF38A50411DB9C8B /* Products */ = {
- isa = PBXGroup;
- children = (
- D2AAC07E0554694100DB518D /* libMobileVLCKit.a */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 0867D691FE84028FC02AAC07 /* MobileVLCKit */ = {
- isa = PBXGroup;
- children = (
- 7A5ECAE211DE8FD200F66AF3 /* Headers */,
- 08FB77AEFE84172EC02AAC07 /* Sources */,
- 32C88DFF0371C24200C91783 /* Other Sources */,
- 0867D69AFE84028FC02AAC07 /* Frameworks */,
- 034768DFFF38A50411DB9C8B /* Products */,
- );
- name = MobileVLCKit;
- sourceTree = "<group>";
- };
- 0867D69AFE84028FC02AAC07 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AACBBE490F95108600F1A2B1 /* Foundation.framework */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 08FB77AEFE84172EC02AAC07 /* Sources */ = {
- isa = PBXGroup;
- children = (
- 7A5ECAC411DE8F7300F66AF3 /* VLCEventManager.m */,
- 7A5ECAC511DE8F7300F66AF3 /* VLCLibrary.m */,
- 7A5ECAC611DE8F7300F66AF3 /* VLCMedia.m */,
- 7A5ECAC711DE8F7300F66AF3 /* VLCMediaList.m */,
- 7A5ECAC811DE8F7300F66AF3 /* VLCMediaPlayer.m */,
- 636E975711EBC67A002FE8A9 /* VLCMediaThumbnailer.m */,
- 6360B0E111E7F0C000EAD790 /* VLCMediaDiscoverer.m */,
- 7A5ECAC911DE8F7300F66AF3 /* VLCTime.m */,
- 7A5ECACA11DE8F7300F66AF3 /* VLCAudio.m */,
- );
- name = Sources;
- sourceTree = "<group>";
- };
- 32C88DFF0371C24200C91783 /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 7A5ECBAC11DE987400F66AF3 /* AggregateStaticPlugins.sh */,
- 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */,
- AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 7A5ECAE211DE8FD200F66AF3 /* Headers */ = {
- isa = PBXGroup;
- children = (
- 7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */,
- 7A5ECAE311DE8FDF00F66AF3 /* Internal */,
- 7A5ECAD411DE8FAB00F66AF3 /* VLCLibrary.h */,
- 7A5ECAD511DE8FAB00F66AF3 /* VLCMedia.h */,
- 636E979011EBC96D002FE8A9 /* VLCMediaThumbnailer.h */,
- 7A5ECAD611DE8FAB00F66AF3 /* VLCMediaList.h */,
- 7A5ECAD711DE8FAB00F66AF3 /* VLCMediaPlayer.h */,
- 6360B0E311E7F0D300EAD790 /* VLCMediaDiscoverer.h */,
- 7A5ECAD811DE8FAB00F66AF3 /* VLCTime.h */,
- 7A5ECAD911DE8FAB00F66AF3 /* VLCAudio.h */,
- );
- name = Headers;
- sourceTree = "<group>";
- };
- 7A5ECAE311DE8FDF00F66AF3 /* Internal */ = {
- isa = PBXGroup;
- children = (
- 7A5ECB3411DE94D600F66AF3 /* vlc-plugins.h */,
- 7A5ECAE411DE8FEF00F66AF3 /* VLCLibVLCBridging.h */,
- 7A5ECAE511DE8FEF00F66AF3 /* VLCEventManager.h */,
- );
- name = Internal;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- D2AAC07D0554694100DB518D /* MobileVLCKit */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MobileVLCKit" */;
- buildPhases = (
- D2AAC07B0554694100DB518D /* Sources */,
- 7A5ECB6211DE961B00F66AF3 /* Copy Headers */,
- D2AAC07C0554694100DB518D /* Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = MobileVLCKit;
- productName = MobileVLCKit;
- productReference = D2AAC07E0554694100DB518D /* libMobileVLCKit.a */;
- productType = "com.apple.product-type.library.static";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0867D690FE84028FC02AAC07 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0420;
- };
- buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MobileVLCKit" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- en,
- );
- mainGroup = 0867D691FE84028FC02AAC07 /* MobileVLCKit */;
- productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- D2AAC07D0554694100DB518D /* MobileVLCKit */,
- 7A5ECAF911DE917B00F66AF3 /* Aggregate static plugins */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 7A5ECAF811DE917B00F66AF3 /* Aggregate static plugins script */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Aggregate static plugins script";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh ${SRCROOT}/MobileVLCKit/AggregateStaticPlugins.sh\nexit 0\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- D2AAC07B0554694100DB518D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 7A5ECACB11DE8F7300F66AF3 /* VLCEventManager.m in Sources */,
- 7A5ECACC11DE8F7300F66AF3 /* VLCLibrary.m in Sources */,
- 7A5ECACD11DE8F7300F66AF3 /* VLCMedia.m in Sources */,
- 7A5ECACE11DE8F7300F66AF3 /* VLCMediaList.m in Sources */,
- 7A5ECACF11DE8F7300F66AF3 /* VLCMediaPlayer.m in Sources */,
- 7A5ECAD011DE8F7300F66AF3 /* VLCTime.m in Sources */,
- 7A5ECAD111DE8F7300F66AF3 /* VLCAudio.m in Sources */,
- 6360B0E211E7F0C000EAD790 /* VLCMediaDiscoverer.m in Sources */,
- 636E975811EBC67A002FE8A9 /* VLCMediaThumbnailer.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 1DEB921F08733DC00010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = armv7;
- COPY_PHASE_STRIP = NO;
- DSTROOT = /tmp/MobileVLCKit.dst;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = MobileVLCKit_Prefix.pch;
- HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../include";
- INSTALL_PATH = /usr/local/lib;
- PRODUCT_NAME = MobileVLCKit;
- };
- name = Debug;
- };
- 1DEB922008733DC00010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = armv7;
- DSTROOT = /tmp/MobileVLCKit.dst;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = MobileVLCKit_Prefix.pch;
- HEADER_SEARCH_PATHS = "$(SRCROOT)/../../../include";
- INSTALL_PATH = /usr/local/lib;
- PRODUCT_NAME = MobileVLCKit;
- };
- name = Release;
- };
- 1DEB922308733DC00010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- OTHER_LDFLAGS = "-ObjC";
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- 1DEB922408733DC00010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- OTHER_LDFLAGS = "-ObjC";
- SDKROOT = iphoneos;
- };
- name = Release;
- };
- 7A5ECAFA11DE917B00F66AF3 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- PRODUCT_NAME = "Aggregate static plugins";
- };
- name = Debug;
- };
- 7A5ECAFB11DE917B00F66AF3 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- PRODUCT_NAME = "Aggregate static plugins";
- ZERO_LINK = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MobileVLCKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB921F08733DC00010E9CD /* Debug */,
- 1DEB922008733DC00010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MobileVLCKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB922308733DC00010E9CD /* Debug */,
- 1DEB922408733DC00010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 7A5ECB1011DE919F00F66AF3 /* Build configuration list for PBXAggregateTarget "Aggregate static plugins" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 7A5ECAFA11DE917B00F66AF3 /* Debug */,
- 7A5ECAFB11DE917B00F66AF3 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
+++ /dev/null
-#!/bin/sh
-
-# Pre-Compile.sh
-# MobileVLC
-#
-# Created by Pierre d'Herbemont on 6/27/10.
-# Copyright 2010 __MyCompanyName__. All rights reserved.
-
-
-pushd `dirname $0` > /dev/null
-PROJECT_DIR=`pwd`
-popd > /dev/null
-
-echo "PROJECT DIR = $PROJECT_DIR"
-
-VLC_ARCH="arm"
-ARCH="arm"
-VLC_SRC_DIR="$PROJECT_DIR/../../../.."
-
-VLC_BUILD_DIR="$VLC_SRC_DIR/build-ios-OS"
-VLC_INSTALL_DIR="$VLC_SRC_DIR/install-ios-OS"
-
-VLC_CONTRIB_DIR="$VLC_SRC_DIR/extras/contrib/hosts/\$(VLC_ARCH)-apple-darwin10/ios"
-LDFLAGS=""
-
-echo "VLC_BUILD_DIR = $VLC_BUILD_DIR"
-echo "VLC_INSTALL_DIR = $VLC_INSTALL_DIR"
-echo "SRC DIR = $VLC_SRC_DIR"
-echo "VLC_CONTRIB_DIR = $VLC_CONTRIB_DIR"
-
-echo "=== Building for $ARCH ==="
-echo "-"
-
-echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/vlc-plugins.h
-echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/vlc-plugins.xcconfig
-
-VLC_MODULES=`find $VLC_BUILD_DIR/modules -name 'lib*_plugin.a'|grep -v stats|tr \\\\n \ `
-#echo $VLC_MODULES
-BUILTINS="const void *vlc_static_modules[] = {\n"; \
-
-LDFLAGS=""
-DEFINITION=""
-
-for file in $VLC_MODULES; do
- name=`echo $file | sed 's/.*\.libs\/lib//' | sed 's/_plugin\.a//'`
- DEFINITION+="int vlc_entry__$name (int (*)(void *, void *, int, ...), void *);\n";
- BUILTINS+=" vlc_entry__$name,\n"
- LDFLAGS+="\$(VLC_INSTALL_DIR)/lib/vlc/plugins/lib${name}_plugin.a "
- echo $name
-done;
-
-BUILTINS="$BUILTINS NULL\n};\n"
-
-echo -e "VLC_PLUGINS_LDFLAGS=$LDFLAGS" >> $PROJECT_DIR/vlc-plugins.xcconfig
-echo -e "$DEFINITION\n$BUILTINS" >> $PROJECT_DIR/vlc-plugins.h
+++ /dev/null
-//
-// vlc.xcconfig
-// VLC
-//
-// Created by Pierre d'Herbemont on 6/26/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-
-VLC_SRC_DIR=$(PROJECT_DIR)/../../..
-VLC_ARCH[sdk=iphonesimulator*]=i686
-VLC_ARCH[sdk=iphoneos*]=arm
-VLC_PLATFORM[sdk=iphonesimulator*]=Simulator
-VLC_PLATFORM[sdk=iphoneos*]=OS
-VLC_INSTALL_DIR=$(VLC_SRC_DIR)/install-ios-$(VLC_PLATFORM)
-
-//OTHER_CFLAGS= -ObjC -all_load
-#include "vlc-plugins.xcconfig"
-
-VLC_CONTRIB_DIR=$VLC_SRC_DIR/contrib/$(VLC_ARCH)-apple-darwin11
-DVBPSI=$(VLC_CONTRIB_DIR)/lib/libdvbpsi.a
-AVCODEC=$(VLC_CONTRIB_DIR)/lib/libavutil.a ${VLC_CONTRIB_DIR}/lib/libavcodec.a $(VLC_CONTRIB_DIR)/lib/libavformat.a $(VLC_CONTRIB_DIR)/lib/libswscale.a $(VLC_CONTRIB_DIR)/lib/libpostproc.a $(VLC_CONTRIB_DIR)/lib/libgsm.a
-LIVE555=$(VLC_CONTRIB_DIR)/lib/libUsageEnvironment.a $(VLC_CONTRIB_DIR)/lib/libBasicUsageEnvironment.a $(VLC_CONTRIB_DIR)/lib/libgroupsock.a $(VLC_CONTRIB_DIR)/lib/libz.a $(VLC_CONTRIB_DIR)/lib/libliveMedia.a
-FLAC=$(VLC_CONTRIB_DIR)/lib/libFLAC.a
-A52=$(VLC_CONTRIB_DIR)/lib/liba52.a
-DCA=$(VLC_CONTRIB_DIR)/lib/libdca.a
-MKV=$(VLC_CONTRIB_DIR)/lib/libebml.a $(VLC_CONTRIB_DIR)/lib/libmatroska.a
-MODPLUG=$(VLC_CONTRIB_DIR)/lib/libmodplug.a
-SPEEX=$(VLC_CONTRIB_DIR)/lib/libspeex.a $(VLC_CONTRIB_DIR)/lib/libspeexdsp.a
-TAGLIB=$(VLC_CONTRIB_DIR)/lib/libtag.a
-OGG=$(VLC_CONTRIB_DIR)/lib/libogg.a $(VLC_CONTRIB_DIR)/lib/libtheora.a $(VLC_CONTRIB_DIR)/lib/libtheoradec.a $(VLC_CONTRIB_DIR)/lib/libtheoraenc.a
-XML=$(VLC_CONTRIB_DIR)/lib/libxml2.a
-PICS=$(VLC_CONTRIB_DIR)/lib/libpng.a $(VLC_CONTRIB_DIR)/lib/libopenjpeg.a
-
-OTHER_LIBTOOLFLAGS=$(AVCODEC) $(DVBPSI) $(LIVE555) $(MODPLUG) $(A52) $(DCA) $(MKV) $(TAGLIB) $(XML) $(PICS) $(VLC_INSTALL_DIR)/lib/vlc/libcompat.a $(VLC_INSTALL_DIR)/lib/libvlc.a $(VLC_INSTALL_DIR)/lib/libvlccore.a $(VLC_PLUGINS_LDFLAGS)
+++ /dev/null
-//
-// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
-//
-
-#ifdef __OBJC__
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
-#endif
-#import <vlc/vlc.h>
+++ /dev/null
-#!/bin/sh
-#
-# Pre-Compile.sh
-#
-# Script that install libvlc and its modules inside VLCKit.
-#
-# This is for some creepy reasons also used by legacy VLC.app or
-# the moz plugin.
-
-#
-# We are building VLC.app or the moz plugin
-#
-if test "${ACTION}" = "release-makefile"; then
- echo "running Pre-Compile.sh in release-makefile mode"
-
- FULL_PRODUCT_NAME="${PRODUCT}"
- if [ "$FULL_PRODUCT_NAME" = "VLC-Plugin.plugin" ] ; then
- TARGET_BUILD_DIR="${src_dir}"
- else
- TARGET_BUILD_DIR="${build_dir}"
- fi
- CONTENTS_FOLDER_PATH="${FULL_PRODUCT_NAME}/Contents/MacOS"
- VLC_BUILD_DIR="${build_dir}"
- VLC_SRC_DIR="${src_dir}"
- ACTION="build"
- RELEASE_MAKEFILE="yes"
- use_archs="no"
- main_build_dir="${VLC_BUILD_DIR}"
-else
- use_archs="yes"
- main_build_dir="${VLC_BUILD_DIR}/${ARCHS%% *}"
- echo "Building for $ARCHS"
-fi
-
-if test "${ACTION}" = "clean"; then
- rm -Rf "${VLC_BUILD_DIR}/tmp"
- exit 0
-fi
-
-if test "${ACTION}" != "build"; then
- echo "This script is supposed to run from xcodebuild or Xcode"
- exit 1
-fi
-
-lib="lib"
-plugins="plugins"
-share="share"
-include="include"
-target="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}"
-target_bin="${target}/bin"
-target_lib="${target}/${lib}" # Should we consider using a different well-known folder like shared resources?
-target_plugins="${target}/${plugins}" # Should we consider using a different well-known folder like shared resources?
-target_share="${target}/${share}" # Should we consider using a different well-known folder like shared resources?
-linked_libs=""
-prefix=".libs"
-suffix="dylib"
-num_archs=$(echo `echo $ARCHS | wc -w`)
-
-##########################
-# @function vlc_install_object(src_lib, dest_dir, type, lib_install_prefix, destination_name, suffix)
-# @description Installs the specified library into the destination folder, automatically changes the references to dependencies
-# @param src_lib source library to copy to the destination directory
-# @param dest_dir destination directory where the src_lib should be copied to
-vlc_install_object() {
- local src_lib=${1}
- local dest_dir=${2}
- local type=${3}
- local lib_install_prefix=${4}
- local destination_name=${5}
- local suffix=${6}
-
- if [ $type = "library" ]; then
- local install_name="@loader_path/lib"
- elif [ $type = "module" ]; then
- local install_name="@loader_path/plugins"
- fi
- if [ "$destination_name" != "" ]; then
- local lib_dest="$dest_dir/$destination_name$suffix"
- local lib_name=`basename $destination_name`
- else
- local lib_dest="$dest_dir/`basename $src_lib`$suffix"
- local lib_name=`basename $src_lib`
- fi
-
- if [ "x$lib_install_prefix" != "x" ]; then
- local lib_install_prefix="$lib_install_prefix"
- else
- local lib_install_prefix="@loader_path/../lib"
- fi
-
- if test ! -e ${src_lib}; then
- return
- fi
-
- if ( (test ! -e ${lib_dest}) || test ${src_lib} -nt ${lib_dest} ); then
-
- mkdir -p ${dest_dir}
-
- # Lets copy the library from the source folder to our new destination folder
- if [ "${type}" = "bin" ]; then
- install -m 755 ${src_lib} ${lib_dest}
- else
- install -m 644 ${src_lib} ${lib_dest}
- fi
-
- # Update the dynamic library so it will know where to look for the other libraries
- echo "Installing ${type} `basename ${lib_dest}`"
-
- if [ "${type}" = "library" ]; then
- # Change the reference of libvlc.1 stored in the usr directory to libvlc.dylib in the framework's library directory
- install_name_tool -id "${install_name}/${lib_name}" ${lib_dest} > /dev/null
- fi
-
- if [ "${type}" != "data" ]; then
- # Iterate through each installed library and modify the references to other dynamic libraries to match the framework's library directory
- for linked_lib in `otool -L ${lib_dest} | grep '(' | sed 's/\((.*)\)//'`; do
- local name=`basename ${linked_lib}`
- case "${linked_lib}" in
- */vlc_build_dir/* | */vlc_install_dir/* | *vlc* | */extras/contrib/*)
- if test -e ${linked_lib}; then
- install_name_tool -change "$linked_lib" "${lib_install_prefix}/${name}" "${lib_dest}"
- linked_libs="${linked_libs} ${ref_lib}"
- vlc_install_object ${linked_lib} ${target_lib} "library"
- fi
- ;;
- esac
- done
- fi
- fi
-}
-# @function vlc_install_object
-##########################
-
-##########################
-# @function vlc_install(src_lib_dir, src_lib_name, dest_dir, type, lib_install_prefix)
-# @description Installs the specified library into the destination folder, automatically changes the references to dependencies
-# @param src_lib source library to copy to the destination directory
-# @param dest_dir destination directory where the src_lib should be copied to
-vlc_install() {
- local src_dir=$1
- local src=$2
- local dest_dir=$3
- local type=$4
-
- if test "$use_archs" = "no"; then
- vlc_install_object "$VLC_BUILD_DIR/$src_dir/$src" "$dest_dir" "$type" $5
- else
- if test $type = "data"; then
- vlc_install_object "$main_build_dir/$src_dir/$src" "$dest_dir" "$type" $5
- else
- local fatdest="$dest_dir/$2"
- local shouldUpdate="no"
-
- # Determine what architectures are available in the destination image
- local fatdest_archs=""
- if [ -e ${fatdest} ]; then
- fatdest_archs=`lipo -info "${fatdest}" 2> /dev/null | sed -E -e 's/[[:space:]]+$//' -e 's/.+:[[:space:]]*//' -e 's/[^[:space:]]+/(&)/g'`
-
- # Check to see if the destination image needs to be reconstructed
- for arch in $ARCHS; do
- # Only install if the new image is newer than the one we have installed or the required arch is missing.
- if test $shouldUpdate = "no" && (! [[ "$fatdest_archs" =~ \($arch\) ]] || test "$VLC_BUILD_DIR/$arch/$src_dir/$src" -nt "${fatdest}"); then
- shouldUpdate="yes"
- fi
- fatdest_archs=${fatdest_archs//\($arch\)/}
- done
-
- # Reconstruct the destination image, if the update flag is set or if there are more archs in the desintation then we need
- fatdest_archs=${fatdest_archs// /}
- else
- # If the destination image does not exist, then we have to reconstruct it
- shouldUpdate="yes"
- fi
-
- # If we should update the destination image or if there were unexpected archs in the destination image, then reconstruct it
- if test "$shouldUpdate" = "yes" || test -n "${fatdest_archs}"; then
- # If the destination image exists, get rid of it so we can copy over the newly constructed image
- if test -e ${fatdest}; then
- rm "$fatdest"
- fi
-
- if test "$num_archs" = "1"; then
- echo "Copying $ARCHS $type $fatdest"
- local arch_src="$VLC_BUILD_DIR/$ARCHS/$src_dir/$src"
- vlc_install_object "$arch_src" "$dest_dir" "$type" "$5" ""
- else
- # Create a temporary destination dir to store each ARCH object file
- local tmp_dest_dir="$VLC_BUILD_DIR/tmp/$type"
- rm -Rf "${tmp_dest_dir}/*"
- mkdir -p "$tmp_dest_dir"
-
- # Search for each ARCH object file used to construct a fat image
- local objects=""
- for arch in $ARCHS; do
- local arch_src="$VLC_BUILD_DIR/$arch/$src_dir/$src"
- vlc_install_object "$arch_src" "$tmp_dest_dir" "$type" "$5" "" ".$arch"
- local dest="$tmp_dest_dir/$src.$arch"
- if [ -e ${dest} ]; then
- objects="${dest} $objects"
- else
- echo "Warning: building $arch_src without $arch"
- fi
- done;
-
- echo "Creating fat $type $fatdest"
- lipo $objects -output "$fatdest" -create
- fi
- fi
- fi
- fi
-}
-# @function vlc_install
-##########################
-
-##########################
-# Create a symbolic link in the root of the framework
-mkdir -p ${target_lib}
-mkdir -p ${target_plugins}
-mkdir -p ${target_bin}
-
-if [ "$RELEASE_MAKEFILE" != "yes" ] ; then
- pushd `pwd` > /dev/null
- cd ${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}
-
- ln -sf Versions/Current/${lib} .
- ln -sf Versions/Current/${plugins} .
- ln -sf Versions/Current/${include} .
- ln -sf Versions/Current/${share} .
- ln -sf Versions/Current/bin .
- ln -sf ../plugins Versions/Current/bin
- ln -sf ../share Versions/Current/bin
-
- popd > /dev/null
-fi
-
-##########################
-# Hack for VLC.app
-if [ "$FULL_PRODUCT_NAME" = "VLC.app" ] ; then
- vlc_install "bin/${prefix}" "vlc" "${target}" "bin" "@loader_path/lib"
- mv ${target}/vlc ${target}/VLC
- chmod +x ${target}/VLC
-elif [ "$FULL_PRODUCT_NAME" = "VLC-Plugin.plugin" ] ; then
- # install Safari webplugin
- vlc_install "projects/mozilla/${prefix}" "npvlc.${suffix}" "${target}" "lib" "@loader_path/lib"
- mv ${target}/npvlc.${suffix} "${target}/VLC Plugin"
- chmod +x "${target}/VLC Plugin"
-else
- vlc_install "bin/${prefix}" "vlc" "${target}/bin" "bin" "@loader_path/../lib"
-fi
-
-##########################
-# Build the plugins folder (Same as VLCKit.framework/plugins in Makefile)
-echo "Building plugins folder..."
-# Figure out what plugins are available to install
-for module in `find ${main_build_dir}/modules -path "*dylib.dSYM*" -prune -o -name "lib*_plugin.dylib" -print | sed -e s:${main_build_dir}/::` ; do
- # Check to see that the reported module actually exists
- if test -n ${module}; then
- vlc_install `dirname ${module}` `basename ${module}` ${target_plugins} "module"
- fi
-done
-
-##########################
-# Build the lib folder
-vlc_install "lib/${prefix}" "libvlc.5.dylib" "${target_lib}" "library"
-vlc_install "src/${prefix}" "libvlccore.5.dylib" "${target_lib}" "library"
-pushd `pwd` > /dev/null
-cd ${target_lib}
-ln -sf libvlc.5.dylib libvlc.dylib
-ln -sf libvlccore.5.dylib libvlccore.dylib
-popd > /dev/null
-
-##########################
-# Build the share folder
-if [ $PRODUCT != "VLC.app" ]; then
- echo "Building share folder..."
- pbxcp="/Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -resolve-src-symlinks -v -V"
- mkdir -p ${target_share}
- if test "$use_archs" = "no"; then
- $pbxcp ${VLC_BUILD_DIR}/share/lua ${target_share}
- else
- $pbxcp ${main_build_dir}/share/lua ${target_share}
- fi
-fi
+++ /dev/null
-<?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>English</string>
- <key>CFBundleExecutable</key>
- <string>Quartz</string>
- <key>CFBundleIdentifier</key>
- <string>org.videolan.vlckitframework</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>VLC</string>
- <key>CFBundlePackageType</key>
- <string>FMWK</string>
- <key>CFBundleShortVersionString</key>
- <string>0.1</string>
- <key>CFBundleVersion</key>
- <string>0.1</string>
-</dict>
-</plist>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleShortVersionString</key>
- <string>0.1</string>
- <key>CFBundleVersion</key>
- <string>0.1</string>
- <key>ProjectName</key>
- <string>VLC</string>
-</dict>
-</plist>
+++ /dev/null
-/*****************************************************************************
- * VLCAudio.m: VLCKit.framework VLCAudio implementation
- *****************************************************************************
- * Copyright (C) 2007 Faustino E. Osuna
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Faustino E. Osuna <enrique.osuna # gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCAudio.h"
-#import "VLCLibVLCBridging.h"
-
-#define VOLUME_STEP 6
-#define VOLUME_MAX 200
-#define VOLUME_MIN 0
-
-/* Notification Messages */
-NSString * VLCMediaPlayerVolumeChanged = @"VLCMediaPlayerVolumeChanged";
-
-/* libvlc event callback */
-// TODO: Callbacks
-
-
-@implementation VLCAudio
-/**
- * Use this method instead of instance directly as this one is type checked.
- */
-- (libvlc_media_player_t *)instance
-{
- return instance;
-}
-
-- (id)init
-{
- return nil;
-}
-
-- (id)initWithMediaPlayer:(VLCMediaPlayer *)mediaPlayer
-{
- self = [super init];
- if (!self)
- return nil;
- instance = [mediaPlayer libVLCMediaPlayer];
- libvlc_media_player_retain([self instance]);
- return self;
-}
-
-- (void) dealloc
-{
- libvlc_media_player_release([self instance]);
- [super dealloc];
-}
-
-- (void)setMute:(BOOL)value
-{
- libvlc_audio_set_mute([self instance], value);
-}
-
-- (BOOL)isMuted
-{
- return libvlc_audio_get_mute([self instance]);
-}
-
-- (void)setVolume:(NSUInteger)value
-{
- if (value < VOLUME_MIN)
- value = VOLUME_MIN;
- else if (value > VOLUME_MAX)
- value = VOLUME_MAX;
- libvlc_audio_set_volume([self instance], value);
-}
-
-- (void)volumeUp
-{
- NSUInteger tempVolume = [self volume] + VOLUME_STEP;
- if (tempVolume > VOLUME_MAX)
- tempVolume = VOLUME_MAX;
- else if (tempVolume < VOLUME_MIN)
- tempVolume = VOLUME_MIN;
- [self setVolume: tempVolume];
-}
-
-- (void)volumeDown
-{
- NSUInteger tempVolume = [self volume] - VOLUME_STEP;
- if (tempVolume > VOLUME_MAX)
- tempVolume = VOLUME_MAX;
- else if (tempVolume < VOLUME_MIN)
- tempVolume = VOLUME_MIN;
- [self setVolume: tempVolume];
-}
-
-- (NSUInteger)volume
-{
- return libvlc_audio_get_volume([self instance]);
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCEventManager.m: VLCKit.framework VLCEventManager implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCEventManager.h"
-#import <pthread.h>
-
-/**
- * Defines the type of interthread message on the queue.
- */
-typedef enum
-{
- VLCNotification, //< Standard NSNotification.
- VLCObjectMethodWithObjectArg, //< Method with an object argument.
- VLCObjectMethodWithArrayArg //< Method with an array argument.
-} message_type_t;
-
-/**
- * Data structured used to enqueue messages onto the queue.
- */
-typedef struct {
- id target; //< Target object that should receive the message (retained until method is called).
- SEL sel; //< A selector that identifies the message to be sent to the target.
- union u //< Object could either be a VLCNotification or other.
- {
- NSString * name; //< Name to be used for NSNotification
- id object; //< Object argument to pass to the target via the selector.
- } u;
- message_type_t type; //< Type of queued message.
-} message_t;
-
-@interface VLCEventManager (Private)
-- (void)callDelegateOfObjectAndSendNotificationWithArgs:(NSData*)data;
-- (void)callObjectMethodWithArgs:(NSData*)data;
-- (void)callDelegateOfObject:(id) aTarget withDelegateMethod:(SEL)aSelector withNotificationName:(NSString *)aNotificationName;
-- (pthread_cond_t *)signalData;
-- (pthread_mutex_t *)queueLock;
-- (NSMutableArray *)messageQueue;
-- (NSMutableArray *)pendingMessagesOnMainThread;
-- (NSLock *)pendingMessagesLock;
-
-- (void)addMessageToHandleOnMainThread:(NSData *)messageAsData;
-@end
-
-/**
- * Provides a function for the main entry point for the dispatch thread. It dispatches any messages that is queued.
- * \param user_data Pointer to the VLCEventManager instance that instiated this thread.
- */
-static void * EventDispatcherMainLoop(void * user_data)
-{
- VLCEventManager * self = user_data;
-
- for(;;)
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- message_t * message, * message_newer = NULL;
- NSData * dataMessage;
- NSInteger i;
-
- /* Sleep a bit not to flood the interface */
- usleep(300);
-
- /* Wait for some data */
-
- pthread_mutex_lock([self queueLock]);
- /* Wait until we have something on the queue */
- while( [[self messageQueue] count] <= 0)
- {
- pthread_cond_wait([self signalData], [self queueLock]);
- }
-
- //if( [[self messageQueue] count] % 100 == 0 || [[self messageQueue] count] < 100 )
- // NSLog(@"[EVENT_MANAGER] On the stack we have %d elements", [[self messageQueue] count]);
-
- /* Get the first object off the queue. */
- dataMessage = [[[self messageQueue] lastObject] retain]; // Released in 'call'
- [[self messageQueue] removeLastObject];
- message = (message_t *)[dataMessage bytes];
-
- /* Remove duplicate notifications. */
- if( message->type == VLCNotification )
- {
- for( i = [[self messageQueue] count]-1; i >= 0; i-- )
- {
- message_newer = (message_t *)[(NSData *)[[self messageQueue] objectAtIndex:i] bytes];
- if( message_newer->type == VLCNotification &&
- message_newer->target == message->target &&
- [message_newer->u.name isEqualToString:message->u.name] )
- {
- [message_newer->u.name release];
- [[self messageQueue] removeObjectAtIndex:i];
- }
- }
- }
- else if( message->type == VLCObjectMethodWithArrayArg )
- {
- NSMutableArray * newArg = nil;
-
- /* Collapse messages that takes array arg by sending one bigger array */
- for(i = [[self messageQueue] count] - 1; i >= 0; i--)
- {
- message_newer = (message_t *)[(NSData *)[[self messageQueue] objectAtIndex: i] bytes];
- if (message_newer->type == VLCObjectMethodWithArrayArg &&
- message_newer->target == message->target &&
- message_newer->sel == message->sel)
- {
- if (!newArg)
- {
- newArg = [NSMutableArray arrayWithArray:message->u.object];
- [message->u.object release];
- }
-
- [newArg addObjectsFromArray:message_newer->u.object];
- [message_newer->u.object release];
- [[self messageQueue] removeObjectAtIndex:i];
- }
- /* It shouldn be a good idea not to collapse event with other kind of event in-between.
- * This could be particulary problematic when the same object receive two related events
- * (for instance Added and Removed).
- * Ignore for now only if target is the same */
- else if( message_newer->target == message->target )
- break;
- }
-
- if (newArg)
- message->u.object = [newArg retain];
- }
-
- [self addMessageToHandleOnMainThread:dataMessage];
-
- pthread_mutex_unlock([self queueLock]);
-
-
- if( message->type == VLCNotification )
- [self performSelectorOnMainThread:@selector(callDelegateOfObjectAndSendNotificationWithArgs:)
- withObject:dataMessage
- waitUntilDone: NO];
- else
- [self performSelectorOnMainThread:@selector(callObjectMethodWithArgs:)
- withObject:dataMessage
- waitUntilDone: YES];
-
- [pool drain];
- }
- return nil;
-}
-
-@implementation VLCEventManager
-+ (id)sharedManager
-{
- static VLCEventManager *defaultManager = NULL;
-
- /* We do want a lock here to avoid leaks */
- if (!defaultManager)
- defaultManager = [[VLCEventManager alloc] init];
-
- return defaultManager;
-}
-
-- (void)dummy
-{
- /* Put Cocoa in multithreaded mode by calling a dummy function */
-}
-
-- (id)init
-{
- if(self = [super init])
- {
- if(![NSThread isMultiThreaded])
- {
- [NSThread detachNewThreadSelector:@selector(dummy) toTarget:self withObject:nil];
- NSAssert([NSThread isMultiThreaded], @"Can't put Cocoa in multithreaded mode");
- }
-
- pthread_mutex_init(&queueLock, NULL);
- pthread_cond_init(&signalData, NULL);
- pthread_create(&dispatcherThread, NULL, EventDispatcherMainLoop, self);
- messageQueue = [[NSMutableArray alloc] initWithCapacity:10];
- pendingMessagesOnMainThread = [[NSMutableArray alloc] initWithCapacity:10];
- pendingMessagesLock = [[NSLock alloc] init];
- }
- return self;
-}
-
-- (void)dealloc
-{
- pthread_kill(dispatcherThread, SIGKILL);
- pthread_join(dispatcherThread, NULL);
-
- [messageQueue release];
- [pendingMessagesOnMainThread release];
- [super dealloc];
-}
-
-- (void)callOnMainThreadDelegateOfObject:(id)aTarget withDelegateMethod:(SEL)aSelector withNotificationName:(NSString *)aNotificationName
-{
- /* Don't send on main thread before this gets sorted out */
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- message_t message =
- {
- aTarget,
- aSelector,
- [aNotificationName retain],
- VLCNotification
- };
-
- if( [NSThread isMainThread] )
- {
- NSData *nsd_message = [NSData dataWithBytes:&message length:sizeof(message_t)];
- [self addMessageToHandleOnMainThread:nsd_message];
- [self callDelegateOfObjectAndSendNotificationWithArgs:[nsd_message retain] /* released in the call */];
- }
- else
- {
- pthread_mutex_lock([self queueLock]);
- [[self messageQueue] insertObject:[NSData dataWithBytes:&message length:sizeof(message_t)] atIndex:0];
- pthread_cond_signal([self signalData]);
- pthread_mutex_unlock([self queueLock]);
- }
-
- [pool drain];
-}
-
-- (void)callOnMainThreadObject:(id)aTarget withMethod:(SEL)aSelector withArgumentAsObject:(id)arg
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- message_t message =
- {
- aTarget,
- aSelector,
- [arg retain],
- [arg isKindOfClass:[NSArray class]] ? VLCObjectMethodWithArrayArg : VLCObjectMethodWithObjectArg
- };
-
- pthread_mutex_lock([self queueLock]);
- [[self messageQueue] insertObject:[NSData dataWithBytes:&message length:sizeof(message_t)] atIndex:0];
- pthread_cond_signal([self signalData]);
- pthread_mutex_unlock([self queueLock]);
-
- [pool drain];
-}
-
-- (void)cancelCallToObject:(id)target
-{
-
- // Remove all queued message
- pthread_mutex_lock([self queueLock]);
- [pendingMessagesLock lock];
-
- NSMutableArray *queue = [self messageQueue];
- for (int i = [queue count] - 1; i >= 0; i--) {
- NSData *data = [queue objectAtIndex:i];
- message_t *message = (message_t *)[data bytes];
- if (message->target == target) {
- [queue removeObjectAtIndex:i];
- }
- }
-
- // Remove all pending messages
- NSMutableArray *messages = pendingMessagesOnMainThread;
- for (int i = [messages count] - 1; i >= 0; i--) {
- NSData *data = [messages objectAtIndex:i];
- message_t *message = (message_t *)[data bytes];
-
- if (message->target == target) {
- [messages removeObjectAtIndex:i];
-
- }
- }
-
- [pendingMessagesLock unlock];
- pthread_mutex_unlock([self queueLock]);
-
-}
-@end
-
-@implementation VLCEventManager (Private)
-
-- (void)addMessageToHandleOnMainThread:(NSData *)messageAsData
-{
- [pendingMessagesLock lock];
- [pendingMessagesOnMainThread addObject:messageAsData];
- [pendingMessagesLock unlock];
-
-}
-
-- (BOOL)markMessageHandledOnMainThreadIfExists:(NSData *)messageAsData
-{
- [pendingMessagesLock lock];
- BOOL cancelled = ![pendingMessagesOnMainThread containsObject:messageAsData];
- if (!cancelled)
- [pendingMessagesOnMainThread removeObject:messageAsData];
- [pendingMessagesLock unlock];
-
- return !cancelled;
-}
-
-- (void)callDelegateOfObjectAndSendNotificationWithArgs:(NSData*)data
-{
- message_t * message = (message_t *)[data bytes];
-
- // Check that we were not cancelled, ie, target was released
- if ([self markMessageHandledOnMainThreadIfExists:data]) {
- [self callDelegateOfObject:message->target withDelegateMethod:message->sel withNotificationName:message->u.name];
- }
-
- [message->u.name release];
- [data release];
-}
-
-- (void)callObjectMethodWithArgs:(NSData*)data
-{
- message_t * message = (message_t *)[data bytes];
-
- // Check that we were not cancelled
- if ([self markMessageHandledOnMainThreadIfExists:data]) {
- void (*method)(id, SEL, id) = (void (*)(id, SEL, id))[message->target methodForSelector: message->sel];
- method(message->target, message->sel, message->u.object);
- }
-
- [message->u.object release];
- [data release];
-}
-
-- (void)callDelegateOfObject:(id)aTarget withDelegateMethod:(SEL)aSelector withNotificationName:(NSString *)aNotificationName
-{
- [[NSNotificationCenter defaultCenter] postNotification: [NSNotification notificationWithName:aNotificationName object:aTarget]];
-
- id delegate = [aTarget delegate];
- if (!delegate || ![delegate respondsToSelector:aSelector])
- return;
-
- void (*method)(id, SEL, id) = (void (*)(id, SEL, id))[[aTarget delegate] methodForSelector: aSelector];
- method([aTarget delegate], aSelector, [NSNotification notificationWithName:aNotificationName object:aTarget]);
-}
-
-- (NSMutableArray *)messageQueue
-{
- return messageQueue;
-}
-
-- (NSMutableArray *)pendingMessagesOnMainThread
-{
- return pendingMessagesOnMainThread;
-}
-
-- (NSLock *)pendingMessagesLock
-{
- return pendingMessagesLock;
-}
-
-
-- (pthread_cond_t *)signalData
-{
- return &signalData;
-}
-
-- (pthread_mutex_t *)queueLock
-{
- return &queueLock;
-}
-@end
+++ /dev/null
-//
-// VLCExtension.m
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 1/26/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import "VLCExtension.h"
-#import <vlc_extensions.h>
-
-@implementation VLCExtension
-- (NSString *)description
-{
- return [NSString stringWithFormat:@"VLC Extension %@", [self name]];
-}
-
-- (id)initWithInstance:(struct extension_t *)instance
-{
- self = [super init];
- if (!self)
- return nil;
- _instance = instance;
- return self;
-}
-
-- (struct extension_t *)instance
-{
- return _instance;
-}
-
-- (NSString *)name
-{
- return [NSString stringWithUTF8String:_instance->psz_name];
-}
-
-- (NSString *)title
-{
- return [NSString stringWithUTF8String:_instance->psz_title];
-}
-
-@end
+++ /dev/null
-//
-// VLCExtensionsManager.m
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 1/26/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import "VLCExtensionsManager.h"
-#import "VLCExtension.h"
-#import "VLCLibrary.h"
-#import "VLCLibVLCBridging.h"
-#import <vlc_extensions.h>
-#import <vlc_input.h>
-#include <vlc_modules.h>
-
-// Here comes the nasty hack.
-#define MODULE_STRING "VLCKit"
-#import "../../../../lib/media_player_internal.h"
-#import "../../../../lib/libvlc_internal.h"
-
-static input_thread_t *libvlc_media_player_get_input_thread(libvlc_media_player_t *player)
-{
- vlc_mutex_lock(&player->input.lock);
- input_thread_t *input = player->input.p_thread;
- if(input)
- vlc_object_hold(input);
- vlc_mutex_unlock(&player->input.lock);
- return input;
-}
-
-static vlc_object_t *libvlc_get_vlc_instance(libvlc_instance_t *instance)
-{
- vlc_mutex_lock(&instance->instance_lock);
- libvlc_int_t *libvlc = instance->p_libvlc_int;
- if(libvlc)
- vlc_object_hold(libvlc);
- vlc_mutex_unlock(&instance->instance_lock);
- return VLC_OBJECT(libvlc);
-}
-
-
-#define _instance ((extensions_manager_t *)instance)
-
-@implementation VLCExtensionsManager
-static VLCExtensionsManager *sharedManager = nil;
-
-+ (VLCExtensionsManager *)sharedManager
-{
- if (!sharedManager)
- {
- /* Initialize a shared instance */
- sharedManager = [[self alloc] init];
- }
- return sharedManager;
-}
-
-- (void)dealloc
-{
- module_unneed(_instance, _instance->p_module);
- vlc_object_release(_instance);
-
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [_extensions release];
- [super dealloc];
-}
-
-- (NSArray *)extensions
-{
- if (!instance)
- {
- vlc_object_t *libvlc = libvlc_get_vlc_instance([VLCLibrary sharedInstance]);
- instance = vlc_object_create(libvlc, sizeof(extensions_manager_t));
- if (!_instance)
- {
- vlc_object_release(libvlc);
- return nil;
- }
-
- _instance->p_module = module_need(_instance, "extension", NULL, false);
- NSAssert(_instance->p_module, @"Unable to load extensions module");
-
- vlc_object_release(libvlc);
- }
-
- if (_extensions)
- return _extensions;
- _extensions = [[NSMutableArray alloc] init];
- extension_t *ext;
- vlc_mutex_lock(&_instance->lock);
- FOREACH_ARRAY(ext, _instance->extensions)
- VLCExtension *extension = [[VLCExtension alloc] initWithInstance:ext];
- [_extensions addObject:extension];
- [extension release];
- FOREACH_END()
- vlc_mutex_unlock(&_instance->lock);
- return _extensions;
-}
-
-- (void)runExtension:(VLCExtension *)extension
-{
- extension_t *ext = [extension instance];
-
- if(extension_TriggerOnly(_instance, ext))
- extension_Trigger(_instance, ext);
- else
- {
- if(!extension_IsActivated(_instance, ext))
- extension_Activate(_instance, ext);
- }
-}
-
-- (void)mediaPlayerLikelyChangedInput
-{
- input_thread_t *input = _player ? libvlc_media_player_get_input_thread([_player libVLCMediaPlayer]) : NULL;
-
- // Don't send more than appropriate
- if (_previousInput == input)
- return;
- _previousInput = input;
-
- for(VLCExtension *extension in _extensions)
- extension_SetInput(_instance, [extension instance], input);
- if (input)
- vlc_object_release(input);
-}
-
-- (void)setMediaPlayer:(VLCMediaPlayer *)player
-{
- if (_player == player)
- return;
-
- // Don't set a NULL mediaPlayer.
- // so that we always have an input around.
- if (!player)
- return;
-
- NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
- [center removeObserver:self name:VLCMediaPlayerStateChanged object:_player];
-
- [_player release];
- _player = [player retain];
-
- [self mediaPlayerLikelyChangedInput];
-
-
- if (player)
- [center addObserver:self selector:@selector(mediaPlayerLikelyChangedInput) name:VLCMediaPlayerStateChanged object:_player];
-}
-
-- (VLCMediaPlayer *)mediaPlayer
-{
- return _player;
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCLibrary.m: VLCKit.framework VLCLibrary implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCLibrary.h"
-#import "VLCLibVLCBridging.h"
-
-#if TARGET_OS_IPHONE
-# include "vlc-plugins.h"
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <vlc/libvlc_structures.h>
-
-static VLCLibrary * sharedLibrary = nil;
-
-@implementation VLCLibrary
-+ (VLCLibrary *)sharedLibrary
-{
- if (!sharedLibrary)
- {
- /* Initialize a shared instance */
- sharedLibrary = [[self alloc] init];
- }
- return sharedLibrary;
-}
-
-- (id)init
-{
- if (self = [super init])
- {
- NSArray *vlcParams = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"VLCParams"];
- if (!vlcParams) {
- NSMutableArray *defaultParams = [NSMutableArray array];
- [defaultParams addObject:@"--play-and-pause"]; // We want every movie to pause instead of stopping at eof
- [defaultParams addObject:@"--no-color"]; // Don't use color in output (Xcode doesn't show it)
- [defaultParams addObject:@"--no-video-title-show"]; // Don't show the title on overlay when starting to play
- [defaultParams addObject:@"--verbose=4"]; // Let's not wreck the logs
-#if TARGET_OS_IPHONE
- [defaultParams addObject:@"--avcodec-fast"];
- [defaultParams addObject:@"--avcodec-skiploopfilter=all"];
- [defaultParams addObject:@"--vout=vout_ios"];
- [defaultParams addObject:@"--aout=audioqueue"];
-#else
- [defaultParams addObject:@"--no-sout-keep"];
- [defaultParams addObject:@"--vout=macosx"]; // Select Mac OS X video output
- [defaultParams addObject:@"--text-renderer=quartztext"]; // our CoreText-based renderer
- [defaultParams addObject:@"--extraintf=macosx_dialog_provider"]; // Some extra dialog (login, progress) may come up from here
-#endif
- vlcParams = defaultParams;
- }
-
- NSUInteger paramNum = 0;
- NSUInteger count = [vlcParams count];
- const char *lib_vlc_params[count];
- while (paramNum < count) {
- NSString *vlcParam = [vlcParams objectAtIndex:paramNum];
- lib_vlc_params[paramNum] = [vlcParam cStringUsingEncoding:NSASCIIStringEncoding];
- paramNum++;
- }
- unsigned argc = sizeof(lib_vlc_params)/sizeof(lib_vlc_params[0]);
- instance = libvlc_new(argc, lib_vlc_params);
- NSAssert(instance, @"libvlc failed to initialize");
- }
- return self;
-}
-
-- (NSString *)version
-{
- return [NSString stringWithUTF8String:libvlc_get_version()];
-}
-
-- (NSString *)changeset
-{
- return [NSString stringWithUTF8String:libvlc_get_changeset()];
-}
-
-- (void)dealloc
-{
- if( instance )
- libvlc_release( instance );
-
- if( self == sharedLibrary )
- sharedLibrary = nil;
-
- instance = nil;
- [super dealloc];
-}
-
-@end
-
-@implementation VLCLibrary (VLCLibVLCBridging)
-+ (void *)sharedInstance
-{
- return [self sharedLibrary].instance;
-}
-
-- (void *)instance
-{
- return instance;
-}
-@end
-
+++ /dev/null
-/*****************************************************************************
- * VLCMedia.m: VLCKit.framework VLCMedia implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCMedia.h"
-#import "VLCMediaList.h"
-#import "VLCEventManager.h"
-#import "VLCLibrary.h"
-#import "VLCLibVLCBridging.h"
-#include <vlc/libvlc.h>
-
-/* Meta Dictionary Keys */
-NSString * VLCMetaInformationTitle = @"title";
-NSString * VLCMetaInformationArtist = @"artist";
-NSString * VLCMetaInformationGenre = @"genre";
-NSString * VLCMetaInformationCopyright = @"copyright";
-NSString * VLCMetaInformationAlbum = @"album";
-NSString * VLCMetaInformationTrackNumber = @"trackNumber";
-NSString * VLCMetaInformationDescription = @"description";
-NSString * VLCMetaInformationRating = @"rating";
-NSString * VLCMetaInformationDate = @"date";
-NSString * VLCMetaInformationSetting = @"setting";
-NSString * VLCMetaInformationURL = @"url";
-NSString * VLCMetaInformationLanguage = @"language";
-NSString * VLCMetaInformationNowPlaying = @"nowPlaying";
-NSString * VLCMetaInformationPublisher = @"publisher";
-NSString * VLCMetaInformationEncodedBy = @"encodedBy";
-NSString * VLCMetaInformationArtworkURL = @"artworkURL";
-NSString * VLCMetaInformationArtwork = @"artwork";
-NSString * VLCMetaInformationTrackID = @"trackID";
-
-/* Notification Messages */
-NSString * VLCMediaMetaChanged = @"VLCMediaMetaChanged";
-
-/******************************************************************************
- * @property (readwrite)
- */
-@interface VLCMedia ()
-@property (readwrite) VLCMediaState state;
-@end
-
-/******************************************************************************
- * Interface (Private)
- */
-// TODO: Documentation
-@interface VLCMedia (Private)
-/* Statics */
-+ (libvlc_meta_t)stringToMetaType:(NSString *)string;
-+ (NSString *)metaTypeToString:(libvlc_meta_t)type;
-
-/* Initializers */
-- (void)initInternalMediaDescriptor;
-
-/* Operations */
-- (void)fetchMetaInformationFromLibVLCWithType:(NSString*)metaType;
-#if !TARGET_OS_IPHONE
-- (void)fetchMetaInformationForArtWorkWithURL:(NSString *)anURL;
-- (void)setArtwork:(NSImage *)art;
-#endif
-
-- (void)parseIfNeeded;
-
-/* Callback Methods */
-- (void)parsedChanged:(NSNumber *)isParsedAsNumber;
-- (void)metaChanged:(NSString *)metaType;
-- (void)subItemAdded;
-- (void)setStateAsNumber:(NSNumber *)newStateAsNumber;
-@end
-
-static VLCMediaState libvlc_state_to_media_state[] =
-{
- [libvlc_NothingSpecial] = VLCMediaStateNothingSpecial,
- [libvlc_Stopped] = VLCMediaStateNothingSpecial,
- [libvlc_Opening] = VLCMediaStateNothingSpecial,
- [libvlc_Buffering] = VLCMediaStateBuffering,
- [libvlc_Ended] = VLCMediaStateNothingSpecial,
- [libvlc_Error] = VLCMediaStateError,
- [libvlc_Playing] = VLCMediaStatePlaying,
- [libvlc_Paused] = VLCMediaStatePlaying,
-};
-
-static inline VLCMediaState LibVLCStateToMediaState( libvlc_state_t state )
-{
- return libvlc_state_to_media_state[state];
-}
-
-/******************************************************************************
- * LibVLC Event Callback
- */
-static void HandleMediaMetaChanged(const libvlc_event_t * event, void * self)
-{
- if( event->u.media_meta_changed.meta_type == libvlc_meta_Publisher ||
- event->u.media_meta_changed.meta_type == libvlc_meta_NowPlaying )
- {
- /* Skip those meta. We don't really care about them for now.
- * And they occure a lot */
- return;
- }
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(metaChanged:)
- withArgumentAsObject:[VLCMedia metaTypeToString:event->u.media_meta_changed.meta_type]];
- [pool drain];
-}
-
-static void HandleMediaDurationChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(setLength:)
- withArgumentAsObject:[VLCTime timeWithNumber:
- [NSNumber numberWithLongLong:event->u.media_duration_changed.new_duration]]];
- [pool drain];
-}
-
-static void HandleMediaStateChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(setStateAsNumber:)
- withArgumentAsObject:[NSNumber numberWithInt:
- LibVLCStateToMediaState(event->u.media_state_changed.new_state)]];
- [pool drain];
-}
-
-static void HandleMediaSubItemAdded(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(subItemAdded)
- withArgumentAsObject:nil];
- [pool drain];
-}
-
-static void HandleMediaParsedChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(parsedChanged:)
- withArgumentAsObject:[NSNumber numberWithBool:event->u.media_parsed_changed.new_status]];
- [pool release];
-}
-
-
-/******************************************************************************
- * Implementation
- */
-@implementation VLCMedia
-+ (id)mediaWithURL:(NSURL *)anURL;
-{
- return [[[VLCMedia alloc] initWithURL:anURL] autorelease];
-}
-
-+ (id)mediaWithPath:(NSString *)aPath;
-{
- return [[[VLCMedia alloc] initWithPath:aPath] autorelease];
-}
-
-+ (id)mediaAsNodeWithName:(NSString *)aName;
-{
- return [[[VLCMedia alloc] initAsNodeWithName:aName] autorelease];
-}
-
-- (id)initWithPath:(NSString *)aPath
-{
- return [self initWithURL:[NSURL fileURLWithPath:aPath isDirectory:NO]];
-}
-
-- (id)initWithURL:(NSURL *)anURL
-{
- if (self = [super init])
- {
- p_md = libvlc_media_new_location([VLCLibrary sharedInstance],
- [[anURL absoluteString] UTF8String]);
-
- delegate = nil;
- metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
-
- // This value is set whenever the demuxer figures out what the length is.
- // TODO: Easy way to tell the length of the movie without having to instiate the demuxer. Maybe cached info?
- length = nil;
-
- [self initInternalMediaDescriptor];
- }
- return self;
-}
-
-- (id)initAsNodeWithName:(NSString *)aName
-{
- if (self = [super init])
- {
- p_md = libvlc_media_new_as_node([VLCLibrary sharedInstance],
- [aName UTF8String]);
-
- delegate = nil;
- metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
-
- // This value is set whenever the demuxer figures out what the length is.
- // TODO: Easy way to tell the length of the movie without having to instiate the demuxer. Maybe cached info?
- length = nil;
-
- [self initInternalMediaDescriptor];
- }
- return self;
-}
-
-- (void)dealloc
-{
- libvlc_event_manager_t * p_em = libvlc_media_event_manager(p_md);
- libvlc_event_detach(p_em, libvlc_MediaMetaChanged, HandleMediaMetaChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaDurationChanged, HandleMediaDurationChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaStateChanged, HandleMediaStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaSubItemAdded, HandleMediaSubItemAdded, self);
- libvlc_event_detach(p_em, libvlc_MediaParsedChanged, HandleMediaParsedChanged, self);
- [[VLCEventManager sharedManager] cancelCallToObject:self];
-
- // Testing to see if the pointer exists is not required, if the pointer is null
- // then the release message is not sent to it.
- delegate = nil;
- [length release];
- [url release];
- [subitems release];
- [metaDictionary release];
-
- libvlc_media_release( p_md );
-
- [super dealloc];
-}
-
-- (NSString *)description
-{
- NSString * result = [metaDictionary objectForKey:VLCMetaInformationTitle];
- return [NSString stringWithFormat:@"<%@ %p> %@", [self class], self, (result ? result : [url absoluteString])];
-}
-
-- (NSComparisonResult)compare:(VLCMedia *)media
-{
- if (self == media)
- return NSOrderedSame;
- if (!media)
- return NSOrderedDescending;
- return p_md == [media libVLCMediaDescriptor] ? NSOrderedSame : NSOrderedAscending;
-}
-
-@synthesize delegate;
-
-- (VLCTime *)length
-{
- if (!length)
- {
- // Try figuring out what the length is
- long long duration = libvlc_media_get_duration( p_md );
- if (duration > -1)
- {
- length = [[VLCTime timeWithNumber:[NSNumber numberWithLongLong:duration]] retain];
- return [[length retain] autorelease];
- }
- return [VLCTime nullTime];
- }
- return [[length retain] autorelease];
-}
-
-- (VLCTime *)lengthWaitUntilDate:(NSDate *)aDate
-{
- static const long long thread_sleep = 10000;
-
- if (!length)
- {
- // Force parsing of this item.
- [self parseIfNeeded];
-
- // wait until we are preparsed
- while (!length && !libvlc_media_is_parsed(p_md) && [aDate timeIntervalSinceNow] > 0)
- {
- usleep( thread_sleep );
- }
-
- // So we're done waiting, but sometimes we trap the fact that the parsing
- // was done before the length gets assigned, so lets go ahead and assign
- // it ourselves.
- if (!length)
- return [self length];
- }
-
- return [[length retain] autorelease];
-}
-
-- (BOOL)isParsed
-{
- return isParsed;
-}
-
-- (void)parse
-{
- libvlc_media_parse_async(p_md);
-}
-
-- (void)addOptions:(NSDictionary*)options
-{
- if (p_md)
- {
- for (NSString * key in [options allKeys])
- {
- if ([options objectForKey:key] != [NSNull null])
- libvlc_media_add_option(p_md, [[NSString stringWithFormat:@"%@=%@", key, [options objectForKey:key]] UTF8String]);
- else
- libvlc_media_add_option(p_md, [[NSString stringWithFormat:@"%@", key] UTF8String]);
- }
- }
-}
-
-- (NSDictionary*) stats
-{
- if(!p_md)
- return NULL;
-
- NSMutableDictionary *d = [NSMutableDictionary dictionary];
- libvlc_media_stats_t p_stats;
- libvlc_media_get_stats(p_md, &p_stats);
-
- [d setObject:[NSNumber numberWithFloat: p_stats.f_demux_bitrate] forKey:@"demuxBitrate"];
- [d setObject:[NSNumber numberWithFloat: p_stats.f_input_bitrate] forKey:@"inputBitrate"];
- [d setObject:[NSNumber numberWithFloat: p_stats.f_send_bitrate] forKey:@"sendBitrate"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_decoded_audio] forKey:@"decodedAudio"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_decoded_video] forKey:@"decodedVideo"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_demux_corrupted] forKey:@"demuxCorrupted"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_demux_discontinuity] forKey:@"demuxDiscontinuity"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_demux_read_bytes] forKey:@"demuxReadBytes"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_displayed_pictures] forKey:@"displayedPictures"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_lost_abuffers] forKey:@"lostAbuffers"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_lost_pictures] forKey:@"lostPictures"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_played_abuffers] forKey:@"playedAbuffers"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_read_bytes] forKey:@"readBytes"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_sent_bytes] forKey:@"sentBytes"];
- [d setObject:[NSNumber numberWithInt: p_stats.i_sent_packets] forKey:@"sentPackets"];
-
- return d;
-}
-
-NSString *VLCMediaTracksInformationCodec = @"codec"; // NSNumber
-NSString *VLCMediaTracksInformationId = @"id"; // NSNumber
-NSString *VLCMediaTracksInformationType = @"type"; // NSString
-
-NSString *VLCMediaTracksInformationTypeAudio = @"audio";
-NSString *VLCMediaTracksInformationTypeVideo = @"video";
-NSString *VLCMediaTracksInformationTypeText = @"text";
-NSString *VLCMediaTracksInformationTypeUnknown = @"unknown";
-
-NSString *VLCMediaTracksInformationCodecProfile = @"profile"; // NSNumber
-NSString *VLCMediaTracksInformationCodecLevel = @"level"; // NSNumber
-
-NSString *VLCMediaTracksInformationAudioChannelsNumber = @"channelsNumber"; // NSNumber
-NSString *VLCMediaTracksInformationAudioRate = @"rate"; // NSNumber
-
-NSString *VLCMediaTracksInformationVideoHeight = @"height"; // NSNumber
-NSString *VLCMediaTracksInformationVideoWidth = @"width"; // NSNumber
-
-- (NSArray *)tracksInformation
-{
- // Trigger parsing if needed
- [self parseIfNeeded];
-
- libvlc_media_track_info_t *tracksInfo;
- int count = libvlc_media_get_tracks_info(p_md, &tracksInfo);
- NSMutableArray *array = [NSMutableArray array];
- for (int i = 0; i < count; i++) {
- NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithUnsignedInt:tracksInfo[i].i_codec], VLCMediaTracksInformationCodec,
- [NSNumber numberWithInt:tracksInfo[i].i_id], VLCMediaTracksInformationId,
- [NSNumber numberWithInt:tracksInfo[i].i_profile], VLCMediaTracksInformationCodecProfile,
- [NSNumber numberWithInt:tracksInfo[i].i_level], VLCMediaTracksInformationCodecLevel,
- nil];
-
- NSString *type;
- switch (tracksInfo[i].i_type) {
- case libvlc_track_audio:
- type = VLCMediaTracksInformationTypeAudio;
- NSNumber *level = [NSNumber numberWithUnsignedInt:tracksInfo[i].u.audio.i_channels];
- NSNumber *rate = [NSNumber numberWithUnsignedInt:tracksInfo[i].u.audio.i_rate];
- [dictionary setObject:level forKey:VLCMediaTracksInformationAudioChannelsNumber];
- [dictionary setObject:rate forKey:VLCMediaTracksInformationAudioRate];
- break;
- case libvlc_track_video:
- type = VLCMediaTracksInformationTypeVideo;
- NSNumber *width = [NSNumber numberWithUnsignedInt:tracksInfo[i].u.video.i_width];
- NSNumber *height = [NSNumber numberWithUnsignedInt:tracksInfo[i].u.video.i_height];
- [dictionary setObject:width forKey:VLCMediaTracksInformationVideoWidth];
- [dictionary setObject:height forKey:VLCMediaTracksInformationVideoHeight];
- break;
- case libvlc_track_text:
- type = VLCMediaTracksInformationTypeText;
- [dictionary setObject:VLCMediaTracksInformationTypeText forKey:VLCMediaTracksInformationType];
- break;
- case libvlc_track_unknown:
- default:
- type = VLCMediaTracksInformationTypeUnknown;
- break;
- }
- [dictionary setValue:type forKey:VLCMediaTracksInformationType];
-
- [array addObject:dictionary];
- }
- free(tracksInfo);
- return array;
-}
-
-
-@synthesize url;
-@synthesize subitems;
-@synthesize metaDictionary;
-@synthesize state;
-
-@end
-
-/******************************************************************************
- * Implementation VLCMedia (LibVLCBridging)
- */
-@implementation VLCMedia (LibVLCBridging)
-
-+ (id)mediaWithLibVLCMediaDescriptor:(void *)md
-{
- return [[[VLCMedia alloc] initWithLibVLCMediaDescriptor:md] autorelease];
-}
-
-- (id)initWithLibVLCMediaDescriptor:(void *)md
-{
- if (self = [super init])
- {
- libvlc_media_retain( md );
- p_md = md;
-
- metaDictionary = [[NSMutableDictionary alloc] initWithCapacity:3];
- [self initInternalMediaDescriptor];
- }
- return self;
-}
-
-- (void *)libVLCMediaDescriptor
-{
- return p_md;
-}
-
-+ (id)mediaWithMedia:(VLCMedia *)media andLibVLCOptions:(NSDictionary *)options
-{
- libvlc_media_t * p_md;
- p_md = libvlc_media_duplicate( [media libVLCMediaDescriptor] );
-
- for( NSString * key in [options allKeys] )
- {
- if ( [options objectForKey:key] != [NSNull null] )
- libvlc_media_add_option(p_md, [[NSString stringWithFormat:@"%@=%@", key, [options objectForKey:key]] UTF8String]);
- else
- libvlc_media_add_option(p_md, [[NSString stringWithFormat:@"%@", key] UTF8String]);
-
- }
- return [VLCMedia mediaWithLibVLCMediaDescriptor:p_md];
-}
-
-@end
-
-/******************************************************************************
- * Implementation VLCMedia (Private)
- */
-@implementation VLCMedia (Private)
-
-+ (libvlc_meta_t)stringToMetaType:(NSString *)string
-{
- static NSDictionary * stringToMetaDictionary = nil;
- // TODO: Thread safe-ize
- if( !stringToMetaDictionary )
- {
-#define VLCStringToMeta( name ) [NSNumber numberWithInt: libvlc_meta_##name], VLCMetaInformation##name
- stringToMetaDictionary =
- [[NSDictionary dictionaryWithObjectsAndKeys:
- VLCStringToMeta(Title),
- VLCStringToMeta(Artist),
- VLCStringToMeta(Genre),
- VLCStringToMeta(Copyright),
- VLCStringToMeta(Album),
- VLCStringToMeta(TrackNumber),
- VLCStringToMeta(Description),
- VLCStringToMeta(Rating),
- VLCStringToMeta(Date),
- VLCStringToMeta(Setting),
- VLCStringToMeta(URL),
- VLCStringToMeta(Language),
- VLCStringToMeta(NowPlaying),
- VLCStringToMeta(Publisher),
- VLCStringToMeta(ArtworkURL),
- VLCStringToMeta(TrackID),
- nil] retain];
-#undef VLCStringToMeta
- }
- NSNumber * number = [stringToMetaDictionary objectForKey:string];
- return number ? [number intValue] : -1;
-}
-
-+ (NSString *)metaTypeToString:(libvlc_meta_t)type
-{
-#define VLCMetaToString( name, type ) if (libvlc_meta_##name == type) return VLCMetaInformation##name;
- VLCMetaToString(Title, type);
- VLCMetaToString(Artist, type);
- VLCMetaToString(Genre, type);
- VLCMetaToString(Copyright, type);
- VLCMetaToString(Album, type);
- VLCMetaToString(TrackNumber, type);
- VLCMetaToString(Description, type);
- VLCMetaToString(Rating, type);
- VLCMetaToString(Date, type);
- VLCMetaToString(Setting, type);
- VLCMetaToString(URL, type);
- VLCMetaToString(Language, type);
- VLCMetaToString(NowPlaying, type);
- VLCMetaToString(Publisher, type);
- VLCMetaToString(ArtworkURL, type);
- VLCMetaToString(TrackID, type);
-#undef VLCMetaToString
- return nil;
-}
-
-- (void)initInternalMediaDescriptor
-{
- char * p_url = libvlc_media_get_mrl( p_md );
-
- url = [[NSURL URLWithString:[NSString stringWithUTF8String:p_url]] retain];
- if( !url ) /* Attempt to interpret as a file path then */
- url = [[NSURL fileURLWithPath:[NSString stringWithUTF8String:p_url]] retain];
- free( p_url );
-
- libvlc_media_set_user_data( p_md, (void*)self );
-
- libvlc_event_manager_t * p_em = libvlc_media_event_manager( p_md );
- libvlc_event_attach(p_em, libvlc_MediaMetaChanged, HandleMediaMetaChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaDurationChanged, HandleMediaDurationChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaStateChanged, HandleMediaStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaSubItemAdded, HandleMediaSubItemAdded, self);
- libvlc_event_attach(p_em, libvlc_MediaParsedChanged, HandleMediaParsedChanged, self);
-
- libvlc_media_list_t * p_mlist = libvlc_media_subitems( p_md );
-
- if (!p_mlist)
- subitems = nil;
- else
- {
- subitems = [[VLCMediaList mediaListWithLibVLCMediaList:p_mlist] retain];
- libvlc_media_list_release( p_mlist );
- }
-
- isParsed = libvlc_media_is_parsed(p_md);
- state = LibVLCStateToMediaState(libvlc_media_get_state( p_md ));
-}
-
-- (void)fetchMetaInformationFromLibVLCWithType:(NSString *)metaType
-{
- char * psz_value = libvlc_media_get_meta( p_md, [VLCMedia stringToMetaType:metaType] );
- NSString * newValue = psz_value ? [NSString stringWithUTF8String: psz_value] : nil;
- NSString * oldValue = [metaDictionary valueForKey:metaType];
- free(psz_value);
-
- if ( newValue != oldValue && !(oldValue && newValue && [oldValue compare:newValue] == NSOrderedSame) )
- {
- // Only fetch the art if needed. (ie, create the NSImage, if it was requested before)
- if (isArtFetched && [metaType isEqualToString:VLCMetaInformationArtworkURL])
- {
- [NSThread detachNewThreadSelector:@selector(fetchMetaInformationForArtWorkWithURL:)
- toTarget:self
- withObject:newValue];
- }
-
- [metaDictionary setValue:newValue forKeyPath:metaType];
- }
-}
-
-#if !TARGET_OS_IPHONE
-- (void)fetchMetaInformationForArtWorkWithURL:(NSString *)anURL
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- NSImage * art = nil;
-
- if( anURL )
- {
- // Go ahead and load up the art work
- NSURL * artUrl = [NSURL URLWithString:[anURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
- // Don't attempt to fetch artwork from remote. Core will do that alone
- if ([artUrl isFileURL])
- art = [[[NSImage alloc] initWithContentsOfURL:artUrl] autorelease];
- }
-
- // If anything was found, lets save it to the meta data dictionary
- [self performSelectorOnMainThread:@selector(setArtwork:) withObject:art waitUntilDone:NO];
-
- [pool release];
-}
-
-- (void)setArtwork:(NSImage *)art
-{
- if (!art)
- {
- [metaDictionary removeObjectForKey:@"artwork"];
- return;
- }
-
- [metaDictionary setObject:art forKey:@"artwork"];
-}
-#endif
-
-- (void)parseIfNeeded
-{
- if (![self isParsed])
- [self parse];
-}
-
-- (void)metaChanged:(NSString *)metaType
-{
- [self fetchMetaInformationFromLibVLCWithType:metaType];
-}
-
-- (void)subItemAdded
-{
- if( subitems )
- return; /* Nothing to do */
-
- libvlc_media_list_t * p_mlist = libvlc_media_subitems( p_md );
-
- NSAssert( p_mlist, @"The mlist shouldn't be nil, we are receiving a subItemAdded");
-
- [self willChangeValueForKey:@"subitems"];
- subitems = [[VLCMediaList mediaListWithLibVLCMediaList:p_mlist] retain];
- [self didChangeValueForKey:@"subitems"];
- libvlc_media_list_release( p_mlist );
-}
-
-- (void)parsedChanged:(NSNumber *)isParsedAsNumber
-{
- [self willChangeValueForKey:@"parsed"];
- isParsed = [isParsedAsNumber boolValue];
- [self didChangeValueForKey:@"parsed"];
-
- // FIXME: Probably don't even call this if there is no delegate.
- if (!delegate || !isParsed)
- return;
-
- if ([delegate respondsToSelector:@selector(mediaDidFinishParsing:)]) {
- [delegate mediaDidFinishParsing:self];
- }
-}
-
-- (void)setStateAsNumber:(NSNumber *)newStateAsNumber
-{
- [self setState: [newStateAsNumber intValue]];
-}
-
-#if TARGET_OS_IPHONE
-- (NSDictionary *)metaDictionary
-{
- if (!areOthersMetaFetched) {
- areOthersMetaFetched = YES;
- /* Force VLCMetaInformationTitle, that will trigger preparsing
- * And all the other meta will be added through the libvlc event system */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationTitle];
-
- }
- if (!isArtURLFetched)
- {
- isArtURLFetched = YES;
- /* Force isArtURLFetched, that will trigger artwork download eventually
- * And all the other meta will be added through the libvlc event system */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL];
- }
- return metaDictionary;
-}
-
-#else
-
-- (id)valueForKeyPath:(NSString *)keyPath
-{
- if( !isArtFetched && [keyPath isEqualToString:@"metaDictionary.artwork"])
- {
- isArtFetched = YES;
- /* Force the retrieval of the artwork now that someone asked for it */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL];
- }
- else if( !areOthersMetaFetched && [keyPath hasPrefix:@"metaDictionary."])
- {
- areOthersMetaFetched = YES;
- /* Force VLCMetaInformationTitle, that will trigger preparsing
- * And all the other meta will be added through the libvlc event system */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationTitle];
-
- }
- else if( !isArtURLFetched && [keyPath hasPrefix:@"metaDictionary.artworkURL"])
- {
- isArtURLFetched = YES;
- /* Force isArtURLFetched, that will trigger artwork download eventually
- * And all the other meta will be added through the libvlc event system */
- [self fetchMetaInformationFromLibVLCWithType: VLCMetaInformationArtworkURL];
- }
- return [super valueForKeyPath:keyPath];
-}
-#endif
-@end
-
-/******************************************************************************
- * Implementation VLCMedia (VLCMediaPlayerBridging)
- */
-
-@implementation VLCMedia (VLCMediaPlayerBridging)
-
-- (void)setLength:(VLCTime *)value
-{
- if (length && value && [length compare:value] == NSOrderedSame)
- return;
-
- [length release];
- length = value ? [value retain] : nil;
-}
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaDiscoverer.m: VLCKit.framework VLCMediaDiscoverer implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCMediaDiscoverer.h"
-#import "VLCLibrary.h"
-#import "VLCLibVLCBridging.h"
-#import "VLCEventManager.h"
-
-#include <vlc/libvlc.h>
-
-static NSMutableArray * availableMediaDiscoverer = nil; // Global list of media discoverers
-
-/**
- * Declares call back functions to be used with libvlc event callbacks.
- */
-@interface VLCMediaDiscoverer (Private)
-/**
- * TODO: Documention
- */
-- (void)mediaDiscovererStarted;
-
-/**
- * TODO: Documention
- */
-- (void)mediaDiscovererEnded;
-@end
-
-/* libvlc event callback */
-static void HandleMediaDiscovererStarted(const libvlc_event_t * event, void * user_data)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- id self = user_data;
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaDiscovererStarted)
- withArgumentAsObject:nil];
- [pool drain];
-}
-
-static void HandleMediaDiscovererEnded( const libvlc_event_t * event, void * user_data)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- id self = user_data;
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaDiscovererEnded)
- withArgumentAsObject:nil];
- [pool drain];
-}
-
-
-@implementation VLCMediaDiscoverer
-+ (NSArray *)availableMediaDiscoverer
-{
- if( !availableMediaDiscoverer )
- {
- availableMediaDiscoverer = [[NSArray arrayWithObjects:
- [[[VLCMediaDiscoverer alloc] initWithName:@"sap"] autorelease],
- [[[VLCMediaDiscoverer alloc] initWithName:@"upnp"] autorelease],
- [[[VLCMediaDiscoverer alloc] initWithName:@"freebox"] autorelease],
- [[[VLCMediaDiscoverer alloc] initWithName:@"video_dir"] autorelease], nil] retain];
- }
- return availableMediaDiscoverer;
-}
-
-- (id)initWithName:(NSString *)aServiceName
-{
- if (self = [super init])
- {
- localizedName = nil;
- discoveredMedia = nil;
- mdis = libvlc_media_discoverer_new_from_name([VLCLibrary sharedInstance],
- [aServiceName UTF8String]);
- NSAssert(mdis, @"No such media discoverer");
- libvlc_event_manager_t * p_em = libvlc_media_discoverer_event_manager(mdis);
- libvlc_event_attach(p_em, libvlc_MediaDiscovererStarted, HandleMediaDiscovererStarted, self);
- libvlc_event_attach(p_em, libvlc_MediaDiscovererEnded, HandleMediaDiscovererEnded, self);
-
- running = libvlc_media_discoverer_is_running(mdis);
- }
- return self;
-}
-
-- (void)dealloc
-{
- libvlc_event_manager_t *em = libvlc_media_list_event_manager(mdis);
- libvlc_event_detach(em, libvlc_MediaDiscovererStarted, HandleMediaDiscovererStarted, self);
- libvlc_event_detach(em, libvlc_MediaDiscovererEnded, HandleMediaDiscovererEnded, self);
- [[VLCEventManager sharedManager] cancelCallToObject:self];
-
- [localizedName release];
- [discoveredMedia release];
- libvlc_media_discoverer_release( mdis );
- [super dealloc];
-}
-
-- (VLCMediaList *) discoveredMedia
-{
- if( discoveredMedia )
- return discoveredMedia;
-
- libvlc_media_list_t * p_mlist = libvlc_media_discoverer_media_list( mdis );
- VLCMediaList * ret = [VLCMediaList mediaListWithLibVLCMediaList:p_mlist];
- libvlc_media_list_release( p_mlist );
-
- discoveredMedia = [ret retain];
- return discoveredMedia;
-}
-
-- (NSString *)localizedName
-{
- if ( localizedName )
- return localizedName;
-
- char * name = libvlc_media_discoverer_localized_name( mdis );
- if (name)
- {
- localizedName = [[NSString stringWithUTF8String:name] retain];
- free( name );
- }
- return localizedName;
-}
-
-- (BOOL)isRunning
-{
- return running;
-}
-@end
-
-@implementation VLCMediaDiscoverer (Private)
-- (void)mediaDiscovererStarted
-{
- [self willChangeValueForKey:@"running"];
- running = YES;
- [self didChangeValueForKey:@"running"];
-}
-
-- (void)mediaDiscovererEnded
-{
- [self willChangeValueForKey:@"running"];
- running = NO;
- [self didChangeValueForKey:@"running"];
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaLibrary.m: VLCKit.framework VLCMediaLibrary implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Cocoa/Cocoa.h>
-#import "VLCMediaLibrary.h"
-#import "VLCLibrary.h"
-#import "VLCLibVLCBridging.h"
-
-#include <vlc/libvlc.h>
-
-@implementation VLCMediaLibrary
-+ (id)sharedMediaLibrary
-{
- static VLCMediaLibrary * sharedMediaLibrary = nil;
- if( !sharedMediaLibrary )
- {
- sharedMediaLibrary = [[VLCMediaLibrary alloc] init];
- }
- return sharedMediaLibrary;
-}
-
-- (id)init
-{
- if (self = [super init])
- {
- mlib = libvlc_media_library_new( [VLCLibrary sharedInstance]);
-
- libvlc_media_library_load( mlib );
-
- allMedia = nil;
- }
- return self;
-}
-
-- (void)dealloc
-{
- [allMedia release];
-
- libvlc_media_library_release(mlib);
- mlib = nil; // make sure that the pointer is dead
-
- [super dealloc];
-}
-
-- (VLCMediaList *)allMedia
-{
- if( !allMedia )
- {
- libvlc_media_list_t * p_mlist = libvlc_media_library_media_list( mlib );
- allMedia = [[VLCMediaList mediaListWithLibVLCMediaList:p_mlist] retain];
- libvlc_media_list_release(p_mlist);
- }
- return allMedia;
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaList.m: VLCKit.framework VLCMediaList implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCMediaList.h"
-#import "VLCLibrary.h"
-#import "VLCEventManager.h"
-#import "VLCLibVLCBridging.h"
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <vlc/libvlc.h>
-
-/* Notification Messages */
-NSString * VLCMediaListItemAdded = @"VLCMediaListItemAdded";
-NSString * VLCMediaListItemDeleted = @"VLCMediaListItemDeleted";
-
-// TODO: Documentation
-@interface VLCMediaList (Private)
-/* Initializers */
-- (void)initInternalMediaList;
-
-/* Libvlc event bridges */
-- (void)mediaListItemAdded:(NSArray *)args;
-- (void)mediaListItemRemoved:(NSNumber *)index;
-@end
-
-/* libvlc event callback */
-static void HandleMediaListItemAdded(const libvlc_event_t * event, void * user_data)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- id self = user_data;
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaListItemAdded:)
- withArgumentAsObject:[NSArray arrayWithObject:[NSDictionary dictionaryWithObjectsAndKeys:
- [VLCMedia mediaWithLibVLCMediaDescriptor:event->u.media_list_item_added.item], @"media",
- [NSNumber numberWithInt:event->u.media_list_item_added.index], @"index",
- nil]]];
- [pool drain];
-}
-
-static void HandleMediaListItemDeleted( const libvlc_event_t * event, void * user_data)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- id self = user_data;
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaListItemRemoved:)
- withArgumentAsObject:[NSNumber numberWithInt:event->u.media_list_item_deleted.index]];
- [pool drain];
-}
-
-@implementation VLCMediaList
-- (id)init
-{
- if (self = [super init])
- {
- // Create a new libvlc media list instance
- p_mlist = libvlc_media_list_new([VLCLibrary sharedInstance]);
-
- // Initialize internals to defaults
- cachedMedia = [[NSMutableArray alloc] init];
- [self initInternalMediaList];
- }
- return self;
-}
-
-- (void)dealloc
-{
- libvlc_event_manager_t *em = libvlc_media_list_event_manager(p_mlist);
- libvlc_event_detach(em, libvlc_MediaListItemDeleted, HandleMediaListItemDeleted, self);
- libvlc_event_detach(em, libvlc_MediaListItemAdded, HandleMediaListItemAdded, self);
- [[VLCEventManager sharedManager] cancelCallToObject:self];
-
- // Release allocated memory
- delegate = nil;
-
- libvlc_media_list_release( p_mlist );
- [cachedMedia release];
- [super dealloc];
-}
-
-- (NSString *)description
-{
- NSMutableString * content = [NSMutableString string];
- int i;
- for( i = 0; i < [self count]; i++)
- {
- [content appendFormat:@"%@\n", [self mediaAtIndex: i]];
- }
- return [NSString stringWithFormat:@"<%@ %p> {\n%@}", [self class], self, content];
-}
-
-- (void)lock
-{
- libvlc_media_list_lock( p_mlist );
-}
-
-- (void)unlock
-{
- libvlc_media_list_unlock( p_mlist );
-}
-
-- (NSInteger)addMedia:(VLCMedia *)media
-{
- int index = [self count];
- [self insertMedia:media atIndex:index];
- return index;
-}
-
-- (void)insertMedia:(VLCMedia *)media atIndex: (NSInteger)index
-{
- [media retain];
-
- // Add it to the libvlc's medialist
- libvlc_media_list_insert_media(p_mlist, [media libVLCMediaDescriptor], index);
-}
-
-- (void)removeMediaAtIndex:(NSInteger)index
-{
- [[self mediaAtIndex:index] release];
-
- // Remove it from the libvlc's medialist
- libvlc_media_list_remove_index(p_mlist, index);
-}
-
-- (VLCMedia *)mediaAtIndex:(NSInteger)index
-{
- return [cachedMedia objectAtIndex:index];
-}
-
-- (NSInteger)indexOfMedia:(VLCMedia *)media
-{
- NSInteger result = libvlc_media_list_index_of_item(p_mlist, [media libVLCMediaDescriptor]);
- return result;
-}
-
-/* KVC Compliance: For the @"media" key */
-- (NSInteger)countOfMedia
-{
- return [self count];
-}
-
-- (id)objectInMediaAtIndex:(NSUInteger)i
-{
- return [self mediaAtIndex:i];
-}
-
-- (NSInteger)count
-{
- return [cachedMedia count];
-}
-
-- (void)insertObject:(id)object inMediaAtIndex:(NSUInteger)i
-{
- [self insertMedia:object atIndex:i];
-}
-
-- (void)removeObjectFromMediaAtIndex:(NSUInteger)i
-{
- [self removeMediaAtIndex:i];
-}
-
-@synthesize delegate;
-
-- (BOOL)isReadOnly
-{
- return libvlc_media_list_is_readonly( p_mlist );
-}
-
-@end
-
-@implementation VLCMediaList (LibVLCBridging)
-+ (id)mediaListWithLibVLCMediaList:(void *)p_new_mlist;
-{
- return [[[VLCMediaList alloc] initWithLibVLCMediaList:p_new_mlist] autorelease];
-}
-
-- (id)initWithLibVLCMediaList:(void *)p_new_mlist;
-{
- if( self = [super init] )
- {
- p_mlist = p_new_mlist;
- libvlc_media_list_retain( p_mlist );
- libvlc_media_list_lock( p_mlist );
- cachedMedia = [[NSMutableArray alloc] initWithCapacity:libvlc_media_list_count(p_mlist)];
-
- NSUInteger i, count = libvlc_media_list_count(p_mlist);
- for( i = 0; i < count; i++ )
- {
- libvlc_media_t * p_md = libvlc_media_list_item_at_index(p_mlist, i);
- [cachedMedia addObject:[VLCMedia mediaWithLibVLCMediaDescriptor:p_md]];
- libvlc_media_release(p_md);
- }
- [self initInternalMediaList];
- libvlc_media_list_unlock(p_mlist);
- }
- return self;
-}
-
-- (void *)libVLCMediaList
-{
- return p_mlist;
-}
-@end
-
-@implementation VLCMediaList (Private)
-- (void)initInternalMediaList
-{
- // Add event callbacks
- libvlc_event_manager_t * p_em = libvlc_media_list_event_manager(p_mlist);
- libvlc_event_attach( p_em, libvlc_MediaListItemAdded, HandleMediaListItemAdded, self);
- libvlc_event_attach( p_em, libvlc_MediaListItemDeleted, HandleMediaListItemDeleted, self);
-}
-
-- (void)mediaListItemAdded:(NSArray *)arrayOfArgs
-{
- /* We hope to receive index in a nide range, that could change one day */
- NSInteger start = [[[arrayOfArgs objectAtIndex: 0] objectForKey:@"index"] intValue];
- NSInteger end = [[[arrayOfArgs objectAtIndex: [arrayOfArgs count]-1] objectForKey:@"index"] intValue];
- NSRange range = NSMakeRange(start, end-start);
-
- [self willChange:NSKeyValueChangeInsertion valuesAtIndexes:[NSIndexSet indexSetWithIndexesInRange:range] forKey:@"media"];
- for( NSDictionary * args in arrayOfArgs )
- {
- NSInteger index = [[args objectForKey:@"index"] intValue];
- VLCMedia * media = [args objectForKey:@"media"];
- /* Sanity check */
- if( index && index > [cachedMedia count] )
- index = [cachedMedia count];
- [cachedMedia insertObject:media atIndex:index];
- }
- [self didChange:NSKeyValueChangeInsertion valuesAtIndexes:[NSIndexSet indexSetWithIndexesInRange:range] forKey:@"media"];
-
- // Post the notification
-// [[NSNotificationCenter defaultCenter] postNotificationName:VLCMediaListItemAdded
-// object:self
-// userInfo:args];
-
- // Let the delegate know that the item was added
- // if (delegate && [delegate respondsToSelector:@selector(mediaList:mediaAdded:atIndex:)])
- // [delegate mediaList:self mediaAdded:media atIndex:index];
-}
-
-- (void)mediaListItemRemoved:(NSNumber *)index
-{
- [self willChange:NSKeyValueChangeInsertion valuesAtIndexes:[NSIndexSet indexSetWithIndex:[index intValue]] forKey:@"media"];
- [cachedMedia removeObjectAtIndex:[index intValue]];
- [self didChange:NSKeyValueChangeInsertion valuesAtIndexes:[NSIndexSet indexSetWithIndex:[index intValue]] forKey:@"media"];
-
- // Post the notification
- [[NSNotificationCenter defaultCenter] postNotificationName:VLCMediaListItemDeleted
- object:self
- userInfo:[NSDictionary dictionaryWithObjectsAndKeys:
- index, @"index",
- nil]];
-
- // Let the delegate know that the item is being removed
- if (delegate && [delegate respondsToSelector:@selector(mediaList:mediaRemovedAtIndex:)])
- [delegate mediaList:self mediaRemovedAtIndex:[index intValue]];
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaListPlayer.m: VLCKit.framework VLCMediaListPlayer implementation
- *****************************************************************************
- * Copyright (C) 2009 Pierre d'Herbemont
- * Partial Copyright (C) 2009 Felix Paul Kühne
- * Copyright (C) 2009 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- * Felix Paul Kühne <fkuehne # videolan.org
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCMediaListPlayer.h"
-#import "VLCMedia.h"
-#import "VLCMediaPlayer.h"
-#import "VLCMediaList.h"
-#import "VLCLibVLCBridging.h"
-
-@implementation VLCMediaListPlayer
-- (id)init
-{
- if (self = [super init])
- {
- _mediaPlayer = [[VLCMediaPlayer alloc] init];
-
- instance = libvlc_media_list_player_new([VLCLibrary sharedInstance]);
- libvlc_media_list_player_set_media_player(instance, [_mediaPlayer libVLCMediaPlayer]);
- }
- return self;
-}
-
-- (void)dealloc
-{
- libvlc_media_list_player_release(instance);
- [_mediaPlayer release];
- [_rootMedia release];
- [_mediaList release];
- [super dealloc];
-}
-- (VLCMediaPlayer *)mediaPlayer
-{
- return _mediaPlayer;
-}
-
-- (void)setMediaList:(VLCMediaList *)mediaList
-{
- if (_mediaList == mediaList)
- return;
- [_mediaList release];
- _mediaList = [mediaList retain];
-
- libvlc_media_list_player_set_media_list(instance, [mediaList libVLCMediaList]);
- [self willChangeValueForKey:@"rootMedia"];
- [_rootMedia release];
- _rootMedia = nil;
- [self didChangeValueForKey:@"rootMedia"];
-}
-
-- (VLCMediaList *)mediaList
-{
- return _mediaList;
-}
-
-- (void)setRootMedia:(VLCMedia *)media
-{
- if (_rootMedia == media)
- return;
- [_rootMedia release];
- _rootMedia = nil;
-
- VLCMediaList *mediaList = [[VLCMediaList alloc] init];
- if (media)
- [mediaList addMedia:media];
-
- // This will clean rootMedia
- [self setMediaList:mediaList];
-
- // Thus set rootMedia here.
- _rootMedia = [media retain];
-
- [mediaList release];
-}
-
-- (VLCMedia *)rootMedia
-{
- return _rootMedia;
-}
-
-- (void)playMedia:(VLCMedia *)media
-{
- libvlc_media_list_player_play_item(instance, [media libVLCMediaDescriptor]);
-}
-
-- (void)play
-{
- libvlc_media_list_player_play(instance);
-}
-
-- (void)stop
-{
- libvlc_media_list_player_stop(instance);
-}
-
-- (void)setRepeatMode:(VLCRepeatMode)repeatMode
-{
- libvlc_playback_mode_t mode;
- switch (repeatMode) {
- case VLCRepeatAllItems:
- mode = libvlc_playback_mode_loop;
- break;
- case VLCDoNotRepeat:
- mode = libvlc_playback_mode_default;
- break;
- case VLCRepeatCurrentItem:
- mode = libvlc_playback_mode_repeat;
- break;
- default:
- NSAssert(0, @"Should not be reached");
- break;
- }
- libvlc_media_list_player_set_playback_mode(instance, mode);
-
- _repeatMode = repeatMode;
-}
-
-- (VLCRepeatMode)repeatMode
-{
- return _repeatMode;
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCMediaPlayer.m: VLCKit.framework VLCMediaPlayer implementation
- *****************************************************************************
- * Copyright (C) 2007-2009 Pierre d'Herbemont
- * Copyright (C) 2007-2009 VLC authors and VideoLAN
- * Partial Copyright (C) 2009 Felix Paul Kühne
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- * Faustion Osuna <enrique.osuna # gmail.com>
- * Felix Paul Kühne <fkuehne # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCLibrary.h"
-#import "VLCMediaPlayer.h"
-#import "VLCEventManager.h"
-#import "VLCLibVLCBridging.h"
-#if !TARGET_OS_IPHONE
-# import "VLCVideoView.h"
-#endif
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#if !TARGET_OS_IPHONE
-/* prevent system sleep */
-# import <CoreServices/CoreServices.h>
-/* FIXME: Ugly hack! */
-# ifdef __x86_64__
-# import <CoreServices/../Frameworks/OSServices.framework/Headers/Power.h>
-# endif
-#endif
-
-#include <vlc/vlc.h>
-
-/* Notification Messages */
-NSString * VLCMediaPlayerTimeChanged = @"VLCMediaPlayerTimeChanged";
-NSString * VLCMediaPlayerStateChanged = @"VLCMediaPlayerStateChanged";
-
-NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state)
-{
- static NSString * stateToStrings[] = {
- [VLCMediaPlayerStateStopped] = @"VLCMediaPlayerStateStopped",
- [VLCMediaPlayerStateOpening] = @"VLCMediaPlayerStateOpening",
- [VLCMediaPlayerStateBuffering] = @"VLCMediaPlayerStateBuffering",
- [VLCMediaPlayerStateEnded] = @"VLCMediaPlayerStateEnded",
- [VLCMediaPlayerStateError] = @"VLCMediaPlayerStateError",
- [VLCMediaPlayerStatePlaying] = @"VLCMediaPlayerStatePlaying",
- [VLCMediaPlayerStatePaused] = @"VLCMediaPlayerStatePaused"
- };
- return stateToStrings[state];
-}
-
-/* libvlc event callback */
-static void HandleMediaInstanceVolumeChanged(const libvlc_event_t * event, void * self)
-{
- [[VLCEventManager sharedManager] callOnMainThreadDelegateOfObject:self
- withDelegateMethod:@selector(mediaPlayerVolumeChanged:)
- withNotificationName:VLCMediaPlayerVolumeChanged];
-}
-
-static void HandleMediaTimeChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaPlayerTimeChanged:)
- withArgumentAsObject:[NSNumber numberWithLongLong:event->u.media_player_time_changed.new_time]];
-
- [[VLCEventManager sharedManager] callOnMainThreadDelegateOfObject:self
- withDelegateMethod:@selector(mediaPlayerTimeChanged:)
- withNotificationName:VLCMediaPlayerTimeChanged];
- [pool drain];
-}
-
-static void HandleMediaPositionChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaPlayerPositionChanged:)
- withArgumentAsObject:[NSNumber numberWithFloat:event->u.media_player_position_changed.new_position]];
- [pool drain];
-}
-
-static void HandleMediaInstanceStateChanged(const libvlc_event_t * event, void * self)
-{
- VLCMediaPlayerState newState;
-
- if( event->type == libvlc_MediaPlayerPlaying )
- newState = VLCMediaPlayerStatePlaying;
- else if( event->type == libvlc_MediaPlayerPaused )
- newState = VLCMediaPlayerStatePaused;
- else if( event->type == libvlc_MediaPlayerEndReached )
- newState = VLCMediaPlayerStateStopped;
- else if( event->type == libvlc_MediaPlayerEncounteredError )
- newState = VLCMediaPlayerStateError;
- else if( event->type == libvlc_MediaPlayerBuffering )
- newState = VLCMediaPlayerStateBuffering;
- else if( event->type == libvlc_MediaPlayerOpening )
- newState = VLCMediaPlayerStateOpening;
- else
- {
- NSLog(@"%s: Unknown event", __FUNCTION__);
- return;
- }
-
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaPlayerStateChanged:)
- withArgumentAsObject:[NSNumber numberWithInt:newState]];
-
- [[VLCEventManager sharedManager] callOnMainThreadDelegateOfObject:self
- withDelegateMethod:@selector(mediaPlayerStateChanged:)
- withNotificationName:VLCMediaPlayerStateChanged];
-
- [pool drain];
-
-}
-
-static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * self)
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- [[VLCEventManager sharedManager] callOnMainThreadObject:self
- withMethod:@selector(mediaPlayerMediaChanged:)
- withArgumentAsObject:[VLCMedia mediaWithLibVLCMediaDescriptor:event->u.media_player_media_changed.new_media]];
-
- [pool drain];
-
-}
-
-
-// TODO: Documentation
-@interface VLCMediaPlayer (Private)
-- (id)initWithDrawable:(id)aDrawable;
-
-- (void)registerObservers;
-- (void)unregisterObservers;
-- (void)mediaPlayerTimeChanged:(NSNumber *)newTime;
-- (void)mediaPlayerPositionChanged:(NSNumber *)newTime;
-- (void)mediaPlayerStateChanged:(NSNumber *)newState;
-- (void)mediaPlayerMediaChanged:(VLCMedia *)media;
-@end
-
-@implementation VLCMediaPlayer
-
-/* Bindings */
-+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
-{
- static NSDictionary * dict = nil;
- NSSet * superKeyPaths;
- if( !dict )
- {
- dict = [[NSDictionary dictionaryWithObjectsAndKeys:
- [NSSet setWithObject:@"state"], @"playing",
- [NSSet setWithObjects:@"state", @"media", nil], @"seekable",
- [NSSet setWithObjects:@"state", @"media", nil], @"canPause",
- [NSSet setWithObjects:@"state", @"media", nil], @"description",
- nil] retain];
- }
- if( (superKeyPaths = [super keyPathsForValuesAffectingValueForKey: key]) )
- {
- NSMutableSet * ret = [NSMutableSet setWithSet:[dict objectForKey: key]];
- [ret unionSet:superKeyPaths];
- return ret;
- }
- return [dict objectForKey: key];
-}
-
-/* Contructor */
-- (id)init
-{
- return [self initWithDrawable:nil];
-}
-
-#if !TARGET_OS_IPHONE
-- (id)initWithVideoView:(VLCVideoView *)aVideoView
-{
- return [self initWithDrawable: aVideoView];
-}
-
-- (id)initWithVideoLayer:(VLCVideoLayer *)aVideoLayer
-{
- return [self initWithDrawable: aVideoLayer];
-}
-#endif
-
-- (void)dealloc
-{
- NSAssert(libvlc_media_player_get_state(instance) == libvlc_Stopped, @"You released the media player before ensuring that it is stopped");
-
- [self unregisterObservers];
- [[VLCEventManager sharedManager] cancelCallToObject:self];
-
- // Always get rid of the delegate first so we can stop sending messages to it
- // TODO: Should we tell the delegate that we're shutting down?
- delegate = nil;
-
- // Clear our drawable as we are going to release it, we don't
- // want the core to use it from this point. This won't happen as
- // the media player must be stopped.
- libvlc_media_player_set_nsobject(instance, nil);
-
- libvlc_media_player_release(instance);
-
- // Get rid of everything else
- [media release];
- [cachedTime release];
- [cachedRemainingTime release];
- [drawable release];
- [audio release];
-
- [super dealloc];
-}
-
-- (void)setDelegate:(id)value
-{
- delegate = value;
-}
-
-- (id)delegate
-{
- return delegate;
-}
-
-#if !TARGET_OS_IPHONE
-- (void)setVideoView:(VLCVideoView *)aVideoView
-{
- [self setDrawable: aVideoView];
-}
-
-- (void)setVideoLayer:(VLCVideoLayer *)aVideoLayer
-{
- [self setDrawable: aVideoLayer];
-}
-#endif
-
-- (void)setDrawable:(id)aDrawable
-{
- // Make sure that this instance has been associated with the drawing canvas.
- libvlc_media_player_set_nsobject(instance, aDrawable);
-}
-
-- (id)drawable
-{
- return libvlc_media_player_get_nsobject(instance);
-}
-
-- (VLCAudio *)audio
-{
- if (!audio)
- audio = [[VLCAudio alloc] initWithMediaPlayer:self];
- return audio;
-}
-
-#pragma mark -
-#pragma mark Subtitles
-
-- (void)setCurrentVideoSubTitleIndex:(NSUInteger)index
-{
- libvlc_video_set_spu(instance, (int)index);
-}
-
-- (NSUInteger)currentVideoSubTitleIndex
-{
- NSInteger count = libvlc_video_get_spu_count(instance);
-
- if (count <= 0)
- return NSNotFound;
-
- return libvlc_video_get_spu(instance);
-}
-
-- (BOOL)openVideoSubTitlesFromFile:(NSString *)path
-{
- return libvlc_video_set_subtitle_file(instance, [path UTF8String]);
-}
-
-- (NSArray *)videoSubTitles
-{
- libvlc_track_description_t *currentTrack = libvlc_video_get_spu_description(instance);
-
- NSMutableArray *tempArray = [NSMutableArray array];
- while (currentTrack) {
- [tempArray addObject:[NSString stringWithUTF8String:currentTrack->psz_name]];
- currentTrack = currentTrack->p_next;
- }
- libvlc_track_description_release(currentTrack);
- return [NSArray arrayWithArray: tempArray];
-}
-
-
-#pragma mark -
-#pragma mark Video Crop geometry
-
-- (void)setVideoCropGeometry:(char *)value
-{
- libvlc_video_set_crop_geometry(instance, value);
-}
-
-- (char *)videoCropGeometry
-{
- char * result = libvlc_video_get_crop_geometry(instance);
- return result;
-}
-
-- (void)setVideoAspectRatio:(char *)value
-{
- libvlc_video_set_aspect_ratio( instance, value );
-}
-
-- (char *)videoAspectRatio
-{
- char * result = libvlc_video_get_aspect_ratio( instance );
- return result;
-}
-
-- (void)saveVideoSnapshotAt:(NSString *)path withWidth:(NSUInteger)width andHeight:(NSUInteger)height
-{
- int failure = libvlc_video_take_snapshot(instance, 0, [path UTF8String], width, height);
- if (failure)
- [[NSException exceptionWithName:@"Can't take a video snapshot" reason:@"No video output" userInfo:nil] raise];
-}
-
-- (void)setDeinterlaceFilter:(NSString *)name
-{
- libvlc_video_set_deinterlace(instance, [name UTF8String]);
-}
-
-- (void)setRate:(float)value
-{
- libvlc_media_player_set_rate(instance, value);
-}
-
-- (float)rate
-{
- return libvlc_media_player_get_rate(instance);
-}
-
-- (CGSize)videoSize
-{
- unsigned height = 0, width = 0;
- int failure = libvlc_video_get_size(instance, 0, &width, &height);
- if (failure)
- [[NSException exceptionWithName:@"Can't get video size" reason:@"No video output" userInfo:nil] raise];
- return CGSizeMake(width, height);
-}
-
-- (BOOL)hasVideoOut
-{
- return libvlc_media_player_has_vout(instance);
-}
-
-- (float)framesPerSecond
-{
- return libvlc_media_player_get_fps(instance);
-}
-
-- (void)setTime:(VLCTime *)value
-{
- // Time is managed in seconds, while duration is managed in microseconds
- // TODO: Redo VLCTime to provide value numberAsMilliseconds, numberAsMicroseconds, numberAsSeconds, numberAsMinutes, numberAsHours
- libvlc_media_player_set_time(instance, value ? [[value numberValue] longLongValue] : 0);
-}
-
-- (VLCTime *)time
-{
- return cachedTime;
-}
-
-- (VLCTime *)remainingTime
-{
- return cachedRemainingTime;
-}
-
-- (NSUInteger)fps
-{
- return libvlc_media_player_get_fps(instance);
-}
-
-#pragma mark -
-#pragma mark Chapters
-- (void)setCurrentChapterIndex:(NSUInteger)value;
-{
- libvlc_media_player_set_chapter(instance, value);
-}
-
-- (NSUInteger)currentChapterIndex
-{
- NSInteger count = libvlc_media_player_get_chapter_count(instance);
- if (count <= 0)
- return NSNotFound;
- NSUInteger result = libvlc_media_player_get_chapter(instance);
- return result;
-}
-
-- (void)nextChapter
-{
- libvlc_media_player_next_chapter(instance);
-}
-
-- (void)previousChapter
-{
- libvlc_media_player_previous_chapter(instance);
-}
-
-- (NSArray *)chaptersForTitleIndex:(NSUInteger)title
-{
- NSInteger count = libvlc_media_player_get_chapter_count(instance);
- if (count <= 0)
- return [NSArray array];
-
- libvlc_track_description_t *tracks = libvlc_video_get_chapter_description(instance, title);
- NSMutableArray *tempArray = [NSMutableArray array];
- NSInteger i;
- for (i = 0; i < count ; i++)
- {
- [tempArray addObject:[NSString stringWithUTF8String:tracks->psz_name]];
- tracks = tracks->p_next;
- }
- libvlc_track_description_release(tracks);
- return [NSArray arrayWithArray:tempArray];
-}
-
-#pragma mark -
-#pragma mark Titles
-
-- (void)setCurrentTitleIndex:(NSUInteger)value
-{
- libvlc_media_player_set_title(instance, value);
-}
-
-- (NSUInteger)currentTitleIndex
-{
- NSInteger count = libvlc_media_player_get_title_count(instance);
- if (count <= 0)
- return NSNotFound;
-
- return libvlc_media_player_get_title(instance);
-}
-
-- (NSUInteger)countOfTitles
-{
- NSUInteger result = libvlc_media_player_get_title_count(instance);
- return result;
-}
-
-- (NSArray *)titles
-{
- libvlc_track_description_t *tracks = libvlc_video_get_title_description(instance);
- NSMutableArray *tempArray = [NSMutableArray array];
- NSInteger i;
- for (i = 0; i < [self countOfTitles] ; i++)
- {
- [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
- tracks = tracks->p_next;
- }
- libvlc_track_description_release(tracks);
- return [NSArray arrayWithArray: tempArray];
-}
-
-#pragma mark -
-#pragma mark Audio tracks
-- (void)setCurrentAudioTrackIndex:(NSUInteger)value
-{
- libvlc_audio_set_track( instance, (int)value);
-}
-
-- (NSUInteger)currentAudioTrackIndex
-{
- NSInteger count = libvlc_audio_get_track_count(instance);
- if (count <= 0)
- return NSNotFound;
-
- NSUInteger result = libvlc_audio_get_track(instance);
- return result;
-}
-
-- (NSArray *)audioTracks
-{
- NSInteger count = libvlc_audio_get_track_count(instance);
- if (count <= 0)
- return [NSArray array];
-
- libvlc_track_description_t *tracks = libvlc_audio_get_track_description(instance);
- NSMutableArray *tempArray = [NSMutableArray array];
- NSUInteger i;
- for (i = 0; i < count ; i++)
- {
- [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
- tracks = tracks->p_next;
- }
- libvlc_track_description_release(tracks);
-
- return [NSArray arrayWithArray: tempArray];
-}
-
-- (void)setAudioChannel:(NSInteger)value
-{
- libvlc_audio_set_channel(instance, value);
-}
-
-- (NSInteger)audioChannel
-{
- return libvlc_audio_get_channel(instance);
-}
-
-- (void)setMedia:(VLCMedia *)value
-{
- if (media != value)
- {
- if (media && [media compare:value] == NSOrderedSame)
- return;
-
- [media release];
- media = [value retain];
-
- libvlc_media_player_set_media(instance, [media libVLCMediaDescriptor]);
- }
-}
-
-- (VLCMedia *)media
-{
- return media;
-}
-
-- (BOOL)play
-{
- libvlc_media_player_play(instance);
- return YES;
-}
-
-- (void)pause
-{
- if( [NSThread isMainThread] )
- {
- /* Hack because we create a dead lock here, when the vout is stopped
- * and tries to recontact us on the main thread */
- /* FIXME: to do this properly we need to do some locking. We may want
- * to move that to libvlc */
- [self performSelectorInBackground:@selector(pause) withObject:nil];
- return;
- }
-
- // Pause the stream
- libvlc_media_player_pause(instance);
-}
-
-- (void)stop
-{
- libvlc_media_player_stop(instance);
-}
-
-- (void)gotoNextFrame
-{
- libvlc_media_player_next_frame(instance);
-
-}
-
-- (void)fastForward
-{
- [self fastForwardAtRate: 2.0];
-}
-
-- (void)fastForwardAtRate:(float)rate
-{
- [self setRate:rate];
-}
-
-- (void)rewind
-{
- [self rewindAtRate: 2.0];
-}
-
-- (void)rewindAtRate:(float)rate
-{
- [self setRate: -rate];
-}
-
-- (void)jumpBackward:(NSInteger)interval
-{
- if( [self isSeekable] )
- {
- interval = interval * 1000;
- [self setTime: [VLCTime timeWithInt: ([[self time] intValue] - interval)]];
- }
-}
-
-- (void)jumpForward:(NSInteger)interval
-{
- if( [self isSeekable] )
- {
- interval = interval * 1000;
- [self setTime: [VLCTime timeWithInt: ([[self time] intValue] + interval)]];
- }
-}
-
-- (void)extraShortJumpBackward
-{
- [self jumpBackward:3];
-}
-
-- (void)extraShortJumpForward
-{
- [self jumpForward:3];
-}
-
-- (void)shortJumpBackward
-{
- [self jumpBackward:10];
-}
-
-- (void)shortJumpForward
-{
- [self jumpForward:10];
-}
-
-- (void)mediumJumpBackward
-{
- [self jumpBackward:60];
-}
-
-- (void)mediumJumpForward
-{
- [self jumpForward:60];
-}
-
-- (void)longJumpBackward
-{
- [self jumpBackward:300];
-}
-
-- (void)longJumpForward
-{
- [self jumpForward:300];
-}
-
-+ (NSSet *)keyPathsForValuesAffectingIsPlaying
-{
- return [NSSet setWithObjects:@"state", nil];
-}
-
-- (BOOL)isPlaying
-{
- VLCMediaPlayerState state = [self state];
- return ((state == VLCMediaPlayerStateOpening) || (state == VLCMediaPlayerStateBuffering) ||
- (state == VLCMediaPlayerStatePlaying));
-}
-
-- (BOOL)willPlay
-{
- return libvlc_media_player_will_play(instance);
-}
-
-static const VLCMediaPlayerState libvlc_to_local_state[] =
-{
- [libvlc_Stopped] = VLCMediaPlayerStateStopped,
- [libvlc_Opening] = VLCMediaPlayerStateOpening,
- [libvlc_Buffering] = VLCMediaPlayerStateBuffering,
- [libvlc_Playing] = VLCMediaPlayerStatePlaying,
- [libvlc_Paused] = VLCMediaPlayerStatePaused,
- [libvlc_Ended] = VLCMediaPlayerStateEnded,
- [libvlc_Error] = VLCMediaPlayerStateError
-};
-
-- (VLCMediaPlayerState)state
-{
- return cachedState;
-}
-
-- (float)position
-{
- return position;
-}
-
-- (void)setPosition:(float)newPosition
-{
- libvlc_media_player_set_position(instance, newPosition);
-}
-
-- (BOOL)isSeekable
-{
- return libvlc_media_player_is_seekable(instance);
-}
-
-- (BOOL)canPause
-{
- return libvlc_media_player_can_pause(instance);
-}
-
-- (void *)libVLCMediaPlayer
-{
- return instance;
-}
-@end
-
-@implementation VLCMediaPlayer (Private)
-- (id)initWithDrawable:(id)aDrawable
-{
- if (self = [super init])
- {
- delegate = nil;
- media = nil;
- cachedTime = [[VLCTime nullTime] retain];
- cachedRemainingTime = [[VLCTime nullTime] retain];
- position = 0.0f;
- cachedState = VLCMediaPlayerStateStopped;
-
- // Create a media instance, it doesn't matter what library we start off with
- // it will change depending on the media descriptor provided to the media
- // instance
- instance = libvlc_media_player_new([VLCLibrary sharedInstance]);
-
- [self registerObservers];
-
- [self setDrawable:aDrawable];
- }
- return self;
-}
-
-- (void)registerObservers
-{
- // Attach event observers into the media instance
- libvlc_event_manager_t * p_em = libvlc_media_player_event_manager(instance);
- libvlc_event_attach(p_em, libvlc_MediaPlayerPlaying, HandleMediaInstanceStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerPaused, HandleMediaInstanceStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerEncounteredError, HandleMediaInstanceStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerEndReached, HandleMediaInstanceStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerOpening, HandleMediaInstanceStateChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerBuffering, HandleMediaInstanceStateChanged, self);
-
- /* FIXME: We may want to turn that off when none is interested by that */
- libvlc_event_attach(p_em, libvlc_MediaPlayerPositionChanged, HandleMediaPositionChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerTimeChanged, HandleMediaTimeChanged, self);
- libvlc_event_attach(p_em, libvlc_MediaPlayerMediaChanged, HandleMediaPlayerMediaChanged, self);
-}
-
-- (void)unregisterObservers
-{
- libvlc_event_manager_t * p_em = libvlc_media_player_event_manager(instance);
- libvlc_event_detach(p_em, libvlc_MediaPlayerPlaying, HandleMediaInstanceStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerPaused, HandleMediaInstanceStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerEncounteredError, HandleMediaInstanceStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerEndReached, HandleMediaInstanceStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerOpening, HandleMediaInstanceStateChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerBuffering, HandleMediaInstanceStateChanged, self);
-
- libvlc_event_detach(p_em, libvlc_MediaPlayerPositionChanged, HandleMediaPositionChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerTimeChanged, HandleMediaTimeChanged, self);
- libvlc_event_detach(p_em, libvlc_MediaPlayerMediaChanged, HandleMediaPlayerMediaChanged, self);
-}
-
-- (void)mediaPlayerTimeChanged:(NSNumber *)newTime
-{
- [self willChangeValueForKey:@"time"];
- [self willChangeValueForKey:@"remainingTime"];
- [cachedTime release];
- cachedTime = [[VLCTime timeWithNumber:newTime] retain];
- [cachedRemainingTime release];
- double currentTime = [[cachedTime numberValue] doubleValue];
- double remaining = currentTime / position * (1 - position);
- cachedRemainingTime = [[VLCTime timeWithNumber:[NSNumber numberWithDouble:-remaining]] retain];
- [self didChangeValueForKey:@"remainingTime"];
- [self didChangeValueForKey:@"time"];
-}
-
-#if !TARGET_OS_IPHONE
-- (void)delaySleep
-{
- UpdateSystemActivity(UsrActivity);
-}
-#endif
-
-- (void)mediaPlayerPositionChanged:(NSNumber *)newPosition
-{
-#if !TARGET_OS_IPHONE
- // This seems to be the most relevant place to delay sleeping and screen saver.
- [self delaySleep];
-#endif
-
- [self willChangeValueForKey:@"position"];
- position = [newPosition floatValue];
- [self didChangeValueForKey:@"position"];
-}
-
-- (void)mediaPlayerStateChanged:(NSNumber *)newState
-{
- [self willChangeValueForKey:@"state"];
- cachedState = [newState intValue];
- [self didChangeValueForKey:@"state"];
-}
-
-- (void)mediaPlayerMediaChanged:(VLCMedia *)newMedia
-{
- [self willChangeValueForKey:@"media"];
- if (media != newMedia)
- {
- [media release];
- media = [newMedia retain];
- }
- [self didChangeValueForKey:@"media"];
-}
-
-@end
+++ /dev/null
-//
-// VLCMediaThumbnailer.m
-// VLCKit
-//
-// Created by Pierre d'Herbemont on 7/10/10.
-// Copyright 2010 __MyCompanyName__. All rights reserved.
-//
-
-#import <vlc/vlc.h>
-
-#import "VLCMediaThumbnailer.h"
-#import "VLCLibVLCBridging.h"
-
-
-@interface VLCMediaThumbnailer ()
-- (void)didFetchThumbnail;
-- (void)notifyDelegate;
-- (void)fetchThumbnail;
-- (void)startFetchingThumbnail;
-@property (readonly, assign) void *dataPointer;
-@property (readonly, assign) BOOL shouldRejectFrames;
-@end
-
-static void *lock(void *opaque, void **pixels)
-{
- VLCMediaThumbnailer *thumbnailer = opaque;
-
- *pixels = [thumbnailer dataPointer];
- assert(*pixels);
- return NULL;
-}
-
-static const size_t kDefaultImageWidth = 320;
-static const size_t kDefaultImageHeight = 240;
-static const float kSnapshotPosition = 0.5;
-
-void unlock(void *opaque, void *picture, void *const *p_pixels)
-{
- VLCMediaThumbnailer *thumbnailer = opaque;
- assert(!picture);
-
- assert([thumbnailer dataPointer] == *p_pixels);
-
- // We may already have a thumbnail if we are receiving picture after the first one.
- // Just ignore.
- if ([thumbnailer thumbnail] || [thumbnailer shouldRejectFrames])
- return;
-
- [thumbnailer performSelectorOnMainThread:@selector(didFetchThumbnail) withObject:nil waitUntilDone:YES];
-}
-
-void display(void *opaque, void *picture)
-{
-}
-
-@implementation VLCMediaThumbnailer
-@synthesize media=_media;
-@synthesize delegate=_delegate;
-@synthesize thumbnail=_thumbnail;
-@synthesize dataPointer=_data;
-@synthesize thumbnailWidth=_thumbnailWidth;
-@synthesize thumbnailHeight=_thumbnailHeight;
-@synthesize shouldRejectFrames=_shouldRejectFrames;
-
-+ (VLCMediaThumbnailer *)thumbnailerWithMedia:(VLCMedia *)media andDelegate:(id<VLCMediaThumbnailerDelegate>)delegate
-{
- id obj = [[[self class] alloc] init];
- [obj setMedia:media];
- [obj setDelegate:delegate];
- return [obj autorelease];
-}
-
-- (void)dealloc
-{
- NSAssert(!_thumbnailingTimeoutTimer, @"Timer not released");
- NSAssert(!_parsingTimeoutTimer, @"Timer not released");
- NSAssert(!_data, @"Data not released");
- NSAssert(!_mp, @"Not properly retained");
- if (_thumbnail)
- CGImageRelease(_thumbnail);
- [_media release];
- [super dealloc];
-}
-
-
-- (void)fetchThumbnail
-{
- NSAssert(!_data, @"We are already fetching a thumbnail");
-
- [self retain]; // Balanced in -notifyDelegate
-
- if (![_media isParsed]) {
- [_media addObserver:self forKeyPath:@"parsed" options:0 context:NULL];
- [_media parse];
- NSAssert(!_parsingTimeoutTimer, @"We already have a timer around");
- _parsingTimeoutTimer = [[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(mediaParsingTimedOut) userInfo:nil repeats:NO] retain];
- return;
- }
-
- [self startFetchingThumbnail];
-}
-
-
-- (void)startFetchingThumbnail
-{
- NSArray *tracks = [_media tracksInformation];
-
-
- // Find the video track
- NSDictionary *videoTrack = nil;
- for (NSDictionary *track in tracks) {
- NSString *type = [track objectForKey:VLCMediaTracksInformationType];
- if ([type isEqualToString:VLCMediaTracksInformationTypeVideo]) {
- videoTrack = track;
- break;
- }
- }
-
- unsigned imageWidth = _thumbnailWidth > 0 ? _thumbnailWidth : kDefaultImageWidth;
- unsigned imageHeight = _thumbnailHeight > 0 ? _thumbnailHeight : kDefaultImageHeight;
-
- if (!videoTrack)
- NSLog(@"WARNING: Can't find video track info, still attempting to thumbnail in doubt");
- else {
- int videoHeight = [[videoTrack objectForKey:VLCMediaTracksInformationVideoHeight] intValue];
- int videoWidth = [[videoTrack objectForKey:VLCMediaTracksInformationVideoWidth] intValue];
-
- // Constraining to the aspect ratio of the video.
- double ratio;
- if ((double)imageWidth / imageHeight < (double)videoWidth / videoHeight)
- ratio = (double)imageHeight / videoHeight;
- else
- ratio = (double)imageWidth / videoWidth;
-
- int newWidth = round(videoWidth * ratio);
- int newHeight = round(videoHeight * ratio);
-
- imageWidth = newWidth > 0 ? newWidth : imageWidth;
- imageHeight = newHeight > 0 ? newHeight : imageHeight;
- }
-
- _numberOfReceivedFrames = 0;
- NSAssert(!_shouldRejectFrames, @"Are we still running?");
-
- _effectiveThumbnailHeight = imageHeight;
- _effectiveThumbnailWidth = imageWidth;
-
- _data = calloc(1, imageWidth * imageHeight * 4);
- NSAssert(_data, @"Can't create data");
-
- NSAssert(!_mp, @"We are already fetching a thumbnail");
- _mp = libvlc_media_player_new([VLCLibrary sharedInstance]);
-
- libvlc_media_add_option([_media libVLCMediaDescriptor], "no-audio");
-
- libvlc_media_player_set_media(_mp, [_media libVLCMediaDescriptor]);
- libvlc_video_set_format(_mp, "RGBA", imageWidth, imageHeight, 4 * imageWidth);
- libvlc_video_set_callbacks(_mp, lock, unlock, display, self);
- libvlc_media_player_play(_mp);
- libvlc_media_player_set_position(_mp, kSnapshotPosition);
-
- NSAssert(!_thumbnailingTimeoutTimer, @"We already have a timer around");
- _thumbnailingTimeoutTimer = [[NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(mediaThumbnailingTimedOut) userInfo:nil repeats:NO] retain];
-}
-
-- (void)mediaParsingTimedOut
-{
- NSLog(@"WARNING: media thumbnailer media parsing timed out");
- [_media removeObserver:self forKeyPath:@"parsed"];
-
- [self startFetchingThumbnail];
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
-{
- if (object == _media && [keyPath isEqualToString:@"parsed"]) {
- if ([_media isParsed]) {
- [_parsingTimeoutTimer invalidate];
- [_parsingTimeoutTimer release];
- _parsingTimeoutTimer = nil;
- [_media removeObserver:self forKeyPath:@"parsed"];
- [self startFetchingThumbnail];
- }
- return;
- }
- return [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
-}
-
-- (void)didFetchThumbnail
-{
- if (_shouldRejectFrames)
- return;
-
- // The video thread is blocking on us. Beware not to do too much work.
-
- _numberOfReceivedFrames++;
-
- // Make sure we are getting the right frame
- if (libvlc_media_player_get_position(_mp) < kSnapshotPosition / 2 &&
- // Arbitrary choice to work around broken files.
- libvlc_media_player_get_length(_mp) > 1000 &&
- _numberOfReceivedFrames < 10)
- {
- return;
- }
-
- NSAssert(_data, @"We have no data");
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- const CGFloat width = _effectiveThumbnailWidth;
- const CGFloat height = _effectiveThumbnailHeight;
- const CGFloat pitch = 4 * width;
- CGContextRef bitmap = CGBitmapContextCreate(_data,
- width,
- height,
- 8,
- pitch,
- colorSpace,
- kCGImageAlphaNoneSkipLast);
-
- CGColorSpaceRelease(colorSpace);
- NSAssert(bitmap, @"Can't create bitmap");
-
- // Create the thumbnail image
- //NSAssert(!_thumbnail, @"We already have a thumbnail");
- if (_thumbnail)
- CGImageRelease(_thumbnail);
- _thumbnail = CGBitmapContextCreateImage(bitmap);
-
- // Put a new context there.
- CGContextRelease(bitmap);
-
- // Make sure we don't block the video thread now
- [self performSelector:@selector(notifyDelegate) withObject:nil afterDelay:0];
-}
-
-- (void)stopAsync
-{
- libvlc_media_player_stop(_mp);
- libvlc_media_player_release(_mp);
- _mp = NULL;
-
- // Now release data
- free(_data);
- _data = NULL;
-
- _shouldRejectFrames = NO;
-}
-
-- (void)endThumbnailing
-{
- _shouldRejectFrames = YES;
-
- [_thumbnailingTimeoutTimer invalidate];
- [_thumbnailingTimeoutTimer release];
- _thumbnailingTimeoutTimer = nil;
-
- // Stop the media player
- NSAssert(_mp, @"We have already destroyed mp");
-
- [self performSelectorInBackground:@selector(stopAsync) withObject:nil];
-
- [self autorelease]; // Balancing -fetchThumbnail
-}
-
-- (void)notifyDelegate
-{
- [self endThumbnailing];
-
- // Call delegate
- [_delegate mediaThumbnailer:self didFinishThumbnail:_thumbnail];
-
-}
-
-- (void)mediaThumbnailingTimedOut
-{
- [self endThumbnailing];
-
- // Call delegate
- [_delegate mediaThumbnailerDidTimeOut:self];
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCPlaylistDataSource.m: VLC.framework VLCPlaylistDataSource implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <VLC/VLCPlaylistDataSource.h>
-#import "VLCEventManager.h"
-
-@implementation VLCPlaylistDataSource
-
-- (id)init
-{
- if (self = [super init])
- {
- playlist = nil;
- videoView = nil;
- }
- return self;
-}
-
-- (id)initWithPlaylist:(VLCPlaylist *)aPlaylist
-{
- if (self = [super init])
- {
-
- playlist = [aPlaylist retain];
-
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(playlistDidChange:) name:VLCPlaylistItemAdded object:nil];
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(itemDidAddSubitem:) name:VLCMediaSubItemAdded object:nil];
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(itemDidChange:) name:VLCPlaylistItemChanged object:nil];
- videoView = nil;
- outlineView = nil;
-
- }
- return self;
-}
-
-- (id)initWithPlaylist:(VLCPlaylist *)aPlaylist videoView:(VLCVideoView *)aVideoView;
-{
- if (self = [super init])
- {
- playlist = [aPlaylist retain];
-
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(playlistDidChange:) name:VLCPlaylistItemAdded object:nil];
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(itemDidAddSubitem:) name:VLCMediaSubItemAdded object:nil];
- [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(itemDidChange:) name:VLCPlaylistItemChanged object:nil];
-
- videoView = [aVideoView retain];
- /* Will be automatically set if an outline view ask us data,
- * be careful not to connect two outlineView to this object or this goes wrong. */
- outlineView = nil;
- }
- return self;
-}
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver: self];
-
- if (playlist)
- [playlist release];
- if (videoView)
- [videoView release];
-
- [super dealloc];
-}
-
-- (VLCPlaylist *)playlist
-{
- return playlist;
-}
-
-- (VLCVideoView *)videoView
-{
- return videoView;
-}
-@end
-
-
-
-@implementation VLCPlaylistDataSource (OutlineViewDataSource)
-- (BOOL) outlineView: (NSOutlineView *)ov isItemExpandable: (id)item { return NO; }
-- (int) outlineView: (NSOutlineView *)ov numberOfChildrenOfItem:(id)item { return 0; }
-- (id) outlineView: (NSOutlineView *)ov child:(int)index ofItem:(id)item { return nil; }
-- (id) outlineView: (NSOutlineView *)ov objectValueForTableColumn:(NSTableColumn*)col byItem:(id)item { return nil; }
-@end
-
-@implementation VLCPlaylistDataSource (TableViewDropping)
-/* Dummy implementation cause we need them */
-- (int)numberOfRowsInTableView:(NSTableView *)aTableView { return 0; }
-- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex {return nil;}
-
-- (NSDragOperation)tableView:(NSTableView*)tv validateDrop:(id <NSDraggingInfo>)info proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)op
-{
- return NSDragOperationEvery; /* This is for now */
-}
-
-- (BOOL)tableView:(NSTableView *)aTableView acceptDrop:(id <NSDraggingInfo>)info
- row:(int)row dropOperation:(NSTableViewDropOperation)operation
-{
- int i;
- NSArray * droppedItems = [[info draggingPasteboard] propertyListForType: NSFilenamesPboardType];
-
- for (i = 0; i < [droppedItems count]; i++)
- {
- NSString * filename = [droppedItems objectAtIndex:i];
-
- [[self playlist] insertMedia:[VLCMedia mediaWithURL:filename] atIndex:row+i];
- }
-
-}
-@end
-
-@interface NSObject (UnknownBindingsObject)
-/* OutlineViewDataSourceDropping and bindings hack */
-- (id)observedObject;
-@end
-
-@implementation VLCPlaylistDataSource (OutlineViewDataSourceDropping)
-- (BOOL)outlineView:(NSOutlineView *)aOutlineView acceptDrop:(id <NSDraggingInfo>)info item:(id)item childIndex:(int)index
-{
- NSArray * droppedItems = [[info draggingPasteboard] propertyListForType: NSFilenamesPboardType];
- VLCPlaylist * aPlaylist;
- int i;
-
- if (!item)
- item = [self playlist]; /* The root object is our playlist */
- else
- item = [item observedObject];
-
- if (![item isMemberOfClass:[VLCPlaylist class]])
- return NO;
-
- if (index < 0) /* No precise item given, put it as the first one */
- index = 0;
-
- aPlaylist = item;
-
- if (!droppedItems)
- {
- /* XXX: localization */
- NSRunCriticalAlertPanelRelativeToWindow(@"Error", @"Unable to drop the provided item.", @"OK", nil, nil, [outlineView window]);
- return NO;
- }
-
- for (i = 0; i < [droppedItems count]; i++)
- {
- NSString * filename = [droppedItems objectAtIndex:i];
-
- [aPlaylist insertMedia:[VLCMedia mediaWithURL:filename] atIndex:index+i];
- }
- return YES;
-}
-
-- (NSDragOperation)outlineView:(NSOutlineView *)aOutlineView validateDrop:(id <NSDraggingInfo>)info proposedItem:(id)item proposedChildIndex:(int)index
-{
- return NSDragOperationEvery;
-}
-@end
\ No newline at end of file
+++ /dev/null
-/*****************************************************************************
- * VLCServicesDiscoverer.m: VLC.framework VLCMediaDiscoverer implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import <Cocoa/Cocoa.h>
-#import <VLC/VLCServicesDiscoverer.h>
-#import <VLC/VLCMediaDiscoverer.h>
-#import "VLCLibrary.h"
-
-#include <vlc/libvlc.h>
-
-static VLCServicesDiscoverer * sharedDiscoverer = NULL;
-
-@implementation VLCServicesDiscoverer
-+ (id)sharedDiscoverer
-{
- if (!sharedDiscoverer)
- {
- sharedDiscoverer = [[self alloc] init];
- }
- return sharedDiscoverer;
-}
-
-- (id) init
-{
- if( self = [super init] )
- {
- services = [[NSArray arrayWithObjects:
- [[[VLCMediaDiscoverer alloc] initWithName:@"sap"] autorelease],
- [[[VLCMediaDiscoverer alloc] initWithName:@"shoutcast"] autorelease],
- [[[VLCMediaDiscoverer alloc] initWithName:@"shoutcasttv"] autorelease], nil] retain];
- }
- return self;
-}
-
-- (NSArray *) services
-{
- return [[services copy] autorelease];
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCStreamOutput.m: VLCKit.framework VLCStreamOutput implementation
- *****************************************************************************
- * Copyright (C) 2008 Pierre d'Herbemont
- * Copyright (C) 2008 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCStreamOutput.h"
-#import "VLCLibVLCBridging.h"
-
-@implementation VLCStreamOutput
-- (id)initWithOptionDictionary:(NSDictionary *)dictionary
-{
- if( self = [super init] )
- {
- options = [[NSMutableDictionary dictionaryWithDictionary:dictionary] retain];
- }
- return self;
-}
-- (NSString *)description
-{
- return [self representedLibVLCOptions];
-}
-+ (id)streamOutputWithOptionDictionary:(NSDictionary *)dictionary
-{
- return [[[self alloc] initWithOptionDictionary:dictionary] autorelease];
-}
-+ (id)rtpBroadcastStreamOutputWithSAPAnnounce:(NSString *)announceName
-{
- NSString *name = [announceName copy];
- id output = [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"ts", @"muxer",
- @"file", @"access",
- @"sdp", @"sdp",
- @"sap", @"sap",
- name, @"name",
- @"239.255.1.1", @"destination", nil
- ], @"rtpOptions",
- nil
- ]
- ];
- [name release];
- return output;
-}
-
-+ (id)rtpBroadcastStreamOutput
-{
- return [self rtpBroadcastStreamOutputWithSAPAnnounce:@"Helloworld!"];
-}
-
-+ (id)ipodStreamOutputWithFilePath:(NSString *)filePath
-{
- return [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"h264", @"videoCodec",
- @"1024", @"videoBitrate", // max by Apple: 1.5 mbps
- @"mp4a", @"audioCodec",
- @"128", @"audioBitrate", // max by Apple: 160 kbps
- @"2", @"channels",
- @"640", @"width", // max by Apple: do.
- @"480", @"canvasHeight", // max by Apple: do.
- @"Yes", @"audio-sync",
- nil
- ], @"transcodingOptions",
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"mp4", @"muxer",
- @"file", @"access",
- [[filePath copy] autorelease], @"destination",
- nil
- ], @"outputOptions",
- nil
- ]
- ];
-}
-
-+ (id)mpeg4StreamOutputWithFilePath:(NSString *)filePath
-{
- return [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"mp4v", @"videoCodec",
- @"1024", @"videoBitrate",
- @"mp4a", @"audioCodec",
- @"192", @"audioBitrate",
- nil
- ], @"transcodingOptions",
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"mp4", @"muxer",
- @"file", @"access",
- [[filePath copy] autorelease], @"destination", nil
- ], @"outputOptions",
- nil
- ]
- ];
-}
-
-+ (id)streamOutputWithFilePath:(NSString *)filePath
-{
- return [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"ps", @"muxer",
- @"file", @"access",
- [[filePath copy] autorelease], @"destination", nil
- ], @"outputOptions",
- nil
- ]
- ];
-}
-
-+ (id)mpeg2StreamOutputWithFilePath:(NSString *)filePath;
-{
- return [self streamOutputWithOptionDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"mp2v", @"videoCodec",
- @"1024", @"videoBitrate",
- @"mpga", @"audioCodec",
- @"128", @"audioBitrate",
- @"Yes", @"audio-sync",
- nil
- ], @"transcodingOptions",
- [NSDictionary dictionaryWithObjectsAndKeys:
- @"ps", @"muxer",
- @"file", @"access",
- [[filePath copy] autorelease], @"destination", nil
- ], @"outputOptions",
- nil
- ]
- ];
-}
-@end
-
-@implementation VLCStreamOutput (LibVLCBridge)
-- (NSString *)representedLibVLCOptions
-{
- NSString * representedOptions;
- NSMutableArray * subOptions = [NSMutableArray array];
- NSMutableArray * optionsAsArray = [NSMutableArray array];
- NSDictionary * transcodingOptions = [options objectForKey:@"transcodingOptions"];
- if( transcodingOptions )
- {
- NSString * videoCodec = [transcodingOptions objectForKey:@"videoCodec"];
- NSString * audioCodec = [transcodingOptions objectForKey:@"audioCodec"];
- NSString * videoBitrate = [transcodingOptions objectForKey:@"videoBitrate"];
- NSString * audioBitrate = [transcodingOptions objectForKey:@"audioBitrate"];
- NSString * channels = [transcodingOptions objectForKey:@"channels"];
- NSString * height = [transcodingOptions objectForKey:@"height"];
- NSString * canvasHeight = [transcodingOptions objectForKey:@"canvasHeight"];
- NSString * width = [transcodingOptions objectForKey:@"width"];
- NSString * audioSync = [transcodingOptions objectForKey:@"audioSync"];
- NSString * videoEncoder = [transcodingOptions objectForKey:@"videoEncoder"];
- if( videoEncoder ) [subOptions addObject:[NSString stringWithFormat:@"venc=%@", videoEncoder]];
- if( videoCodec ) [subOptions addObject:[NSString stringWithFormat:@"vcodec=%@", videoCodec]];
- if( videoBitrate ) [subOptions addObject:[NSString stringWithFormat:@"vb=%@", videoBitrate]];
- if( width ) [subOptions addObject:[NSString stringWithFormat:@"width=%@", width]];
- if( height ) [subOptions addObject:[NSString stringWithFormat:@"height=%@", height]];
- if( canvasHeight ) [subOptions addObject:[NSString stringWithFormat:@"canvas-height=%@", canvasHeight]];
- if( audioCodec ) [subOptions addObject:[NSString stringWithFormat:@"acodec=%@", audioCodec]];
- if( audioBitrate ) [subOptions addObject:[NSString stringWithFormat:@"ab=%@", audioBitrate]];
- if( channels ) [subOptions addObject:[NSString stringWithFormat:@"channels=%@", channels]];
- if( audioSync ) [subOptions addObject:[NSString stringWithFormat:@"audioSync", width]];
- [optionsAsArray addObject: [NSString stringWithFormat:@"#transcode{%@}", [subOptions componentsJoinedByString:@","]]];
- [subOptions removeAllObjects];
- }
-
- NSDictionary * outputOptions = [options objectForKey:@"outputOptions"];
- if( outputOptions )
- {
- NSString * muxer = [outputOptions objectForKey:@"muxer"];
- NSString * destination = [outputOptions objectForKey:@"destination"];
- NSString * url = [outputOptions objectForKey:@"url"];
- NSString * access = [outputOptions objectForKey:@"access"];
- if( muxer ) [subOptions addObject:[NSString stringWithFormat:@"mux=%@", muxer]];
- if( destination ) [subOptions addObject:[NSString stringWithFormat:@"dst=\"%@\"", [destination stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]]];
- if( url ) [subOptions addObject:[NSString stringWithFormat:@"url=\"%@\"", [url stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]]];
- if( access ) [subOptions addObject:[NSString stringWithFormat:@"access=%@", access]];
- NSString *std = [NSString stringWithFormat:@"std{%@}", [subOptions componentsJoinedByString:@","]];
- if ( !transcodingOptions )
- std = [NSString stringWithFormat:@"#%@", std];
-
- [optionsAsArray addObject:std];
- [subOptions removeAllObjects];
- }
-
- NSDictionary * rtpOptions = [options objectForKey:@"rtpOptions"];
- if( rtpOptions )
- {
- NSString * muxer = [rtpOptions objectForKey:@"muxer"];
- NSString * destination = [rtpOptions objectForKey:@"destination"];
- NSString * sdp = [rtpOptions objectForKey:@"sdp"];
- NSString * name = [rtpOptions objectForKey:@"name"];
- NSString * sap = [rtpOptions objectForKey:@"sap"];
- if( muxer ) [subOptions addObject:[NSString stringWithFormat:@"muxer=%@", muxer]];
- if( destination ) [subOptions addObject:[NSString stringWithFormat:@"dst=%@", destination]];
- if( sdp ) [subOptions addObject:[NSString stringWithFormat:@"sdp=%@", sdp]];
- if( sap ) [subOptions addObject:@"sap"];
- if( name ) [subOptions addObject:[NSString stringWithFormat:@"name=\"%@\"", name]];
- NSString *rtp = [NSString stringWithFormat:@"#rtp{%@}", [subOptions componentsJoinedByString:@","]];
- if ( !transcodingOptions )
- rtp = [NSString stringWithFormat:@"#%@", rtp];
-
- [optionsAsArray addObject:rtp];
- [subOptions removeAllObjects];
- }
- representedOptions = [optionsAsArray componentsJoinedByString:@":"];
- return representedOptions;
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCStreamSession.m: VLCKit.framework VLCStreamSession implementation
- *****************************************************************************
- * Copyright (C) 2008 Pierre d'Herbemont
- * Copyright (C) 2008 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCStreamSession.h"
-#import "VLCLibVLCBridging.h"
-
-@interface VLCStreamSession ()
-@property (readwrite) BOOL isComplete;
-@end
-
-@implementation VLCStreamSession
-@synthesize media=originalMedia;
-@synthesize streamOutput;
-@synthesize isComplete;
-
-- (id)init
-{
- if( self = [super init] )
- {
- reattemptedConnections = 0;
- [self addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionNew context:nil];
- self.isComplete = NO;
- }
- return self;
-}
-
-- (void)dealloc
-{
- [self removeObserver:self forKeyPath:@"state"];
- [super dealloc];
-}
-
-+ (id)streamSession
-{
- return [[[self alloc] init] autorelease];
-}
-
-
-- (void)startStreaming
-{
- self.isComplete = NO;
- [self play];
-}
-
-- (void)stopStreaming
-{
- self.isComplete = YES;
- [super stop];
-}
-
-- (BOOL)play
-{
- NSString * libvlcArgs;
- if( self.drawable )
- libvlcArgs = [NSString stringWithFormat:@"#duplicate{dst=display,dst=\"%@\"}",[streamOutput representedLibVLCOptions]];
- else
- libvlcArgs = [streamOutput representedLibVLCOptions];
- if( libvlcArgs )
- {
- [super setMedia: [VLCMedia mediaWithMedia:originalMedia andLibVLCOptions:
- [NSDictionary dictionaryWithObject: libvlcArgs forKey: @"sout"]]];
- }
- else
- {
- [super setMedia: self.media];
- }
- [super play];
- return YES;
-}
-
-+ (NSSet *)keyPathsForValuesAffectingDescription
-{
- return [NSSet setWithObjects:@"isCompleted", @"state", nil];
-}
-
-- (NSString *)description
-{
- if([self isComplete])
- return @"Done.";
- else if([self state] == VLCMediaPlayerStateError)
- return @"Error while Converting. Open Console.app to diagnose.";
- else
- return @"Converting...";
-}
-
-+ (NSSet *)keyPathsForValuesAffectingEncounteredError
-{
- return [NSSet setWithObjects:@"state", nil];
-}
-
-- (BOOL)encounteredError;
-{
- return ([self state] == VLCMediaPlayerStateError);
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
-{
- if([keyPath isEqualToString:@"state"])
- {
- if( (([self position] == 1.0 || [self state] == VLCMediaPlayerStateEnded || ([self state] == VLCMediaPlayerStateStopped && self.media)) ||
- [self encounteredError] ) && ![super.media subitems] )
- {
- self.isComplete = YES;
- return;
- }
- if( reattemptedConnections > 4 )
- return;
-
- /* Our media has in fact gained subitems, let's change our playing media */
- if( [[super.media subitems] count] > 0 )
- {
- [self stop];
- self.media = [[super.media subitems] mediaAtIndex:0];
- [self play];
- reattemptedConnections++;
- }
- return;
- }
- [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
-}
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCTime.m: VLCKit.framework VLCTime implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCTime.h"
-
-@implementation VLCTime
-/* Factories */
-+ (VLCTime *)nullTime
-{
- static VLCTime * nullTime = nil;
- if (!nullTime)
- nullTime = [[VLCTime timeWithNumber:nil] retain];
- return nullTime;
-}
-
-+ (VLCTime *)timeWithNumber:(NSNumber *)aNumber
-{
- return [[[VLCTime alloc] initWithNumber:aNumber] autorelease];
-}
-
-+ (VLCTime *)timeWithInt:(NSInteger)aInt
-{
- return [[[VLCTime alloc] initWithInt:aInt] autorelease];
-}
-
-/* Initializers */
-- (id)initWithNumber:(NSNumber *)aNumber
-{
- if (self = [super init])
- {
- if (aNumber)
- value = [aNumber copy];
- else
- value = nil;
- }
- return self;
-}
-
-- (id)initWithInt:(int)aInt
-{
- if (self = [super init])
- {
- if (aInt)
- value = [[NSNumber numberWithInt: aInt] retain];
- else
- value = nil;
- }
- return self;
-}
-
-- (void)dealloc
-{
- [value release];
- [super dealloc];
-}
-
-- (id)copyWithZone:(NSZone *)zone
-{
- return [[VLCTime alloc] initWithNumber:value];
-}
-
-/* NSObject Overrides */
-- (NSString *)description
-{
- return self.stringValue;
-}
-
-/* Operations */
-- (NSNumber *)numberValue
-{
- return value ? [[value copy] autorelease] : nil;
-}
-
-- (NSString *)stringValue
-{
- if (value)
- {
- long long duration = [value longLongValue] / 1000;
- long long positiveDuration = llabs(duration);
- if( positiveDuration > 3600 )
- return [NSString stringWithFormat:@"%s%01d:%02d:%02d",
- duration < 0 ? "-" : "",
- (long) (positiveDuration / 3600),
- (long)((positiveDuration / 60) % 60),
- (long) (positiveDuration % 60)];
- else
- return [NSString stringWithFormat:@"%s%02d:%02d",
- duration < 0 ? "-" : "",
- (long)((positiveDuration / 60) % 60),
- (long) (positiveDuration % 60)];
- }
- else
- {
- // Return a string that represents an undefined time.
- return @"--:--";
- }
-}
-
-- (NSString *)verboseStringValue
-{
- if (value)
- {
- long long duration = [value longLongValue] / 1000;
- long long positiveDuration = llabs(duration);
- long hours = positiveDuration / 3600;
- long mins = (positiveDuration / 60) % 60;
- long seconds = positiveDuration % 60;
- const char * remaining = duration < 0 ? " remaining" : "";
- if (hours > 0)
- return [NSString stringWithFormat:@"%d hours %d minutes%s", hours, mins, remaining];
- else if (mins > 5)
- return [NSString stringWithFormat:@"%d minutes%s", mins, remaining];
- else if (mins > 0)
- return [NSString stringWithFormat:@"%d minutes %d seconds%s", mins, seconds, remaining];
- else
- return [NSString stringWithFormat:@"%d seconds%s", seconds, remaining];
- }
- else
- {
- // Return a string that represents an undefined time.
- return @"";
- }
-}
-
-- (int)intValue
-{
- if( value )
- return [value intValue];
- return 0;
-}
-
-- (NSComparisonResult)compare:(VLCTime *)aTime
-{
- if (!aTime && !value)
- return NSOrderedSame;
- else if (!aTime)
- return NSOrderedDescending;
- else
- return [value compare:aTime.numberValue];
-}
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCVideoCommon.m: VLCKit.framework VLCVideoCommon implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCVideoCommon.h"
-
-/******************************************************************************
- * Implementation VLCVideoLayoutManager
- *
- * Manage the size of the video layer
- */
-
-@implementation VLCVideoLayoutManager
-
-/* Factories */
-+ (id)layoutManager
-{
- return [[[self alloc] init] autorelease];
-}
-
-/* CALayoutManager Impelmentation */
-- (void)layoutSublayersOfLayer:(CALayer *)layer
-{
- /* After having done everything normally resize the vlcopengllayer */
- if( [[layer sublayers] count] > 0 && [[[[layer sublayers] objectAtIndex:0] name] isEqualToString:@"vlcopengllayer"])
- {
- CALayer * videolayer = [[layer sublayers] objectAtIndex:0];
- CGRect bounds = layer.bounds;
- CGRect videoRect = bounds;
-
- CGFloat xRatio = CGRectGetWidth(bounds)/originalVideoSize.width;
- CGFloat yRatio = CGRectGetHeight(bounds)/originalVideoSize.height;
- CGFloat ratio = fillScreenEntirely ? MAX(xRatio, yRatio) : MIN(xRatio, yRatio);
-
- videoRect.size.width = ratio*originalVideoSize.width;
- videoRect.size.height = ratio*originalVideoSize.height;
- videoRect.origin.x += (CGRectGetWidth(bounds) - CGRectGetWidth(videoRect))/2.0;
- videoRect.origin.y += (CGRectGetHeight(bounds) - CGRectGetHeight(videoRect))/2.0;
-
- videolayer.frame = videoRect;
- }
-}
-
-/* Properties */
-@synthesize fillScreenEntirely;
-@synthesize originalVideoSize;
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCVideoLayer.m: VLCKit.framework VLCVideoLayer implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCVideoLayer.h"
-#import "VLCLibrary.h"
-#import "VLCEventManager.h"
-#import "VLCVideoCommon.h"
-
-/* Libvlc */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <vlc/libvlc.h>
-
-#import <QuartzCore/QuartzCore.h>
-
-/******************************************************************************
- * VLCVideoView (Private)
- */
-
-@interface VLCVideoLayer (Private)
-/* Method */
-- (void)addVoutLayer:(CALayer *)aLayer;
-@end
-
-@interface VLCVideoLayer ()
-@property (readwrite) BOOL hasVideo;
-@end
-
-/******************************************************************************
- * Implementation VLCVideoLayer
- */
-
-@implementation VLCVideoLayer
-@synthesize hasVideo;
-
-- (BOOL)fillScreen
-{
- return [self.layoutManager fillScreenEntirely];
-}
-
-- (void)setFillScreen:(BOOL)fillScreen
-{
- [self.layoutManager setFillScreenEntirely:fillScreen];
- [self setNeedsLayout];
-}
-
-@end
-
-/******************************************************************************
- * Implementation VLCVideoLayer (Private)
- */
-
-@implementation VLCVideoLayer (Private)
-
-
-/* This is called by the libvlc module 'opengllayer' as soon as there is one
- * vout available
- */
-- (void)addVoutLayer:(CALayer *)voutLayer
-{
- [CATransaction begin];
-
- voutLayer.name = @"vlcopengllayer";
-
- VLCVideoLayoutManager * layoutManager = [VLCVideoLayoutManager layoutManager];
- layoutManager.originalVideoSize = voutLayer.bounds.size;
- self.layoutManager = layoutManager;
-
- [self insertSublayer:voutLayer atIndex:0];
- [self setNeedsDisplayOnBoundsChange:YES];
-
- [CATransaction commit];
-
- /* Trigger by hand, as it doesn't go through else. Assumed bug from Cocoa */
- [self willChangeValueForKey:@"hasVideo"];
- self.hasVideo = YES;
- [self didChangeValueForKey:@"hasVideo"];
-}
-
-- (void)removeVoutLayer:(CALayer*)voutLayer
-{
- [CATransaction begin];
- [voutLayer removeFromSuperlayer];
- [CATransaction commit];
-
- /* Trigger by hand, as it doesn't go through else. Assumed bug from Cocoa */
- [self willChangeValueForKey:@"hasVideo"];
- self.hasVideo = NO;
- [self didChangeValueForKey:@"hasVideo"];
-}
-
-@end
+++ /dev/null
-/*****************************************************************************
- * VLCVideoView.m: VLCKit.framework VLCVideoView implementation
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 VLC authors and VideoLAN
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCVideoView.h"
-#import "VLCLibrary.h"
-#import "VLCEventManager.h"
-#import "VLCVideoCommon.h"
-
-/* Libvlc */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <vlc/libvlc.h>
-
-#import <QuartzCore/QuartzCore.h>
-
-/******************************************************************************
- * Soon deprecated stuff
- */
-
-/* This is a forward reference to VLCOpenGLVoutView specified in minimal_macosx
- library. We could get rid of this, but it prevents warnings from the
- compiler. (Scheduled to deletion) */
-@interface VLCOpenGLVoutView : NSView
-- (void)detachFromVout;
-@end
-
-/* Depreacted methods */
-@interface VLCVideoView (Deprecated)
-- (void)setStretchesVideo:(BOOL)value;
-- (BOOL)stretchesVideo;
-
-- (void)addVoutSubview:(NSView *)aView; /* (Scheduled to deletion) */
-- (void)removeVoutSubview:(NSView *)aView; /* (Scheduled to deletion) */
-@end
-
-/******************************************************************************
- * VLCVideoView (Private)
- */
-
-@interface VLCVideoView (Private)
-/* Method */
-- (void)addVoutLayer:(CALayer *)aLayer;
-@end
-
-@interface VLCVideoView ()
-/* Proeprties */
-@property (readwrite) BOOL hasVideo;
-@end
-
-/******************************************************************************
- * Implementation VLCVideoView
- */
-
-@implementation VLCVideoView
-
-/* Initializers */
-- (id)initWithFrame:(NSRect)rect
-{
- if (self = [super initWithFrame:rect])
- {
- self.delegate = nil;
- self.backColor = [NSColor blackColor];
- self.fillScreen = NO;
- self.hasVideo = NO;
-
- [self setStretchesVideo:NO];
- [self setAutoresizesSubviews:YES];
- layoutManager = [[VLCVideoLayoutManager layoutManager] retain];
- }
- return self;
-}
-
-- (void)dealloc
-{
- self.delegate = nil;
- self.backColor = nil;
- [layoutManager release];
- [super dealloc];
-}
-
-/* NSView Overrides */
-- (void)drawRect:(NSRect)aRect
-{
- [self lockFocus];
- [backColor set];
- NSRectFill(aRect);
- [self unlockFocus];
-}
-
-- (BOOL)isOpaque
-{
- return YES;
-}
-
-/* Properties */
-@synthesize delegate;
-@synthesize backColor;
-@synthesize hasVideo;
-
-- (BOOL)fillScreen
-{
- return [layoutManager fillScreenEntirely];
-}
-
-- (void)setFillScreen:(BOOL)fillScreen
-{
- [(VLCVideoLayoutManager *)layoutManager setFillScreenEntirely:fillScreen];
- [[self layer] setNeedsLayout];
-}
-@end
-
-/******************************************************************************
- * Implementation VLCVideoView (Private)
- */
-
-@implementation VLCVideoView (Private)
-
-/* This is called by the libvlc module 'opengllayer' as soon as there is one
- * vout available
- */
-- (void)addVoutLayer:(CALayer *)aLayer
-{
- [CATransaction begin];
- [self setWantsLayer: YES];
- CALayer * rootLayer = [self layer];
-
- aLayer.name = @"vlcopengllayer";
-
- [layoutManager setOriginalVideoSize:aLayer.bounds.size];
- [rootLayer setLayoutManager:layoutManager];
- [rootLayer insertSublayer:aLayer atIndex:0];
- [aLayer setNeedsDisplayOnBoundsChange:YES];
-
- [CATransaction commit];
- self.hasVideo = YES;
-}
-
-- (void)removeVoutLayer:(CALayer *)voutLayer
-{
- [CATransaction begin];
- [voutLayer removeFromSuperlayer];
- [CATransaction commit];
- self.hasVideo = NO;
-}
-
-@end
-
-/******************************************************************************
- * Implementation VLCVideoView (Deprecated)
- */
-
-@implementation VLCVideoView (Deprecated)
-
-- (void)setStretchesVideo:(BOOL)value
-{
- stretchesVideo = value;
-}
-
-- (BOOL)stretchesVideo
-{
- return stretchesVideo;
-}
-
-/* This is called by the libvlc module 'minimal_macosx' as soon as there is one
- * vout available
- */
-- (void)addVoutSubview:(NSView *)aView /* (Scheduled to deletion) */
-{
- [aView setFrame:[self bounds]];
-
- [self addSubview:aView];
-
- // TODO: Should we let the media player specify these values?
- [aView setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable];
-}
-
-- (void)removeVoutSubview:(NSView *)view /* (Scheduled to deletion) */
-{
- // Should we do something? I don't know, however the protocol requires
- // this to be implemented
-}
-@end
+++ /dev/null
-<?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>English</string>
- <key>CFBundleExecutable</key>
- <string>Quartz</string>
- <key>CFBundleIdentifier</key>
- <string>org.videolan.vlckitframework</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>VLC</string>
- <key>CFBundlePackageType</key>
- <string>FMWK</string>
- <key>CFBundleShortVersionString</key>
- <string>0.1</string>
- <key>CFBundleVersion</key>
- <string>0.1</string>
-</dict>
-</plist>
+++ /dev/null
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXAggregateTarget section */
- 6337547910ED090A0072A0D9 /* Make VLC */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 6337548110ED093B0072A0D9 /* Build configuration list for PBXAggregateTarget "Make VLC" */;
- buildPhases = (
- 6337548010ED091D0072A0D9 /* make */,
- 633754D310ED0D330072A0D9 /* install */,
- );
- dependencies = (
- CC4C58F413F539B900FB0EFC /* PBXTargetDependency */,
- );
- name = "Make VLC";
- productName = "Make VLC 2";
- };
- 633BD6E40D2ADF030012A314 /* Setup VLC contribs */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 633BD6EC0D2ADF460012A314 /* Build configuration list for PBXAggregateTarget "Setup VLC contribs" */;
- buildPhases = (
- 633BD6E30D2ADF030012A314 /* make */,
- );
- dependencies = (
- );
- name = "Setup VLC contribs";
- productName = "vlc-contrib";
- };
- 63FFDBCE0D2AE2AE0092FC96 /* Run VLC configure */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 63FFDBD50D2AE3250092FC96 /* Build configuration list for PBXAggregateTarget "Run VLC configure" */;
- buildPhases = (
- 631A90420D5A007D0014A2CE /* bootstrap */,
- 63FFDBCD0D2AE2AE0092FC96 /* configure */,
- );
- dependencies = (
- );
- name = "Run VLC configure";
- productName = "vlc-bootstrap";
- };
- CC61094C112F4AB500FAFD22 /* Make VLC and VLCKit */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = CC61095D112F4AD400FAFD22 /* Build configuration list for PBXAggregateTarget "Make VLC and VLCKit" */;
- buildPhases = (
- );
- dependencies = (
- CC610951112F4ABB00FAFD22 /* PBXTargetDependency */,
- CC610953112F4ABF00FAFD22 /* PBXTargetDependency */,
- );
- name = "Make VLC and VLCKit";
- productName = "Make VLC and VLCKit";
- };
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
- 63014A7A1042ACE100534090 /* VLCMediaListPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 63014A781042ACE100534090 /* VLCMediaListPlayer.m */; };
- 63014B7E1042E64A00534090 /* VLCMediaListPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 63014B7D1042E64A00534090 /* VLCMediaListPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 63098FDC110E7159005F46AE /* VLCExtensionsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 63098FDA110E7159005F46AE /* VLCExtensionsManager.m */; };
- 63099116110F0EC3005F46AE /* VLCExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 63099114110F0EC3005F46AE /* VLCExtension.m */; };
- 6309994B110FC791005F46AE /* VLCExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 63099949110FC791005F46AE /* VLCExtension.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6309994C110FC791005F46AE /* VLCExtensionsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6309994A110FC791005F46AE /* VLCExtensionsManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 632A0E850D3835C400AFC99B /* VLCStreamSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 632A0E830D3835C400AFC99B /* VLCStreamSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 632A0E860D3835C400AFC99B /* VLCStreamSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A0E840D3835C400AFC99B /* VLCStreamSession.m */; };
- 632A0EC30D38392E00AFC99B /* VLCStreamOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 632A0EC10D38392E00AFC99B /* VLCStreamOutput.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 632A0EC40D38392E00AFC99B /* VLCStreamOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A0EC20D38392E00AFC99B /* VLCStreamOutput.m */; };
- 6341FCAF0D2C0929002A97B7 /* VLCVideoLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6341FCAE0D2C0929002A97B7 /* VLCVideoLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6341FCB10D2C0936002A97B7 /* VLCVideoLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6341FCB00D2C0936002A97B7 /* VLCVideoLayer.m */; };
- 636E974E11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 636E974C11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m */; };
- 637CFB940D2D280900A041B6 /* VLCLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 637CFB930D2D280800A041B6 /* VLCLibrary.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 637D5ABD0CF6F2650073EA45 /* VLCMediaDiscoverer.h in Headers */ = {isa = PBXBuildFile; fileRef = 637D5ABC0CF6F2650073EA45 /* VLCMediaDiscoverer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 637D5ADC0CF6F2720073EA45 /* VLCMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = 637D5ADB0CF6F2720073EA45 /* VLCMediaDiscoverer.m */; };
- 6384FD080D0DBA20005EB1F7 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6384FD070D0DBA20005EB1F7 /* QuartzCore.framework */; };
- 63D88D93124E9BF600F65FA0 /* VLCMediaThumbnailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 63D88D92124E9BF600F65FA0 /* VLCMediaThumbnailer.h */; };
- 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
- A7A0CEA40D2EF13000F2C039 /* VLCVideoCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A0CEA20D2EF13000F2C039 /* VLCVideoCommon.h */; };
- A7A0CEA50D2EF13000F2C039 /* VLCVideoCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A0CEA30D2EF13000F2C039 /* VLCVideoCommon.m */; };
- CC4C591113F53EA400FB0EFC /* VLCEventManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3C0CAEEFF600354E6E /* VLCEventManager.m */; };
- CC4C591213F53EA400FB0EFC /* VLCLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3D0CAEEFF600354E6E /* VLCLibrary.m */; };
- CC4C591313F53EA400FB0EFC /* VLCMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3E0CAEEFF600354E6E /* VLCMedia.m */; };
- CC4C591413F53EA400FB0EFC /* VLCMediaLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD400CAEEFF600354E6E /* VLCMediaLibrary.m */; };
- CC4C591513F53EA400FB0EFC /* VLCMediaList.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD410CAEEFF600354E6E /* VLCMediaList.m */; };
- CC4C591613F53EA400FB0EFC /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD440CAEEFF600354E6E /* VLCTime.m */; };
- CC4C591713F53EA400FB0EFC /* VLCVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD450CAEEFF600354E6E /* VLCVideoView.m */; };
- CC4C591813F53EA400FB0EFC /* VLCMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = EF8BB8CF0CAFA8D80038A613 /* VLCMediaPlayer.m */; };
- CC4C591913F53EA400FB0EFC /* VLCAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = EF73118F0CB5797B009473B4 /* VLCAudio.m */; };
- CC4C591A13F53EA400FB0EFC /* VLCMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = 637D5ADB0CF6F2720073EA45 /* VLCMediaDiscoverer.m */; };
- CC4C591B13F53EA400FB0EFC /* VLCVideoLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6341FCB00D2C0936002A97B7 /* VLCVideoLayer.m */; };
- CC4C591C13F53EA400FB0EFC /* VLCVideoCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = A7A0CEA30D2EF13000F2C039 /* VLCVideoCommon.m */; };
- CC4C591D13F53EA400FB0EFC /* VLCStreamSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A0E840D3835C400AFC99B /* VLCStreamSession.m */; };
- CC4C591E13F53EA400FB0EFC /* VLCStreamOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 632A0EC20D38392E00AFC99B /* VLCStreamOutput.m */; };
- CC4C591F13F53EA400FB0EFC /* VLCMediaListPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 63014A781042ACE100534090 /* VLCMediaListPlayer.m */; };
- CC4C592013F53EA400FB0EFC /* VLCExtensionsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 63098FDA110E7159005F46AE /* VLCExtensionsManager.m */; };
- CC4C592113F53EA400FB0EFC /* VLCExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 63099114110F0EC3005F46AE /* VLCExtension.m */; };
- CC4C592213F53EA400FB0EFC /* VLCMediaThumbnailer.m in Sources */ = {isa = PBXBuildFile; fileRef = 636E974C11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m */; };
- CC4C592413F53EA400FB0EFC /* VLCEventManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD0D0CAEEEC300354E6E /* VLCEventManager.h */; settings = {ATTRIBUTES = (); }; };
- CC4C592513F53EA400FB0EFC /* VLCKit.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD120CAEEEE700354E6E /* VLCKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592613F53EA400FB0EFC /* VLCMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD130CAEEEE700354E6E /* VLCMedia.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592713F53EA400FB0EFC /* VLCMediaLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD150CAEEEE700354E6E /* VLCMediaLibrary.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592813F53EA400FB0EFC /* VLCMediaList.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD160CAEEEE700354E6E /* VLCMediaList.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592913F53EA400FB0EFC /* VLCTime.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD190CAEEEE700354E6E /* VLCTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592A13F53EA400FB0EFC /* VLCVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD1A0CAEEEE700354E6E /* VLCVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592B13F53EA400FB0EFC /* VLCMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = EF8BB8CE0CAFA8D80038A613 /* VLCMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592C13F53EA400FB0EFC /* VLCAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = EF73118E0CB5797B009473B4 /* VLCAudio.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592D13F53EA400FB0EFC /* VLCLibVLCBridging.h in Headers */ = {isa = PBXBuildFile; fileRef = EFD551DC0CC6DD720074CEE1 /* VLCLibVLCBridging.h */; };
- CC4C592E13F53EA400FB0EFC /* VLCMediaDiscoverer.h in Headers */ = {isa = PBXBuildFile; fileRef = 637D5ABC0CF6F2650073EA45 /* VLCMediaDiscoverer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C592F13F53EA400FB0EFC /* VLCVideoLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6341FCAE0D2C0929002A97B7 /* VLCVideoLayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593013F53EA400FB0EFC /* VLCLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 637CFB930D2D280800A041B6 /* VLCLibrary.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593113F53EA400FB0EFC /* VLCVideoCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = A7A0CEA20D2EF13000F2C039 /* VLCVideoCommon.h */; };
- CC4C593213F53EA400FB0EFC /* VLCStreamSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 632A0E830D3835C400AFC99B /* VLCStreamSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593313F53EA400FB0EFC /* VLCStreamOutput.h in Headers */ = {isa = PBXBuildFile; fileRef = 632A0EC10D38392E00AFC99B /* VLCStreamOutput.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593413F53EA400FB0EFC /* VLCMediaListPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 63014B7D1042E64A00534090 /* VLCMediaListPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593513F53EA400FB0EFC /* VLCExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 63099949110FC791005F46AE /* VLCExtension.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593613F53EA400FB0EFC /* VLCExtensionsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6309994A110FC791005F46AE /* VLCExtensionsManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CC4C593713F53EA400FB0EFC /* VLCMediaThumbnailer.h in Headers */ = {isa = PBXBuildFile; fileRef = 63D88D92124E9BF600F65FA0 /* VLCMediaThumbnailer.h */; };
- CC4C593A13F53EA400FB0EFC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
- CC4C593B13F53EA400FB0EFC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6384FD070D0DBA20005EB1F7 /* QuartzCore.framework */; };
- EF7311900CB5797B009473B4 /* VLCAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = EF73118E0CB5797B009473B4 /* VLCAudio.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF7311910CB5797B009473B4 /* VLCAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = EF73118F0CB5797B009473B4 /* VLCAudio.m */; };
- EF78BD100CAEEEC300354E6E /* VLCEventManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD0D0CAEEEC300354E6E /* VLCEventManager.h */; settings = {ATTRIBUTES = (); }; };
- EF78BD1B0CAEEEE700354E6E /* VLCKit.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD120CAEEEE700354E6E /* VLCKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BD1C0CAEEEE700354E6E /* VLCMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD130CAEEEE700354E6E /* VLCMedia.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BD1E0CAEEEE700354E6E /* VLCMediaLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD150CAEEEE700354E6E /* VLCMediaLibrary.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BD1F0CAEEEE700354E6E /* VLCMediaList.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD160CAEEEE700354E6E /* VLCMediaList.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BD460CAEEFF600354E6E /* VLCEventManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3C0CAEEFF600354E6E /* VLCEventManager.m */; };
- EF78BD470CAEEFF600354E6E /* VLCLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3D0CAEEFF600354E6E /* VLCLibrary.m */; };
- EF78BD480CAEEFF600354E6E /* VLCMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD3E0CAEEFF600354E6E /* VLCMedia.m */; };
- EF78BD4A0CAEEFF600354E6E /* VLCMediaLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD400CAEEFF600354E6E /* VLCMediaLibrary.m */; };
- EF78BD4B0CAEEFF600354E6E /* VLCMediaList.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD410CAEEFF600354E6E /* VLCMediaList.m */; };
- EF78BE0F0CAF039400354E6E /* VLCTime.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD190CAEEEE700354E6E /* VLCTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BE100CAF039400354E6E /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD440CAEEFF600354E6E /* VLCTime.m */; };
- EF78BEF30CAF07E100354E6E /* VLCVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = EF78BD1A0CAEEEE700354E6E /* VLCVideoView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF78BEF40CAF07E500354E6E /* VLCVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = EF78BD450CAEEFF600354E6E /* VLCVideoView.m */; };
- EF8BB8D00CAFA8D80038A613 /* VLCMediaPlayer.h in Headers */ = {isa = PBXBuildFile; fileRef = EF8BB8CE0CAFA8D80038A613 /* VLCMediaPlayer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EF8BB8D10CAFA8D80038A613 /* VLCMediaPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = EF8BB8CF0CAFA8D80038A613 /* VLCMediaPlayer.m */; };
- EFD551DD0CC6DD720074CEE1 /* VLCLibVLCBridging.h in Headers */ = {isa = PBXBuildFile; fileRef = EFD551DC0CC6DD720074CEE1 /* VLCLibVLCBridging.h */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- CC4C58F313F539B900FB0EFC /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 63FFDBCE0D2AE2AE0092FC96;
- remoteInfo = "Run VLC configure";
- };
- CC4C590A13F53EA400FB0EFC /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 633BD6E40D2ADF030012A314;
- remoteInfo = "Setup VLC contribs";
- };
- CC4C590C13F53EA400FB0EFC /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 63FFDBCE0D2AE2AE0092FC96;
- remoteInfo = "Run VLC configure";
- };
- CC4C590E13F53EA400FB0EFC /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 6337547910ED090A0072A0D9;
- remoteInfo = "Make VLC";
- };
- CC610950112F4ABB00FAFD22 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 6337547910ED090A0072A0D9;
- remoteInfo = "Make VLC";
- };
- CC610952112F4ABF00FAFD22 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
- remoteInfo = VLCKit;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
- 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
- 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
- 32DBCF5E0370ADEE00C91783 /* VLC_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLC_Prefix.pch; sourceTree = "<group>"; };
- 63014A781042ACE100534090 /* VLCMediaListPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCMediaListPlayer.m; sourceTree = "<group>"; };
- 63014B7D1042E64A00534090 /* VLCMediaListPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaListPlayer.h; path = Public/VLCMediaListPlayer.h; sourceTree = "<group>"; };
- 63030CC70CCA652C0088ECD1 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; name = Info.plist; path = Resources/Info.plist; sourceTree = "<group>"; };
- 63098FDA110E7159005F46AE /* VLCExtensionsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCExtensionsManager.m; sourceTree = "<group>"; };
- 63099114110F0EC3005F46AE /* VLCExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCExtension.m; sourceTree = "<group>"; };
- 63099949110FC791005F46AE /* VLCExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCExtension.h; path = Public/VLCExtension.h; sourceTree = "<group>"; };
- 6309994A110FC791005F46AE /* VLCExtensionsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCExtensionsManager.h; path = Public/VLCExtensionsManager.h; sourceTree = "<group>"; };
- 632A0E830D3835C400AFC99B /* VLCStreamSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCStreamSession.h; path = Public/VLCStreamSession.h; sourceTree = "<group>"; };
- 632A0E840D3835C400AFC99B /* VLCStreamSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCStreamSession.m; sourceTree = "<group>"; };
- 632A0EC10D38392E00AFC99B /* VLCStreamOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCStreamOutput.h; path = Public/VLCStreamOutput.h; sourceTree = "<group>"; };
- 632A0EC20D38392E00AFC99B /* VLCStreamOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCStreamOutput.m; sourceTree = "<group>"; };
- 633753FF10ECE1C60072A0D9 /* Configure.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = Configure.sh; sourceTree = "<group>"; };
- 634117B911D9344400FA3A70 /* MobileVLCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MobileVLCKit.h; path = Public/MobileVLCKit.h; sourceTree = "<group>"; };
- 6341FCAE0D2C0929002A97B7 /* VLCVideoLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCVideoLayer.h; path = Public/VLCVideoLayer.h; sourceTree = "<group>"; };
- 6341FCB00D2C0936002A97B7 /* VLCVideoLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCVideoLayer.m; sourceTree = "<group>"; };
- 636E974C11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCMediaThumbnailer.m; sourceTree = "<group>"; };
- 637CFB930D2D280800A041B6 /* VLCLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCLibrary.h; path = Public/VLCLibrary.h; sourceTree = "<group>"; };
- 637D5ABC0CF6F2650073EA45 /* VLCMediaDiscoverer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCMediaDiscoverer.h; path = Public/VLCMediaDiscoverer.h; sourceTree = "<group>"; };
- 637D5ADB0CF6F2720073EA45 /* VLCMediaDiscoverer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCMediaDiscoverer.m; sourceTree = "<group>"; };
- 6384FD070D0DBA20005EB1F7 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
- 63D88C56124E9A5100F65FA0 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
- 63D88CA9124E9A8200F65FA0 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = System/Library/Frameworks/ApplicationServices.framework; sourceTree = SDKROOT; };
- 63D88D92124E9BF600F65FA0 /* VLCMediaThumbnailer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaThumbnailer.h; path = Public/VLCMediaThumbnailer.h; sourceTree = "<group>"; };
- A26DCC7314279D2400EA47A0 /* VLCKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VLCKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- A7A0CEA20D2EF13000F2C039 /* VLCVideoCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCVideoCommon.h; path = Internal/VLCVideoCommon.h; sourceTree = "<group>"; };
- A7A0CEA30D2EF13000F2C039 /* VLCVideoCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCVideoCommon.m; sourceTree = "<group>"; };
- CC4C594013F53EA400FB0EFC /* VLCKit-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VLCKit-Info.plist"; path = "/Users/dilaroga/dev/vlc_workspace/vlc/projects/macosx/framework/VLCKit-Info.plist"; sourceTree = "<absolute>"; };
- CCEC5B73114D9BE800D34AAB /* deprecated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = deprecated.h; path = ../../../include/vlc/deprecated.h; sourceTree = SOURCE_ROOT; };
- CCEC5B74114D9BE800D34AAB /* libvlc_events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_events.h; path = ../../../include/vlc/libvlc_events.h; sourceTree = SOURCE_ROOT; };
- CCEC5B75114D9BE800D34AAB /* libvlc_media_discoverer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media_discoverer.h; path = ../../../include/vlc/libvlc_media_discoverer.h; sourceTree = SOURCE_ROOT; };
- CCEC5B76114D9BE800D34AAB /* libvlc_media_library.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media_library.h; path = ../../../include/vlc/libvlc_media_library.h; sourceTree = SOURCE_ROOT; };
- CCEC5B77114D9BE800D34AAB /* libvlc_media_list_player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media_list_player.h; path = ../../../include/vlc/libvlc_media_list_player.h; sourceTree = SOURCE_ROOT; };
- CCEC5B78114D9BE800D34AAB /* libvlc_media_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media_list.h; path = ../../../include/vlc/libvlc_media_list.h; sourceTree = SOURCE_ROOT; };
- CCEC5B79114D9BE800D34AAB /* libvlc_media_player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media_player.h; path = ../../../include/vlc/libvlc_media_player.h; sourceTree = SOURCE_ROOT; };
- CCEC5B7A114D9BE800D34AAB /* libvlc_media.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_media.h; path = ../../../include/vlc/libvlc_media.h; sourceTree = SOURCE_ROOT; };
- CCEC5B7B114D9BE800D34AAB /* libvlc_structures.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_structures.h; path = ../../../include/vlc/libvlc_structures.h; sourceTree = SOURCE_ROOT; };
- CCEC5B7C114D9BE800D34AAB /* libvlc_vlm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc_vlm.h; path = ../../../include/vlc/libvlc_vlm.h; sourceTree = SOURCE_ROOT; };
- CCEC5B7D114D9BE800D34AAB /* libvlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libvlc.h; path = ../../../include/vlc/libvlc.h; sourceTree = SOURCE_ROOT; };
- CCEC5B7E114D9BE800D34AAB /* vlc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vlc.h; path = ../../../include/vlc/vlc.h; sourceTree = SOURCE_ROOT; };
- D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
- EF73118E0CB5797B009473B4 /* VLCAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAudio.h; path = Public/VLCAudio.h; sourceTree = "<group>"; };
- EF73118F0CB5797B009473B4 /* VLCAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCAudio.m; sourceTree = "<group>"; };
- EF78BD0D0CAEEEC300354E6E /* VLCEventManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCEventManager.h; path = Internal/VLCEventManager.h; sourceTree = "<group>"; };
- EF78BD120CAEEEE700354E6E /* VLCKit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCKit.h; path = Public/VLCKit.h; sourceTree = "<group>"; };
- EF78BD130CAEEEE700354E6E /* VLCMedia.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCMedia.h; path = Public/VLCMedia.h; sourceTree = "<group>"; };
- EF78BD150CAEEEE700354E6E /* VLCMediaLibrary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCMediaLibrary.h; path = Public/VLCMediaLibrary.h; sourceTree = "<group>"; };
- EF78BD160CAEEEE700354E6E /* VLCMediaList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCMediaList.h; path = Public/VLCMediaList.h; sourceTree = "<group>"; };
- EF78BD190CAEEEE700354E6E /* VLCTime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCTime.h; path = Public/VLCTime.h; sourceTree = "<group>"; };
- EF78BD1A0CAEEEE700354E6E /* VLCVideoView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCVideoView.h; path = Public/VLCVideoView.h; sourceTree = "<group>"; };
- EF78BD350CAEEFB000354E6E /* Pre-Compile.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = "Pre-Compile.sh"; sourceTree = "<group>"; };
- EF78BD3C0CAEEFF600354E6E /* VLCEventManager.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCEventManager.m; sourceTree = "<group>"; };
- EF78BD3D0CAEEFF600354E6E /* VLCLibrary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCLibrary.m; sourceTree = "<group>"; };
- EF78BD3E0CAEEFF600354E6E /* VLCMedia.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCMedia.m; sourceTree = "<group>"; };
- EF78BD400CAEEFF600354E6E /* VLCMediaLibrary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCMediaLibrary.m; sourceTree = "<group>"; };
- EF78BD410CAEEFF600354E6E /* VLCMediaList.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCMediaList.m; sourceTree = "<group>"; };
- EF78BD440CAEEFF600354E6E /* VLCTime.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCTime.m; sourceTree = "<group>"; };
- EF78BD450CAEEFF600354E6E /* VLCVideoView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = VLCVideoView.m; sourceTree = "<group>"; };
- EF8BB8CE0CAFA8D80038A613 /* VLCMediaPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaPlayer.h; path = Public/VLCMediaPlayer.h; sourceTree = "<group>"; };
- EF8BB8CF0CAFA8D80038A613 /* VLCMediaPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCMediaPlayer.m; sourceTree = "<group>"; };
- EFD551DC0CC6DD720074CEE1 /* VLCLibVLCBridging.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = VLCLibVLCBridging.h; path = Internal/VLCLibVLCBridging.h; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8DC2EF560486A6940098B216 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */,
- 6384FD080D0DBA20005EB1F7 /* QuartzCore.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- CC4C593913F53EA400FB0EFC /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- CC4C593A13F53EA400FB0EFC /* Cocoa.framework in Frameworks */,
- CC4C593B13F53EA400FB0EFC /* QuartzCore.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 034768DFFF38A50411DB9C8B /* Products */ = {
- isa = PBXGroup;
- children = (
- A26DCC7314279D2400EA47A0 /* VLCKit.framework */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 0867D691FE84028FC02AAC07 /* VLC */ = {
- isa = PBXGroup;
- children = (
- EF78BD3B0CAEEFD000354E6E /* Headers */,
- 08FB77AEFE84172EC02AAC07 /* Sources */,
- 32C88DFF0371C24200C91783 /* Other Sources */,
- 089C1665FE841158C02AAC07 /* Resources */,
- 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */,
- 034768DFFF38A50411DB9C8B /* Products */,
- 63D88C56124E9A5100F65FA0 /* Quartz.framework */,
- 63D88CA9124E9A8200F65FA0 /* ApplicationServices.framework */,
- CC4C594013F53EA400FB0EFC /* VLCKit-Info.plist */,
- );
- name = VLC;
- sourceTree = "<group>";
- };
- 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = {
- isa = PBXGroup;
- children = (
- EF53DD5F0CBD7BD100D3D4D0 /* Linked Libraries */,
- 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */,
- 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */,
- );
- name = "External Frameworks and Libraries";
- sourceTree = "<group>";
- };
- 089C1665FE841158C02AAC07 /* Resources */ = {
- isa = PBXGroup;
- children = (
- EF78BD350CAEEFB000354E6E /* Pre-Compile.sh */,
- 633753FF10ECE1C60072A0D9 /* Configure.sh */,
- 63030CC70CCA652C0088ECD1 /* Info.plist */,
- );
- name = Resources;
- sourceTree = "<group>";
- };
- 08FB77AEFE84172EC02AAC07 /* Sources */ = {
- isa = PBXGroup;
- children = (
- EF78BD3C0CAEEFF600354E6E /* VLCEventManager.m */,
- EF78BD3D0CAEEFF600354E6E /* VLCLibrary.m */,
- EF78BD3E0CAEEFF600354E6E /* VLCMedia.m */,
- 637D5ADB0CF6F2720073EA45 /* VLCMediaDiscoverer.m */,
- EF78BD410CAEEFF600354E6E /* VLCMediaList.m */,
- 63014A781042ACE100534090 /* VLCMediaListPlayer.m */,
- EF8BB8CF0CAFA8D80038A613 /* VLCMediaPlayer.m */,
- 636E974C11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m */,
- EF78BD400CAEEFF600354E6E /* VLCMediaLibrary.m */,
- A7A0CEA30D2EF13000F2C039 /* VLCVideoCommon.m */,
- 6341FCB00D2C0936002A97B7 /* VLCVideoLayer.m */,
- EF78BD450CAEEFF600354E6E /* VLCVideoView.m */,
- EF78BD440CAEEFF600354E6E /* VLCTime.m */,
- EF73118F0CB5797B009473B4 /* VLCAudio.m */,
- 63098FDA110E7159005F46AE /* VLCExtensionsManager.m */,
- 63099114110F0EC3005F46AE /* VLCExtension.m */,
- 632A0F7B0D38F78500AFC99B /* Stream */,
- );
- path = Sources;
- sourceTree = "<group>";
- };
- 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = {
- isa = PBXGroup;
- children = (
- 6384FD070D0DBA20005EB1F7 /* QuartzCore.framework */,
- 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */,
- );
- name = "Linked Frameworks";
- sourceTree = "<group>";
- };
- 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = {
- isa = PBXGroup;
- children = (
- 0867D6A5FE840307C02AAC07 /* AppKit.framework */,
- D2F7E79907B2D74100F64583 /* CoreData.framework */,
- 0867D69BFE84028FC02AAC07 /* Foundation.framework */,
- );
- name = "Other Frameworks";
- sourceTree = "<group>";
- };
- 32C88DFF0371C24200C91783 /* Other Sources */ = {
- isa = PBXGroup;
- children = (
- 32DBCF5E0370ADEE00C91783 /* VLC_Prefix.pch */,
- );
- name = "Other Sources";
- sourceTree = "<group>";
- };
- 632A0F7B0D38F78500AFC99B /* Stream */ = {
- isa = PBXGroup;
- children = (
- 632A0E840D3835C400AFC99B /* VLCStreamSession.m */,
- 632A0EC20D38392E00AFC99B /* VLCStreamOutput.m */,
- );
- name = Stream;
- sourceTree = "<group>";
- };
- 632A0F7C0D38F79200AFC99B /* Stream */ = {
- isa = PBXGroup;
- children = (
- 632A0E830D3835C400AFC99B /* VLCStreamSession.h */,
- 632A0EC10D38392E00AFC99B /* VLCStreamOutput.h */,
- );
- name = Stream;
- sourceTree = "<group>";
- };
- 637CFB960D2D281900A041B6 /* Internal */ = {
- isa = PBXGroup;
- children = (
- 63D88D92124E9BF600F65FA0 /* VLCMediaThumbnailer.h */,
- EFD551DC0CC6DD720074CEE1 /* VLCLibVLCBridging.h */,
- EF78BD0D0CAEEEC300354E6E /* VLCEventManager.h */,
- A7A0CEA20D2EF13000F2C039 /* VLCVideoCommon.h */,
- );
- name = Internal;
- sourceTree = "<group>";
- };
- CCEC5B6C114D9BD300D34AAB /* libvlc (not distributed) */ = {
- isa = PBXGroup;
- children = (
- CCEC5B73114D9BE800D34AAB /* deprecated.h */,
- CCEC5B74114D9BE800D34AAB /* libvlc_events.h */,
- CCEC5B75114D9BE800D34AAB /* libvlc_media_discoverer.h */,
- CCEC5B76114D9BE800D34AAB /* libvlc_media_library.h */,
- CCEC5B77114D9BE800D34AAB /* libvlc_media_list_player.h */,
- CCEC5B78114D9BE800D34AAB /* libvlc_media_list.h */,
- CCEC5B79114D9BE800D34AAB /* libvlc_media_player.h */,
- CCEC5B7A114D9BE800D34AAB /* libvlc_media.h */,
- CCEC5B7B114D9BE800D34AAB /* libvlc_structures.h */,
- CCEC5B7C114D9BE800D34AAB /* libvlc_vlm.h */,
- CCEC5B7D114D9BE800D34AAB /* libvlc.h */,
- CCEC5B7E114D9BE800D34AAB /* vlc.h */,
- );
- name = "libvlc (not distributed)";
- sourceTree = "<group>";
- };
- EF53DD5F0CBD7BD100D3D4D0 /* Linked Libraries */ = {
- isa = PBXGroup;
- children = (
- );
- name = "Linked Libraries";
- sourceTree = "<group>";
- };
- EF6BC9110DA1932F00DD37EF /* Public */ = {
- isa = PBXGroup;
- children = (
- 634117B911D9344400FA3A70 /* MobileVLCKit.h */,
- EF78BD120CAEEEE700354E6E /* VLCKit.h */,
- 637CFB930D2D280800A041B6 /* VLCLibrary.h */,
- EF78BD130CAEEEE700354E6E /* VLCMedia.h */,
- 637D5ABC0CF6F2650073EA45 /* VLCMediaDiscoverer.h */,
- EF78BD160CAEEEE700354E6E /* VLCMediaList.h */,
- 63014B7D1042E64A00534090 /* VLCMediaListPlayer.h */,
- EF8BB8CE0CAFA8D80038A613 /* VLCMediaPlayer.h */,
- EF78BD150CAEEEE700354E6E /* VLCMediaLibrary.h */,
- 6341FCAE0D2C0929002A97B7 /* VLCVideoLayer.h */,
- EF78BD1A0CAEEEE700354E6E /* VLCVideoView.h */,
- EF78BD190CAEEEE700354E6E /* VLCTime.h */,
- EF73118E0CB5797B009473B4 /* VLCAudio.h */,
- 63099949110FC791005F46AE /* VLCExtension.h */,
- 6309994A110FC791005F46AE /* VLCExtensionsManager.h */,
- 632A0F7C0D38F79200AFC99B /* Stream */,
- );
- name = Public;
- sourceTree = "<group>";
- };
- EF78BD3B0CAEEFD000354E6E /* Headers */ = {
- isa = PBXGroup;
- children = (
- CCEC5B6C114D9BD300D34AAB /* libvlc (not distributed) */,
- 637CFB960D2D281900A041B6 /* Internal */,
- EF6BC9110DA1932F00DD37EF /* Public */,
- );
- path = Headers;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
- 8DC2EF500486A6940098B216 /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- EF78BD100CAEEEC300354E6E /* VLCEventManager.h in Headers */,
- EF78BD1B0CAEEEE700354E6E /* VLCKit.h in Headers */,
- EF78BD1C0CAEEEE700354E6E /* VLCMedia.h in Headers */,
- EF78BD1E0CAEEEE700354E6E /* VLCMediaLibrary.h in Headers */,
- EF78BD1F0CAEEEE700354E6E /* VLCMediaList.h in Headers */,
- EF78BE0F0CAF039400354E6E /* VLCTime.h in Headers */,
- EF78BEF30CAF07E100354E6E /* VLCVideoView.h in Headers */,
- EF8BB8D00CAFA8D80038A613 /* VLCMediaPlayer.h in Headers */,
- EF7311900CB5797B009473B4 /* VLCAudio.h in Headers */,
- EFD551DD0CC6DD720074CEE1 /* VLCLibVLCBridging.h in Headers */,
- 637D5ABD0CF6F2650073EA45 /* VLCMediaDiscoverer.h in Headers */,
- 6341FCAF0D2C0929002A97B7 /* VLCVideoLayer.h in Headers */,
- 637CFB940D2D280900A041B6 /* VLCLibrary.h in Headers */,
- A7A0CEA40D2EF13000F2C039 /* VLCVideoCommon.h in Headers */,
- 632A0E850D3835C400AFC99B /* VLCStreamSession.h in Headers */,
- 632A0EC30D38392E00AFC99B /* VLCStreamOutput.h in Headers */,
- 63014B7E1042E64A00534090 /* VLCMediaListPlayer.h in Headers */,
- 6309994B110FC791005F46AE /* VLCExtension.h in Headers */,
- 6309994C110FC791005F46AE /* VLCExtensionsManager.h in Headers */,
- 63D88D93124E9BF600F65FA0 /* VLCMediaThumbnailer.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- CC4C592313F53EA400FB0EFC /* Headers */ = {
- isa = PBXHeadersBuildPhase;
- buildActionMask = 2147483647;
- files = (
- CC4C592413F53EA400FB0EFC /* VLCEventManager.h in Headers */,
- CC4C592513F53EA400FB0EFC /* VLCKit.h in Headers */,
- CC4C592613F53EA400FB0EFC /* VLCMedia.h in Headers */,
- CC4C592713F53EA400FB0EFC /* VLCMediaLibrary.h in Headers */,
- CC4C592813F53EA400FB0EFC /* VLCMediaList.h in Headers */,
- CC4C592913F53EA400FB0EFC /* VLCTime.h in Headers */,
- CC4C592A13F53EA400FB0EFC /* VLCVideoView.h in Headers */,
- CC4C592B13F53EA400FB0EFC /* VLCMediaPlayer.h in Headers */,
- CC4C592C13F53EA400FB0EFC /* VLCAudio.h in Headers */,
- CC4C592D13F53EA400FB0EFC /* VLCLibVLCBridging.h in Headers */,
- CC4C592E13F53EA400FB0EFC /* VLCMediaDiscoverer.h in Headers */,
- CC4C592F13F53EA400FB0EFC /* VLCVideoLayer.h in Headers */,
- CC4C593013F53EA400FB0EFC /* VLCLibrary.h in Headers */,
- CC4C593113F53EA400FB0EFC /* VLCVideoCommon.h in Headers */,
- CC4C593213F53EA400FB0EFC /* VLCStreamSession.h in Headers */,
- CC4C593313F53EA400FB0EFC /* VLCStreamOutput.h in Headers */,
- CC4C593413F53EA400FB0EFC /* VLCMediaListPlayer.h in Headers */,
- CC4C593513F53EA400FB0EFC /* VLCExtension.h in Headers */,
- CC4C593613F53EA400FB0EFC /* VLCExtensionsManager.h in Headers */,
- CC4C593713F53EA400FB0EFC /* VLCMediaThumbnailer.h in Headers */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
- 8DC2EF4F0486A6940098B216 /* Build just VLCKit */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Build just VLCKit" */;
- buildPhases = (
- EF78BD2E0CAEEF9500354E6E /* ShellScript */,
- 8DC2EF540486A6940098B216 /* Sources */,
- 8DC2EF500486A6940098B216 /* Headers */,
- 8DC2EF520486A6940098B216 /* Resources */,
- 8DC2EF560486A6940098B216 /* Frameworks */,
- );
- buildRules = (
- );
- comments = "-lvlc -lvlc-control -dylib_file @loader_path/../lib/vlc_libintl.dylib:$(TARGET_BUILD_DIR)/$(PROJECT_NAME).framework/lib/vlc_libintl.dylib -dylib_file @loader_path/../lib/libvlc.dylib:$(TARGET_BUILD_DIR)/$(PROJECT_NAME).framework/lib/libvlc.dylib";
- dependencies = (
- );
- name = "Build just VLCKit";
- productInstallPath = "$(HOME)/Library/Frameworks";
- productName = VLC;
- productReference = A26DCC7314279D2400EA47A0 /* VLCKit.framework */;
- productType = "com.apple.product-type.framework";
- };
- CC4C590813F53EA400FB0EFC /* Build Everything */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = CC4C593C13F53EA400FB0EFC /* Build configuration list for PBXNativeTarget "Build Everything" */;
- buildPhases = (
- CC4C590F13F53EA400FB0EFC /* ShellScript */,
- CC4C591013F53EA400FB0EFC /* Sources */,
- CC4C592313F53EA400FB0EFC /* Headers */,
- CC4C593813F53EA400FB0EFC /* Resources */,
- CC4C593913F53EA400FB0EFC /* Frameworks */,
- );
- buildRules = (
- );
- comments = "-lvlc -lvlc-control -dylib_file @loader_path/../lib/vlc_libintl.dylib:$(TARGET_BUILD_DIR)/$(PROJECT_NAME).framework/lib/vlc_libintl.dylib -dylib_file @loader_path/../lib/libvlc.dylib:$(TARGET_BUILD_DIR)/$(PROJECT_NAME).framework/lib/libvlc.dylib";
- dependencies = (
- CC4C590913F53EA400FB0EFC /* PBXTargetDependency */,
- CC4C590B13F53EA400FB0EFC /* PBXTargetDependency */,
- CC4C590D13F53EA400FB0EFC /* PBXTargetDependency */,
- );
- name = "Build Everything";
- productInstallPath = "$(HOME)/Library/Frameworks";
- productName = VLC;
- productType = "com.apple.product-type.framework";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 0867D690FE84028FC02AAC07 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0430;
- };
- buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "VLCKit" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- English,
- Japanese,
- French,
- German,
- );
- mainGroup = 0867D691FE84028FC02AAC07 /* VLC */;
- productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 633BD6E40D2ADF030012A314 /* Setup VLC contribs */,
- 63FFDBCE0D2AE2AE0092FC96 /* Run VLC configure */,
- 6337547910ED090A0072A0D9 /* Make VLC */,
- 8DC2EF4F0486A6940098B216 /* Build just VLCKit */,
- CC61094C112F4AB500FAFD22 /* Make VLC and VLCKit */,
- CC4C590813F53EA400FB0EFC /* Build Everything */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8DC2EF520486A6940098B216 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- CC4C593813F53EA400FB0EFC /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 631A90420D5A007D0014A2CE /* bootstrap */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "$(SRCROOT)/../../../bootstrap",
- );
- name = bootstrap;
- outputPaths = (
- "$(SRCROOT)/../../../configure",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "top_srcdir=`pwd`/../../..\n\nif test \"$ACTION\" = \"clean\"\nthen\n exit 0\nfi\n\nif test \"$arch\" = \"x86_64\"; then\n export PATH=$top_srcdir/contrib/x86_64-apple-darwin10:$PATH\nfi\n\nexport PATH=$top_srcdir/extras/tools/build/bin:$PATH\ncd \"$top_srcdir\" && ./bootstrap\n";
- showEnvVarsInLog = 0;
- };
- 6337548010ED091D0072A0D9 /* make */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = make;
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "for arch in $ARCHS; do\n\techo \"Make [$arch]\"\n\tcd $VLC_BUILD_DIR/$arch\n\tmake\ndone";
- };
- 633754D310ED0D330072A0D9 /* install */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "$(SYMROOT)/vlc_build_dir/src/.lib/libvlccore.dylib",
- "$(SYMROOT)/vlc_build_dir/src/.lib/libvlc.dylib",
- "$(SYMROOT)/vlc_build_dir/bin/.lib/vlc",
- );
- name = install;
- outputPaths = (
- "$(SYMROOT)/vlc_build_dir/lib/libvlccore.dylib",
- "$(SYMROOT)/vlc_build_dir/lib/libvlc.dylib",
- "$(SYMROOT)/vlc_build_dir/bin/vlc",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "for arch in $ARCHS; do\n\tcd $VLC_BUILD_DIR/$arch\n\tcd src\n\techo \"Installing [$arch] libvlc, libvlccore, vlc\"\n\tmake install --quiet > /dev/null\ndone";
- };
- 633BD6E30D2ADF030012A314 /* make */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = make;
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "if test $ACTION = \"clean\"\nthen\nmake clean\nexit 0\nfi\n\necho \"Building tools\"\necho \"\"\ncd $SOURCE_ROOT/../../../extras/tools\n./bootstrap\nmake\n\necho \"Building a set of contribs for $ARCHS...\"\necho \"\"\ncd $SOURCE_ROOT/../../../contrib\n\nfor arch in $ARCHS; do\n\techo \"Making contribs for $arch\"\n\trm -rf vlckit-$arch\t\n\tmkdir vlckit-$arch\n\tcd vlckit-$arch\n\tif test \"$arch\" = \"x86_64\"; then\n export OSX_VERSION=10.6\nexport TRIPLET=x86_64-apple-darwin10\nelse\nexport TRIPLET=i686-apple-darwin9\nfi\n ../bootstrap --build=$TRIPLET --host=$TRIPLET\n\tmake prebuilt\ndone\n";
- showEnvVarsInLog = 0;
- };
- 63FFDBCD0D2AE2AE0092FC96 /* configure */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = configure;
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "sh $SOURCE_ROOT/Configure.sh";
- };
- CC4C590F13F53EA400FB0EFC /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "sh $SOURCE_ROOT/Pre-Compile.sh";
- showEnvVarsInLog = 0;
- };
- EF78BD2E0CAEEF9500354E6E /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "sh $SOURCE_ROOT/Pre-Compile.sh";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8DC2EF540486A6940098B216 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- EF78BD460CAEEFF600354E6E /* VLCEventManager.m in Sources */,
- EF78BD470CAEEFF600354E6E /* VLCLibrary.m in Sources */,
- EF78BD480CAEEFF600354E6E /* VLCMedia.m in Sources */,
- EF78BD4A0CAEEFF600354E6E /* VLCMediaLibrary.m in Sources */,
- EF78BD4B0CAEEFF600354E6E /* VLCMediaList.m in Sources */,
- EF78BE100CAF039400354E6E /* VLCTime.m in Sources */,
- EF78BEF40CAF07E500354E6E /* VLCVideoView.m in Sources */,
- EF8BB8D10CAFA8D80038A613 /* VLCMediaPlayer.m in Sources */,
- EF7311910CB5797B009473B4 /* VLCAudio.m in Sources */,
- 637D5ADC0CF6F2720073EA45 /* VLCMediaDiscoverer.m in Sources */,
- 6341FCB10D2C0936002A97B7 /* VLCVideoLayer.m in Sources */,
- A7A0CEA50D2EF13000F2C039 /* VLCVideoCommon.m in Sources */,
- 632A0E860D3835C400AFC99B /* VLCStreamSession.m in Sources */,
- 632A0EC40D38392E00AFC99B /* VLCStreamOutput.m in Sources */,
- 63014A7A1042ACE100534090 /* VLCMediaListPlayer.m in Sources */,
- 63098FDC110E7159005F46AE /* VLCExtensionsManager.m in Sources */,
- 63099116110F0EC3005F46AE /* VLCExtension.m in Sources */,
- 636E974E11E8DCF1002FE8A9 /* VLCMediaThumbnailer.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- CC4C591013F53EA400FB0EFC /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- CC4C591113F53EA400FB0EFC /* VLCEventManager.m in Sources */,
- CC4C591213F53EA400FB0EFC /* VLCLibrary.m in Sources */,
- CC4C591313F53EA400FB0EFC /* VLCMedia.m in Sources */,
- CC4C591413F53EA400FB0EFC /* VLCMediaLibrary.m in Sources */,
- CC4C591513F53EA400FB0EFC /* VLCMediaList.m in Sources */,
- CC4C591613F53EA400FB0EFC /* VLCTime.m in Sources */,
- CC4C591713F53EA400FB0EFC /* VLCVideoView.m in Sources */,
- CC4C591813F53EA400FB0EFC /* VLCMediaPlayer.m in Sources */,
- CC4C591913F53EA400FB0EFC /* VLCAudio.m in Sources */,
- CC4C591A13F53EA400FB0EFC /* VLCMediaDiscoverer.m in Sources */,
- CC4C591B13F53EA400FB0EFC /* VLCVideoLayer.m in Sources */,
- CC4C591C13F53EA400FB0EFC /* VLCVideoCommon.m in Sources */,
- CC4C591D13F53EA400FB0EFC /* VLCStreamSession.m in Sources */,
- CC4C591E13F53EA400FB0EFC /* VLCStreamOutput.m in Sources */,
- CC4C591F13F53EA400FB0EFC /* VLCMediaListPlayer.m in Sources */,
- CC4C592013F53EA400FB0EFC /* VLCExtensionsManager.m in Sources */,
- CC4C592113F53EA400FB0EFC /* VLCExtension.m in Sources */,
- CC4C592213F53EA400FB0EFC /* VLCMediaThumbnailer.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- CC4C58F413F539B900FB0EFC /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 63FFDBCE0D2AE2AE0092FC96 /* Run VLC configure */;
- targetProxy = CC4C58F313F539B900FB0EFC /* PBXContainerItemProxy */;
- };
- CC4C590913F53EA400FB0EFC /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 633BD6E40D2ADF030012A314 /* Setup VLC contribs */;
- targetProxy = CC4C590A13F53EA400FB0EFC /* PBXContainerItemProxy */;
- };
- CC4C590B13F53EA400FB0EFC /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 63FFDBCE0D2AE2AE0092FC96 /* Run VLC configure */;
- targetProxy = CC4C590C13F53EA400FB0EFC /* PBXContainerItemProxy */;
- };
- CC4C590D13F53EA400FB0EFC /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 6337547910ED090A0072A0D9 /* Make VLC */;
- targetProxy = CC4C590E13F53EA400FB0EFC /* PBXContainerItemProxy */;
- };
- CC610951112F4ABB00FAFD22 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 6337547910ED090A0072A0D9 /* Make VLC */;
- targetProxy = CC610950112F4ABB00FAFD22 /* PBXContainerItemProxy */;
- };
- CC610953112F4ABF00FAFD22 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 8DC2EF4F0486A6940098B216 /* Build just VLCKit */;
- targetProxy = CC610952112F4ABF00FAFD22 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 1DEB91AE08733DA50010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_MODEL_TUNING = "";
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = VLC_Prefix.pch;
- GCC_VERSION = "";
- HEADER_SEARCH_PATHS = (
- "$(VLC_SRC_DIR)/include",
- "Headers/**",
- );
- INFOPLIST_FILE = Resources/Info.plist;
- INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/lib";
- OTHER_LDFLAGS = (
- "-lvlccore",
- "-single_module",
- "-read_only_relocs",
- suppress,
- "-lvlc",
- );
- PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
- PRODUCT_NAME = VLCKit;
- SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
- SDKROOT = macosx;
- WRAPPER_EXTENSION = framework;
- };
- name = Debug;
- };
- 1DEB91AF08733DA50010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
- GCC_MODEL_TUNING = "";
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = VLC_Prefix.pch;
- GCC_VERSION = "";
- HEADER_SEARCH_PATHS = (
- "$(VLC_SRC_DIR)/include",
- "Headers/**",
- );
- INFOPLIST_FILE = Resources/Info.plist;
- INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/lib";
- OTHER_LDFLAGS = (
- "-lvlccore",
- "-single_module",
- "-read_only_relocs",
- suppress,
- "-lvlc",
- );
- PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
- PRODUCT_NAME = VLCKit;
- SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
- SDKROOT = macosx;
- WRAPPER_EXTENSION = framework;
- };
- name = Release;
- };
- 1DEB91B208733DA50010E9CD /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = (
- x86_64,
- i386,
- );
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_ENABLE_OBJC_GC = supported;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- VALID_ARCHS = "i386 ppc ppc64 ppc7400 x86_64";
- VLC_BUILD_DIR = "$(SYMROOT)/$(CONFIGURATION)/vlc_build_dir";
- VLC_SRC_DIR = "$(SRCROOT)/../../..";
- };
- name = Debug;
- };
- 1DEB91B308733DA50010E9CD /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = (
- x86_64,
- i386,
- );
- GCC_C_LANGUAGE_STANDARD = c99;
- GCC_ENABLE_OBJC_GC = supported;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- ONLY_ACTIVE_ARCH = NO;
- SDKROOT = macosx;
- VALID_ARCHS = "i386 ppc ppc64 ppc7400 x86_64";
- VLC_BUILD_DIR = "$(SYMROOT)/$(CONFIGURATION)/vlc_build_dir";
- VLC_SRC_DIR = "$(SRCROOT)/../../..";
- };
- name = Release;
- };
- 6337547C10ED090B0072A0D9 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = VLC;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 6337547D10ED090B0072A0D9 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = VLC;
- SDKROOT = macosx;
- };
- name = Release;
- };
- 633BD6E50D2ADF030012A314 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = "vlc-contrib";
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 633BD6E60D2ADF030012A314 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = "vlc-contrib";
- SDKROOT = macosx;
- ZERO_LINK = NO;
- };
- name = Release;
- };
- 63FFDBD00D2AE2AE0092FC96 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CC = "xcrun clang";
- COPY_PHASE_STRIP = NO;
- CXX = "xcrun clang++";
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- OBJC = "xcrun clang";
- PRODUCT_NAME = "vlc-bootstrap";
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 63FFDBD10D2AE2AE0092FC96 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CC = "xcrun clang";
- COPY_PHASE_STRIP = YES;
- CXX = "xcrun clang++";
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- OBJC = "xcrun clang";
- PRODUCT_NAME = "vlc-bootstrap";
- SDKROOT = macosx;
- ZERO_LINK = NO;
- };
- name = Release;
- };
- CC4C593D13F53EA400FB0EFC /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_MODEL_TUNING = "";
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = VLC_Prefix.pch;
- GCC_VERSION = "";
- HEADER_SEARCH_PATHS = (
- "$(VLC_SRC_DIR)/include",
- "Headers/**",
- );
- INFOPLIST_FILE = "VLCKit-Info.plist";
- INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/lib";
- OTHER_LDFLAGS = (
- "-lvlccore",
- "-single_module",
- "-read_only_relocs",
- suppress,
- "-lvlc",
- );
- PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
- PRODUCT_NAME = VLCKit;
- SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
- SDKROOT = macosx;
- WRAPPER_EXTENSION = framework;
- };
- name = Debug;
- };
- CC4C593E13F53EA400FB0EFC /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 1;
- FRAMEWORK_VERSION = A;
- GCC_ENABLE_OBJC_EXCEPTIONS = YES;
- GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
- GCC_MODEL_TUNING = "";
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = VLC_Prefix.pch;
- GCC_VERSION = "";
- HEADER_SEARCH_PATHS = (
- "$(VLC_SRC_DIR)/include",
- "Headers/**",
- );
- INFOPLIST_FILE = "VLCKit-Info.plist";
- INSTALL_PATH = "@loader_path/../Frameworks";
- LIBRARY_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/$(PRODUCT_NAME).$(WRAPPER_EXTENSION)/lib";
- OTHER_LDFLAGS = (
- "-lvlccore",
- "-single_module",
- "-read_only_relocs",
- suppress,
- "-lvlc",
- );
- PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
- PRODUCT_NAME = VLCKit;
- SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
- SDKROOT = macosx;
- WRAPPER_EXTENSION = framework;
- };
- name = Release;
- };
- CC61094D112F4AB600FAFD22 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = NO;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = "Make VLC and VLCKit";
- SDKROOT = macosx;
- };
- name = Debug;
- };
- CC61094E112F4AB600FAFD22 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- COPY_PHASE_STRIP = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
- PRODUCT_NAME = "Make VLC and VLCKit";
- SDKROOT = macosx;
- ZERO_LINK = NO;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Build just VLCKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB91AE08733DA50010E9CD /* Debug */,
- 1DEB91AF08733DA50010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "VLCKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB91B208733DA50010E9CD /* Debug */,
- 1DEB91B308733DA50010E9CD /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 6337548110ED093B0072A0D9 /* Build configuration list for PBXAggregateTarget "Make VLC" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 6337547C10ED090B0072A0D9 /* Debug */,
- 6337547D10ED090B0072A0D9 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 633BD6EC0D2ADF460012A314 /* Build configuration list for PBXAggregateTarget "Setup VLC contribs" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 633BD6E50D2ADF030012A314 /* Debug */,
- 633BD6E60D2ADF030012A314 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 63FFDBD50D2AE3250092FC96 /* Build configuration list for PBXAggregateTarget "Run VLC configure" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 63FFDBD00D2AE2AE0092FC96 /* Debug */,
- 63FFDBD10D2AE2AE0092FC96 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- CC4C593C13F53EA400FB0EFC /* Build configuration list for PBXNativeTarget "Build Everything" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- CC4C593D13F53EA400FB0EFC /* Debug */,
- CC4C593E13F53EA400FB0EFC /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- CC61095D112F4AD400FAFD22 /* Build configuration list for PBXAggregateTarget "Make VLC and VLCKit" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- CC61094D112F4AB600FAFD22 /* Debug */,
- CC61094E112F4AB600FAFD22 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
+++ /dev/null
-//
-// Prefix header for all source files of the 'VLC' target in the 'VLC' project.
-//
-
-
-#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
-# define IPHONE_OS
-#endif
-
-#ifdef __OBJC__
-# ifndef IPHONE_OS
-# import <Cocoa/Cocoa.h>
-# else
-# import <UIKit/UIKit.h>
-# endif
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <vlc/libvlc_structures.h>
-#include <vlc/libvlc.h>
-