roadmap of the chime feature in the analog clock
johnlayt at googlemail.com
Tue Feb 1 13:50:28 CET 2011
On Saturday 15 January 2011 19:29:29 sunny sharma wrote:
> To make things clear for me i would reguest you guys to tell me the further
> steps that i should take.
> So that i can clear up my mind and come up with a clear algorithm of what
> should be done.
[Catching up on my email now that I'm back from holiday]
The problem here is the old one of balancing features for the power users
against ease of use for the majority of users, it just means we have to make
the code do more of the work instead of the user, or rather just be smarter
The most common features of chiming clocks are:
* Quarters, i.e. different chimes at 00, 15, 30 and 45
* Striking the hour, i.e. 12 strikes at midnight
* The hour chime plays before the hour, with the first hour strike playing
exactly on the hour
Combined with the "Speak Time" feature, we would obviously want to allow
slightly more options, such as only chiming/speaking on the hour, turning off
striking the hours (which can get very annoying and is meaningless for speak
time), or chiming/speaking every x minutes. I'm sure people can think of
plenty more "nice-to-have-but-rarely-used" options that we don't want to
expose most users to.
Expecting a user to configure a ui for all that is just not on.
The key to keeping it simple is to NOT allow the user to configure the sounds
and when they play in the ui as most users will never need to do this, and
catering for all the options is just too complex. Instead we would define a
Chime Theme file format that we and power users can use to configure how a
Chime Theme works and what sound files to use, and provide the user with a
simple list of available themes to choose from. We could even allow
downloading new themes from GHNS, in which case we would ship KDE with just a
very simple theme.
Here's how a single ui section for "Audible Feedback" in the "General" tab
would look like:
A combo for "Feedback Type" with options for:
* Speak Time
* Play Chimes
A combo for "Frequency" that is activated only if "Feedback Type" is not
"None", with options for:
* Chime Theme Defaults (only show if "Play Chimes" chosen)
* Every x Minutes (better wording needed)
(Note that Hourly and Quarters are just synonyms for every 60 or 15 minutes.)
Next to this combo is a minutes input spin box activated when "Every x
Minutes" is chosen. Alternatively we do "Frequency" as a radio button with
the spinbox inline in the "Every x minutes" text.
A combo for "Chime Theme" which is only activated if "Play Chimes" is
selected, with a list of the currently available themes:
* Time Pips
Next to this could be a GHNS button to download more themes.
Optionally under this could be a tick-box for "Strike Hours" which is only
activated if "Play Chimes" is activated, to turn off striking hours which
could get annoying. Alternatively it could be integrated into the "Feedback
Type" combo as separate options for "Play Chimes and Strikes" "Play Chimes
Only" and "Play Strikes Only".
I think 3 or 4 lines of simple config options is not too bad. The "Feedback
Type" and "Chime Theme" could even be merged for an even simpler interface.
The Chime Theme would actually be a self-contained folder holding a config
file and all required sound files, and would look something like this:
themename.desktop - Holds name of theme and default config options
default.ogg - Default sound to play if no specific sound
In the .desktop file itself, the config options would allow you to point to
other sound files in other locations and set default frequency, e.g.:
There's lots of options that could be set here, but I won't detail them now.
Some possible Chime Themes:
Beep: A simple beep with slightly different ones for hours, quarters,
and minutes. Ship with KDE, download the rest.
Time Pips: http://en.wikipedia.org/wiki/Greenwich_Time_Signal
Ships Bells: http://en.wikipedia.org/wiki/Ship%27s_bells
At first glance it may seem a fairly complex solution, but I think the
implementation will actually be fairly simple and not add much overhead, the
hardest part is designing the config file to be flexible enough.
P.S. This is what you get from staring at the ceiling at 4am in the morning
thanks to jet-lag :-)
More information about the Plasma-devel