pascal ComponentResult __SoundComponentPlaySourceBuffer( void *dummy, SoundSource sourceID, SoundParamBlockPtr pb, long actions ) { ComponentResult result; /* lprintf("__PlaySourceBuf %08lx ID: %08x\n", actions, (int)sourceID ); */ /* tell mixer to start playing this new buffer */ result = SoundComponentPlaySourceBuffer( GLOBAL.sourceComponent, sourceID, pb, actions ); if( result == noErr ) { /* if the kSourcePaused bit is set, then do not turn on your hardware * just yet (the assumption is that StartSource() will later be used to * start this sound playing). If this bit is not set, turn your * hardware interrupts on. [Observation: QT calls PlaySourceBuf agin * rather than StartSource] */ StartHardware(); if( (actions & kSourcePaused) ) PauseHardware(); else ResumeHardware(); } return result; }
void SMACsdec::PlaySourceBuffer(SoundSource inSourceID, SoundParamBlock* inPB, SInt32 inActions) { // get rid of the input data mSourceData = NULL; mOutputData.sampleCount = 0; ComponentResult theError = SoundComponentPlaySourceBuffer(mSourceComponent, inSourceID, inPB, inActions); ThrowIfError(theError, (CAException)theError, "SMACsdec::PlaySourceBuffer: got an error from SoundComponentPlaySourceBuffer"); }