setCurrentProgram, parameter automation and begin/endParameterChangeGesture

I got a bug report from a user reporting that when he does the following, his host doesn’t record the changed parameters:

  • enable automation
  • select a preset

Q1:
In my plugin, setParameter is being called (for all my plugin’s parameters) in the setCurrentProgram method (when a preset is selected), so I guess I should be calling setParameterNotifyingHost instead from there, right?

Q2:
And related: should beginParameterChangeGesture / endParameterChangeGesture be called in this case? I thought perhaps the settings of all parameters could be grouped between a begin/endParameterChangeGesture, so a host could undo this in one go (if that’s what this begin/end method is for, that is) but that method takes a parameter index, so it’s not like you can group multiple parameter changes with that.

Any advice?
(I know I should change to the new parameter value tree things, but that will be for in a few months, as the changes to do that will be substantial for this older plugin…)

Koen