/* * This is an API for the transition/filter/effect plugins for the Sonique plugin * rappa. Plugins for a plugin. What can I tell you. */ #ifndef __RAPPAPI_H__ #define __RAPPAPI_H__ #define MAX_RAPPA_INPUTS 8 typedef struct _rappa_frame_info { int width; int height; int pitch; unsigned long *output; unsigned long *inputs[MAX_RAPPA_INPUTS]; } RappaFrameInfo; typedef struct _rappa_plugin_info { int Version; // Version number. // The current version is 1 (which adds support for display/name) int nsteps; // Number of steps in this effect/transition int ninputs; // Number of input plugins. This would usually be // 1 for a filter and 2 for a transition. Anything // else can be used, but remember the more, the slower. // Can't be more than MAX_RAPPA_INPUTS int endinput; // When complete, which of the inputs will be the // running vis. It is 0 based. void (*Effect)(int stepno, RappaFrameInfo *rfip, VisData *pVD); char *display; // Display name of the plugin (Version 1) char *name; // Config/other name of the plugin (Version 1) } RappaPluginInfo; #ifndef DLLEXPORT #define DLLEXPORT __declspec( dllexport ) #endif extern "C" DLLEXPORT RappaPluginInfo *QueryRappaPlugin(void); #endif