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
+
+
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