Permalink
Browse files

Added parser class for GarageBand

--HG--
extra : convert_revision : svn%3A0a3f77c4-9235-0410-95f4-d138c4647c51/trunk%40853
  • Loading branch information...
peter@baumgartner.com@0a3f77c4-9235-0410-95f4-d138c4647c51
peter@baumgartner.com@0a3f77c4-9235-0410-95f4-d138c4647c51 committed Oct 11, 2009
1 parent 982c037 commit ce592fe9d73a8cae2faef3d2c2885915952f5387
Showing with 449 additions and 4 deletions.
  1. +15 −4 IMBAudioViewController.m
  2. +66 −0 IMBGarageBandParser.h
  3. +360 −0 IMBGarageBandParser.m
  4. +8 −0 iMedia.xcodeproj/project.pbxproj
View
@@ -226,24 +226,35 @@ - (IBAction) play:(id)inSender
// Start playing what the new selection...
+ NSArray* objects = [ibObjectArrayController arrangedObjects];
NSIndexSet* rows = [ibListView selectedRowIndexes];
NSUInteger row = [rows firstIndex];
- if (row != NSNotFound)
+ if (row != NSNotFound && row < [objects count])
{
- IMBObject* object = (IMBObject*) [[ibObjectArrayController arrangedObjects] objectAtIndex:row];
+ IMBObject* object = (IMBObject*) [objects objectAtIndex:row];
[self playAudioObject:object];
}
}
- (void) playAudioObject:(IMBObject*)inObject
{
+ // GarageBand files require special attention as the "playable" file resides inside the document package...
+
+ NSString* path = [inObject path];
+
+ if ([[[path pathExtension] lowercaseString] isEqualToString:@"band"])
+ {
+ NSString* output = [path stringByAppendingPathComponent:@"Output/Output.aif"];
+ BOOL exists = [[NSFileManager threadSafeManager] fileExistsAtPath:output];
+ if (exists) path = output;
+ }
+
// Create a QTMovie for the selected item...
NSError* error = nil;
- NSURL* url = [inObject url];
- QTMovie* movie = [QTMovie movieWithURL:url error:&error];
+ QTMovie* movie = [QTMovie movieWithFile:path error:&error];
// Start playing it...
View
@@ -0,0 +1,66 @@
+/*
+ iMedia Browser Framework <http://karelia.com/imedia/>
+
+ Copyright (c) 2005-2009 by Karelia Software et al.
+
+ iMedia Browser is based on code originally developed by Jason Terhorst,
+ further developed for Sandvox by Greg Hulands, Dan Wood, and Terrence Talbot.
+ The new architecture for version 2.0 was developed by Peter Baumgartner.
+ Contributions have also been made by Matt Gough, Martin Wennerberg and others
+ as indicated in source files.
+
+ The iMedia Browser Framework is licensed under the following terms:
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in all or substantial portions of the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to permit
+ persons to whom the Software is furnished to do so, subject to the following
+ conditions:
+
+ Redistributions of source code must retain the original terms stated here,
+ including this list of conditions, the disclaimer noted below, and the
+ following copyright notice: Copyright (c) 2005-2009 by Karelia Software et al.
+
+ Redistributions in binary form must include, in an end-user-visible manner,
+ e.g., About window, Acknowledgments window, or similar, either a) the original
+ terms stated here, including this list of conditions, the disclaimer noted
+ below, and the aforementioned copyright notice, or b) the aforementioned
+ copyright notice and a link to karelia.com/imedia.
+
+ Neither the name of Karelia Software, nor Sandvox, nor the names of
+ contributors to iMedia Browser may be used to endorse or promote products
+ derived from the Software without prior and express written permission from
+ Karelia Software or individual contributors, as appropriate.
+
+ Disclaimer: THE SOFTWARE IS PROVIDED BY THE COPYRIGHT OWNER AND CONTRIBUTORS
+ "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH, THE
+ SOFTWARE OR THE USE OF, OR OTHER DEALINGS IN, THE SOFTWARE.
+*/
+
+
+//----------------------------------------------------------------------------------------------------------------------
+
+
+#pragma mark HEADERS
+
+#import "IMBFolderParser.h"
+
+
+//----------------------------------------------------------------------------------------------------------------------
+
+
+#pragma mark
+
+@interface IMBGarageBandParser : IMBFolderParser
+
+@end
+
+
+//----------------------------------------------------------------------------------------------------------------------
+
Oops, something went wrong.

0 comments on commit ce592fe

Please sign in to comment.