Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

User Image
xasx
50 discussion posts
Hi Jon,

recently the idea came into my mind that it would be nice to support a couple of specific image websites. An easy way to accomplish this is to provide a specific interface that allows images to be plugged in DF.

A very easy and tiny version would be (please remember that I don't know the DF code): :lol:

Code

Image getNextRandomImage(String query);


The query parameter could be easily changed to some Dictionary or specific Query type:

Code

List getSupportedCriteria();
Image getNextRendomImage(Query query);


where Query holds a dictionary mapping Criterions to user-set values, e.g

Code

IDictionary
.

A Criterion would be something like: Group, User/Person, Keyword, Category, Search text (name and value type, e.g. String, Int32, Path, Double, some Enum-type etc.). For each of these Criterions the main interface can then display a form with the corresponding fields.

Sorry for being that explicit. I don't want to be arrogant in any way, I just think that SW developers sometimes can talk better in concrete implementation design language.

Just an idea of a wacky mind. :blank: What do you think about it?
Jan 6, 2011  • #1
Jon Tackabury (BFS)'s profile on WallpaperFusion.com
I love the idea, and it's something I've wanted to do for quite some time. It's super-easy to let people code their own functions to download images, but the real hurdle is the UI. For example, Flickr and Vlad are so different from each other and reference images completely differently the UI for these 2 providers is 90% custom for each. There is very little code-sharing behind the scenes, which makes adding new providers are plugins quite difficult. I'll give it some more thought, as the 3.2.2 release is planned to be a wallpaper-heavy release. Stay tuned. :)
Jan 10, 2011  • #2
User Image
LockeCJ
3 discussion posts
Just to throw in my 2 cents, I think this is a fantastic idea, and I'd love to see it implemented.

As a further refinement, why not make the UI part of the plug-in architecture? That way, we wouldn't be limited in how images are selected to some "general" set of parameters. Each plug-in would have its own set of configuration settings, and UI to set them. All of the existing image providers could be reworked as plug-ins:

    Existing Providers
  • 1 Image
  • Local Images (could possibly be combined with above)
  • Flikr
  • Vlad Studio


Basically, anything. My point is that it will be difficult to create a one size fits all API if you want it to be flexible, so why not make it as simple as possible?

How about an interface (IImageProvider?) that implements one method: GetImage(ImageProviderSettings settings) and a base settings class (ImageProviderSettings) that is serialized and persisted by Display Fusion. This settings class can be extended by each plugin (FlikrImageProviderSettings, VladStudioImageProviderSettings, CosbyImageProviderSettings, etc.) Also define a base class or interface that defines the UI. This should be a property on the plug-in interface, so that when Display Fusion enumerates all of the plug-ins, it has an easy way to load the UI for that provider.

I'm just thinking things through a little, trying to jump start the discussion if you will.

Thanks for reading.
Mar 27, 2012  • #3
Keith Lammers (BFS)'s profile on WallpaperFusion.com
In the latest 3.5 Betas it actually is a plugin system, but we're keeping it internal for now so that we can make sure it's fully tested. As long as all goes well, we plan to make it public for the version after next :)
Mar 29, 2012  • #4
User Image
xasx
50 discussion posts
Music to my ears :)
Mar 29, 2012  • #5
User Image
LockeCJ
3 discussion posts
Sounds great. Does the "version after next" mean 3.6?
Mar 29, 2012  • #6
Keith Lammers (BFS)'s profile on WallpaperFusion.com
We're changing the version number of the next release to 4.0, so the public API will hopefully be included in either 4.0.1 or 4.1.

Thanks!
Mar 30, 2012  • #7
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)