[Clam-devel] COMMIT 11822 - Re: Faust support - plugins dynamic reloading
Natanael Olaiz
nolaiz at gmail.com
Mon Aug 4 01:34:24 PDT 2008
Commit 11822:
* Factory:
- Registry::CommonReplaceCreator delete the old creator, if
exists.
- It need to be called twice for now: the first with a NULL
creator to erase the previously, then make the new creator instance
and call again with the new pointer.
* LadspaWrapper: Fix: the destructor now calls a dlclose() after
the dlopen on LoadLibraryFunction instantiation
* LadspaWrapperCreator: Added (comented) debug messages (to help
further development on ladspa plugins)
* RunTimeFaustLibraryLoader:
- comented loading debug messages
- adapted the twice calls to factory.AddCreatorReplace (see
above CommonReplaceCreator comment). TODO: refactor this
- added a call to dlclose() after the dlopen() used to
explore the plugin library (called on
RunTimeLibraryLoader::FullyLoadLibrary)
I left some debug messages (commented) to help further improvements on
the ladspa libraries management.
David: I did it just on the Faust support, but it could be easily
applied on the general ladspa support. Just a comment: the
RunTimeLibraryLoader library loader doesn't use dlopen on windows, so if
in the future some ladspa support exists under windows, the dlclose() on
RunTimeFaustLibraryLoader will doesn't work. Anyway, all the others
ladspa implementations uses the "dlfcn.h" methods...
Regards,
Natanael.
El 08/04/2008 02:12 AM, Natanael Olaiz escribió:
> Finally!!
>
> Here is a patch for the reload issue. Without cleaning up yet, but it
> works :-)
> Plus it have yet the debug messages, if you want to see what happens.
>
> The only problem is that if you have a ladspa plugin on the actual
> canvas network, you have to delete it and put it again to actualize.
> (I'll put an automatic deleter/loader)... But it works! (I'm happy :))
>
>
> Regards,
> Natanael.
> PS: I used RTLD_NOW instead RTLD_LAZY on dlopen(). I think the
> original LAZY have to work too, I'll check it now.
>
> El 08/02/2008 06:28 AM, Natanael Olaiz escribió:
>> Hi.
>>
>> Last night David made me realize that the used reload faust plugins
>> just recreate the factory with new names making new creators which
>> loads of the same dynamic plugin (and never delete the previous
>> instances). I'm working on that, but I just want to advert that to
>> you all. The release should not have that bug, so I expect to have it
>> corrected ASAP.
>>
>>
>> Regards,
>> Natanael
>>
>
More information about the clam-devel
mailing list