From 7109dec4ad6422e7dacedfed7a6d4d8f194bffbc Mon Sep 17 00:00:00 2001 From: vspader Date: Sat, 23 Feb 2008 19:46:23 +0000 Subject: [PATCH] Some playlistentry cleanup. --- AudioScrobbler/AudioScrobbler.m | 2 +- Playlist/PlaylistController.h | 7 ++-- Playlist/PlaylistController.m | 64 ++++++++++++++++----------------- Playlist/PlaylistEntry.h | 42 +++++++++++----------- Playlist/PlaylistEntry.m | 22 ++++++------ Playlist/PlaylistLoader.m | 2 +- 6 files changed, 66 insertions(+), 73 deletions(-) diff --git a/AudioScrobbler/AudioScrobbler.m b/AudioScrobbler/AudioScrobbler.m index 24a667915..22f94650e 100644 --- a/AudioScrobbler/AudioScrobbler.m +++ b/AudioScrobbler/AudioScrobbler.m @@ -110,7 +110,7 @@ escapeForLastFM(NSString *string) escapeForLastFM([pe title]), escapeForLastFM([pe album]), @"", // TODO: MusicBrainz support - (int)([[pe totalFrames] longValue]/[[pe sampleRate] floatValue]), + (int)(pe.length), escapeForLastFM([[pe URL] path]) ]]; } diff --git a/Playlist/PlaylistController.h b/Playlist/PlaylistController.h index af0508d62..c8822cab8 100644 --- a/Playlist/PlaylistController.h +++ b/Playlist/PlaylistController.h @@ -36,10 +36,10 @@ typedef enum { BOOL shuffle; RepeatMode repeat; - - int selectedRow; } +@property(retain) PlaylistEntry *currentEntry; + //Private Methods - (void)updateIndexesFromRow:(int) row; - (void)updateTotalTime; @@ -77,9 +77,6 @@ typedef enum { - (NSString *)totalTimeDisplay; //FUN PLAYLIST MANAGEMENT STUFF! -- (id)currentEntry; -- (void)setCurrentEntry:(PlaylistEntry *)pe; - - (BOOL)next; - (BOOL)prev; diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index 7ad01af34..73d77c9a6 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -18,6 +18,8 @@ @implementation PlaylistController +@synthesize currentEntry; + #define SHUFFLE_HISTORY_SIZE 100 + (void)initialize { @@ -177,7 +179,7 @@ ldiv_t hoursAndMinutes; for (PlaylistEntry *pe in [self arrangedObjects]) { - tt += [[pe length] doubleValue]; + tt += pe.length; } int sec = (int)(tt); @@ -206,7 +208,7 @@ PlaylistEntry *p; p = [[self arrangedObjects] objectAtIndex:j]; - [p setIndex:[NSNumber numberWithInt:j]]; + p.index = j; } } @@ -229,17 +231,17 @@ - (void)removeObjectsAtArrangedObjectIndexes:(NSIndexSet *)indexes { NSLog(@"Removing indexes: %@", indexes); - NSLog(@"Current index: %i", [[currentEntry index] intValue]); + NSLog(@"Current index: %i", currentEntry.index); - if ([[currentEntry index] intValue] >= 0 && [indexes containsIndex:[[currentEntry index] intValue]]) + if (currentEntry.index >= 0 && [indexes containsIndex:currentEntry.index]) { - [currentEntry setIndex:[NSNumber numberWithInt:-[[currentEntry index] intValue] - 1]]; - NSLog(@"Current removed: %i", [[currentEntry index] intValue]); + currentEntry.index = -currentEntry.index - 1; + NSLog(@"Current removed: %i", currentEntry.index); } - if ([[currentEntry index] intValue] < 0) //Need to update the negative index + if (currentEntry.index < 0) //Need to update the negative index { - int i = -[[currentEntry index] intValue] - 1; + int i = -currentEntry.index - 1; NSLog(@"I is %i", i); int j; for (j = i - 1; j >= 0; j--) @@ -249,9 +251,8 @@ i--; } } - [currentEntry setIndex: [NSNumber numberWithInt:-i - 1]]; + currentEntry.index = -i - 1; - NSLog(@"UPDATING INDEX: %@", [currentEntry index]); } [super removeObjectsAtArrangedObjectIndexes:indexes]; @@ -392,7 +393,7 @@ pe = [queueList objectAtIndex:0]; [queueList removeObjectAtIndex:0]; - [pe setStatus:[NSNumber numberWithInteger:kCogEntryNormal]]; + pe.status = kCogEntryNormal; [pe setStatusMessage:nil]; [pe setQueuePosition:-1]; @@ -409,18 +410,18 @@ if (shuffle == YES) { - return [self shuffledEntryAtIndex:([[pe shuffleIndex] intValue] + 1)]; + return [self shuffledEntryAtIndex:(pe.shuffleIndex + 1)]; } else { int i; - if ([[pe index] intValue] < 0) //Was a current entry, now removed. + if (pe.index < 0) //Was a current entry, now removed. { - i = -[[pe index] intValue] - 1; + i = -pe.index - 1; } else { - i = [[pe index] intValue] + 1; + i = pe.index + 1; } if (repeat == RepeatAlbum) @@ -457,18 +458,18 @@ if (shuffle == YES) { - return [self shuffledEntryAtIndex:([[pe shuffleIndex] intValue] - 1)]; + return [self shuffledEntryAtIndex:(pe.shuffleIndex - 1)]; } else { int i; - if ([[pe index] intValue] < 0) //Was a current entry, now removed. + if (pe.index < 0) //Was a current entry, now removed. { - i = -[[pe index] intValue] - 2; + i = -pe.index - 2; } else { - i = [[pe index] intValue] - 1; + i = pe.index - 1; } return [self entryAtIndex:i]; @@ -512,7 +513,7 @@ int i; for (i = 0; i < [shuffleList count]; i++) { - [[shuffleList objectAtIndex:i] setShuffleIndex:[NSNumber numberWithInt:i]]; + [[shuffleList objectAtIndex:i] setShuffleIndex:i]; } } @@ -526,7 +527,7 @@ int i; for (i = ([shuffleList count] - [newList count]); i < [shuffleList count]; i++) { - [[shuffleList objectAtIndex:i] setShuffleIndex:[NSNumber numberWithInt:i]]; + [[shuffleList objectAtIndex:i] setShuffleIndex:i]; } } @@ -536,7 +537,7 @@ [self addShuffledListToFront]; - if (currentEntry && [[currentEntry index] intValue] >= 0) + if (currentEntry && currentEntry.index >= 0) { [shuffleList insertObject:currentEntry atIndex:0]; [currentEntry setShuffleIndex:0]; @@ -552,26 +553,21 @@ [shuffleList removeObjectAtIndex:i]; } else { - [[shuffleList objectAtIndex:i] setShuffleIndex:[NSNumber numberWithInt:i]]; + [[shuffleList objectAtIndex:i] setShuffleIndex: i]; } } } } -- (id)currentEntry -{ - return currentEntry; -} - - (void)setCurrentEntry:(PlaylistEntry *)pe { - [currentEntry setStatus:[NSNumber numberWithInteger:kCogEntryNormal]]; + currentEntry.status = kCogEntryNormal; [currentEntry setStatusMessage:nil]; - [pe setStatus:[NSNumber numberWithInteger:kCogEntryPlaying]]; + pe.status = kCogEntryPlaying; [pe setStatusMessage:@"Playing..."]; - [tableView scrollRowToVisible:[[pe index] intValue]]; + [tableView scrollRowToVisible:pe.index]; [pe retain]; [currentEntry release]; @@ -649,7 +645,7 @@ { for (PlaylistEntry *queueItem in queueList) { - [queueItem setStatus:[NSNumber numberWithInteger:kCogEntryNormal]]; + queueItem.status = kCogEntryNormal; [queueItem setStatusMessage:nil]; [queueItem setQueuePosition:-1]; } @@ -662,7 +658,7 @@ { for (PlaylistEntry *queueItem in [self selectedObjects]) { - [queueItem setStatus: [NSNumber numberWithInteger:kCogEntryQueued]]; + queueItem.status = kCogEntryQueued; [queueItem setQueuePosition: [queueList count]+1]; [queueItem setStatusMessage: [NSString stringWithFormat:@"Queued: %i", queueItem.queuePosition]]; @@ -678,7 +674,7 @@ if (queueItem.queuePosition < 0) break; - [queueItem setStatus:[NSNumber numberWithInteger:kCogEntryNormal]]; + queueItem.status = kCogEntryNormal; [queueItem setStatusMessage:nil]; [queueList removeObjectAtIndex:queueItem.queuePosition - 1]; } diff --git a/Playlist/PlaylistEntry.h b/Playlist/PlaylistEntry.h index 83565aa03..c212d27cb 100644 --- a/Playlist/PlaylistEntry.h +++ b/Playlist/PlaylistEntry.h @@ -17,9 +17,9 @@ typedef enum { } PlaylistEntryStatus; @interface PlaylistEntry : NSObject { - NSNumber *index; - NSNumber *shuffleIndex; - NSNumber *status; + int index; + int shuffleIndex; + PlaylistEntryStatus status; NSString *statusMessage; int queuePosition; @@ -30,15 +30,15 @@ typedef enum { NSString *title; NSString *genre; NSString *year; - NSNumber *track; + int track; - NSNumber *totalFrames; - NSNumber *bitrate; - NSNumber *channels; - NSNumber *bitsPerSample; - NSNumber *sampleRate; + long long totalFrames; + int bitrate; + int channels; + int bitsPerSample; + float sampleRate; - NSNumber *seekable; + BOOL seekable; } - (void)setMetadata: (NSDictionary *)m; @@ -47,13 +47,13 @@ typedef enum { - (void)readPropertiesThread; @property(readonly) NSString *display; -@property(readonly) NSNumber *length; +@property(readonly) double length; @property(readonly) NSString *path; @property(readonly) NSString *filename; -@property(retain) NSNumber *index; -@property(retain) NSNumber *shuffleIndex; -@property(retain) NSNumber *status; +@property int index; +@property int shuffleIndex; +@property PlaylistEntryStatus status; @property(retain) NSString *statusMessage; @property int queuePosition; @property(retain) NSURL *URL; @@ -63,14 +63,14 @@ typedef enum { @property(retain) NSString *title; @property(retain) NSString *genre; @property(retain) NSString *year; -@property(retain) NSNumber *track; +@property int track; -@property(retain) NSNumber *totalFrames; -@property(retain) NSNumber *bitrate; -@property(retain) NSNumber *channels; -@property(retain) NSNumber *bitsPerSample; -@property(retain) NSNumber *sampleRate; +@property long long totalFrames; +@property int bitrate; +@property int channels; +@property int bitsPerSample; +@property float sampleRate; -@property(retain) NSNumber *seekable; +@property BOOL seekable; @end diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index 8f512aefa..9ed76c948 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -44,20 +44,20 @@ - (void)setProperties:(NSDictionary *)dict { - [self setTotalFrames: [dict objectForKey:@"totalFrames" ]]; - [self setBitrate: [dict objectForKey:@"bitrate" ]]; - [self setChannels: [dict objectForKey:@"channels" ]]; - [self setBitsPerSample: [dict objectForKey:@"bitsPerSample" ]]; - [self setSampleRate: [dict objectForKey:@"sampleRate" ]]; - [self setSeekable: [dict objectForKey:@"seekable" ]]; + [self setTotalFrames: [[dict objectForKey:@"totalFrames" ] longLongValue]]; + [self setBitrate: [[dict objectForKey:@"bitrate" ] intValue]]; + [self setChannels: [[dict objectForKey:@"channels" ] intValue]]; + [self setBitsPerSample: [[dict objectForKey:@"bitsPerSample" ] intValue]]; + [self setSampleRate: [[dict objectForKey:@"sampleRate" ] floatValue]]; + [self setSeekable: [[dict objectForKey:@"seekable" ] boolValue]]; } - (void)readPropertiesThread { NSDictionary *properties = [AudioPropertiesReader propertiesForURL:self.URL]; if (!properties) { - [self setStatus:[NSNumber numberWithInteger:kCogEntryError]]; - [self setStatusMessage:@"Failed to read properties!"]; + self.status = kCogEntryError; + self.statusMessage = @"Failed to read properties!"; return; } @@ -80,7 +80,7 @@ [self setAlbum: [m objectForKey:@"album" ]]; [self setGenre: [m objectForKey:@"genre" ]]; [self setYear: [m objectForKey:@"year" ]]; - [self setTrack: [m objectForKey:@"track" ]]; + [self setTrack: [[m objectForKey:@"track" ] intValue]]; } - (void)readMetadataThread @@ -105,9 +105,9 @@ } } -- (NSNumber *)length +- (double)length { - return [NSNumber numberWithDouble:([self.totalFrames longValue] / [self.sampleRate floatValue])]; + return ((double)self.totalFrames / self.sampleRate); } - (NSString *)path diff --git a/Playlist/PlaylistLoader.m b/Playlist/PlaylistLoader.m index 193d52688..609503625 100755 --- a/Playlist/PlaylistLoader.m +++ b/Playlist/PlaylistLoader.m @@ -250,7 +250,7 @@ NSURL *url = [validURLs objectAtIndex:i]; [pe setURL:url]; - [pe setIndex:[NSNumber numberWithInt:(index+i)]]; + pe.index = index+i; [pe setTitle:[[url path] lastPathComponent]]; [pe setQueuePosition:-1]; [entries addObject:pe];