Hi, Since I've never submitted a single line of code to rawstudio, I'm getting a feeling of discussing the colour of the bikeshed here, but what the heck, here are my thoughts on the subject.
On Sun, Sep 21, 2008 at 06:41:57PM +0200, Anders Brander wrote: > I have formulated three requirements for plugins: > A. Plugins should be buildable outside the Rawstudio tree. > B. Plugins should be loadable at runtime. > C. Plugins should consist of a single .so-file as far as > Rawstudio knows. Considering the rather broken state of many third-party plugins (in any program), I think some measures should be taken to shield rawstudio from the plugins in any way possible. Specifically, I suggest placing at least the main operation of plugins in separate processes, so that an error in the plugin will not bring rawstudio down. Of course it doesn't matter that much whether the fork/exec loads an .so file or executes a program directly. It may well be that you've already thought this through, I'm just commenting on it because you talk about .so files. > I see at least four types of plugins: INPUT plugins: Raw-loader, > jpeg-loader, live-capture, ... FILTER plugins: > Exposure/saturation/etc, sharpen, ... OUTPUT plugins: Savers, > previewers, printing, ... TOOL plugins: Geo-tagging, red-eye-removal, > special effects, ... I like the way the .rawstudio/ folders let me reproduce pictures and look at the settings that were used for a specific image. There must be some way for plugins to store information there so that noise filtering or whatever the plugin does can also be repeated the next time you open the program to export the same image. > I would really like some feedback on this. > - What is the best way to implement this GModule? dlopen()? CORBA? (Directly or using bonobo.) At least, that would shield rawstudio from bad plugins, and would also add network transparency. And the idl file would be a good description of the plugin interface. What sort of GUI operations do you want to expose to plugins? > - Is this even needed? In the long run it may be needed, so I guess this is the time to start thinking about it. No need to rush it, though. -- Einar Ryeng _______________________________________________ Rawstudio-dev mailing list [email protected] http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-dev
