[Kde-imaging] Time to break libkipi? (and interesting idea for sync plugin... input wanted)

Colin Guthrie kde at colin.guthr.ie
Thu Jan 25 22:14:54 CET 2007


Hi,

Glad the 0.1.3 release is out and impressed with Seb's timing :p

Now I think it's time to introduce this concept again!!!

The way I see things is to create a libkipi API that achieves two things
(this is my personal requirements I'm sure other people have other ideas):
 1) Remove (or make optional) all interfaces that rely on file paths.
 2) Allow the host application to store additional info about
collections/images.

For 1) I see this as important for working with e.g. "dynamic"
collections like the Tags views in digikam or a saved search etc.

For 2) this is to provide e.g. key/value storage system for collections
and images such that it could be used e.g. to sync a folder to a remote
location (be it a folder or PHP Gallery or Flickr etc.)

Fine, both of these are (conceptually at least) quite simple.


Now here is a small idea I've been fiddling with over the last couple of
days and would like some feedback (it is related to the above so bear
with me!)

I was trying to think of how to implement the basic requirements for a
"sink" for the sync plugin (here sink is so named as per the source/sink
terminology where the host application is the source).

I realised I would need a way to create an album, add images to it etc.
For viewing purposes it would need to return a list of albums and images
and grab thumbnails etc.

In the end, I realised that the API to access a "sink" was startlingly
similar to to the libkipi interface in general!!

With some careful thought and a bit of fore sight, the modifications to
libkipi coming up and the implementation of the "sink" base class could
be made to be compatible.

What would this achieve? Well, in principle, this would allow you to
write a bridge of some sort that would allow any "sink" to act like a
kipi host application and thus use any kipi plugin with that host!! This
would allow e.g. calendars to be created with your PHP Gallery sink, or
a slideshow to run with you Flickr account..... Some quite interesting
things as I'm sure you can imagine. I would not expect everything to
work (e.g. batch modifications etc. may not work (or for that matter be
sensible anyway))

What do people think about this idea. I quite like it personally, but
then I'm biased. I may also have missed some fundamentally important
issues at play here!!


As a note to Seb in particular, can you image being able to wrap up
libgpod in a libkipi style wrapper (e.g. implement the "iPod" as a sink)?

Other sinks i would like to implement (or have someone implement!) are:
 * PHP Gallery 1/2
 * Flickr (maybe, not sure about the login procedure)
 * PicasaWeb
 * Other web based galleries
 * Generic KURL location
 * iPod

Feedback is most welcome.

Col

-- 

+------------------------+
|     Colin Guthrie      |
+------------------------+
| kde(at)colin.guthr.ie  |
| http://colin.guthr.ie/ |
+------------------------+


More information about the Kde-imaging mailing list