//----------------------------------------------------------------------------------------- void MidiScaleChanger::getParameterDisplay(VstInt32 index, char *text) { switch(index){ case k0: case k1: case k2: case k3: case k4: case k5: case k6: case k7: case k8: case k9: case k10: case k11: if (notetable[index]==-13) strcpy(text,"--"); else if (notetable[index]<0) { sprintf(text,"%d (%s)", notetable[index], getNoteNameWithoutOctave(midiNoteWrap(root+index+notetable[index])) ); } else { sprintf(text,"+%d (%s)", notetable[index], getNoteNameWithoutOctave(midiNoteWrap(root+index+notetable[index])) ); } break; case kRoot: if (root<0) sprintf(text,"%d (%s)",root,getNoteNameWithoutOctave(midiNoteWrap(root))); else sprintf(text,"+%d (%s)",root,getNoteNameWithoutOctave(midiNoteWrap(root))); break; case kWrap: if (wrap) strcpy(text,"On"); else strcpy(text,"Off"); break; case kChannel: if (FLOAT_TO_CHANNEL016(fChannel)==0) strcpy(text,"As Input"); else sprintf(text,"%d",FLOAT_TO_CHANNEL016(fChannel)); break; case kAltChannel: if (FLOAT_TO_CHANNEL016(fAltChannel)==0) strcpy(text,"None"); else sprintf(text,"%d",FLOAT_TO_CHANNEL016(fAltChannel)); break; case kProg: getProgramNameIndexed(0,roundToInt(fProg*(kNumPrograms-1)),text); break; default : break; } }
//------------------------------------------------------------------------------------------------------- long AudioEffectX::dispatcher (long opCode, long index, long value, void *ptr, float opt) { long v = 0; switch(opCode) { // VstEvents case effProcessEvents: v = processEvents ((VstEvents*)ptr); break; // parameters and programs case effCanBeAutomated: v = canParameterBeAutomated (index) ? 1 : 0; break; case effString2Parameter: v = string2parameter (index, (char*)ptr) ? 1 : 0; break; case effGetNumProgramCategories: v = getNumCategories (); break; case effGetProgramNameIndexed: v = getProgramNameIndexed (value, index, (char*)ptr) ? 1 : 0; break; case effCopyProgram: v = copyProgram (index) ? 1 : 0; break; // connections, configuration case effConnectInput: inputConnected (index, value ? true : false); v = 1; break; case effConnectOutput: outputConnected (index, value ? true : false); v = 1; break; case effGetInputProperties: v = getInputProperties (index, (VstPinProperties*)ptr) ? 1 : 0; break; case effGetOutputProperties: v = getOutputProperties (index, (VstPinProperties*)ptr) ? 1 : 0; break; case effGetPlugCategory: v = (long)getPlugCategory (); break; // realtime case effGetCurrentPosition: v = reportCurrentPosition (); break; case effGetDestinationBuffer: v = (long)reportDestinationBuffer (); break; // offline case effOfflineNotify: v = offlineNotify ((VstAudioFile*)ptr, value, index != 0); break; case effOfflinePrepare: v = offlinePrepare ((VstOfflineTask*)ptr, value); break; case effOfflineRun: v = offlineRun ((VstOfflineTask*)ptr, value); break; // other case effSetSpeakerArrangement: v = setSpeakerArrangement ((VstSpeakerArrangement*)value, (VstSpeakerArrangement*)ptr) ? 1 : 0; break; case effProcessVarIo: v = processVariableIo ((VstVariableIo*)ptr) ? 1 : 0; break; case effSetBlockSizeAndSampleRate: setBlockSizeAndSampleRate (value, opt); v = 1; break; case effSetBypass: v = setBypass (value ? true : false) ? 1 : 0; break; case effGetEffectName: v = getEffectName ((char *)ptr) ? 1 : 0; break; case effGetErrorText: v = getErrorText ((char *)ptr) ? 1 : 0; break; case effGetVendorString: v = getVendorString ((char *)ptr) ? 1 : 0; break; case effGetProductString: v = getProductString ((char *)ptr) ? 1 : 0; break; case effGetVendorVersion: v = getVendorVersion (); break; case effVendorSpecific: v = vendorSpecific (index, value, ptr, opt); break; case effCanDo: v = canDo ((char*)ptr); break; case effGetIcon: v = (long)getIcon (); break; case effSetViewPosition: v = setViewPosition (index, value) ? 1 : 0; break; case effGetTailSize: v = getGetTailSize (); break; case effIdle: v = fxIdle (); break; case effGetParameterProperties: v = getParameterProperties (index, (VstParameterProperties*)ptr) ? 1 : 0; break; case effKeysRequired: v = (keysRequired () ? 0 : 1); // reversed to keep v1 compatibility break; case effGetVstVersion: v = getVstVersion (); break; // version 1.0 or unknown default: v = AudioEffect::dispatcher (opCode, index, value, ptr, opt); } return v; }
//------------------------------------------------------------------------------------------------------- long AudioEffectX::dispatcher (long opCode, long index, long value, void *ptr, float opt) { long v = 0; switch(opCode) { // VstEvents case effProcessEvents: v = processEvents ((VstEvents*)ptr); break; // parameters and programs case effCanBeAutomated: v = canParameterBeAutomated (index) ? 1 : 0; break; case effString2Parameter: v = string2parameter (index, (char*)ptr) ? 1 : 0; break; case effGetNumProgramCategories: v = getNumCategories (); break; case effGetProgramNameIndexed: v = getProgramNameIndexed (value, index, (char*)ptr) ? 1 : 0; break; case effCopyProgram: v = copyProgram (index) ? 1 : 0; break; // connections, configuration case effConnectInput: inputConnected (index, value ? true : false); v = 1; break; case effConnectOutput: outputConnected (index, value ? true : false); v = 1; break; case effGetInputProperties: v = getInputProperties (index, (VstPinProperties*)ptr) ? 1 : 0; break; case effGetOutputProperties: v = getOutputProperties (index, (VstPinProperties*)ptr) ? 1 : 0; break; case effGetPlugCategory: v = (long)getPlugCategory (); break; // realtime case effGetCurrentPosition: v = reportCurrentPosition (); break; case effGetDestinationBuffer: v = (long)reportDestinationBuffer (); break; // offline case effOfflineNotify: v = offlineNotify ((VstAudioFile*)ptr, value, index != 0); break; case effOfflinePrepare: v = offlinePrepare ((VstOfflineTask*)ptr, value); break; case effOfflineRun: v = offlineRun ((VstOfflineTask*)ptr, value); break; // other case effSetSpeakerArrangement: v = setSpeakerArrangement ((VstSpeakerArrangement*)value, (VstSpeakerArrangement*)ptr) ? 1 : 0; break; case effProcessVarIo: v = processVariableIo ((VstVariableIo*)ptr) ? 1 : 0; break; case effSetBlockSizeAndSampleRate: setBlockSizeAndSampleRate (value, opt); v = 1; break; case effSetBypass: v = setBypass (value ? true : false) ? 1 : 0; break; case effGetEffectName: v = getEffectName ((char *)ptr) ? 1 : 0; break; case effGetErrorText: v = getErrorText ((char *)ptr) ? 1 : 0; break; case effGetVendorString: v = getVendorString ((char *)ptr) ? 1 : 0; break; case effGetProductString: v = getProductString ((char *)ptr) ? 1 : 0; break; case effGetVendorVersion: v = getVendorVersion (); break; case effVendorSpecific: v = vendorSpecific (index, value, ptr, opt); break; case effCanDo: v = canDo ((char*)ptr); break; case effGetIcon: v = (long)getIcon (); break; case effSetViewPosition: v = setViewPosition (index, value) ? 1 : 0; break; case effGetTailSize: v = getGetTailSize (); break; case effIdle: v = fxIdle (); break; case effGetParameterProperties: v = getParameterProperties (index, (VstParameterProperties*)ptr) ? 1 : 0; break; case effKeysRequired: v = (keysRequired () ? 0 : 1); // reversed to keep v1 compatibility break; case effGetVstVersion: v = getVstVersion (); break; #if VST_2_1_EXTENSIONS case effEditKeyDown: if (editor) { VstKeyCode keyCode = {index, (unsigned char)value, (unsigned char)opt}; v = editor->onKeyDown (keyCode); } break; case effEditKeyUp: if (editor) { VstKeyCode keyCode = {index, (unsigned char)value, (unsigned char)opt}; v = editor->onKeyUp (keyCode); } break; case effSetEditKnobMode: if (editor) v = editor->setKnobMode (value); break; case effGetMidiProgramName: v = getMidiProgramName (index, (MidiProgramName*)ptr); break; case effGetCurrentMidiProgram: v = getCurrentMidiProgram (index, (MidiProgramName*)ptr); break; case effGetMidiProgramCategory: v = getMidiProgramCategory (index, (MidiProgramCategory*)ptr); break; case effHasMidiProgramsChanged: v = hasMidiProgramsChanged (index) ? 1 : 0; break; case effGetMidiKeyName: v = getMidiKeyName (index, (MidiKeyName*)ptr) ? 1 : 0; break; case effBeginSetProgram: v = beginSetProgram () ? 1 : 0; break; case effEndSetProgram: v = endSetProgram () ? 1 : 0; break; #endif // VST_2_1_EXTENSIONS #if VST_2_3_EXTENSIONS case effGetSpeakerArrangement: v = getSpeakerArrangement ((VstSpeakerArrangement**)value, (VstSpeakerArrangement**)ptr) ? 1 : 0; break; case effSetTotalSampleToProcess: v = setTotalSampleToProcess (value); break; case effShellGetNextPlugin: v = getNextShellPlugin ((char*)ptr); break; case effStartProcess: v = startProcess (); break; case effStopProcess: v = stopProcess (); break; case effSetPanLaw: v = setPanLaw (value, opt) ? 1 : 0; break; case effBeginLoadBank: v = beginLoadBank ((VstPatchChunkInfo*)ptr); break; case effBeginLoadProgram: v = beginLoadProgram ((VstPatchChunkInfo*)ptr); break; #endif // VST_2_3_EXTENSIONS // version 1.0 or unknown default: v = AudioEffect::dispatcher (opCode, index, value, ptr, opt); } return v; }
//----------------------------------------------------------------------------------------- void MidiForceToKey::getParameterDisplay(VstInt32 index, char *text){ switch(index){ case k0: if (n0>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k1: if (n1>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k2: if (n2>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k3: if (n3>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k4: if (n4>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k5: if (n5>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k6: if (n6>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k7: if (n7>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k8: if (n8>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k9: if (n9>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k10: if (n10>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case k11: if (n11>=0.5f) strcpy (text, "on"); else strcpy (text, "off"); break; case kMode: if (mode==off) strcpy(text, "Off"); else if (mode==nearest) strcpy(text, "Nearest"); else if (mode==alwaysup) strcpy(text, "Always Up"); else if (mode==alwaysdown) strcpy(text, "Always Down"); else if (mode==block) strcpy(text, "Block"); break; case kTranspose: sprintf(text,"%d",roundToInt(fTranspose*100)-50); break; case kChannel: if (FLOAT_TO_CHANNEL016(fChannel)==0) strcpy(text,"None"); else sprintf(text,"%d",FLOAT_TO_CHANNEL016(fChannel)); break; case kRoot: strcpy(text,getNoteName(FLOAT_TO_MIDI(fRoot),bottomOctave)); break; case kNChannel: if (FLOAT_TO_CHANNEL016(fNChannel)==0) strcpy(text,"None"); else sprintf(text,"%d",FLOAT_TO_CHANNEL016(fNChannel)); break; case kNChMode: if (fNChMode>=0.5f) strcpy (text, "Toggle"); else strcpy (text, "Momentary"); break; case kUsePC: if (fUsePC>=0.5f) strcpy (text, "Yes"); else strcpy (text, "No"); break; case kProg: getProgramNameIndexed(0,roundToInt(fProg*(kNumPrograms-1)),text); break; default : break; } }