Kodi Community Forum

Full Version: Picture Slideshow Screensaver
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Quote:thanx.

the next version of the screensaver will support .nef files.

That's great thanks. The Nikon cameras can save in either .RAW or .NEF I believe they are the same format.

Cheers
Spart
(2014-08-27, 20:41)ronie Wrote: [ -> ]disk is offline, for instance, I get a slideshow of my media (or is it just of my movies, don't know).
does it make a difference if you set the samba timeout to, let's say, 20 seconds?
http://wiki.xbmc.org/index.php?title=Adv...3Csamba.3E

I've added it, I'll check if it helps. It doesn't crash all the time, so I'll come back to you with a positive result (I hope).

Edit:

alas .. Doesn't seem to make a difference.
I'm trying to skin the screensaver for my favorite skin (Eminence). It's my very first trial and I was able to adapt the positions, fonts..., but I'm not able to adapt the italic and bold style for the EXIF data as they are coded inside the script. Wouldn't it make sense to put this into the skin instead ? In addition the tags have some animation which I really coudn't figure out where this is coded ?


Any help appriciated

Code:
<?xml version="1.0" encoding="UTF-8"?>
<window>
        <zorder>5</zorder>
        <controls>
                <control type="group">
                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Splash),hide)">
                                <effect type="fade" start="0" end="100" time="500"/>
                        </animation>
                        <control type="group">
                                <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Fade1),1)">
                                        <effect type="fade" start="100" end="0" time="1000"/>
                                </animation>
                                <control type="largeimage" id="1">
                                        <posx>0</posx>
                                        <posy>0</posy>
                                        <width>1920</width>
                                        <height>1080</height>
                                        <aspectratio>keep</aspectratio>
                                        <fadetime>0</fadetime>
                                        <colordiffuse>$INFO[Window.Property(SlideView.Dim)]</colordiffuse>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide1),0)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="1920,0" end="0,0" time="500"/>
                                        </animation>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide1),1)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="0,0" end="-1920,0" time="500"/>
                                        </animation>
                                </control>
                        </control>
                        <control type="group">
                                <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Fade2),1)">
                                        <effect type="fade" start="100" end="0" time="1000"/>
                                </animation>
                                <control type="largeimage" id="2">
                                        <posx>0</posx>
                                        <posy>0</posy>
                                        <width>1920</width>
                                        <height>1080</height>
                                        <aspectratio>keep</aspectratio>
                                        <fadetime>0</fadetime>
                                        <colordiffuse>$INFO[Window.Property(SlideView.Dim)]</colordiffuse>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide2),0)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="1920,0" end="0,0" time="500"/>
                                        </animation>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide2),1)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="0,0" end="-1920,0" time="500"/>
                                        </animation>
                                </control>
                        </control>
                        <control type="group">
                                <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Fade1),1)">
                                        <effect type="fade" start="100" end="0" time="1000"/>
                                </animation>
                                <control type="largeimage" id="3">
                                        <posx>0</posx>
                                        <posy>0</posy>
                                        <width>1920</width>
                                        <height>1080</height>
                                        <aspectratio>scale</aspectratio>
                                        <fadetime>0</fadetime>
                                        <colordiffuse>$INFO[Window.Property(SlideView.Dim)]</colordiffuse>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide1),0)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="1920,0" end="0,0" time="500"/>
                                        </animation>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide1),1)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="0,0" end="-1920,0" time="500"/>
                                        </animation>
                                </control>
                        </control>
                        <control type="group">
                                <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Fade2),1)">
                                        <effect type="fade" start="100" end="0" time="1000"/>
                                </animation>
                                <control type="largeimage" id="4">
                                        <posx>0</posx>
                                        <posy>0</posy>
                                        <width>1920</width>
                                        <height>1080</height>
                                        <aspectratio>scale</aspectratio>
                                       <fadetime>0</fadetime>
                                        <colordiffuse>$INFO[Window.Property(SlideView.Dim)]</colordiffuse>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide2),0)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="1920,0" end="0,0" time="500"/>
                                        </animation>
                                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Slide2),1)" reversible="false">
                                                <effect type="slide" tween="cubic" easing="inout" start="0,0" end="-1920,0" time="500"/>
                                        </animation>
                                </control>
                        </control>
                        <control type="grouplist">
                                <posx>1000</posx>
                                <posy>920</posy>
                                <itemgap>0</itemgap>
                                <orientation>vertical</orientation>
                                <control type="textbox" id="101">
                                        <width>900</width>
                                        <height>70</height>
                                        <align>right</align>
                                        <aligny>top</aligny>
                                        <font>Font-Sublabel</font>
                                        <textcolor>SubLabel2</textcolor>
                                </control>
                                <control type="label" id="99">
                                        <width>900</width>
                                        <height>35</height>
                                        <aligny>top</aligny>
                                        <font>Font-Sublabel</font>
                                        <textcolor>SubLabel2</textcolor>
                                        <align>right</align>
                                </control>
                                <control type="label" id="100">
                                        <width>900</width>
                                        <height>35</height>
                                        <align>right</align>
                                        <aligny>top</aligny>
                                        <font>Font-Sublabel</font>
                                        <textcolor>SubLabel2</textcolor>
                                </control>

                        </control>
                        <control type="group">
                                <posx>20</posx>
                                <posy>920</posy>
                                <animation effect="fade" start="80" end="80" time="0" condition="true">Conditional</animation>
                                <visible>Player.HasAudio + StringCompare(Window.Property(SlideView.Music),show)</visible>
                                <control type="image">
                                        <posx>0</posx>
                                        <posy>0</posy>
                                        <width>140</width>
                                        <height>140</height>
                                        <texture fallback="DefaultAlbumCover.png">$INFO[MusicPlayer.Cover]</texture>
                                        <aspectratio>scale</aspectratio>
                                </control>
                                <control type="grouplist">
                                        <posx>160</posx>
                                        <posy>0</posy>
                                        <height>140</height>
                                        <orientation>vertical</orientation>
                                        <itemgap>0</itemgap>
                                        <control type="label">
                                                <width>900</width>
                                                <align>left</align>
                                                <aligny>top</aligny>
                                                <height>35</height>
                                                <font>Font-Sublabel</font>
                                                <label>$INFO[MusicPlayer.Title]</label>
                                                <textcolor>MainLabel2</textcolor>
                                        </control>                                      
                                        <control type="label">    
                                                  <width>900</width>
                                                  <align>left</align>
                                                  <font>Font-Sublabel</font>
                                                  <textcolor>Highlight</textcolor>
                                                  <height>35</height>
                                                  <label>$INFO[MusicPlayer.Artist]</label>
                                        </control>
                                        <control type="label">
                                                <width>900</width>
                                                  <align>left</align>
                                                  <aligny>top</aligny>
                                                  <font>Font-Sublabel</font>
                                                  <height>35</height>
                                                  <label>$INFO[MusicPlayer.Album]</label>
                                                  <textcolor>SubLabel2</textcolor>
                                        </control>
                                        <control type="label">
                                                      <width>900</width>
                                                      <height>35</height>
                                                      <font>Font-Sublabel</font>
                                                      <align>left</align>
                                                      <aligny>top</aligny>
                                                      <textcolor>SubLabel2</textcolor>
                                                      <label>$INFO[Player.Time(hh:mm:ss)]$INFO[Player.Duration(hh:mm:ss), / ,]</label>
                                        </control>      
                                 </control>
                        </control>
                </control>
                <control type="image">
                        <posx>409</posx>
                        <posy>129</posy>
                        <width>461</width>
                        <height>461</height>
                        <aspectratio>keep</aspectratio>
                        <fadetime>0</fadetime>
                        <texture>splash.png</texture>
                        <colordiffuse>$INFO[Window.Property(SlideView.Dim)]</colordiffuse>
                        <animation effect="rotate" end="-360" center="auto" time="7000" loop="true" reversible="false" condition="True">Conditional</animation>
                        <animation type="WindowOpen">
                                <effect type="fade" start="0" end="100" time="1000" delay="500"/>
                        </animation>
                        <animation type="Conditional" condition="StringCompare(Window.Property(SlideView.Splash),hide)">
                                <effect type="fade" start="100" end="0" time="500"/>
                        </animation>
                </control>
        </controls>
</window>
(2014-09-05, 16:32)eisbaer128 Wrote: [ -> ]I'm trying to skin the screensaver for my favorite skin (Eminence). It's my very first trial and I was able to adapt the positions, fonts..., but I'm not able to adapt the italic and bold style for the EXIF data as they are coded inside the script. Wouldn't it make sense to put this into the skin instead ? In addition the tags have some animation which I really coudn't figure out where this is coded ?


Any help appriciated

it's not possible to define bold/italic in the default skin (included with the addon).
addons don't have access to a Font.xml where where such things can be defined.

i'm not sure what animations you're referring to?
The textbox id=101 (the photo tags). Scroll in from the bottom (in the Eminence skin). I couldn't figure out why as this is not specified in the definition of the textbox.
Hi,

I just installed XBMC on a Raspberry PI couse I want to use it as a easy way to manage a slideshow. Everything works like expected, updates via network in one folder, startup and one minute screensaver is enough for me. So but one thing is bad, I don't get that crisp clear image I put in the folder.

Is there a way to display the picture in full quality?
Hi,

Strange issue yesterday with my folks' Pi. I've installed OpenElec (latest stable version), all is well and I've got a working SMB link to their Windows 7 PC housing their photos. I can browse this link via the "Pictures" main menu, works a treat. Pi is wired to the router, the PC is wifi.

