On Fri, 2005-04-29 at 16:30 +0300, Juhana Sadeharju wrote: > >From: Simon Jenkins <[EMAIL PROTECTED]> > > > >2. Is C++ OK? (You'd end up with a Patch class that could be > >over-ridden to dump itself in whatever format was required). > > C++ is ok, and would make sense because the nmedit code is C++. > > For each module, the nmedit has a parameter etc. descriptions. > If I understand correctly, we don't need them because we write > our modules as an exact clones (inputs, outputs, parameters at > least). But if the nmedit code already loads all the information, > please keep it that way. The info could be useful. >
I was assuming you wanted something light-weight that just loads in a patch and let you inspect everything in it? So I've modified the nmedit lex & yacc files to parse a patch into a very simple CPatch class (ie not using the nmedit classes at all) which you can interrogate. Here's what I've got so far. It doesn't parse the user-defined module names yet, nor the text notes that can be attached to a patch, but everything else is pretty much done. http://www.sjenkins.pwp.blueyonder.co.uk/audiodev/nmp_0_0_1.tar.gz Unpack it, then... >cd nmp_0_0_1 >make >./nmp <patchname> and it prints out a description of the patch. The patch is parsed into a CPatch class, then DescribePatch() interrogates the patch and describes whats there. To use this in a patch converter, you could either write a ConvertPatch() function to interrogate CPatch and generate the converted format, or you could modify or derive a class from CPatch which generates the converted file "on-the-fly" as the parser finds the blocks in the file. I can't do any more on this for a week or so, hence the incomplete release now. Enjoy. Simon
