Hi everyone, I have been thinking a lot about plugins lately - well, actually for the last two years or so. I think we need plugins.
I see the following reasons for a (simple) plugin-infrastructure in Rawstudio: 1. We keep getting requests for exotic and specific ideas that doesn't belong in the Rawstudio core, but many are very valid feature requests. 2. We need to do something to limit interdependencies inside Rawstudio. We're not far from spaghetti-code. 3. 3rd party developers could contribute easier. 4. We need an easy path from idea to implementation, as of now it's a long and hard walk to implement even a simple filter. 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. 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 think a roadmap could be something like: - Move as much as possible of Rawstudio into librawstudio. - Implement some sort of plugin manager. - Move basic features from Rawstudio into seperate in-tree plugins. - Party with beer! I would really like some feedback on this. - Is this totally insane? - What do packagers and distributions have to say about this? - What is the best way to implement this GModule? dlopen()? - Is this even needed? /abrander _______________________________________________ Rawstudio-dev mailing list [email protected] http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-dev
