SmoothSlideSaver

Screensavers

Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

1
Become a Fan
5.0

Description:
SmoothSlideSaver is a KDE screensaver which shows images from a directory as an OpenGL slideshow. It uses the famous Ken Burns effect and smoothly fades from one image to the next.

You don't need to worry about complicated configuration options, everything should run smoothly out of the box. Just select a directory with some nice pictures (e.g., your digital photo collection) and let the show begin


There are prebuilt packages for Debian and Ubuntu (i386 architecture, only). You can either download them via the links below, or more conveniently, apt-get them:

Put one of the following lines into your /etc/apt/sources.list file:

deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver debian-sarge/ # Debian stable "Sarge"

deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver debian-unstable/ # Debian unstable (requires KDE 3.5.0 from Alioth (or experimental?))

deb http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver ubuntu-breezy/ # (K)Ubuntu "Breezy"

Then do the usual steps to install the package:

#> apt-get update
#> apt-get install smoothslidesaver


If you have another Debian based distribution and/or architecture (or if the unstable packages can't be installed), you can easily build your own package. Add the following line to /etc/apt/sources.list:

deb-src http://www1.inf.tu-dresden.de/~cw183155/smoothslidesaver source/

Then execute the following commands:

#> apt-get update
#> mkdir smoothslidesaver
#> cd smoothslidesaver
#> apt-get build-dep smoothslidesaver
#> apt-get source --compile smoothslidesaver
#> dpkg -i smoothslidesaver_*.deb

If you have another distribution installed on your computer, you will have to do it the hard way, sorry :-/ Download the source tarball from the link below, untar it and then execute the following steps in the source directory:

#> ./configure
#> make
#> make install
Last changelog:

0.4.2-2
* fixed build issue (You do _not_ need to upgrade, if you already have a (prebuilt) package of version 0.4.2 installed!)

0.4.2

* Code cleanup and bug fixes
* Added a not yet complete debugging mode to make it easier to find the cause of bugs which I cannot reproduce on my computer (to activate it, add 'DebugMode=true' to section [Settings] of the configuration file)

0.4.1

* Initial public release


Ratings & Comments

55 Comments

Arcturan

After having run this for years, I suddenly can't get it to compile. The only change on my system I can think of is upgrading libjpeg from version 6 to 7. make all-recursive make[1]: Entering directory `/smoothslidesaver-0.4.2' Making all in po make[2]: Entering directory `/smoothslidesaver-0.4.2/po' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/smoothslidesaver-0.4.2/po' Making all in src make[2]: Entering directory `/smoothslidesaver-0.4.2/src' source='smoothslidewidget.cpp' object='smoothslidewidget.o' libtool=no \ depfile='.deps/smoothslidewidget.Po' tmpdepfile='.deps/smoothslidewidget.TPo' \ depmode=gcc3 /bin/sh ../admin/depcomp \ g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/kde/3.5/include -I/usr/qt/3/include -I. -UQT_NO_ASCII_CAST -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -c -o smoothslidewidget.o `test -f 'smoothslidewidget.cpp' || echo './'`smoothslidewidget.cpp In file included from /usr/qt/3/include/qwindowdefs.h:47, from /usr/qt/3/include/qpaintdevice.h:45, from /usr/qt/3/include/qpixmap.h:45, from /usr/qt/3/include/qimage.h:45, from smoothslidewidget.cpp:29: /usr/qt/3/include/qstring.h: In member function ‘char QChar::latin1() const’: /usr/qt/3/include/qstring.h:197: warning: conversion to ‘char’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In member function ‘void QChar::setCell(uchar)’: /usr/qt/3/include/qstring.h:222: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In member function ‘void QChar::setRow(uchar)’: /usr/qt/3/include/qstring.h:223: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In constructor ‘QChar::QChar(uchar, uchar)’: /usr/qt/3/include/qstring.h:267: warning: conversion to ‘ushort’ from ‘int’ may alter its value /usr/qt/3/include/qstring.h: In constructor ‘QStringData::QStringData(QChar*, uint, uint)’: /usr/qt/3/include/qstring.h:365: warning: conversion to ‘unsigned int:30’ from ‘uint’ may alter its value /usr/qt/3/include/qstring.h:365: warning: conversion to ‘unsigned int:30’ from ‘uint’ may alter its value In file included from smoothslidewidget.cpp:29: /usr/qt/3/include/qimage.h: In member function ‘bool QImageTextKeyLang::operator<(const QImageTextKeyLang&) const’: /usr/qt/3/include/qimage.h:61: warning: suggest parentheses around && within || In file included from /usr/qt/3/include/qobject.h:48, from /usr/kde/3.5/include/kconfigbase.h:26, from /usr/kde/3.5/include/kconfig.h:29, from smoothslidewidget.cpp:31: /usr/qt/3/include/qevent.h: In member function ‘void QDropEvent::setAction(QDropEvent::Action)’: /usr/qt/3/include/qevent.h:523: warning: conversion to ‘unsigned char’ from ‘uint’ may alter its value In file included from /usr/qt/3/include/qwidget.h:52, from /usr/qt/3/include/qdialog.h:45, from /usr/kde/3.5/include/kdialog.h:26, from /usr/kde/3.5/include/kdialogbase.h:26, from /usr/kde/3.5/include/kaboutdialog.h:33, from smoothslidesaver.h:24, from smoothslidewidget.cpp:35: /usr/qt/3/include/qsizepolicy.h: In member function ‘void QSizePolicy::transpose()’: /usr/qt/3/include/qsizepolicy.h:125: warning: conversion to ‘uchar’ from ‘uint’ may alter its value /usr/qt/3/include/qsizepolicy.h:125: warning: conversion to ‘uchar’ from ‘uint’ may alter its value In file included from /usr/kde/3.5/include/klistbox.h:21, from /usr/kde/3.5/include/kjanuswidget.h:27, from /usr/kde/3.5/include/kdialogbase.h:27, from /usr/kde/3.5/include/kaboutdialog.h:33, from smoothslidesaver.h:24, from smoothslidewidget.cpp:35: /usr/qt/3/include/qlistbox.h: In member function ‘int QListBox::cellWidth() const’: /usr/qt/3/include/qlistbox.h:194: warning: conversion to ‘int’ from ‘long int’ may alter its value /usr/qt/3/include/qlistbox.h: In member function ‘int QListBox::cellWidth(int) const’: /usr/qt/3/include/qlistbox.h:195: warning: conversion to ‘int’ from ‘long int’ may alter its value In file included from smoothslidesaver.h:29, from smoothslidewidget.cpp:35: smoothslidewidget.h: In member function ‘float ViewTrans::transX(float) const’: smoothslidewidget.h:40: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘float ViewTrans::transY(float) const’: smoothslidewidget.h:41: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘float ViewTrans::scale(float) const’: smoothslidewidget.h:42: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.h: In member function ‘double ViewTrans::rnd() const’: smoothslidewidget.h:47: error: ‘rand’ was not declared in this scope smoothslidewidget.h:47: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.h: In member function ‘double ViewTrans::rndSign() const’: smoothslidewidget.h:48: error: ‘rand’ was not declared in this scope smoothslidewidget.h:48: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.cpp: In constructor ‘ViewTrans::ViewTrans(bool, float)’: smoothslidewidget.cpp:56: warning: suggest parentheses around comparison in operand of ^ smoothslidewidget.cpp:75: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp:76: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp: In constructor ‘SmoothSlideWidget::SmoothSlideWidget(QWidget*, const char*)’: smoothslidewidget.cpp:130: error: ‘srand’ was not declared in this scope smoothslidewidget.cpp:145: warning: conversion to ‘float’ from ‘double’ may alter its value smoothslidewidget.cpp:146: error: ‘rand’ was not declared in this scope smoothslidewidget.cpp:146: error: ‘RAND_MAX’ was not declared in this scope smoothslidewidget.cpp: In member function ‘void SmoothSlideWidget::paintTexture(Image*)’: smoothslidewidget.cpp:377: warning: conversion to ‘GLfloat’ from ‘double’ may alter its value smoothslidewidget.cpp:377: warning: conversion to ‘GLfloat’ from ‘double’ may alter its value In file included from smoothslidewidget.cpp:422: /usr/qt/3/include/qmemarray.h: In member function ‘bool QMemArray<type>::resize(uint) [with type = unsigned int]’: /usr/qt/3/include/qglcolormap.h:83: instantiated from here /usr/qt/3/include/qmemarray.h:73: warning: conversion to ‘uint’ from ‘long unsigned int’ may alter its value make[2]: *** [smoothslidewidget.o] Error 1 make[2]: Leaving directory `/smoothslidesaver-0.4.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/smoothslidesaver-0.4.2' make: *** [all] Error 2

djansen

Hey, have you thought about making it available for KDE4? I really think this should be part of the standard distribution. You might still make it into 4.2.0 ;-) -- Dennis

