Actions are how a host communicates with a plug-in. They are in effect generic function calls. Actions are issued via a plug-in's
mainEntry
function pointer found in its
OfxPlugin
struct. The function signature for the main entry point is...
#include "ofxCore.h" typedef OfxStatus (OfxPluginEntryPoint)(const char *action, const void *handle, OfxPropertySetHandle inArgs, OfxPropertySetHandle outArgs);
Where,
action
is a C string indicating the action to be taken,
handle
is a handle to an object appropriate to that action, cast to
void *
,
inArgs
are a set of properties used as arguments to that action,
outArgs
are a set of properties the plug-in should modify during the action.
The
OfxStatus
value returned is dependant upon the action being called, however the value
kOfxStatReplyDefault
is returned if the plug-in does not trap the action.
The exact set of actions passed to a plug-in's entry point are dependent upon the API the plug-in implements. However, there exists a core set of generic actions that most APIs would use.