• Forum
  • Lounge
  • Seeking ideas for features in a stopwatc

 
Seeking ideas for features in a stopwatch app.

Pages: 12
closed account (D80DSL3A)
I have started a program for implementing a stopwatch (using SFML for the graphics) and it is working with these basic features now:

1) A single display for the time in hh:mm:ss.dd format, thus displaying the result to hundredths of a second. The display will cycle after 24 hours.

2) a [start/stop] button and a [reset] button.

I have these ideas for further features, all based on the idea of recording and storing multiple time trials.

1) A [new trial] button. The display would reset to 0 and display "Trial N" above the time. This could be used an indefinite # of times.

2) An ability to scroll previous trial values into the display with [prev] and [next] buttons. When a trial value is loaded in the display it could be [reset] to 0, continued with [start/stop] or removed from the list with a [delete] button (reducing the number of trials recorded).

3) Basic statistical features such as displaying the minimum and maximum times
with the corresponding trial number displayed. This would add [min] and [max] buttons to the gadget. The average of the times could be displayed with an [avg] button.

Do any of these ideas seem senseless?

Do you guys/gals have any ideas for other features that a cool stopwatch should have?

Thanks.
Loop stopwatch, with an alarm. Like alarm every 30 minutes or something. However I would like an option of having an alarm of 40 min then 20, cyclical, you understand?
closed account (D80DSL3A)
OK. A timer feature. User to set number of timer periods and duration of each period.

The timer would sound an alarm at the end of each period and automatically start the countdown on the next period?
It cycles through these periods until the user stops it. Is that right?

Good idea for an alternate basic functionality. Thanks!

I didn't see you mention an option like [lap] on some stopwatches, where the current time would be recorded as a trial but the stopwatch wouldn't reset.

...If it's a really cool stopwatch, it could also give you the standard deviation of your trials.
Of course! I wanted a timer like that to regulate my programming schedule on/off time, so I'll use it at least =D
closed account (D80DSL3A)
@Zhuge. I'm not sure I understand that [lap] feature. Do you mean that each new trial begins at the last trials time value instead of at zero? Is this what you mean by the stopwatch not resetting?

I'll add display of standard deviation as a stats feature. That belongs without over complicating the device.

@ultifinitus. I'll try making it two devices in one. User could select it to function either as a stopwatch OR as a timer, with a separate UI design for each.
Yeah, basically. On a normal stopwatch, the [lap] button usually just pauses the display so, for example, a runners lap time can be recorded while the timer still runs "in the background" so the entire running time can be recorded as well.

Since you have trial data stored, I could see it working like this:

Say the timer is running, and you hit [lap] at 1:00.32 or something. Then 1:00.32 would go into your storage as a trial, but the timer would continue running without stopping.
@zhuge, so basically one master timer that never stops, unless specified would fit your needs?
Yeah, that's about right. Though there is no reason to not have the other buttons still available; just add this as another option. I see that feature on stopwatches all the time, so I'm actually a bit surprised you hadn't heard of it.
closed account (D80DSL3A)
OK. Let me see if I've got the [lap] idea right.
You start the watch at 0 then hit [lap] at 1:00.32. This value is recorded as trial1.
The display need not pause because the value has been recorded.
You hit [lap] a 2nd time at 2:14.17 and this is recorded as trial2.
ie:
trial1 = 1:00.32
trial2 = 2:14.17

You hit [stop] at 3:25.61 and get a final trial value:
trial3 = 3:25.61

I'll keep that feature in mind. How would the calculation of trial averages be affected?

closed account (D80DSL3A)
Thanks guys. Here's what it looks like so far:http://img854.imageshack.us/i/screenshott.jpg/
I'll post back when I have it working more fully (and is looking better).

I see how to include [lap] functionality by hitting [new] trial while the clock is running.
Yeah, you have the idea right. As for the average, to get a useful number you would probably need to average the differences between the trials.
closed account (D80DSL3A)
Thanks Zhuge. That's what I thought about the averaging.
UPDATE: I now have all the trial related buttons working properly. Trial values are being stored and retrieved correctly. I'm using a std::vector container for this. Now for those statistics buttons!
@fun2code: would you like a hand with your graphics? I could make you some awesome buttons and backgrounds =D
closed account (D80DSL3A)
@ultifinitus. Sure! That would be great!

I can use any .bmp or .jpg images for my buttons (or any other format supported directly in SFML).
I use 4 images for a button - selected, unselected and mouse-over versions for each of those two.

Presently everything is just drawn primitives - lines and rectangles (as this also works for the buttons).
The button colors are awful aren't they?

I usually focus on getting things to work before making the graphics look good.
Motivation re. graphics improves a lot for me when the program is working!

Speaking of this... I just got everything working, including the added standard deviation feature!
I'm hunting for bugs now.
Newer images:
Stopwatch mode: http://img853.imageshack.us/i/screenshotv2stop.jpg/
statistics mode: http://img859.imageshack.us/i/screenshotv2stat.jpg/
Last edited on
Alright send me some size specs, and if I may make a suggestion, you could have (by default) a simple blending mask above your buttons for the different states, if it's your UI lib.

Here's what I would do, with your exact same button sizes, and background format.

http://img858.imageshack.us/i/quick2.png/
Last edited on
closed account (D80DSL3A)
OK. I'll pm you the details.
Use of blending masks is a new thing to me but I see that the tools are available in SFML. I'm sure I can figure it out quickly. That does sound smarter than using 4 separate images.

if it's your UI lib.
My buttons? Yes, I'm using my own button class (do I hear groaning?) so I am free to draw them any way I wish to.

Also, I'll be starting work on that timer you mentioned, perhaps as a 3rd mode on the stopwatch.
Would you consider keyboard entry of timer values a necessity? Alternatively, I would use several sets of [up] [down] buttons for setting the values.
Last edited on
closed account (D80DSL3A)
Thanks for all the input. It's working fully now!
I got it to look better - but I'll seek help from ultifinitus to polish the appearance.
Newest look:
timer mode: http://img694.imageshack.us/i/screenshotv3stop.jpg/
statistics mode: http://img580.imageshack.us/i/screenshotv3stat.jpg/

I'm afraid I'm stuck working with a sprite sheet (term?) for my button images for now. If anyone would like to improve the images the current sheet is here:
http://img20.imageshack.us/i/butt33x22all.png/

And, for anyone interested (who has SFML set up), the full source code is here:
http://codepad.org/FVqtYrOe

I'll post back again when the timer is done.
Thanks again - fun2code
I wish I could test this... sadly I'm running OS X and the support for WINE on that platform is poor. Alas. :/

Since I have a bit of skill in using Inkscape, I did design you a new set of buttons based off your current color scheme and converted it to .png. If you want it, you can get it here: http://i51.tinypic.com/10hjc02.png

-Albatross
Last edited on
Awesome! I'll get to work on your images tomorrow ;)
Pages: 12