Arcturan

I can't change to KDE 4 before this works. Please, carstenw42, can you let us know if it's at all possible for you to port this?

djtm

Hey, don't worry, you can still manually add the old screensaver to kde4. Just look at the desktop files for screensavers once you've installed kde4 and then adjust one to start sss. I've done it before and it worked fine.

Arcturan

Excellent, thanks for sharing!

medisoft

Hi! I just downloaded this and is very nice software, but it has some problems in kubuntu 7.04 (also in mandriva 2007.1) when I use compiz/beryl and start the saver at the same time. The problems are: - when i return from the saver the screen needs to be repainted, but that doesn't happen. - when i'm inside the saver any change to an element like a window or a dock/taskbar element makes the saver to blink.... this doesn't happens when i work without beryl/compiz...

amr2205

I like it so much, the fade and transition effects are very good and give a new dimension to my images, thank you for sharing it!

seb

It would be great if the plugin could auto rotate images based on exif data.

SeaEagle

I installed the Mandriva rpm & it worked fine, but it really maxes out my CPU. I don't have a graphics card, so I try not to run resource heavy screensavers. This one had my CPU running at 100%. Those with a graphics card shouldn't have a problem with it though.

Arcturan

Thank you for sharing this, it's great! I'm using a folder with about 4000 pictures in it. But very often SSS shows the same picture several times within a short time. It seems that the randomness isn't perfect. When my system is under heavy load (io), SSS often keeps showing the same picture over and over, fading it in and out. Thanks again!

