diff --git a/.gitignore b/.gitignore index b8e4d86..0bf71c9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ build .DS_Store *.xcodeproj/*.mode* *.xcodeproj/*.pbxuser +*.xcodeproj/*.xcworkspace +*.xcodeproj/xcuserdata +*.xcodeproj/*.pbxproj diff --git a/AudioStreamer.xcworkspace/contents.xcworkspacedata b/AudioStreamer.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..b7ac451 --- /dev/null +++ b/AudioStreamer.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Classes/AudioStreamer.h b/Classes/AudioStreamer.h index 22fd1ab..eea5020 100644 --- a/Classes/AudioStreamer.h +++ b/Classes/AudioStreamer.h @@ -13,21 +13,16 @@ // #define SHOUTCAST_METADATA -#if TARGET_OS_IPHONE -#import -#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_0 -#define kCFCoreFoundationVersionNumber_iPhoneOS_4_0 550.32 -#endif -#else -#import -#endif TARGET_OS_IPHONE +#import #include #include #define LOG_QUEUED_BUFFERS 0 -#define kNumAQBufs 16 // Number of audio queue buffers we allocate. +#define kNumStartsAQBufs 16 + +#define kNumAQBufs 1500 // Number of audio queue buffers we allocate. // Needs to be big enough to keep audio pipeline // busy (non-zero number of queued buffers) but // not so big that audio takes too long to begin @@ -177,17 +172,21 @@ extern NSString * const ASUpdateMetadataNotification; unsigned int dataBytesRead; // how many bytes of data have been read NSMutableString *metaDataString; // the metaDataString #endif + BOOL vbr; // indicates VBR (or not) stream + } @property AudioStreamerErrorCode errorCode; @property (readonly) AudioStreamerState state; +@property (readonly) AudioStreamerStopReason stopReason; @property (readonly) double progress; +@property (readonly) double bufferFillPercentage; @property (readonly) double duration; @property (readwrite) UInt32 bitRate; @property (readonly) NSDictionary *httpHeaders; @property (readonly) UInt32 numberOfChannels; @property (assign, getter=isMeteringEnabled) BOOL meteringEnabled; - +@property (readonly) BOOL vbr; - (id)initWithURL:(NSURL *)aURL; - (void)start; @@ -211,4 +210,3 @@ extern NSString * const ASUpdateMetadataNotification; - diff --git a/Classes/AudioStreamer.m b/Classes/AudioStreamer.m index f31530f..6ec6172 100644 --- a/Classes/AudioStreamer.m +++ b/Classes/AudioStreamer.m @@ -226,10 +226,11 @@ @implementation AudioStreamer @synthesize errorCode; @synthesize state; +@synthesize stopReason; @synthesize bitRate; @synthesize httpHeaders; @synthesize numberOfChannels; - +@synthesize vbr; // // initWithURL @@ -264,6 +265,17 @@ - (void)dealloc [super dealloc]; } +// +// bufferFillPercentage +// +// returns a value between 0 and 1 that represents how full the buffer is +// +-(double)bufferFillPercentage +{ + return (double)buffersUsed/(double)(kNumAQBufs - 1); +} + + // // isFinishing // @@ -676,8 +688,8 @@ - (BOOL)openReadStream if (fileLength > 0 && seekByteOffset > 0) { CFHTTPMessageSetHeaderFieldValue(message, CFSTR("Range"), - (CFStringRef)[NSString stringWithFormat:@"bytes=%ld-%ld", seekByteOffset, fileLength]); - discontinuous = YES; + (CFStringRef)[NSString stringWithFormat:@"bytes=%ld-%ld", seekByteOffset, fileLength - 1]); + discontinuous = vbr; } // @@ -944,6 +956,7 @@ - (void)start initWithTarget:self selector:@selector(startInternal) object:nil]; + [internalThread setName:@"InternalThread"]; [internalThread start]; } } @@ -1101,17 +1114,24 @@ - (double)progress // - (double)calculatedBitRate { - if (packetDuration && processedPacketsCount > BitRateEstimationMinPackets) + if (vbr) { - double averagePacketByteSize = processedPacketsSizeTotal / processedPacketsCount; - return 8.0 * averagePacketByteSize / packetDuration; - } + if (packetDuration && processedPacketsCount > BitRateEstimationMinPackets) + { + double averagePacketByteSize = processedPacketsSizeTotal / processedPacketsCount; + return 8.0 * averagePacketByteSize / packetDuration; + } - if (bitRate) + if (bitRate) + { + return (double)bitRate; + } + } + else { - return (double)bitRate; + bitRate = 8.0 * asbd.mSampleRate * asbd.mBytesPerPacket * asbd.mFramesPerPacket; + return bitRate; } - return 0; } @@ -1218,8 +1238,12 @@ - (void)pause else if (state == AS_PAUSED) { err = AudioQueueStart(audioQueue, NULL); -#if TARGET_OS_IPHONE - bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; +#if TARGET_OS_IPHONE + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { + if (bgTaskId != UIBackgroundTaskInvalid) { + bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; + } + } #endif if (err) { @@ -1809,13 +1833,15 @@ - (void)enqueueBuffer // AudioFileStream stays a small amount ahead of the AudioQueue to // avoid an audio glitch playing streaming files on iPhone SDKs < 3.0 // - if (state == AS_FLUSHING_EOF || buffersUsed == kNumAQBufs - 1) + if (state == AS_FLUSHING_EOF || buffersUsed == kNumStartsAQBufs - 1) { if (self.state == AS_BUFFERING) { err = AudioQueueStart(audioQueue, NULL); #if TARGET_OS_IPHONE - bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { + bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; + } #endif if (err) { @@ -1829,8 +1855,10 @@ - (void)enqueueBuffer self.state = AS_WAITING_FOR_QUEUE_TO_START; err = AudioQueueStart(audioQueue, NULL); -#if TARGET_OS_IPHONE - bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; +#if TARGET_OS_IPHONE + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { + bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; + } #endif if (err) { @@ -1891,18 +1919,25 @@ - (void)createQueue } // get the packet size if it is available - UInt32 sizeOfUInt32 = sizeof(UInt32); - err = AudioFileStreamGetProperty(audioFileStream, kAudioFileStreamProperty_PacketSizeUpperBound, &sizeOfUInt32, &packetBufferSize); - if (err || packetBufferSize == 0) + if (vbr) { - err = AudioFileStreamGetProperty(audioFileStream, kAudioFileStreamProperty_MaximumPacketSize, &sizeOfUInt32, &packetBufferSize); + UInt32 sizeOfUInt32 = sizeof(UInt32); + err = AudioFileStreamGetProperty(audioFileStream, kAudioFileStreamProperty_PacketSizeUpperBound, &sizeOfUInt32, &packetBufferSize); if (err || packetBufferSize == 0) { - // No packet size available, just use the default - packetBufferSize = kAQDefaultBufSize; + err = AudioFileStreamGetProperty(audioFileStream, kAudioFileStreamProperty_MaximumPacketSize, &sizeOfUInt32, &packetBufferSize); + if (err || packetBufferSize == 0) + { + // No packet size available, just use the default + packetBufferSize = kAQDefaultBufSize; + } } } - + else + { + packetBufferSize = kAQDefaultBufSize; + } + // allocate audio queue buffers for (unsigned int i = 0; i < kNumAQBufs; ++i) { @@ -2114,6 +2149,7 @@ - (void)handleAudioPackets:(const void *)inInputData if (!audioQueue) { + vbr = (inPacketDescriptions != nil); [self createQueue]; } } @@ -2310,9 +2346,6 @@ - (void)handlePropertyChangeForQueue:(AudioQueueRef)inAQ propertyID:(AudioQueuePropertyID)inID { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; -#if TARGET_OS_IPHONE - UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; -#endif @synchronized(self) { if (inID == kAudioQueueProperty_IsRunning) @@ -2337,21 +2370,20 @@ - (void)handlePropertyChangeForQueue:(AudioQueueRef)inAQ // By creating an NSRunLoop for the AudioQueue thread, it changes the // thread destruction order and seems to avoid this crash bug -- or // at least I haven't had it since (nasty hard to reproduce error!) - // -#if TARGET_OS_IPHONE - newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; -#endif + // [NSRunLoop currentRunLoop]; self.state = AS_PLAYING; #if TARGET_OS_IPHONE - if (bgTaskId != UIBackgroundTaskInvalid) { - [[UIApplication sharedApplication] endBackgroundTask: bgTaskId]; + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { + if (bgTaskId != UIBackgroundTaskInvalid) { + [[UIApplication sharedApplication] endBackgroundTask: bgTaskId]; + } + + bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; } - - bgTaskId = newTaskId; #endif } else @@ -2390,4 +2422,3 @@ - (void)handleInterruptionChangeToState:(AudioQueuePropertyID)inInterruptionStat @end - diff --git a/Classes/MacStreamingPlayerController.m b/Classes/MacStreamingPlayerController.m index 2527d67..96c6e46 100644 --- a/Classes/MacStreamingPlayerController.m +++ b/Classes/MacStreamingPlayerController.m @@ -20,7 +20,7 @@ @implementation MacStreamingPlayerController - (void)awakeFromNib { - [downloadSourceField setStringValue:@"http://192.168.1.2/~matt/inside.m4a"]; + [downloadSourceField setStringValue:@"http://shoutmedia.abc.net.au:10326"]; } // diff --git a/Classes/iPhoneStreamingPlayerAppDelegate.m b/Classes/iPhoneStreamingPlayerAppDelegate.m index 2c2213a..6b03c93 100644 --- a/Classes/iPhoneStreamingPlayerAppDelegate.m +++ b/Classes/iPhoneStreamingPlayerAppDelegate.m @@ -14,6 +14,10 @@ #import +#ifndef kCFCoreFoundationVersionNumber_iPhoneOS_4_0 +#define kCFCoreFoundationVersionNumber_iPhoneOS_4_0 550.32 +#endif + #import "iPhoneStreamingPlayerAppDelegate.h" #import "iPhoneStreamingPlayerViewController.h" #import "AudioStreamer.h" @@ -39,6 +43,7 @@ - (void)applicationDidFinishLaunching:(UIApplication *)application { selector:@selector(presentAlertWithTitle:) name:ASPresentAlertWithTitleNotification object:nil]; + [[NSThread currentThread] setName:@"Main Thread"]; } @@ -50,12 +55,15 @@ - (void)dealloc { - (void)presentAlertWithTitle:(NSNotification *)notification { + NSString *title = [[notification userInfo] objectForKey:@"title"]; + NSString *message = [[notification userInfo] objectForKey:@"message"]; + + //NSLog(@"Current Thread = %@", [NSThread currentThread]); dispatch_queue_t main_queue = dispatch_get_main_queue(); dispatch_async(main_queue, ^{ - NSString *title = [[notification userInfo] objectForKey:@"title"]; - NSString *message = [[notification userInfo] objectForKey:@"message"]; + //NSLog(@"Current Thread (in main queue) = %@", [NSThread currentThread]); if (!uiIsVisible) { #ifdef TARGET_OS_IPHONE if(kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iPhoneOS_4_0) { @@ -77,11 +85,14 @@ - (void)presentAlertWithTitle:(NSNotification *)notification cancelButtonTitle:NSLocalizedString(@"OK", @"") otherButtonTitles: nil] autorelease]; + /* [alert performSelector:@selector(show) onThread:[NSThread mainThread] withObject:nil waitUntilDone:NO]; + */ + [alert show]; #else NSAlert *alert = [NSAlert @@ -90,11 +101,14 @@ - (void)presentAlertWithTitle:(NSNotification *)notification alternateButton:nil otherButton:nil informativeTextWithFormat:message]; + /* [alert performSelector:@selector(runModal) onThread:[NSThread mainThread] withObject:nil waitUntilDone:NO]; + */ + [alert runModal]; #endif } }); diff --git a/Classes/iPhoneStreamingPlayerViewController.h b/Classes/iPhoneStreamingPlayerViewController.h index fe95f85..8660197 100644 --- a/Classes/iPhoneStreamingPlayerViewController.h +++ b/Classes/iPhoneStreamingPlayerViewController.h @@ -25,6 +25,7 @@ IBOutlet UISlider *progressSlider; IBOutlet UITextField *metadataArtist; IBOutlet UITextField *metadataTitle; + IBOutlet UITextField *metadataAlbum; AudioStreamer *streamer; NSTimer *progressUpdateTimer; NSTimer *levelMeterUpdateTimer; diff --git a/Classes/iPhoneStreamingPlayerViewController.m b/Classes/iPhoneStreamingPlayerViewController.m index 10f5b59..82e2a36 100644 --- a/Classes/iPhoneStreamingPlayerViewController.m +++ b/Classes/iPhoneStreamingPlayerViewController.m @@ -360,6 +360,7 @@ - (void)metadataChanged:(NSNotification *)aNotification { NSString *streamArtist; NSString *streamTitle; + NSString *streamAlbum; //NSLog(@"Raw meta data = %@", [[aNotification userInfo] objectForKey:@"metadata"]); NSArray *metaParts = [[[aNotification userInfo] objectForKey:@"metadata"] componentsSeparatedByString:@";"]; @@ -385,16 +386,23 @@ - (void)metadataChanged:(NSNotification *)aNotification // this looks odd but not every server will have all artist hyphen title if ([streamParts count] >= 2) { streamTitle = [streamParts objectAtIndex:1]; + if ([streamParts count] >= 3) { + streamAlbum = [streamParts objectAtIndex:2]; + } else { + streamAlbum = @"N/A"; + } } else { streamTitle = @""; + streamAlbum = @""; } - NSLog(@"%@ by %@", streamTitle, streamArtist); + NSLog(@"%@ by %@ from %@", streamTitle, streamArtist, streamAlbum); // only update the UI if in foreground iPhoneStreamingPlayerAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; if (appDelegate.uiIsVisible) { metadataArtist.text = streamArtist; metadataTitle.text = streamTitle; + metadataAlbum.text = streamAlbum; } self.currentArtist = streamArtist; self.currentTitle = streamTitle; diff --git a/MacStreamingPlayer.xcodeproj/project.pbxproj b/MacStreamingPlayer.xcodeproj/project.pbxproj index b5a8f7a..2647c00 100644 --- a/MacStreamingPlayer.xcodeproj/project.pbxproj +++ b/MacStreamingPlayer.xcodeproj/project.pbxproj @@ -169,7 +169,14 @@ isa = PBXProject; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "MacStreamingPlayer" */; compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); mainGroup = 29B97314FDCFA39411CA2CEA /* StreamingAudioPlayer */; projectDirPath = ""; projectRoot = ""; diff --git a/README b/README index 52ff2bc..f5b495e 100644 --- a/README +++ b/README @@ -1,10 +1,26 @@ A fork of DigitalDJ's AudioStreamer (which is a fork jfricker's AudioStreamer (which is a fork of the original AudioStreamer by mattgallagher)) -- Fix alert spam / Invisible alerts by dispatching alerts on the main (GUI) thread instead of the notification thread -- Fix compilation issues in Mac OS X Sample App -- Fix compilation issue when SHOUTCAST_METADAT flag is defined -- Fix iPhone apps crashes in SHOUTCAST_METADATA mode when returning from Background +Forked and cherry-picked to get a number of community addons and fixes: +- Shoutcast metadata [jfricker] +- MIME type detection [andybee] +- HE-AACv2 [idevsoftware] +- Level Metering [idevsoftware] +- NSThread memory leak [mattgallagher] +- Fix alert spam / Invisible alerts by dispatching alerts on the main (GUI) thread instead of the notification thread [sebsto] +- Fix compilation issues in Mac OS X Sample App [sebsto] +- Fix compilation issue when SHOUTCAST_METADAT flag is defined [sebsto] +- Fix iPhone apps crashes in SHOUTCAST_METADATA mode when returning from Background [sebsto] + +Fixes and features I've implemented: +- Fixed interruption crashes +- Background buffering +- Play/pause from iPod controls +- Stop all UI updating and timers while backgrounded +- Retina display example +- Support for Pause button in UI +- Local Notifications (outside app) on error + diff --git a/README.md b/README.md new file mode 100644 index 0000000..c05087a --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +AudioStreamer +============= + +This is a fork of the [mattgallagher/AudioStreamer](https://github.com/mattgallagher/AudioStreamer) repo. + +History +------- + +April 12, 2001 + + * Updated AudioStream with the latest from [mattgallagher/AudioStreamer](https://github.com/mattgallagher/AudioStreamer). + * Added level meter code from [idevsoftware/AudioStreamer](https://github.com/idevsoftware/AudioStreamer) + * Added level meter display to the sample projects. + +January 30, 2011 + + * Forked [mattgallagher/AudioStreamer](https://github.com/mattgallagher/AudioStreamer). + * Replaced #ifdef TARGET_OS_IPHONE with #if TARGET_OS_IPHONE. This is Apple's recommended approach for [conditionalizing compilation and linking](http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/115-Configuring_Applications/configuring_applications.html#//apple_ref/doc/uid/TP40007959-CH19-SW3). Also, TargetConditionals.h header in Mac 10.6 SDK defines TARGET_OS_IPHONE as 0 so this change is needed if one wishes to compile against 10.6 or greater. + * Merged shoutcast branch from [jfricker/AudioStreamer](https://github.com/jfricker/AudioStreamer) adding support for retrieving shoutcast metadata and replacing the alert display with a notification message. + * Replaced SHOUTCAST_METADATA marco with retrieveShoutcastMetadata BOOL on the AudioStreamer class. + * Added this README. \ No newline at end of file diff --git a/iPhone Resources/MainWindow.xib b/iPhone Resources/MainWindow.xib old mode 100644 new mode 100755 index e3d2c31..e49ec1e --- a/iPhone Resources/MainWindow.xib +++ b/iPhone Resources/MainWindow.xib @@ -1,31 +1,52 @@ - + 528 - 9E17 - 672 - 949.33 - 352.00 + 10F569 + 804 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 123 + YES - YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + YES + + YES + + + YES + + YES IBFilesOwner + IBCocoaTouchFramework IBFirstResponder + IBCocoaTouchFramework + + + IBCocoaTouchFramework - iPhoneStreamingPlayerViewController + + 1 + + IBCocoaTouchFramework + NO @@ -38,6 +59,7 @@ NO NO + IBCocoaTouchFramework @@ -73,44 +95,42 @@ YES 0 - - YES - + -1 - - RmlsZSdzIE93bmVyA + + File's Owner 3 - + iPhoneStreamingPlayer App Delegate -2 - + 10 - + 12 - + YES - + YES -1.CustomClassName -2.CustomClassName @@ -137,9 +157,7 @@ YES - - YES - + YES @@ -147,9 +165,7 @@ YES - - YES - + YES @@ -165,7 +181,7 @@ NSObject YES - + YES viewController window @@ -176,6 +192,25 @@ UIWindow + + YES + + YES + viewController + window + + + YES + + viewController + iPhoneStreamingPlayerViewController + + + window + UIWindow + + + IBProjectSource Classes/iPhoneStreamingPlayerAppDelegate.h @@ -192,15 +227,383 @@ iPhoneStreamingPlayerViewController UIViewController + + YES + + YES + buttonPressed: + sliderMoved: + + + YES + id + UISlider + + + + YES + + YES + buttonPressed: + sliderMoved: + + + YES + + buttonPressed: + id + + + sliderMoved: + UISlider + + + + + YES + + YES + button + downloadSourceField + metadataAlbum + metadataArtist + metadataTitle + positionLabel + progressSlider + volumeSlider + + + YES + UIButton + UITextField + UITextField + UITextField + UITextField + UILabel + UISlider + UIView + + + + YES + + YES + button + downloadSourceField + metadataAlbum + metadataArtist + metadataTitle + positionLabel + progressSlider + volumeSlider + + + YES + + button + UIButton + + + downloadSourceField + UITextField + + + metadataAlbum + UITextField + + + metadataArtist + UITextField + + + metadataTitle + UITextField + + + positionLabel + UILabel + + + progressSlider + UISlider + + + volumeSlider + UIView + + + IBProjectSource Classes/iPhoneStreamingPlayerViewController.h + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CIImageProvider.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIApplication + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIApplication.h + + + + UIButton + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UIButton.h + + + + UIControl + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIControl.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UISlider + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UISlider.h + + + + UITextField + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + MediaPlayer.framework/Headers/MPMoviePlayerViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + UIWindow + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIWindow.h + + + 0 - iPhoneStreamingPlayer.xcodeproj + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + ../iPhoneStreamingPlayer.xcodeproj 3 + 123 diff --git a/iPhone Resources/iPhoneStreamingPlayerViewController.xib b/iPhone Resources/iPhoneStreamingPlayerViewController.xib old mode 100644 new mode 100755 index e99073e..d11fbc9 --- a/iPhone Resources/iPhoneStreamingPlayerViewController.xib +++ b/iPhone Resources/iPhoneStreamingPlayerViewController.xib @@ -1,23 +1,34 @@ - + - 1024 + 768 10F569 - 1197 + 804 1038.29 - - IBUILabel - IBUISlider - IBUIButton - IBUIView - IBUITextField - IBProxyObject - - + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 123 + + + YES + + + + YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - + + + YES + + YES + + + YES + + + + YES IBFilesOwner IBCocoaTouchFramework @@ -29,18 +40,18 @@ 274 - + + YES 292 - {{20, 49}, {300, 31}} + {{10, 5}, {253, 31}} - NO NO IBCocoaTouchFramework 0 - http://audio1.maxi80.com + http://thor.nickpack.com:9000 3 3 @@ -57,31 +68,11 @@ IBCocoaTouchFramework - - - 292 - {{20, 20}, {280, 21}} - - - NO - YES - NO - IBCocoaTouchFramework - Download URL: - - 1 - MCAwIDAAA - - - 1 - 10 - 292 - {{124, 88}, {72, 73}} + {{266, 5}, {40, 40}} - NO NO IBCocoaTouchFramework @@ -112,15 +103,17 @@ 292 - {{20, 169}, {280, 21}} + {{20, 53}, {280, 21}} - NO YES NO IBCocoaTouchFramework Time Played: - + + 1 + MCAwIDAAA + 1 10 @@ -130,7 +123,6 @@ 292 {{20, 376}, {280, 21}} - NO YES NO @@ -144,9 +136,8 @@ 292 - {{20, 405}, {280, 35}} + {{20, 405}, {280, 55}} - 3 MSAwAA @@ -157,9 +148,8 @@ 292 - {{18, 198}, {284, 23}} + {{18, 82}, {284, 23}} - NO IBCocoaTouchFramework NO @@ -172,11 +162,11 @@ 292 - {{83, 228}, {217, 31}} + {{83, 112}, {217, 31}} - NO YES + NO IBCocoaTouchFramework 0 @@ -195,11 +185,11 @@ 292 - {{83, 267}, {217, 31}} + {{83, 151}, {217, 31}} - NO YES + NO IBCocoaTouchFramework 0 @@ -218,9 +208,8 @@ 292 - {{20, 233}, {42, 21}} + {{20, 117}, {42, 21}} - NO YES 7 @@ -235,9 +224,8 @@ 292 - {{20, 270}, {42, 21}} + {{20, 154}, {42, 21}} - NO YES 7 @@ -249,10 +237,51 @@ 1 10 - - {{0, 20}, {320, 460}} + + + 292 + {{20, 195}, {49, 21}} + + NO + YES + 7 + NO + IBCocoaTouchFramework + Album + + + 1 + 10 + + + + 292 + {{83, 190}, {217, 31}} + + NO + YES + NO + + + + IBCocoaTouchFramework + 0 + + 3 + + 3 + MAA + + + YES + 17 + + IBCocoaTouchFramework + + + + {320, 460} - 1 MC44NTIwNDA4MyAwLjg1MjA0MDgzIDAuODUyMDQwODMAA @@ -261,17 +290,10 @@ IBCocoaTouchFramework - + - - - - view - - - - 7 - + + YES button @@ -354,12 +376,29 @@ 57 - + + + metadataAlbum + + + + 60 + + + + view + + + + 62 + + - + + YES 0 - + @@ -377,19 +416,21 @@ 6 - - + + YES + + - - - + - - + + + + @@ -397,16 +438,6 @@ - - 21 - - - - - 23 - - - 26 @@ -415,7 +446,9 @@ 35 - + + YES + @@ -448,61 +481,501 @@ - + + 58 + + + + + 61 + + + + + 23 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 16.IBPluginDependency + 16.IBViewBoundsToFrameTransform + 23.IBPluginDependency + 23.IBViewBoundsToFrameTransform + 25.IBPluginDependency + 25.IBViewBoundsToFrameTransform + 26.IBPluginDependency + 26.IBViewBoundsToFrameTransform + 35.IBPluginDependency + 35.IBViewBoundsToFrameTransform + 46.IBPluginDependency + 46.IBViewBoundsToFrameTransform + 49.IBPluginDependency + 49.IBViewBoundsToFrameTransform + 50.IBPluginDependency + 50.IBViewBoundsToFrameTransform + 51.IBPluginDependency + 51.IBViewBoundsToFrameTransform + 52.IBPluginDependency + 52.IBViewBoundsToFrameTransform + 58.IBPluginDependency + 58.IBViewBoundsToFrameTransform + 6.IBEditorWindowLastContentRect + 6.IBPluginDependency + 61.IBPluginDependency + 61.IBViewBoundsToFrameTransform + + + YES + iPhoneStreamingPlayerViewController + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBoAAAwpwAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBQAAAwiAAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBoAAAwt4AAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABByAAAw6QAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABByAAAw8OAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBkAAAww4AAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCpgAAwzQAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCpgAAw1sAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBoAAAwy8AAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBoAAAw1QAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABCpgAAw4EAAA + + {{740, 290}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABBoAAAw30AAA + + + + + YES + + + YES + - - iPhoneStreamingPlayerViewController - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{740, 290}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - + + YES + + + YES + + - 57 + 70 - + + YES iPhoneStreamingPlayerViewController UIViewController - - id - id - - - UIButton - UITextField - UITextField - UITextField - UILabel - UISlider - UIView - + + YES + + YES + buttonPressed: + sliderMoved: + + + YES + id + UISlider + + + + YES + + YES + buttonPressed: + sliderMoved: + + + YES + + buttonPressed: + id + + + sliderMoved: + UISlider + + + + + YES + + YES + button + downloadSourceField + metadataAlbum + metadataArtist + metadataTitle + positionLabel + progressSlider + volumeSlider + + + YES + UIButton + UITextField + UITextField + UITextField + UITextField + UILabel + UISlider + UIView + + + + YES + + YES + button + downloadSourceField + metadataAlbum + metadataArtist + metadataTitle + positionLabel + progressSlider + volumeSlider + + + YES + + button + UIButton + + + downloadSourceField + UITextField + + + metadataAlbum + UITextField + + + metadataArtist + UITextField + + + metadataTitle + UITextField + + + positionLabel + UILabel + + + progressSlider + UISlider + + + volumeSlider + UIView + + + IBProjectSource - ./classes-xjh84/iPhoneStreamingPlayerViewController.h + Classes/iPhoneStreamingPlayerViewController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CIImageProvider.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIButton + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UIButton.h + + + + UIControl + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIControl.h + + + + UILabel + UIView + + IBFrameworkSource + UIKit.framework/Headers/UILabel.h + + + + UIResponder + NSObject + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UISlider + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UISlider.h + + + + UITextField + UIControl + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + MediaPlayer.framework/Headers/MPMoviePlayerViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h - + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + 0 IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + YES ../iPhoneStreamingPlayer.xcodeproj 3 - 106 + + playbutton.png + {64, 64} + + 123 diff --git a/iPhoneStreamingPlayer.xcodeproj/project.pbxproj b/iPhoneStreamingPlayer.xcodeproj/project.pbxproj deleted file mode 100755 index 24b5d18..0000000 --- a/iPhoneStreamingPlayer.xcodeproj/project.pbxproj +++ /dev/null @@ -1,331 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 1D3623260D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.m */; }; - 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; - 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; - 28D7ACF80DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.m */; }; - 762375BF120E049F00518DB5 /* LevelMeterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 762375BE120E049F00518DB5 /* LevelMeterView.m */; }; - 7646A326120C8F3C000ED48C /* UIDevice+Hardware.m in Sources */ = {isa = PBXBuildFile; fileRef = 7646A325120C8F3C000ED48C /* UIDevice+Hardware.m */; }; - C9423DF10EF8AA6B003B785B /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9423DF00EF8AA6B003B785B /* CFNetwork.framework */; }; - C9AB93E20FCF816F0047C0FA /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9AB93E10FCF816F0047C0FA /* AudioToolbox.framework */; }; - C9AB93F30FCF81790047C0FA /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9AB93F20FCF81790047C0FA /* MediaPlayer.framework */; }; - C9C2D87A0EB6E09C00A3D071 /* AudioStreamer.m in Sources */ = {isa = PBXBuildFile; fileRef = C9C2D8780EB6E09C00A3D071 /* AudioStreamer.m */; }; - C9C2D8CE0EB6E31200A3D071 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9C2D8CD0EB6E31200A3D071 /* QuartzCore.framework */; }; - C9E673020FE8C55B0033BF43 /* iPhoneStreamingPlayerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9E672FF0FE8C55B0033BF43 /* iPhoneStreamingPlayerViewController.xib */; }; - C9E673040FE8C55B0033BF43 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9E673010FE8C55B0033BF43 /* MainWindow.xib */; }; - C9E673090FE8C5650033BF43 /* playbutton.png in Resources */ = {isa = PBXBuildFile; fileRef = C9E673050FE8C5650033BF43 /* playbutton.png */; }; - C9E6730A0FE8C5650033BF43 /* stopbutton.png in Resources */ = {isa = PBXBuildFile; fileRef = C9E673060FE8C5650033BF43 /* stopbutton.png */; }; - C9E6730B0FE8C5650033BF43 /* loadingbutton.png in Resources */ = {isa = PBXBuildFile; fileRef = C9E673070FE8C5650033BF43 /* loadingbutton.png */; }; - C9E6730C0FE8C5650033BF43 /* pausebutton.png in Resources */ = {isa = PBXBuildFile; fileRef = C9E673080FE8C5650033BF43 /* pausebutton.png */; }; - FCB039021224369600E538F7 /* loadingbutton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FCB038FE1224369600E538F7 /* loadingbutton@2x.png */; }; - FCB039031224369600E538F7 /* pausebutton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FCB038FF1224369600E538F7 /* pausebutton@2x.png */; }; - FCB039041224369600E538F7 /* playbutton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FCB039001224369600E538F7 /* playbutton@2x.png */; }; - FCB039051224369600E538F7 /* stopbutton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FCB039011224369600E538F7 /* stopbutton@2x.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D3623240D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneStreamingPlayerAppDelegate.h; sourceTree = ""; }; - 1D3623250D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iPhoneStreamingPlayerAppDelegate.m; sourceTree = ""; }; - 1D6058910D05DD3D006BFB54 /* iPhoneStreamingPlayer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iPhoneStreamingPlayer.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 28D7ACF60DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneStreamingPlayerViewController.h; sourceTree = ""; }; - 28D7ACF70DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iPhoneStreamingPlayerViewController.m; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 32CA4F630368D1EE00C91783 /* iPhoneStreamingPlayer_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iPhoneStreamingPlayer_Prefix.pch; sourceTree = ""; }; - 762375BD120E049F00518DB5 /* LevelMeterView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LevelMeterView.h; sourceTree = ""; }; - 762375BE120E049F00518DB5 /* LevelMeterView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LevelMeterView.m; sourceTree = ""; }; - 7646A324120C8F3C000ED48C /* UIDevice+Hardware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIDevice+Hardware.h"; sourceTree = ""; }; - 7646A325120C8F3C000ED48C /* UIDevice+Hardware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIDevice+Hardware.m"; sourceTree = ""; }; - C9423DF00EF8AA6B003B785B /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; - C9AB93E10FCF816F0047C0FA /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - C9AB93F20FCF81790047C0FA /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; - C9C2D8780EB6E09C00A3D071 /* AudioStreamer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioStreamer.m; sourceTree = ""; }; - C9C2D8790EB6E09C00A3D071 /* AudioStreamer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioStreamer.h; sourceTree = ""; }; - C9C2D8CD0EB6E31200A3D071 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = ""; }; - C9E672FF0FE8C55B0033BF43 /* iPhoneStreamingPlayerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = iPhoneStreamingPlayerViewController.xib; path = "iPhone Resources/iPhoneStreamingPlayerViewController.xib"; sourceTree = ""; }; - C9E673010FE8C55B0033BF43 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainWindow.xib; path = "iPhone Resources/MainWindow.xib"; sourceTree = ""; }; - C9E673050FE8C5650033BF43 /* playbutton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = playbutton.png; path = "Shared Resources/playbutton.png"; sourceTree = ""; }; - C9E673060FE8C5650033BF43 /* stopbutton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopbutton.png; path = "Shared Resources/stopbutton.png"; sourceTree = ""; }; - C9E673070FE8C5650033BF43 /* loadingbutton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = loadingbutton.png; path = "Shared Resources/loadingbutton.png"; sourceTree = ""; }; - C9E673080FE8C5650033BF43 /* pausebutton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pausebutton.png; path = "Shared Resources/pausebutton.png"; sourceTree = ""; }; - C9E673410FE8C6510033BF43 /* iPhoneInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = iPhoneInfo.plist; sourceTree = ""; }; - FCB038FE1224369600E538F7 /* loadingbutton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "loadingbutton@2x.png"; path = "Shared Resources/loadingbutton@2x.png"; sourceTree = ""; }; - FCB038FF1224369600E538F7 /* pausebutton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "pausebutton@2x.png"; path = "Shared Resources/pausebutton@2x.png"; sourceTree = ""; }; - FCB039001224369600E538F7 /* playbutton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "playbutton@2x.png"; path = "Shared Resources/playbutton@2x.png"; sourceTree = ""; }; - FCB039011224369600E538F7 /* stopbutton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "stopbutton@2x.png"; path = "Shared Resources/stopbutton@2x.png"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, - 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, - C9C2D8CE0EB6E31200A3D071 /* QuartzCore.framework in Frameworks */, - C9423DF10EF8AA6B003B785B /* CFNetwork.framework in Frameworks */, - C9AB93E20FCF816F0047C0FA /* AudioToolbox.framework in Frameworks */, - C9AB93F30FCF81790047C0FA /* MediaPlayer.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - 7646A321120C8F25000ED48C /* Additions */, - C9C2D8790EB6E09C00A3D071 /* AudioStreamer.h */, - C9C2D8780EB6E09C00A3D071 /* AudioStreamer.m */, - 1D3623240D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.h */, - 1D3623250D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.m */, - 28D7ACF60DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.h */, - 28D7ACF70DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.m */, - 762375BD120E049F00518DB5 /* LevelMeterView.h */, - 762375BE120E049F00518DB5 /* LevelMeterView.m */, - ); - path = Classes; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 1D6058910D05DD3D006BFB54 /* iPhoneStreamingPlayer.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CustomTemplate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - C9E673410FE8C6510033BF43 /* iPhoneInfo.plist */, - 32CA4F630368D1EE00C91783 /* iPhoneStreamingPlayer_Prefix.pch */, - 29B97316FDCFA39411CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - FCB038FE1224369600E538F7 /* loadingbutton@2x.png */, - FCB038FF1224369600E538F7 /* pausebutton@2x.png */, - FCB039001224369600E538F7 /* playbutton@2x.png */, - FCB039011224369600E538F7 /* stopbutton@2x.png */, - C9E672FF0FE8C55B0033BF43 /* iPhoneStreamingPlayerViewController.xib */, - C9E673010FE8C55B0033BF43 /* MainWindow.xib */, - C9E673050FE8C5650033BF43 /* playbutton.png */, - C9E673060FE8C5650033BF43 /* stopbutton.png */, - C9E673070FE8C5650033BF43 /* loadingbutton.png */, - C9E673080FE8C5650033BF43 /* pausebutton.png */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - C9AB93F20FCF81790047C0FA /* MediaPlayer.framework */, - C9AB93E10FCF816F0047C0FA /* AudioToolbox.framework */, - C9423DF00EF8AA6B003B785B /* CFNetwork.framework */, - C9C2D8CD0EB6E31200A3D071 /* QuartzCore.framework */, - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, - 1D30AB110D05D00D00671497 /* Foundation.framework */, - 288765A40DF7441C002DB57D /* CoreGraphics.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7646A321120C8F25000ED48C /* Additions */ = { - isa = PBXGroup; - children = ( - 7646A324120C8F3C000ED48C /* UIDevice+Hardware.h */, - 7646A325120C8F3C000ED48C /* UIDevice+Hardware.m */, - ); - name = Additions; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1D6058900D05DD3D006BFB54 /* iPhoneStreamingPlayer */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "iPhoneStreamingPlayer" */; - buildPhases = ( - 1D60588D0D05DD3D006BFB54 /* Resources */, - 1D60588E0D05DD3D006BFB54 /* Sources */, - 1D60588F0D05DD3D006BFB54 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = iPhoneStreamingPlayer; - productName = iPhoneStreamingPlayer; - productReference = 1D6058910D05DD3D006BFB54 /* iPhoneStreamingPlayer.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 "iPhoneStreamingPlayer" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1D6058900D05DD3D006BFB54 /* iPhoneStreamingPlayer */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1D60588D0D05DD3D006BFB54 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C9E673020FE8C55B0033BF43 /* iPhoneStreamingPlayerViewController.xib in Resources */, - C9E673040FE8C55B0033BF43 /* MainWindow.xib in Resources */, - C9E673090FE8C5650033BF43 /* playbutton.png in Resources */, - C9E6730A0FE8C5650033BF43 /* stopbutton.png in Resources */, - C9E6730B0FE8C5650033BF43 /* loadingbutton.png in Resources */, - C9E6730C0FE8C5650033BF43 /* pausebutton.png in Resources */, - FCB039021224369600E538F7 /* loadingbutton@2x.png in Resources */, - FCB039031224369600E538F7 /* pausebutton@2x.png in Resources */, - FCB039041224369600E538F7 /* playbutton@2x.png in Resources */, - FCB039051224369600E538F7 /* stopbutton@2x.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1D60588E0D05DD3D006BFB54 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1D60589B0D05DD56006BFB54 /* main.m in Sources */, - 1D3623260D0F684500981E51 /* iPhoneStreamingPlayerAppDelegate.m in Sources */, - 28D7ACF80DDB3853001CB0EB /* iPhoneStreamingPlayerViewController.m in Sources */, - C9C2D87A0EB6E09C00A3D071 /* AudioStreamer.m in Sources */, - 7646A326120C8F3C000ED48C /* UIDevice+Hardware.m in Sources */, - 762375BF120E049F00518DB5 /* LevelMeterView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1D6058940D05DD3E006BFB54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = iPhoneStreamingPlayer_Prefix.pch; - INFOPLIST_FILE = iPhoneInfo.plist; - PRODUCT_NAME = iPhoneStreamingPlayer; - SDKROOT = iphoneos4.0; - }; - name = Debug; - }; - 1D6058950D05DD3E006BFB54 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = iPhoneStreamingPlayer_Prefix.pch; - INFOPLIST_FILE = iPhoneInfo.plist; - PRODUCT_NAME = iPhoneStreamingPlayer; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 3.0; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - PROVISIONING_PROFILE = ""; - SDKROOT = iphoneos4.0; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CODE_SIGN_IDENTITY = "iPhone Developer: Nic Nolan (DVY47F5U35)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Nic Nolan (DVY47F5U35)"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 2.0; - PREBINDING = NO; - PROVISIONING_PROFILE = "86DAA109-AB22-49C8-94E7-3D80E70FAAB5"; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = "86DAA109-AB22-49C8-94E7-3D80E70FAAB5"; - SDKROOT = iphoneos4.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "iPhoneStreamingPlayer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1D6058940D05DD3E006BFB54 /* Debug */, - 1D6058950D05DD3E006BFB54 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "iPhoneStreamingPlayer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/iPhoneStreamingPlayer_Prefix.pch b/iPhoneStreamingPlayer_Prefix.pch deleted file mode 100644 index c10b46c..0000000 --- a/iPhoneStreamingPlayer_Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'iPhoneStreamingPlayer' target in the 'iPhoneStreamingPlayer' project -// - -#ifdef __OBJC__ - #import - #import -#endif