XPLMCameraControl_f

typedef int (* XPLMCameraControl_f)(
                         XPLMCameraPosition_t * outCameraPosition,    /* Can be NULL */
                         int                  inIsLosingControl,
                         void *               inRefcon);

You use an XPLMCameraControl function to provide continuous control over the camera. You are passed a structure in which to put the new camera position; modify it and return 1 to reposition the camera. Return 0 to surrender control of the camera; camera control will be handled by X-Plane on this draw loop. The contents of the structure as you are called are undefined.

If X-Plane is taking camera control away from you, this function will be called with inIsLosingControl set to 1 and ioCameraPosition NULL.