mthriftwsc

After installing the app without problems, it only shows the bottom quarter of the current picture at the top of the screen, the rest of the screen is just blank, any ideas?

cjplepepe

Hello, I have the same problem with a Mandriva 2007. Also with smoothslidesaver-0.4.2-1mdk.i586.rpm and smoothslidesaver_0.4.2-2.tar.gz. Any ideas ?

rstanchak

on gentoo I had to run KDEDIR=/usr/kde/3.4/ ./configure in order to detect kde

LeChuck

Very nice! What about adding an option to adjust zoom level?

carstenw42

Maybe in the next release. Just out of curiosity: In your opinion, is the current zooming too aggressive or the opposite?

floyduww

It would be nice if both zoom level and pan speed were adjustable. Where in the code could I hard code different values for these?

carstenw42

Hmmm ... this will probably require some trial and error, but you can play with the floating-point math in the class ViewTrans in smoothslidewidget.cpp. A starting point may be the threshold values used by the two loops in this class' constructor. However, the speed of the movement will still depend on the per-image duration one configures for the slideshow. I know, the code could be a bit more flexible here ;-)

woodsmoke

Hi, this may sound kinda dumb....... ya gotta remember I'm not too bright.... But, I teach school..... I'm wonderin'....if it would be possible to put this in a live cd distro.... put my science pics in it.... since the school uses windoze....run the distro as a live cd and run my pics in this as a screensaver.... again....I'm not too bright...just an idea! ain't xandros great! woodsmoke

euxneks

What about being able to slow down the effect and selecting different transitions? Excellent screensaver btw...

carstenw42

Hmm, currently, the duration of the cross-fade effect is 10% of the duration an image is shown. Fade out + fade in takes 20%. You could increase the interval in which images change, but I guess you already tried that ... What do you mean with 'choosing different transitions'? Additional transition effects? It is possible to disable either the cross-fade effect or the fade-out/fade-in effect, but you have to do this in the config file. Add DisableCrossFade=true or DisableFadeInOut=true to ~/kde/share/config/smoothslidesaver.kssrc. Anyway, I tried to keep the number of configuration options in the GUI as low as possible. I think that a lot of of programs (especially screensaver) have far too many checkboxes and sliders that are a source of confusion. Of course, that's my personal opinion. But before I change anything, I would like to hear others, too.

DanaKil

it's my new screensaver :) maybe you could add an option to hide the cursor ?

carstenw42

Huh? KDE takes care of hiding the cursor, when a screensaver is run. The mouse pointer is only visible in preview mode (when you click 'Test' in the screensaver configuration dialog).

eriol

Sounds great ! What about someone making an ebuild ?

probono

/usr/bin/smoothslidesaver.kss -setup opens the setup dialog, and -root runs it in full screen.

lenooh

I think you should make a separate program for viewing photos, or build this into gwenview for example. So that you can use it to watch/show your photos, not just as a screensaver. i dont know any linux program made especialy for slideshows (like photodex for windowz, for example). it would be cool!

Pling
0 Affiliates
Details
license
version 0.4.2
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 1

Other Screensavers:

My new desktop.-Modified
compileit
last update date: 19 years ago

Score 5.0

SlideShow (GL) mdk 9.1 rpm
illogic-al
last update date: 22 years ago

Score 5.0

My composition with Sailors
Kamuiu
last update date: 22 years ago

Score 5.0

KarambaSaver
BOSSoNe
last update date: 22 years ago

Score 5.0

Fleas
eisfuchs
last update date: 21 years ago

Score 5.0

fluid psychedelic Screensaver
schorsch
last update date: 21 years ago

Score 5.0