Core Audio output: Remove all delayed track end events when buffer reset

CQTexperiment
Christopher Snowhill 2022-01-19 14:54:04 -08:00
parent 576f1a702a
commit 178b32cbdf
1 changed files with 1 additions and 12 deletions

View File

@ -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]) {