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]) {
|
if ([outputController shouldReset]) {
|
||||||
size_t length = [[outputController buffer] bufferedLength];
|
|
||||||
[[outputController buffer] empty];
|
[[outputController buffer] empty];
|
||||||
[outputController setShouldReset:NO];
|
[outputController setShouldReset:NO];
|
||||||
NSArray * delayedCopy = [delayedEvents copy];
|
|
||||||
[delayedEvents removeAllObjects];
|
[delayedEvents removeAllObjects];
|
||||||
for (NSNumber * eventOffset in delayedCopy) {
|
delayedEventsPopped = YES;
|
||||||
long eventTimestamp = [eventOffset longValue];
|
|
||||||
if (eventTimestamp >= length) {
|
|
||||||
eventTimestamp -= length;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
eventTimestamp = 0;
|
|
||||||
}
|
|
||||||
[delayedEvents addObject:[NSNumber numberWithLong:eventTimestamp]];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while ([delayedEvents count]) {
|
while ([delayedEvents count]) {
|
||||||
|
|
Loading…
Reference in New Issue