Example #1
0
//-----------------------------------------------------------------------------------------
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;
   }
}
Example #2
0
//-------------------------------------------------------------------------------------------------------
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;
}
Example #3
0
//-------------------------------------------------------------------------------------------------------
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;
}
Example #4
0
//-----------------------------------------------------------------------------------------
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;
	}
}