VST2.4 specs 
HOME   |   Software       VST2.4 specs :: FIRST   -   PREV   -   NEXT

effOfflinePrepare / offlinePrepare()


C++: VstIntPtr function dispatcher(AEffect* e, VstInt32 opcode, VstInt32 index, VstIntPtr value, void* ptr, float opt);
Delphi: function dispatcher(e: PAEffect; opcode, index: VstInt32; value: VstIntPtr; ptr: pointer; opt: Single): VstIntPtr; cdecl;
always returns 0, unless otherwise defined.
all string-pointers points to zero terminated strings.
e[ ]: = plugin receives as entry parameter
x[ ]: = plugin returns to host

dispatcher() function using opcode 39:
39. effOfflinePrepare   >= VST2.0   (offline)   @see AudioEffectX::offlinePrepare()
e[value]: count
e[ptr]: pointer to VstOfflineTask array
x[return]: 1 = successful

C++ method:
 bool AudioEffectX::offlinePrepare(VstOfflineTask* offline, VstInt32 count)

Delphi method:
 function AudioEffectX.offlinePrepare(offline: PVstOfflineTask; count: VstInt32): boolean;

VstOfflineTask structure:
struct VstOfflineTask
 {
  char processName[96];            // set by plug-in
  // audio access
  double readPosition;             // set by plug-in/Host
  double writePosition;            // set by plug-in/Host
  VstInt32 readCount;              // set by plug-in/Host
  VstInt32 writeCount;             // set by plug-in
  VstInt32 sizeInputBuffer;        // set by Host
  VstInt32 sizeOutputBuffer;       // set by Host
  void* inputBuffer;               // set by Host
  void* outputBuffer;              // set by Host
  double positionToProcessFrom;    // set by Host
  double numFramesToProcess;       // set by Host
  double maxFramesToWrite;         // set by plug-in
  // other data access
  void* extraBuffer;               // set by plug-in
  VstInt32 value;                  // set by Host or plug-in
  VstInt32 index;                  // set by Host or plug-in
  // file attributes
  double numFramesInSourceFile;    // set by Host
  double sourceSampleRate;         // set by Host or plug-in
  double destinationSampleRate;    // set by Host or plug-in
  VstInt32 numSourceChannels;      // set by Host or plug-in
  VstInt32 numDestinationChannels; // set by Host or plug-in
  VstInt32 sourceFormat;           // set by Host
  VstInt32 destinationFormat;      // set by plug-in
  char outputText[512];            // set by plug-in or Host
  // progress notification
  double progress;                 // set by plug-in
  VstInt32 progressMode;           // Reserved for future use
  char progressText[100];          // set by plug-in
  VstInt32 flags;                  // set by Host and plug-in, @see #VstOfflineTaskFlags
  VstInt32 returnValue;            // Reserved for future use
  void* hostOwned;                 // set by Host
  void* plugOwned;                 // set by plug-in
  char future[1024];               // Reserved for future use
 };

VstOfflineTaskFlags constants:
enum VstOfflineTaskFlags
 {
  kVstOfflineUnvalidParameter = 1 << 0,   // set by Host
  kVstOfflineNewFile          = 1 << 1,   // set by Host
  kVstOfflinePlugError        = 1 << 10,  // set by plug-in
  kVstOfflineInterleavedAudio = 1 << 11,  // set by plug-in
  kVstOfflineTempOutputFile   = 1 << 12,  // set by plug-in
  kVstOfflineFloatOutputFile  = 1 << 13,  // set by plug-in
  kVstOfflineRandomWrite      = 1 << 14,  // set by plug-in
  kVstOfflineStretch          = 1 << 15,  // set by plug-in
  kVstOfflineNoThread         = 1 << 16   // set by plug-in
 };

FIRST   -   PREV   -   NEXT   -   TOP