Moved stopAfterCurrent check to requestNextStream, so it won't interfere other than when the player is reaching the end of a track by natural means. Added menu item validation.
parent
771a6de380
commit
89cd984b7d
|
@ -491,7 +491,12 @@
|
||||||
- (void)audioPlayer:(AudioPlayer *)player requestNextStream:(id)userInfo
|
- (void)audioPlayer:(AudioPlayer *)player requestNextStream:(id)userInfo
|
||||||
{
|
{
|
||||||
PlaylistEntry *curEntry = (PlaylistEntry *)userInfo;
|
PlaylistEntry *curEntry = (PlaylistEntry *)userInfo;
|
||||||
PlaylistEntry *pe = [playlistController getNextEntry:curEntry];
|
PlaylistEntry *pe;
|
||||||
|
|
||||||
|
if (curEntry.status == kCogEntryStoppingAfterCurrent)
|
||||||
|
return;
|
||||||
|
else
|
||||||
|
pe = [playlistController getNextEntry:curEntry];
|
||||||
|
|
||||||
[player setNextStream:[pe URL] withUserInfo:pe];
|
[player setNextStream:[pe URL] withUserInfo:pe];
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,9 +382,6 @@
|
||||||
|
|
||||||
- (PlaylistEntry *)getNextEntry:(PlaylistEntry *)pe
|
- (PlaylistEntry *)getNextEntry:(PlaylistEntry *)pe
|
||||||
{
|
{
|
||||||
if (pe.status == kCogEntryStoppingAfterCurrent)
|
|
||||||
return nil;
|
|
||||||
|
|
||||||
if (repeat == RepeatOne) {
|
if (repeat == RepeatOne) {
|
||||||
return pe;
|
return pe;
|
||||||
}
|
}
|
||||||
|
@ -687,6 +684,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)stopAfterCurrent:(id)sender
|
||||||
|
{
|
||||||
|
if (currentEntry.status != kCogEntryStoppingAfterCurrent)
|
||||||
|
currentEntry.status = kCogEntryStoppingAfterCurrent;
|
||||||
|
else
|
||||||
|
currentEntry.status = kCogEntryPlaying;
|
||||||
|
}
|
||||||
|
|
||||||
-(BOOL)validateMenuItem:(NSMenuItem*)menuItem
|
-(BOOL)validateMenuItem:(NSMenuItem*)menuItem
|
||||||
{
|
{
|
||||||
SEL action = [menuItem action];
|
SEL action = [menuItem action];
|
||||||
|
@ -703,6 +708,9 @@
|
||||||
if (action == @selector(emptyQueueList:) && ([queueList count] < 1))
|
if (action == @selector(emptyQueueList:) && ([queueList count] < 1))
|
||||||
return NO;
|
return NO;
|
||||||
|
|
||||||
|
if (action == @selector(stopAfterCurrent:) && (currentEntry.status == kCogEntryNormal))
|
||||||
|
return NO;
|
||||||
|
|
||||||
// if nothing is selected, gray out these
|
// if nothing is selected, gray out these
|
||||||
if ([[self selectedObjects] count] < 1)
|
if ([[self selectedObjects] count] < 1)
|
||||||
{
|
{
|
||||||
|
@ -723,12 +731,5 @@
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)stopAfterCurrent:(id)sender
|
|
||||||
{
|
|
||||||
if (currentEntry.status != kCogEntryStoppingAfterCurrent)
|
|
||||||
currentEntry.status = kCogEntryStoppingAfterCurrent;
|
|
||||||
else
|
|
||||||
currentEntry.status = kCogEntryPlaying;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Reference in New Issue