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

Reply via email to