OK so I went ahead and made a version that is 'batchable'. I had to create
a DontPromptUser() that sets up the dialog in the same way as PromptUser() so
that it can do the calculations, but never does a ShowModal(). I'm not sure
if that is acceptable but it works here. I am also not sure that I'm doing
the transferring of parameters like curveName and linCheck in an efficient
manner, but again it works here. Anybody care to review it?
In a message dated 20/04/2007 01:17:59 GMT Daylight Time, MartynShaw@...
Having the EQ in a chain would seem like a pretty important thing to be able
to do. However...
I remember now one of the reasons I gave up looking at chains, having come
across the problem again. I cannot see a reasonable (=easy!) way forward so
I'm asking for help. My OOP and C++ are not up to this, I fear.
'Other' effects have some code dedicated to applying the effect and some
other code dedicated to a dialog to get the parameters to use.
Equalization complicates matters. It has
EffectEqualization which does the filtering, using 2 arrays of filter
parameters called mFilterFuncR and mFilterFuncI.
EqualizationDialog which does all the normal dialog stuff but also
calculates mFilterFuncR and mFilterFuncI from the parameters entered in the dialog.
It currently works like this for several reasons:
1 I think it was like that before I got here (but maybe not).
2 It uses those things to calculate the green 'what you will get' line (you
have to press a button for that in Audition!).
3 I didn't appreciate the separation of 'dialog' and 'processing' that is
required for chains to work. But I do now.
4 Maybe other good reasons I don't understand
EqualizationPanel which may be irrelevant to this discussion, but I'm not
So even if I could get TransferParameters to pass the parameters back and
forth in a suitable manner, Equalization can't work in batch mode as
EqualizationDialog is needed to do some of the donkey work.
Do I really need to re-write a lot of EqualizationDialog and move the
calculation stuff to EffectEqualization or have I missed something? I'm not sure I
have the time and mental effort to re-write that much code, and test it, at
the moment but if that's what needs doing...