Reputation:
It is usually said callbacks are implemented with function pointers. When I check PortAudio's source code, I see that callback function is declared as an ordinary function (not a f. pointer). Is it normal/legal/advisable?
typedef int PaStreamCallback(
const void *input, void *output,
unsigned long frameCount,
const PaStreamCallbackTimeInfo* timeInfo,
PaStreamCallbackFlags statusFlags,
void *userData );
Upvotes: 3
Views: 468
Reputation: 523184
It is fine as long as the parameter is used as PaStreamCallback*
(which is a pointer to a function), like
PaError Pa_OpenStream (
PaStream ** stream,
const PaStreamParameters * inputParameters,
const PaStreamParameters * outputParameters,
double sampleRate,
unsigned long framesPerBuffer,
PaStreamFlags streamFlags,
PaStreamCallback * streamCallback, // <---
void * userData
)
Upvotes: 4