Simple screensaver project for Qt on Symbian. The screensaver is designed for Symbian^3 AMOLED devices, which allow constantly showing image on screen with very low power consumption.
This project implements a screensaver plugin for Symbian platform's built-in screensaver host. The plugin actually just starts a separate process, which provides the visual output for the screensaver. In order to keep power usage low, plugin also instructs the screensaver host to turn display into partial mode, which provides just 8 colors (3-bit RGB) on screen.
The actual Qt application is using QML to display randomly offsetted image on screen together with analog clock hands. As the power usage of AMOLED display is depending on the amount of subpixels lit, the image is masked to have 25% pixels visible and 75% black. The black grid mask and and using only once per minute timer updates ensure that the power usage is always kept to minimum. Upon startup, the Qt application initialises its own window to raise over the screensaver host window, so that it is always shown but the focus is still inthe screensaver host window.
The code has been tested to work with Qt 4.7.3 compiling to Symbian^1 target. Although this is targeted for Symbian^3 devices, the screensaver headers are no longer provided with Symbian^3 SDK, so you have to use Symbian^1 target.