I managed to narrow the point where popup is shown down to AudioDeviceCreateIOProcID. Unfortunately this means a chicken and egg problem, because the IOProcID is needed for setting stream usage.
The documentation on AudioHardwareIOProcStreamUsage is frustratingly vague:
Also, when getting the value of the property, one must fill out the mIOProc field of the AudioHardwareIOProcStreamUsage with the address of the of the IOProc whose stream usage is to be retrieved.
sounds like the mIOProc would be pointer to the IOProc function, not IOProcID, but trying to use the function pointer to set stream usage before creating IOProcID produces just kAudioHardwareIllegalOperationError.
Topic:
Media Technologies
SubTopic:
Audio
Tags: