Kodi Community Forum

Full Version: Common background slideshow
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

Is this possible to have full-screen slideshow in window background (that's simple), that is common for multiple windows (full windows, not dialogs)? The idea is that navigating to another window would not break slideshow sequence.
It depends on what you are trying to do. I haven't really found any sane way to do this. Obviously you can put an multiimage control in an include and then have that include on every window. But as you probably have already noticed, it gets reloaded when you change windows so will break the sequence.

If its a set number of images and you know what they are all called, then you could use a variable that sets the image based upon the System.Time infolabel.
For instance you could have a slideshow of 6 images and change them every 10 seconds
Code:
<variable name="Slideshow">
    <value condition="Integer.IsGreater(System.Time(ss),50)">slideshow-image1.jpg</value>
    <value condition="Integer.IsGreater(System.Time(ss),40)">slideshow-image2.jpg</value>
    <value condition="Integer.IsGreater(System.Time(ss),30)">slideshow-image3.jpg</value>
    <value condition="Integer.IsGreater(System.Time(ss),20)">slideshow-image4.jpg</value>
    <value condition="Integer.IsGreater(System.Time(ss),10)">slideshow-image5.jpg</value>
    <value condition="Integer.IsGreater(System.Time(ss),0)">slideshow-image6.jpg</value>
</variable>
And then in your image control
Code:
<texture background="true">$VAR[Slideshow]</texture>

It's pretty rigid though because you would need the right number of images for the interval that you wanted to make -- or a very large number of conditions that take into account minutes as well as seconds...

This is one the things that really irritates me with the skinning engine. It would make way more sense to me if the background was defined as a separate layer that was constant and then have the window content overlayed on top of it (and just use a variable to change what the background is set to).

I actually think the best solution would be to write a small python script that runs as a service on startup and that has never ending while loop that sets a window property with the imagepath at the specified interval. Then just reference that window property in the image control
<texture>$INFO[Window(Home).Property(MyScript.ImagePath)]</texture>