diff --git a/Application/PlaybackController.m b/Application/PlaybackController.m index 04d08121e..eebdb67f1 100644 --- a/Application/PlaybackController.m +++ b/Application/PlaybackController.m @@ -590,6 +590,14 @@ NSDictionary * makeRGInfo(PlaylistEntry *pe) DLog(@"PLAYING!"); [self setSeekable:YES]; } + + if (status == kCogStatusStopped) { + status = kCogStatusStopping; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ + if ([self playbackStatus] == kCogStatusStopping) + [self setPlaybackStatus:kCogStatusStopped]; + }); + } [self setPlaybackStatus:status]; } diff --git a/Audio/Status.h b/Audio/Status.h index 0d9df755b..15a351f60 100644 --- a/Audio/Status.h +++ b/Audio/Status.h @@ -12,4 +12,5 @@ enum kCogStatusStopped = 0, kCogStatusPaused, kCogStatusPlaying, + kCogStatusStopping, }; diff --git a/Transformers/PlaybackStatusToHiddenTransformer.swift b/Transformers/PlaybackStatusToHiddenTransformer.swift index bfdb20a46..836efc701 100644 --- a/Transformers/PlaybackStatusToHiddenTransformer.swift +++ b/Transformers/PlaybackStatusToHiddenTransformer.swift @@ -21,7 +21,8 @@ class PlaybackStatusToHiddenTransformer : ValueTransformer { case kCogStatusStopped as Int: return true case kCogStatusPaused as Int, - kCogStatusPlaying as Int: + kCogStatusPlaying as Int, + kCogStatusStopping as Int: return false case .none: return true