Bug Fix: Set seek position when resuming paused
And a minor reoder of seek time reset code. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
parent
b8698ea125
commit
dd5be9b117
4 changed files with 21 additions and 3 deletions
|
@ -878,6 +878,15 @@ NSDictionary *makeRGInfo(PlaylistEntry *pe) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)audioPlayer:(AudioPlayer *)player updatePosition:(id)userInfo {
|
||||||
|
if(userInfo) {
|
||||||
|
PlaylistEntry *pe = (PlaylistEntry *)userInfo;
|
||||||
|
if([pe current]) {
|
||||||
|
[self updatePosition:userInfo];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (void)audioPlayer:(AudioPlayer *)player setError:(NSNumber *)status toTrack:(id)userInfo {
|
- (void)audioPlayer:(AudioPlayer *)player setError:(NSNumber *)status toTrack:(id)userInfo {
|
||||||
PlaylistEntry *pe = (PlaylistEntry *)userInfo;
|
PlaylistEntry *pe = (PlaylistEntry *)userInfo;
|
||||||
[pe setError:[status boolValue]];
|
[pe setError:[status boolValue]];
|
||||||
|
|
|
@ -138,5 +138,6 @@
|
||||||
- (void)audioPlayer:(AudioPlayer *)player restartPlaybackAtCurrentPosition:(id)userInfo;
|
- (void)audioPlayer:(AudioPlayer *)player restartPlaybackAtCurrentPosition:(id)userInfo;
|
||||||
- (void)audioPlayer:(AudioPlayer *)player pushInfo:(NSDictionary *)info toTrack:(id)userInfo;
|
- (void)audioPlayer:(AudioPlayer *)player pushInfo:(NSDictionary *)info toTrack:(id)userInfo;
|
||||||
- (void)audioPlayer:(AudioPlayer *)player reportPlayCountForTrack:(id)userInfo;
|
- (void)audioPlayer:(AudioPlayer *)player reportPlayCountForTrack:(id)userInfo;
|
||||||
|
- (void)audioPlayer:(AudioPlayer *)player updatePosition:(id)userInfo;
|
||||||
- (void)audioPlayer:(AudioPlayer *)player setError:(NSNumber *)status toTrack:(id)userInfo;
|
- (void)audioPlayer:(AudioPlayer *)player setError:(NSNumber *)status toTrack:(id)userInfo;
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -131,8 +131,12 @@
|
||||||
|
|
||||||
[bufferChain launchThreads];
|
[bufferChain launchThreads];
|
||||||
|
|
||||||
if(paused)
|
if(paused) {
|
||||||
[self setPlaybackStatus:CogStatusPaused waitUntilDone:YES];
|
[self setPlaybackStatus:CogStatusPaused waitUntilDone:YES];
|
||||||
|
if(time > 0.0) {
|
||||||
|
[self updatePosition:userInfo];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)stop {
|
- (void)stop {
|
||||||
|
@ -247,6 +251,10 @@
|
||||||
[self sendDelegateMethod:@selector(audioPlayer:restartPlaybackAtCurrentPosition:) withObject:previousUserInfo waitUntilDone:NO];
|
[self sendDelegateMethod:@selector(audioPlayer:restartPlaybackAtCurrentPosition:) withObject:previousUserInfo waitUntilDone:NO];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)updatePosition:(id)userInfo {
|
||||||
|
[self sendDelegateMethod:@selector(audioPlayer:updatePosition:) withObject:userInfo waitUntilDone:NO];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)pushInfo:(NSDictionary *)info toTrack:(id)userInfo {
|
- (void)pushInfo:(NSDictionary *)info toTrack:(id)userInfo {
|
||||||
[self sendDelegateMethod:@selector(audioPlayer:pushInfo:toTrack:) withObject:info withObject:userInfo waitUntilDone:NO];
|
[self sendDelegateMethod:@selector(audioPlayer:pushInfo:toTrack:) withObject:info withObject:userInfo waitUntilDone:NO];
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,24 +164,24 @@ static void *kInputNodeContext = &kInputNodeContext;
|
||||||
[bufferChain setVolume:0.0];
|
[bufferChain setVolume:0.0];
|
||||||
|
|
||||||
ConverterNode *converter = [bufferChain converter];
|
ConverterNode *converter = [bufferChain converter];
|
||||||
VisualizationNode *visualization = [bufferChain visualization];
|
|
||||||
DSPRubberbandNode *rubberband = [bufferChain rubberband];
|
DSPRubberbandNode *rubberband = [bufferChain rubberband];
|
||||||
DSPFSurroundNode *fsurround = [bufferChain fsurround];
|
DSPFSurroundNode *fsurround = [bufferChain fsurround];
|
||||||
DSPEqualizerNode *equalizer = [bufferChain equalizer];
|
DSPEqualizerNode *equalizer = [bufferChain equalizer];
|
||||||
DSPHRTFNode *hrtf = [bufferChain hrtf];
|
DSPHRTFNode *hrtf = [bufferChain hrtf];
|
||||||
DSPDownmixNode *downmix = [bufferChain downmix];
|
DSPDownmixNode *downmix = [bufferChain downmix];
|
||||||
|
VisualizationNode *visualization = [bufferChain visualization];
|
||||||
DLog(@"SEEKING! Resetting Buffer");
|
DLog(@"SEEKING! Resetting Buffer");
|
||||||
|
|
||||||
// This resets the converter's buffer
|
// This resets the converter's buffer
|
||||||
[self resetBuffer];
|
[self resetBuffer];
|
||||||
[converter resetBuffer];
|
[converter resetBuffer];
|
||||||
[converter inputFormatDidChange:[bufferChain inputFormat] inputConfig:[bufferChain inputConfig]];
|
[converter inputFormatDidChange:[bufferChain inputFormat] inputConfig:[bufferChain inputConfig]];
|
||||||
[visualization resetBuffer];
|
|
||||||
[rubberband resetBuffer];
|
[rubberband resetBuffer];
|
||||||
[fsurround resetBuffer];
|
[fsurround resetBuffer];
|
||||||
[equalizer resetBuffer];
|
[equalizer resetBuffer];
|
||||||
[hrtf resetBuffer];
|
[hrtf resetBuffer];
|
||||||
[downmix resetBuffer];
|
[downmix resetBuffer];
|
||||||
|
[visualization resetBuffer];
|
||||||
|
|
||||||
DLog(@"Reset buffer!");
|
DLog(@"Reset buffer!");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue