El 08/04/2008 05:59 AM, David García Garzón escribió:
El Monday 04 August 2008 10:34:24 Natanael Olaiz va escriure:
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.

LAZY is needed there. It checks for a given symbol that is only present on Ladspa plugins to avoid loading a dynamic lib that is not a ladspa.

OK, I left the NOW as commented code, but returned the original LAZY on the commit.


_______________________________________________
Clam-devel mailing list
Clam-devel@llistes.projectes.lafarga.org
https://llistes.projectes.lafarga.org/cgi-bin/mailman/listinfo/clam-devel

Reply via email to