Support for plugin Programs

Hi , I started to use Juce a couple of weeks ago and I have successfully
created the demo plugin + some custom gui sliders.
I have a question.
Does the framework support user programs handled by the host interface?
From the demo plugin we have the following functions:

int JUCE_CALLTYPE getNumPrograms() { return 0; }
int JUCE_CALLTYPE getCurrentProgram() { return 0; }
void JUCE_CALLTYPE setCurrentProgram (int index) { }
const String JUCE_CALLTYPE getProgramName (int index) { return String::empty; }
void JUCE_CALLTYPE changeProgramName (int index, const String& newName) { }

I tried to change the getNumPrograms() function to return a not zero number but the host always says that there are 0 (zero) programs.

I have also noticed that the VST wrapper sets for programs are chunks = true.

For my test I created a PC VST plugin but I plan to port to Mac VST and AU.

Please advise

The code’s all in there to handle programs, though I don’t think I tested it with the demo plugin.

If you have a look in juce_VSTWrapper.cpp you can see all the stuff to pass the programs back to the VST, so don’t know what could be going wrong. Try stepping through it in the debugger and see what’s actually happening…

Hi Jules,
Thanks for the reply.
I have changed the getProgramName function to return values and now
the host recognises the number of programs.

I also have a program related question.

I’ve set up my own preset menu inside the plugin as well as specific import/export of presets/banks as XML files as an unified alternative to fxb/fxp/aupreset…

however I have no way of notifying hosts of program name changes when I change it from the UI or when I load it from file.

IIRC you can call updateDisplay() in VST, but I have no idea for RTAS and AU. But if it’s also possible in other plugin format, it would be great to have it abstracted inside the juce audio plugin framework.

Ok, I’ll look into that. Not sure if updateDisplay is the right function, but I’ll have a look through the docs.

I’ve found, in VST one need to use the opcode audioMasterUpdateDisplay

jules, mdsp, would be great indeed to have this in a future version.

not urgent though - can manage by customizing vstwrapper…