Hmm... after more work, I think I want to just forget pushing this all into its own opcode library and will just remove ftfree and put in ftgentemp. I got a point of code where it was trying to access csound->ff and that only gets compiled in when it is building csound as a library. Anyways, so will remove what I just did and start again! =) steven On 8/3/05, Steven Yi wrote: > Hi All, > > I'm in the process of moving ftgen, ftload, ftload_k, ftsave, and > ftsave_k into an opcode plugin, but there is no mcalloc in ENVIRON. > What is the process of adding this in? > > Thanks, > steven > > > > On 8/3/05, Steven Yi wrote: > > Hi Istvan, > > > > Thanks for the information. I didn't see that hfgens was already in > > the ENVIRON struct. I committed a version of the ftfree opcode an > > hour or so ago that was in fgens.c and entry1.c. I'll work on pushing > > it and ftgens and whatever opcodes that use structs in ftgen.h out to > > an opcode plugin. > > > > I ended up making ftfree take both the number of the table to free as > > well as freeTime parameter that if equal to 0 to free at opcode init, > > and if not zero to free at deinit time. Originally, I thought the > > instrument I am translating had a temp array that was being generated > > and free()'d in the code and then later realized it wasn't being used. > > Maybe it's better to simplify and just delete at deinit anyways? > > (Maybe I'll take that option out then.) > > > > Do you think it's better to have an ftgentemp opcode where the table > > is always deleted at deinit, or better to explicitly call ftfree? Is > > there a use case where say, one instrument will generate a wavetable > > and other instruments will use it for a while, then that instrument is > > called again to generate a new ftable and free the old one? Hmm... > > maybe not, as you could always just overwrite a table assigned to a > > global var. > > > > Okay, sounds like an ftgentemp would be a good solution to all of > > this. I'll remove the ftfree opcode I put in and redo it all as an > > opcode plugin. > > > > Thanks! > > steven > > > > > > On 8/3/05, Istvan Varga wrote: > > > For freeing a table with a known number, you can just use csound->hfgens() > > > with a negative table number which will request deleting the table, and > > > this should work from plugins. Alternatively, it may make sense to write > > > a version of the ftgen opcode that automatically deletes the table at > > > note deinit. It should be possible to implement that opcode as a plugin > > > (actually, ftgen may be moved out of fgens.c as well). > > > > > > Steven Yi wrote: > > > > > > > I'm working on ftree now and am putting it in fgens.c and adding a > > > > struct to ftgen.h, and plan to add it to entry1.c. or entry2.c, > > > > wherever ftgen is at. The reason I'm doing this within csound and not > > > > as a plugin is that I haven't found any API functions which can do > > > > this. I'm using the code from hfgens: > > > > > > > > if (ff->fno > csound->maxfnum || > > > > (ftp = csound->flist[ff->fno]) == NULL) { > > > > fterror(csound, ff, Str("ftable does not exist")); > > > > return -1; > > > > } > > > > csound->flist[ff->fno] = NULL; > > > > mfree(csound, (void*) ftp); > > > > > > > > (with the ff->fno coming from *p instead) to free the table. Does > > > > this all sound alright or is there an API way to do this? (And if not, > > > > should there be?) > > > > > > > > > ------------------------------------------------------- > > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > > informative Webcasts and more! Get everything you need to get up to > > > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > > > _______________________________________________ > > > Csound-devel mailing list > > > Csound-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/csound-devel > > > > > > ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net