Skip to content

Commit

Permalink
Adding iTunes Library Parser.
Browse files Browse the repository at this point in the history
  • Loading branch information
tomgco committed Jul 25, 2011
1 parent 606a4e3 commit 00ee2f5
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 69 deletions.
18 changes: 5 additions & 13 deletions Back Row/Back_RowAppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
//

#import "Back_RowAppDelegate.h"
#import "iTunesLibrayLoader.h"
#import "iTunesLibraryParser.h"
#import <dispatch/dispatch.h>

@implementation Back_RowAppDelegate
Expand All @@ -22,22 +22,14 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
//Loads the iTunes Library data on a seperate thread.
- (void)loadLibrary {
dispatch_queue_t queue = dispatch_get_global_queue(0,0);
dispatch_queue_t main = dispatch_get_main_queue();

dispatch_async(queue, ^{
iTunesLibrayLoader *library = [[iTunesLibrayLoader alloc] init];
NSDictionary* loadedLibrary = [library loadLibrary:nil];
[library release];

dispatch_async(main, ^{
[label setStringValue:@"Loaded iTunes File."];
itunesLibrary = [NSDictionary dictionaryWithDictionary:[loadedLibrary objectForKey:@"Tracks"]];
[loadedLibrary release];
NSLog(@"%@", itunesLibrary);
});
iTunesLibraryParser *parser = [[iTunesLibraryParser alloc] init];
itunesLibrary = [[NSDictionary alloc] initWithDictionary:[parser getTVShows]];
[parser release];
});

dispatch_release(queue);
dispatch_release(main);
}

@end
4 changes: 3 additions & 1 deletion Back Row/Classes/iTunesLibraryParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@

@interface iTunesLibraryParser : NSObject {
NSMutableDictionary* loadedLibrary;
NSMutableDictionary* tvShows;
}

- (void) getTVShows;
- (NSDictionary*) getTVShows;

@property(nonatomic, retain) NSMutableDictionary* loadedLibrary;
@property(nonatomic, retain) NSMutableDictionary* tvShows;

@end
46 changes: 27 additions & 19 deletions Back Row/Classes/iTunesLibraryParser.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,47 @@
#import "iTunesLibrayLoader.h"
#import <dispatch/dispatch.h>

#define TVSHOW 1

@implementation iTunesLibraryParser

@synthesize loadedLibrary;
@synthesize loadedLibrary, tvShows;

- (id)init
{
self = [super init];
if (self) {
dispatch_queue_t queue = dispatch_get_global_queue(0,0);

dispatch_async(queue, ^{
iTunesLibrayLoader *library = [[iTunesLibrayLoader alloc] init];
loadedLibrary = [NSMutableDictionary dictionaryWithDictionary:[[library loadLibrary:nil] objectForKey:@"Tracks"]];
[library release];
});
dispatch_release(queue);
iTunesLibrayLoader *library = [[iTunesLibrayLoader alloc] init];
loadedLibrary = [[NSMutableDictionary alloc] initWithDictionary:[[library loadLibrary:nil] objectForKey:@"Tracks"]];
[library release];
tvShows = [[NSMutableDictionary alloc] init];
}

return self;
}

