| Hi Victor,
If I understand correctly, I believe that global variables allocated
by the csoundCreateGlobalVariable is automatically cleared at the end
of a run, with the following code in csoundReset:
    csoundDeleteAllConfigurationVariables(csound);
    csoundDeleteAllGlobalVariables(csound);
But as Istvan and you have pointed out, the two features are different.  
So how do the following sound to everyone: 
void csoundAuxAlloc(ENVIRON * csound, long nbytes, AUXCH * auxchp) 
FUNC * csoundFtFind(ENVIRON * csound, MYFLT * arg)
MYFLT * csoundGetTable(ENVIRON * csound, int tableNum)
?
steven
On Sun, 27 Mar 2005 22:30:40 +0100, Victor Lazzarini
 wrote:
> I think that certainly it is better to be able to obtain
> a pointer to a table rather than having to call
> an API function to get a value each time.
> 
> The memory allocation function is there alright, but
> you'd have to be able to de-allocate things, isn't it?
> So it's not the same as the auxalloc mechanism, which
> I think is one great thing that csound has.
> I think the two things are there for different jobs.
> 
> Adding ftfind() etc to the API should be a good idea.
> As it is, we can still use it, but if things are going to
> be locked away and hidden in the future (a good idea),
> then these facilities have to be there.
> 
> With all these things, opcodes are starting to look
> quite different now, between cs4.23 and 5.
> 
> Victor
> 
> PS.: I hadn't looked at the csound API for a couple
> of months now, it is looking more and more impressive!
> Good job, lads!
> 
> >
> > These still not include auxalloc which is frequently used
> > for things like delay lines etc. The csound5 API does
> > include auxalloc (actually, with the name auxalloc_, but I
> > assume these ugly underscored names are only for
> > compatibility with the - even uglier - macros, and thus
> > may eventually be replaced). It is interesting that the
> > table functions do not include one that returns a MYFLT*
> > pointer to the table data.
> >
> > Steven Yi wrote:
> >
> > > Plugins can probably use these functions for those
> > > operations:
> > > /**
> > >    * Returns the length of a function table, or -1 if
> > >    the table does * not exist.
> > >    */
> > >   PUBLIC int csoundTableLength(void *csound, int table);
> > >
> > >   /**
> > >    * Returns the value of a slot in a function table.
> > >    */
> > >   PUBLIC MYFLT csoundTableGet(void *csound, int table,
> > > int index);
> > >   /**
> > >    * Sets the value of a slot in a function table.
> > >    */
> > >   PUBLIC void csoundTableSet(void *csound, int table,
> > > int index, MYFLT value);
> > > /**
> > >    * Allocate nbytes bytes of memory that can be
> > >    accessed later by calling *
> > csoundQueryGlobalVariable() with the specified name; the
> > >    space is * cleared to zero.
> > >    * Returns CSOUND_SUCCESS on success,
> CSOUND_ERROR in
> > >    case of invalid * parameters (zero nbytes, invalid or
> > >    already used name), or * CSOUND_MEMORY if there is
> > >    not enough memory. */
> > >   PUBLIC int csoundCreateGlobalVariable(void *csound,
> > >                                         const char *name
> > > , size_t nbytes);
> > >   /**
> > >    * Get pointer to space allocated with the name
> > >    "name". * Returns NULL if the specified name is not
> > >    defined. */
> > >   PUBLIC void *csoundQueryGlobalVariable(void *csound,
> > > const char *name);
> > >   /**
> > >    * This function is the same as
> > >    csoundQueryGlobalVariable(), except the * variable is
> > >    assumed to exist and no error checking is done. *
> > Faster, but may crash or return an invalid pointer if
> > >    'name' is * not defined.
> > >    */
> > >   PUBLIC void *csoundQueryGlobalVariableNoCheck(void
> > > *csound, const char *name);
> > >   /**
> > >    * Free memory allocated for "name" and remove
> "name"
> > >    from the database. * Return value is
> CSOUND_SUCCESS
> > >    on success, or CSOUND_ERROR if the name is * not
> > >    defined. */
> > >   PUBLIC int csoundDestroyGlobalVariable(void *csound,
> > const char *name);
> >
> >
> > -------------------------------------------------------
> > SF email is sponsored by - The IT Product Guide
> > Read honest & candid reviews on hundreds of IT Products
> > from real users. Discover which products truly live up to
> > the hype. Start reading now.
> > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=
> click
> > _______________________________________________
> > Csound-devel mailing list
> > Csound-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/csound-devel
> 
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |