Visual C# Source Code for Random Photo Screensaver™

From version 4 RPS is written in Microsoft Visual Studio Express 2013 C#. The source code of the Random Photo Screensaver is released under the GNU General Public License.

The Random Photo Screensaver, abScreensavers.com names and logos are trademarks and may not be used in third party releases without written permission. See list of trademarks. In short, if you release a separate version you have to change the name and logos of your screensaver.

Compiling from source

You can download the latest source code from GitHub: marijnkampf / Random-Photo-Screensaver.

Either clone the GitHub or download the source to a local folder on your computer. Open the file 'RPS 4.sln' and it should compile without issues.

Structure

RPS consists of two programs. A launcher that resides in the users' Windows folder and the actual program that resides in the installation folder including all required libraries.

I've chosen for this option as it avoids cluttering the Windows folder with loads of files, makes installation of library files easier and avoids creating conflicts with existing library files.

The screensaver uses a browser (Internet Explorer) for displaying the config screen and monitor. This saves allows the screensaver to use browser functionality for animations/transitions (jQuery) and codes for image and video formats.

Installation

If you only want to use the screensaver download the latest executable from Download Random Photo Screensaver 4.5.3.

RPS requires .Net 4.0 and Internet Explorer 8 (the latest version of IE is recommended though).

History

  • 2005: RPS 1 & 2 written in Delphi
  • 2008: RPS 3 written in Visual Studio C++
  • 2014: RPS 4 written in Visual Studio C#
    • 2014/10/17: Beta release 1

Design rationale

This is the second complete rewrite of RPS in almost 10 years. When I choose for C++ in 2008 I had performance in mind most of all. I however found that there are far more code examples for C# and that the performance between C++ and C# doesn't differ that much for a screensaver application.

I'm a web developer by day and software developer at night, basing the display on browser technology should make it easier for 3rd parties to develop plugins for things as transitions and other features. How the photos are shown should be completely customised in the final RPS 4 version.

Structure

  • Launcher
  • RPS 4
    • data
      • Settings
        • html, js, css
      • Monitor
      • Vendor
    • database (C:\Users\[username]\AppData\Local\Random Photo Screensaver)
      • settings.sqlite
      • store.sqlite
      • meta.sqlite

Feedback

I'd love to hear your feedback, feel free to create a pull request on GitHub or let me know if you've made any improvements to the screensaver.