[Clam-devel] Re: COMMIT 11822 - Re: Faust support - plugins dynamic reloading

Natanael Olaiz nolaiz at gmail.com
Mon Aug 4 01:45:35 PDT 2008


BTW, a practical animated demostration -/grotesca/ :) -:
http://dadaisonline.blogspot.com/2008/08/modifying-faust-module-within-clam.html
http://www.clam.iua.upf.edu/wikis/clam/index.php/Image:Modifying_a_faust_module_within_NE.gif

El 08/04/2008 05:34 AM, Natanael Olaiz escribió:
> 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