- (void) getTVShows {
NSUInteger count = [loadedLibrary count];
dispatch_queue_t queue = dispatch_get_global_queue(0,0);

dispatch_apply(count, queue, ^(size_t i){
id key = [[loadedLibrary allKeys] objectAtIndex:i];
- (NSDictionary*) getTVShows {
for (id key in loadedLibrary) {
id object = [loadedLibrary objectForKey:key];
int number = [[object valueForKey:@"TV Show"] intValue];
if (number == 1) {
NSLog(@"%@", [object valueForKey:@"Artist"]);
int mediaType = [[object valueForKey:@"TV Show"] intValue];
if (mediaType == TVSHOW) {
if ([tvShows objectForKey:[object valueForKey:@"Series"]] == nil) {
NSMutableArray* showArray = [[NSMutableArray alloc] init];
[showArray addObject:object];
[tvShows setObject:showArray forKey:[object valueForKey:@"Series"]];
[showArray release];
} else {
[[tvShows objectForKey:[object valueForKey:@"Series"]] addObject:object];
}
}
});
}
return tvShows;
}

- (void)dealloc {
[tvShows release];
[loadedLibrary release];
[super dealloc];
}

@end
76 changes: 40 additions & 36 deletions Back Row/en.lproj/MainMenu.xib
Original file line number Diff line number Diff line change
Expand Up @@ -1344,7 +1344,7 @@
<string key="NSFrame">{{-3, 343}, {486, 17}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<reference key="NSNextKeyView" ref="532856121"/>
<string key="NSReuseIdentifierKey">_NS:3936</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="431802807">
Expand Down Expand Up @@ -1394,6 +1394,7 @@
<string key="NSFrameSize">{480, 318}</string>
<reference key="NSSuperview" ref="1007273961"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="412633817"/>
<string key="NSReuseIdentifierKey">_NS:1197</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="1019149001">
Expand All @@ -1402,6 +1403,7 @@
<string key="NSFrameSize">{480, 17}</string>
<reference key="NSSuperview" ref="612914396"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1007273961"/>
<string key="NSReuseIdentifierKey">_NS:1199</string>
<reference key="NSTableView" ref="263966670"/>
</object>
Expand Down Expand Up @@ -1525,6 +1527,7 @@
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="532856121"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="172851403"/>
<string key="NSReuseIdentifierKey">_NS:1214</string>
<reference key="NSTarget" ref="532856121"/>
<string key="NSAction">_doScroller:</string>
Expand All @@ -1537,6 +1540,7 @@
<string key="NSFrame">{{1, 119}, {223, 15}}</string>
<reference key="NSSuperview" ref="532856121"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:1216</string>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="532856121"/>
Expand All @@ -1563,7 +1567,7 @@
<string key="NSFrame">{{-1, -1}, {482, 336}}</string>
<reference key="NSSuperview" ref="439893737"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1007273961"/>
<reference key="NSNextKeyView" ref="612914396"/>
<string key="NSReuseIdentifierKey">_NS:1193</string>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="412633817"/>
Expand All @@ -1576,7 +1580,7 @@
<string key="NSFrameSize">{480, 360}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<reference key="NSNextKeyView" ref="744588898"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
Expand Down Expand Up @@ -2144,14 +2148,6 @@
</object>
<int key="connectionID">493</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="1021"/>
<reference key="destination" ref="976324537"/>
</object>
<int key="connectionID">495</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">alignCenter:</string>
Expand Down Expand Up @@ -2288,6 +2284,14 @@
</object>
<int key="connectionID">541</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="1021"/>
<reference key="destination" ref="263966670"/>
</object>
<int key="connectionID">559</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
Expand Down Expand Up @@ -3360,21 +3364,6 @@
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">543</int>
<reference key="object" ref="412633817"/>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">544</int>
<reference key="object" ref="1019149001"/>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">545</int>
<reference key="object" ref="172851403"/>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">546</int>
<reference key="object" ref="263966670"/>
Expand All @@ -3385,15 +3374,6 @@
</object>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">547</int>
<reference key="object" ref="421917624"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="533996551"/>
</object>
<reference key="parent" ref="263966670"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">548</int>
<reference key="object" ref="462620080"/>
Expand All @@ -3408,11 +3388,35 @@
<reference key="object" ref="1019708348"/>
<reference key="parent" ref="462620080"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">547</int>
<reference key="object" ref="421917624"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="533996551"/>
</object>
<reference key="parent" ref="263966670"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">550</int>
<reference key="object" ref="533996551"/>
<reference key="parent" ref="421917624"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">545</int>
<reference key="object" ref="172851403"/>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">544</int>
<reference key="object" ref="1019149001"/>
<reference key="parent" ref="532856121"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">543</int>
<reference key="object" ref="412633817"/>
<reference key="parent" ref="532856121"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
Expand Down Expand Up @@ -3766,7 +3770,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">550</int>
<int key="maxID">559</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
Expand Down

0 comments on commit 00ee2f5

Please sign in to comment.