I installed the screensaver and pointed it to the same source. The only other thing I did was to disable the cache in the settings menu.

Whenever the screensaver kicks in, there is the large spinning circle which goes on forever. If you interrupt with a key, the spinning circle remains in the background, and eventually XBMC restarts.

Any suggestions?
(2014-09-08, 17:40)richardb70 Wrote: [ -> ]Hi,

Strange issue yesterday with my folks' Pi. I've installed OpenElec (latest stable version), all is well and I've got a working SMB link to their Windows 7 PC housing their photos. I can browse this link via the "Pictures" main menu, works a treat. Pi is wired to the router, the PC is wifi.

I installed the screensaver and pointed it to the same source. The only other thing I did was to disable the cache in the settings menu.

Whenever the screensaver kicks in, there is the large spinning circle which goes on forever. If you interrupt with a key, the spinning circle remains in the background, and eventually XBMC restarts.

Any suggestions?

That's what I have too. My guess is that for me it's the disks in the NAS that aren't ready yet. When I access my pictures from another client, it also takes quite some time to respond. Increasing the samba timeout didn't help. Accessing the pictures from xbmc directly works fine. Only weird thing in my setup is that the SMB share is mapped in my skin folder (otherwise xbmc will cache them). Cache in the screensaver is turned off as well. The network is fast enough and there are too many pictures to cache.
Hello. I am using this plugin for a while and I've got problem to do one thing :
I need to play both images and videos on TV screen in a shop and this plugin works perfectly for images, but now I need to mix videos with images. And it doesn't work. I searched the forum but didnt find a solution, could you help me? Is this even possible with this plugin or I need different solution?
I use remote folder to store files.
(2014-09-11, 17:01)Dark Hunter Wrote: [ -> ]Hello. I am using this plugin for a while and I've got problem to do one thing :
I need to play both images and videos on TV screen in a shop and this plugin works perfectly for images, but now I need to mix videos with images. And it doesn't work. I searched the forum but didnt find a solution, could you help me? Is this even possible with this plugin or I need different solution?
I use remote folder to store files.

nope, not possible with this addon.
Ok, so any other solution you would suggest?
(2014-09-08, 17:40)richardb70 Wrote: [ -> ]Hi,

Strange issue yesterday with my folks' Pi. I've installed OpenElec (latest stable version), all is well and I've got a working SMB link to their Windows 7 PC housing their photos. I can browse this link via the "Pictures" main menu, works a treat. Pi is wired to the router, the PC is wifi.

I installed the screensaver and pointed it to the same source. The only other thing I did was to disable the cache in the settings menu.

Whenever the screensaver kicks in, there is the large spinning circle which goes on forever. If you interrupt with a key, the spinning circle remains in the background, and eventually XBMC restarts.

Any suggestions?

I running the same issues Sad
Can someone can help us with it ??

MERCI Smile
i can't, for the sole reason that i can not reproduce it Sad
Hey Ronie ... love your screen saver ... kudos on the work!

However, there are a couple of things that I found frustrating:
1- xbmc hangs on raspberry pi after a while
2 - intermittent issue when exiting (image overlayed on menu)

1 - I believe that the hangs on the pi are due to a memory leak issue and the limited memory of the pi. I think this is caused by the default action of the setImage method to perform caching. This can be optional turned off. I have been running some tests and it appears that disabling the caching stops the memory leak issues. On openelec build 4.2 it's been working for an hour with no issue. However, when I tried it on a kodi alpha build, xbmc would hang after about a dozen images. If anyone else wants to test this setting, change ~/.xbmc/addons/screensaver.xbmc.slideshow/resources/lib/gui.py
old line - cur_img.setImage(img[0])
new line - cur_img.setImage(img[0],False)

2 - the problem with exiting the screensaver does not happen often, but I've seen other comments in the forum about it, so I assume it is common. I haven't tested this very long, so I don't know if the following is really a fix. My suspicion is that the screensaver's response to the exit is not quick enough. I am currently testing using a 1/4 second sleep as opposed to the 1 second sleep in the original script. Again, if anyone else would like to test ... change ~/.xbmc/addons/screensaver.xbmc.slideshow/resources/lib/gui.py
old code section
count = self.slideshow_time - 1
# display the image for the specified amount of time
while (not xbmc.abortRequested) and (not self.stop) and count > 0:
count -= 1
xbmc.sleep(1000)

new code section
count = (self.slideshow_time * 4) - 1
# display the image for the specified amount of time
while (not xbmc.abortRequested) and (not self.stop) and count > 0:
count -= 1
xbmc.sleep(250)

I'm hoping these contributions can help improve this already great screensaver!
hey dimmer, kudos right back at'cha :-)
your contributions (and time spent testing all of this) is much appreciated.

1 - i'll definitely add this. frankly, i did not know caching could be disabled.
2 - i'm not opposed to it, but yeah, it needs some proper testing first.