Daisy And captureCurrentPtr.
Daisy And captureCurrentPtr.
- Subject: Daisy And captureCurrentPtr.
- From: Craig Bakalian <email@hidden>
- Date: Thu, 5 Feb 2004 10:31:38 -0500
Hi,
Okay, I am getting that the following callback in Daisy is storing
data in captureCurrentPtr.
OSStatus captureInputIOProc (AudioDeviceID inDevice, const
AudioTimeStamp* inNow, const AudioBufferList* inInputData,
const AudioTimeStamp* inInputTime,
AudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,
void* device)
{
AudioDeviceInfoPtr dInfo = device;
if((inInputData != NULL) && (inInputData->mNumberBuffers > 0))
{
if (dInfo->captureInput)
{
if (dInfo->captureCurrentPtr +
inInputData->mBuffers[0].mDataByteSize < dInfo->captureStorage +
kSizeOfCaptureBuffer)
{
BlockMove(inInputData->mBuffers[0].mData, dInfo->captureCurrentPtr,
inInputData->mBuffers[0].mDataByteSize);
dInfo->captureCurrentPtr += inInputData->mBuffers[0].mDataByteSize;
dInfo->captureTotalBytesCaptured +=
inInputData->mBuffers[0].mDataByteSize;
}
else
{
dInfo->captureInput = false;
}
}
}
return (noErr);
}
captureCurrentPtr is declared in AudoDeviceInfoPtr along with
captureData like this ->
Boolean captureInput;
Ptr captureStorage;
Ptr captureCurrentPtr;
And captureCurrentPtr is pointing to captureStorage like this
if (deviceInfo->captureInput)
{
deviceInfo->captureCurrentPtr =
deviceInfo->captureStorage;
deviceInfo->captureTotalBytesCaptured = 0;
err = InstallEventLoopTimer(GetMainEventLoop(),
kEventDurationSecond, kEventDurationSecond / 6,
isCaptureFinishedProc, globals, &globals->isCaptureFinishedTimer);
FailIf(err != noErr, Bail);
// use the softPlayThru IOProc on this device
err = AudioDeviceAddIOProc(deviceInfo->ID,
captureInputIOProc, (void *) deviceInfo);
FailIf(err != noErr, Bail);
// start playing via the softPlayThru IOProc on
this device
err = AudioDeviceStart(deviceInfo->ID,
captureInputIOProc);
FailIf(err != noErr, Bail);
}
Hopefully, I am following this correctly, and am correct in saying that
AudioBufferLists from the captureInputIOProc are being stored in
deviceInfo->captureStorage. Yet, one last question, When I mouse down
on the Capture Input button for a second time, I am given a save dialog
box, with a call to a function that eventually gets to a
AudioFileCreate() with an eventual AudioFileWriteBytes(), yet I can't
find where deviceInfo->captureStorage's buffers are sent to
AudioFileWriteBytes(). I don't see how the data is passed.
Craig Bakalian
www.eThinkingCap.com
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.