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

effGetMidiProgramCategory / getMidiProgramCategory()


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 64:
64. effGetMidiProgramCategory   >= VST2.1   @see AudioEffectX::getMidiProgramCategory()
e[index]: MIDI channel
e[ptr]: points to MidiProgramName* structure initialized by host.
x[ptr]: struct will be filled with information for 'thisCategoryIndex'.
x[return]: number of used categoryIndexes. if 0 is returned, no MidiProgramCategories supported.

C++ method:
 VstInt32 AudioEffectX::getMidiProgramCategory(VstInt32 channel, MidiProgramCategory* category)

Delphi method:
 function AudioEffectX.getMidiProgramCategory(channel: VstInt32; category: PMidiProgramCategory): VstInt32;
MidiProgramName structure:
 struct MidiProgramName 
 {
  VstInt32 thisProgramIndex;    // 0 or greater: fill struct for this program index
  char name[kVstMaxNameLen];    // program name
  char midiProgram;             // -1:off, 0-127
  char midiBankMsb;             // -1:off, 0-127
  char midiBankLsb;             // -1:off, 0-127
  char reserved;                // zero
  VstInt32 parentCategoryIndex; // -1:no parent category
  VstInt32 flags;               // omni etc. @see VstMidiProgramNameFlags
 };

VstMidiProgramNameFlags constant:
 enum VstMidiProgramNameFlags
 {
  MidiIsOmni = 1  // default is multi. for omni mode, channel 0 is used for inquiries and program changes
 };

FIRST   -   PREV   -   NEXT   -   TOP