Shuffle/Repeat are now remembered.

CQTexperiment
vspader 2009-02-28 10:06:21 -08:00
parent 2883e93725
commit df2fa22a93
2 changed files with 22 additions and 20 deletions

View File

@ -50,9 +50,6 @@ typedef enum {
NSString *totalTime; NSString *totalTime;
PlaylistEntry *currentEntry; PlaylistEntry *currentEntry;
BOOL shuffle;
RepeatMode repeat;
} }
@property(retain) PlaylistEntry *currentEntry; @property(retain) PlaylistEntry *currentEntry;

View File

@ -129,7 +129,7 @@
- (void)tableView:(NSTableView *)tableView - (void)tableView:(NSTableView *)tableView
didClickTableColumn:(NSTableColumn *)tableColumn didClickTableColumn:(NSTableColumn *)tableColumn
{ {
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
@ -245,7 +245,7 @@
[accept_urls release]; [accept_urls release];
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
return YES; return YES;
@ -260,7 +260,7 @@
{ {
[super insertObjects:objects atArrangedObjectIndexes:indexes]; [super insertObjects:objects atArrangedObjectIndexes:indexes];
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
@ -293,7 +293,7 @@
[super removeObjectsAtArrangedObjectIndexes:indexes]; [super removeObjectsAtArrangedObjectIndexes:indexes];
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
@ -323,7 +323,7 @@
[s release]; [s release];
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
@ -332,7 +332,7 @@
[self setSortDescriptors:nil]; [self setSortDescriptors:nil];
[self setContent:[Shuffle shuffleList:[self content]]]; [self setContent:[Shuffle shuffleList:[self content]]];
if (shuffle == YES) if ([self shuffle] == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
@ -343,6 +343,8 @@
- (IBAction)toggleRepeat:(id)sender - (IBAction)toggleRepeat:(id)sender
{ {
RepeatMode repeat = [self repeat];
if (repeat == RepeatNone) { if (repeat == RepeatNone) {
[self setRepeat: RepeatOne]; [self setRepeat: RepeatOne];
} }
@ -359,6 +361,8 @@
- (PlaylistEntry *)entryAtIndex:(int)i - (PlaylistEntry *)entryAtIndex:(int)i
{ {
RepeatMode repeat = [self repeat];
if (i < 0) if (i < 0)
{ {
if (repeat != RepeatNone) if (repeat != RepeatNone)
@ -379,6 +383,8 @@
- (PlaylistEntry *)shuffledEntryAtIndex:(int)i - (PlaylistEntry *)shuffledEntryAtIndex:(int)i
{ {
RepeatMode repeat = [self repeat];
while (i < 0) while (i < 0)
{ {
if (repeat == RepeatAll) if (repeat == RepeatAll)
@ -409,7 +415,7 @@
- (PlaylistEntry *)getNextEntry:(PlaylistEntry *)pe - (PlaylistEntry *)getNextEntry:(PlaylistEntry *)pe
{ {
if (repeat == RepeatOne) { if ([self repeat] == RepeatOne) {
return pe; return pe;
} }
@ -431,7 +437,7 @@
return pe; return pe;
} }
if (shuffle == YES) if ([self shuffle] == YES)
{ {
return [self shuffledEntryAtIndex:(pe.shuffleIndex + 1)]; return [self shuffledEntryAtIndex:(pe.shuffleIndex + 1)];
} }
@ -447,7 +453,7 @@
i = pe.index + 1; i = pe.index + 1;
} }
if (repeat == RepeatAlbum) if ([self repeat] == RepeatAlbum)
{ {
PlaylistEntry *next = [self entryAtIndex:i]; PlaylistEntry *next = [self entryAtIndex:i];
@ -475,11 +481,11 @@
- (PlaylistEntry *)getPrevEntry:(PlaylistEntry *)pe - (PlaylistEntry *)getPrevEntry:(PlaylistEntry *)pe
{ {
if (repeat == RepeatOne) { if ([self repeat] == RepeatOne) {
return pe; return pe;
} }
if (shuffle == YES) if ([self shuffle] == YES)
{ {
return [self shuffledEntryAtIndex:(pe.shuffleIndex - 1)]; return [self shuffledEntryAtIndex:(pe.shuffleIndex - 1)];
} }
@ -600,22 +606,21 @@
- (void)setShuffle:(BOOL)s - (void)setShuffle:(BOOL)s
{ {
shuffle = s; [[NSUserDefaults standardUserDefaults] setBool:s forKey:@"shuffle"];
if (shuffle == YES) if (s == YES)
[self resetShuffleList]; [self resetShuffleList];
} }
- (BOOL)shuffle - (BOOL)shuffle
{ {
return shuffle; return [[NSUserDefaults standardUserDefaults] boolForKey:@"shuffle"];
} }
- (void)setRepeat:(RepeatMode)r - (void)setRepeat:(RepeatMode)r
{ {
NSLog(@"Repeat is now: %i", r); [[NSUserDefaults standardUserDefaults] setInteger:r forKey:@"repeatMode"];
repeat = r;
} }
- (RepeatMode)repeat - (RepeatMode)repeat
{ {
return repeat; return [[NSUserDefaults standardUserDefaults] integerForKey:@"repeatMode"];
} }
- (IBAction)clear:(id)sender - (IBAction)clear:(id)sender