[Pkg-wmaker-commits] [wmclock] 06/66: wmclock: Add -interval option.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Thu Aug 20 10:52:48 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch master
in repository wmclock.
commit 2718f3511b688840f4e810dd8da56d3b3f4270cd
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date: Thu Dec 11 09:18:08 2014 -0600
wmclock: Add -interval option.
From the Debian patch:
http://sources.debian.net/src/wmclock/1.0.14-6/debian/patches/add_interval_option.patch/
For more information, see:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=228986
---
wmclock.c | 71 ++++++++++++++++++++++++++++++++++++++++------------------
wmclock.man.in | 5 +++++
2 files changed, 54 insertions(+), 22 deletions(-)
diff --git a/wmclock.c b/wmclock.c
index 3feb937..25ac7da 100644
--- a/wmclock.c
+++ b/wmclock.c
@@ -146,6 +146,7 @@ int enableShapedWindow = 1; /* default value is noshape */
int enableBlinking = 1; /* default is blinking */
int startIconified = 0; /* default is not iconified */
int enableYearDisplay = 0; /* default is to show time, not year */
+int blinkInterval = 2; /* default is a 2-second blink cycle */
int timePos12[NUM_TIME_POSITIONS] = { 5, 14, 24, 28, 37 };
int timePos24[NUM_TIME_POSITIONS] = { 4, 8, 17, 22, 31 };
@@ -207,6 +208,7 @@ char *usageText[] = {
" -24 show 24-hour time",
" -year show year instead of time",
" -noblink don't blink",
+" -interval <seconds> set blink interval",
" -exe <command> start <command> on mouse click",
" -led <color> use <color> as color of led",
#ifndef ONLY_SHAPED_WINDOW
@@ -799,6 +801,16 @@ int processArgs(int argc, char **argv)
{
showUsage();
}
+ else if ((0 == strcmp(argv[i], "-interval")) ||
+ (0 == strcmp(argv[i], "--interval")))
+ {
+ if (++i >= argc)
+ {
+ showUsage();
+ }
+ blinkInterval = atoi(argv[i]);
+ }
+
else
{
fprintf(stderr, "%s: unrecognized option `%s'\n",
@@ -822,6 +834,7 @@ int main(int argc, char **argv)
XClassHint classHint;
Pixmap shapeMask;
struct timeval nextEvent;
+ unsigned int blinkCounter = 0;
/* Parse command line options */
progName = extractProgName(argv[0]);
@@ -962,26 +975,6 @@ int main(int argc, char **argv)
redrawWindow(&visible);
}
}
- if (enableBlinking && (!enableYearDisplay))
- {
- if (actualTime % 2)
- {
- /* Sekunden Doppelpunkt ein */
- XCopyArea(dpy, led.pixmap, visible.pixmap, normalGC,
- COLON_X_OFFSET, COLON_Y_OFFSET,
- COLON_WIDTH, COLON_HEIGHT,
- xPos[COLON_X_POS], yPos[COLON_Y_POS]);
- }
- else
- {
- /* Sekunden Doppelpunkt aus */
- XCopyArea(dpy, led.pixmap, visible.pixmap, normalGC,
- BLANK_X_OFFSET, BLANK_Y_OFFSET,
- COLON_WIDTH, COLON_HEIGHT,
- xPos[COLON_X_POS], yPos[COLON_Y_POS]);
- }
- redrawWindow(&visible);
- }
if (0 == (actualTime % 2))
{
/* Clean up zombie processes */
@@ -995,7 +988,38 @@ int main(int argc, char **argv)
}
}
}
-
+ if (enableBlinking && (!enableYearDisplay))
+ {
+ blinkCounter++;
+#ifdef SYSV
+ if (blinkCounter >= 20*blinkInterval)
+#else
+ if (blinkCounter >= 2*blinkInterval)
+#endif
+ blinkCounter = 0;
+ if (blinkCounter == 0)
+ {
+ /* Sekunden Doppelpunkt ein */
+ XCopyArea(dpy, led.pixmap, visible.pixmap, normalGC,
+ COLON_X_OFFSET, COLON_Y_OFFSET,
+ COLON_WIDTH, COLON_HEIGHT,
+ xPos[COLON_X_POS], yPos[COLON_Y_POS]);
+ }
+#ifdef SYSV
+ if (blinkCounter == 10*blinkInterval)
+#else
+ if (blinkCounter == blinkInterval)
+#endif
+ {
+ /* Sekunden Doppelpunkt aus */
+ XCopyArea(dpy, led.pixmap, visible.pixmap, normalGC,
+ BLANK_X_OFFSET, BLANK_Y_OFFSET,
+ COLON_WIDTH, COLON_HEIGHT,
+ xPos[COLON_X_POS], yPos[COLON_Y_POS]);
+ }
+ redrawWindow(&visible);
+ }
+
/* read a packet */
while (XPending(dpy))
{
@@ -1075,7 +1099,10 @@ int main(int argc, char **argv)
{
gettimeofday(&nextEvent,NULL);
nextEvent.tv_sec = 0;
- nextEvent.tv_usec = 1000000-nextEvent.tv_usec;
+ if (nextEvent.tv_usec < 500000)
+ nextEvent.tv_usec = 500000-nextEvent.tv_usec;
+ else
+ nextEvent.tv_usec = 1000000-nextEvent.tv_usec;
}
else
{
diff --git a/wmclock.man.in b/wmclock.man.in
index 8d38c2d..4b399f2 100644
--- a/wmclock.man.in
+++ b/wmclock.man.in
@@ -61,6 +61,11 @@ The separator between the hours and minutes in the time display blinks
by default. This option turns off the blinking and displays a steadily
lit separator instead.
.TP
+\fB\-interval\fI n\fR
+Set the blink cycle to
+.I n
+seconds. The default is 2 (1 second on, 1 second off).
+.TP
\fB\-version\fB
Displays the version of Wmclock.
.TP
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmclock.git
More information about the Pkg-wmaker-commits
mailing list