Core Audio output: Remove all delayed track end events when buffer reset
parent
576f1a702a
commit
178b32cbdf
|
@ -221,21 +221,10 @@ default_device_changed(AudioObjectID inObjectID, UInt32 inNumberAddresses, const
|
|||
}
|
||||
|
||||
if ([outputController shouldReset]) {
|
||||
size_t length = [[outputController buffer] bufferedLength];
|
||||
[[outputController buffer] empty];
|
||||
[outputController setShouldReset:NO];
|
||||
NSArray * delayedCopy = [delayedEvents copy];
|
||||
[delayedEvents removeAllObjects];
|
||||
for (NSNumber * eventOffset in delayedCopy) {
|
||||
long eventTimestamp = [eventOffset longValue];
|
||||
if (eventTimestamp >= length) {
|
||||
eventTimestamp -= length;
|
||||
}
|
||||
else {
|
||||
eventTimestamp = 0;
|
||||
}
|
||||
[delayedEvents addObject:[NSNumber numberWithLong:eventTimestamp]];
|
||||
}
|
||||
delayedEventsPopped = YES;
|
||||
}
|
||||
|
||||
while ([delayedEvents count]) {
|
||||
|
|
Loading…
Reference in New Issue