Changeset 1017
- Timestamp:
- 10/20/07 11:58:35 (15 months ago)
- Files:
-
- 1 modified
-
trunk/Audio/AudioScheduler.m (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Audio/AudioScheduler.m
r913 r1017 60 60 scheduledAudioSliceCompletionProc(void *userData, ScheduledAudioSlice *slice) 61 61 { 62 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 63 AudioScheduler *scheduler = (AudioScheduler *)userData; 62 NSCParameterAssert(NULL != userData); 63 NSCParameterAssert(NULL != slice); 64 65 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 66 NSArray *dataArray = (NSArray *)userData; 67 AudioScheduler *scheduler = (AudioScheduler *)[dataArray objectAtIndex:0]; 68 ScheduledAudioRegion *region = (ScheduledAudioRegion *)[dataArray objectAtIndex:1]; 64 69 65 70 #if DEBUG … … 72 77 73 78 // Update the scheduler 74 [scheduler setRegionBeingRendered: [scheduler regionBeingScheduled]];79 [scheduler setRegionBeingRendered:region]; 75 80 76 81 // Notify the delegate … … 101 106 } 102 107 108 [dataArray release]; 103 109 [pool release]; 104 110 } … … 449 455 } 450 456 457 // To handle the case where the file contains fewer frames than the buffer, 458 // pass the region and self to the callback proc to ensure that the callback 459 // knows the ScheduledAudioRegion the audio that was just rendered came from 460 NSArray *array = [[NSArray alloc] initWithObjects:self, [self regionBeingScheduled], nil]; 461 451 462 // Schedule it 452 463 slice->mTimeStamp.mFlags = kAudioTimeStampSampleTimeValid; 453 464 slice->mTimeStamp.mSampleTime = [self scheduledStartTime].mSampleTime + [self framesScheduled]; 454 465 slice->mCompletionProc = scheduledAudioSliceCompletionProc; 455 slice->mCompletionProcUserData = (void *) self;466 slice->mCompletionProcUserData = (void *)array; 456 467 slice->mFlags = 0; 457 468 slice->mNumberFrames = frameCount;
