FuzzyTime

A screensaver plugin for SlimServer

FuzzyTime displaying 'fast' time

SqueezeCenter 7.3: you can use the repository URL https://tuxreborn.netlify.com/slim/slim7/repodata.xml in the web Extension Downloader interface instead of manually unzipping the plugin.
Download the plugin and unpack in your Plugins directory.

Other versions are available.

Releases for SqueezeCenter 7 are available here.

Download FuzzyTime-1.8.zip for SlimServer 6.5.x.

As a screenaver

If you tend to set your clocks ahead a few minutes to keep you on your toes, FuzzyTime is for you. FuzzyTime provides a screensaver that can display a date/time that is either a fixed or random number of minutes "fast". It can display a character or phrase before the time when displaying a "fast" time as a subtle reminder that the time might be fast. FuzzyTime's settings are configured on a per-player basis, so you can set your bedroom Squeezebox to show a "fast" time while your family room Squeezebox shows the correct time.

When FuzzyTime's screensaver is active, you can press the down button on the remote control to display the real time for a couple of seconds. When displaying the real time, FuzzyTime will display screens just like the stock Date and Time Screensaver (that is, no "~" or other prefix characters).

Options:

Disabled
With the "maximum" time for a player at 0 minutes, FuzzyTime will show the real time, and won't display any prefix characters. This is the default, so if you attach a new player to your system, FuzzyTime will report/display the correct time for it unless you choose otherwise.
Fixed number of minutes
FuzzyTime can be configured to always show a time that is exactly a certain number of minutes fast (set the minimum and maximum times to the same number of minutes).
Random number of minutes
FuzzyTime can be configured to display a time that is between a range of minutes fast. For instance, a minimum of 1.5 and maximum of 5.0 in Random mode would instruct FuzzyTime to display a time that is somewhere between 90 seconds and 5 minutes ahead of the current time. FuzzyTime will gradually change the "offset" from real time, moving its time between the two specified offsets.
Prefix
The image above shows a prefix of "~", but you can change that character or configure FuzzyTime to use no prefix -- so its display looks just like that of the regular Date and Time Screensaver.

Hints:

Other FuzzyTime-enabled plugins

The TimeSpeller plugin that Michael Herger maintains that displays time in words, rounding to the nearest 5 minutes, supports FuzzyTime as of version 1.1.

Below are some plugins I have modified to support FuzzyTime's "fast" time feature for players that are configured to use FuzzyTime. The original plugins did not support FuzzyTime, but the modified versions I host here do. You can simply install the "Modified version" of the plugin, following the author's instructions, or use the patch. Patches are for use with the Unix/Linux/Cygwin 'patch' utility.
Plugin Version Patch Modified version
Advanced Alarm Plugin 1.143 AlarmPlugin.patch AlarmPlugin.pm
If you need more than one alarm:
AlarmPluginB.pm
AlarmPluginC.pm
AutoDisplay 0.82 AutoDisplay.patch AutoDisplay.pm
XDateTime 0.1 XDateTime.patch XDateTime.pm
SuperDateTime 5.x 5.0.6 SuperDateTime506.patch SuperDateTime506.zip
SuperDateTime 4.x 4.0.6 SuperDateTime.patch SuperDateTime.zip

FuzzyTime for other Plugin developers

FuzzyTime is designed to facilitate use in other plugins, so they can display times/dates that take advantage of the FuzzyTime preferences for a certain Squeezebox. For instance, I modified a version 4.x release of SuperDateTime to use FuzzyTime with a few lines of code, adding this subroutine from FuzzyTime/Public.pm:

sub getFuzzyTimeF {
        my ($client, $time, $format) = @_;
        if ( defined($Plugins::FuzzyTime::Plugin::apiVersion) ) {
                return Plugins::FuzzyTime::Public::timeF($client,$time,$format);
        }
        return Slim::Utils::DateTime::timeF($time,$format);
}

and changing the line

        my $time = Slim::Utils::Misc::timeF();
to
        my $time = &getFuzzyTimeF($client);

See the file FuzzyTime/Public.pm for more information about using its routines in your code automatically.

Timers: I have given some thought to how to implement "fuzzy" timer functions that would wrap Slim::Utils::Timers::setTimer() and Slim::Utils::Timers::killTimers to enable things like using setTimer() to have a "7:00 AM" alarm go off when FuzzyTime would display 07:00 AM on that player (instead of using a polling method as the Advanced Alarm Plugin does). See the download directory for "beta" versions of the plugin that include setTimer() and killTimers() code -- and please send me feedback if you try out those APIs!

Changelog

revision 1.8
date: 2007/03/13
fix bug with fixed offsets when updating per-player prefs
----------------------------
revision 1.7
date: 2007/02/12
now use IR trapping for down button (now compatible with SaverSwitcher)
----------------------------
revision 1.6
date: 2007/01/27
use proper modeUpdateInterval API
----------------------------
revision 1.5
date: 2007/01/25
now in a subdir
----------------------------
revision 1.4
date: 2007/01/21
smaller drift increment; can change prefix char; remove unneeded "type" setting
----------------------------
revision 1.3
date: 2007/01/20
min/max; press button for real time; copy/paste functions for other plugins; "~" indicator
----------------------------
revision 1.2
date: 2007/01/20
change defaults.
----------------------------
revision 1.1
date: 2007/01/20
Initial revision

Other plugins - Home

$Id: FuzzyTime.html,v 1.23 2008/09/14 16:41:23 peterw Exp $