wmacpi: Bump to wmacpi-ng version 0.92.
Source obtained from http://sourceforge.net/projects/wmacpi/files/. 2003 September 23 0.92 Fix a few more bugs, and include an option to allow the user to specify how often to sample the ACPI data - some BIOSes disable all interrupts while reading from the battery, which apparently causes some interactivity issues. I have no idea why reading once every three seconds (which is our default), but there've been some complaints.
This commit is contained in:
parent
61ea0840d6
commit
df54026a62
|
@ -1,3 +1,17 @@
|
||||||
|
2003 September 23 0.92
|
||||||
|
Fix a few more bugs, and include an option to allow the user to
|
||||||
|
specify how often to sample the ACPI data - some BIOSes disable
|
||||||
|
all interrupts while reading from the battery, which apparently
|
||||||
|
causes some interactivity issues. I have no idea why reading once
|
||||||
|
every three seconds (which is our default), but there've been some
|
||||||
|
complaints.
|
||||||
|
|
||||||
|
Also fixed acpi-ng to properly handle the -a option.
|
||||||
|
|
||||||
|
2003 August 6 0.91
|
||||||
|
Fix a problem I'm seeing with docking the app - if the window name
|
||||||
|
is set to "acpi" rather than "apm" it doesn't dock . . .
|
||||||
|
|
||||||
2003 July 16 0.90
|
2003 July 16 0.90
|
||||||
Make the time display show '--:--' instead of '00:00' when the
|
Make the time display show '--:--' instead of '00:00' when the
|
||||||
time remaining is 0 - I think this is reasonable, since it'll only
|
time remaining is 0 - I think this is reasonable, since it'll only
|
||||||
|
|
|
@ -34,7 +34,7 @@ void usage(char *name)
|
||||||
{
|
{
|
||||||
printf("%s: query battery status on ACPI enabled systems.\n"
|
printf("%s: query battery status on ACPI enabled systems.\n"
|
||||||
"Usage:\n"
|
"Usage:\n"
|
||||||
"%s [-h] [-a]\n"
|
"%s [-h] [-a samples]\n"
|
||||||
" h - display this help information\n"
|
" h - display this help information\n"
|
||||||
" a - average remaining time over some number of samples\n"
|
" a - average remaining time over some number of samples\n"
|
||||||
" much more accurate than using a single sample\n"
|
" much more accurate than using a single sample\n"
|
||||||
|
@ -56,7 +56,7 @@ int main(int argc, char *argv[])
|
||||||
battery_t *binfo;
|
battery_t *binfo;
|
||||||
adapter_t *ap;
|
adapter_t *ap;
|
||||||
|
|
||||||
while((ch = getopt(argc, argv, "hvVa::")) != EOF) {
|
while((ch = getopt(argc, argv, "hvVa:")) != EOF) {
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
case 'h':
|
case 'h':
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
|
@ -68,17 +68,13 @@ int main(int argc, char *argv[])
|
||||||
print_version();
|
print_version();
|
||||||
return 0;
|
return 0;
|
||||||
case 'a':
|
case 'a':
|
||||||
printf("case a\n");
|
if(optarg != NULL) {
|
||||||
if(optarg == NULL) {
|
|
||||||
printf("empty optarg\n");
|
|
||||||
} else {
|
|
||||||
printf("optarg: %s\n", optarg);
|
|
||||||
samples = atoi(optarg);
|
samples = atoi(optarg);
|
||||||
}
|
|
||||||
if(samples > 1000 || samples <= 0) {
|
if(samples > 1000 || samples <= 0) {
|
||||||
printf("Please specify a reasonable number of samples\n");
|
printf("Please specify a reasonable number of samples\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
printf("samples: %d\n", samples);
|
printf("samples: %d\n", samples);
|
||||||
sleep_time = 1000000/samples;
|
sleep_time = 1000000/samples;
|
||||||
break;
|
break;
|
||||||
|
@ -106,6 +102,7 @@ int main(int argc, char *argv[])
|
||||||
binfo = &batteries[i];
|
binfo = &batteries[i];
|
||||||
if(binfo->present && (binfo->charge_state == CHARGE)) {
|
if(binfo->present && (binfo->charge_state == CHARGE)) {
|
||||||
printf("; Battery %s charging", binfo->name);
|
printf("; Battery %s charging", binfo->name);
|
||||||
|
printf(", currently at %2d%%", binfo->percentage);
|
||||||
if(binfo->charge_time >= 0)
|
if(binfo->charge_time >= 0)
|
||||||
printf(", %2d:%02d remaining",
|
printf(", %2d:%02d remaining",
|
||||||
binfo->charge_time/60,
|
binfo->charge_time/60,
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
wmacpi-ng (0.92-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@dreamcraft.com.au> Tue, 23 Sep 2003 11:57:09 +1000
|
||||||
|
|
||||||
|
wmacpi-ng (0.91-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
|
||||||
|
-- Simon Fowler <simon@dreamcraft.com.au> Wed, 6 Aug 2003 18:32:11 +1000
|
||||||
|
|
||||||
wmacpi-ng (0.90-1) unstable; urgency=low
|
wmacpi-ng (0.90-1) unstable; urgency=low
|
||||||
|
|
||||||
* New upstream version.
|
* New upstream version.
|
||||||
|
|
|
@ -18,6 +18,9 @@ display ]
|
||||||
.RI -m
|
.RI -m
|
||||||
battery no ]
|
battery no ]
|
||||||
[
|
[
|
||||||
|
.RI -s
|
||||||
|
sample rate ]
|
||||||
|
[
|
||||||
.RI -v
|
.RI -v
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@ -73,18 +76,24 @@ battery to reach full charge if the batteries are charging.
|
||||||
.B \-b
|
.B \-b
|
||||||
Make noise when battery is critical low (beep).
|
Make noise when battery is critical low (beep).
|
||||||
.TP
|
.TP
|
||||||
.B \-c value
|
.B \-c percentage
|
||||||
Set critical low alarm at <value>% (default: 10%).
|
Set critical low alarm at <value>% (default: 10%).
|
||||||
.TP
|
.TP
|
||||||
.B \-d
|
.B \-d display
|
||||||
Set the X display to open the window on.
|
Set the X display to open the window on.
|
||||||
.TP
|
.TP
|
||||||
.B \-m
|
.B \-m battery number
|
||||||
Set the battery to monitor initially.
|
Set the battery to monitor initially.
|
||||||
.TP
|
.TP
|
||||||
|
.B \-s sample rate
|
||||||
|
Set the rate at which to sample the ACPI data (default is 100, which
|
||||||
|
translates to once every three seconds. 10 gives once every 30 seconds,
|
||||||
|
1 once every 300 seconds (five minutes), 1000 once every 0.3 seconds).
|
||||||
|
.TP
|
||||||
.B \-n
|
.B \-n
|
||||||
Disable blinking power glyph when charging. Note that it still blinks when
|
Disable blinking power glyph when charging. Note that it still blinks when
|
||||||
the battery reports its capacity state as critical.
|
the battery reports its capacity state as critical.
|
||||||
|
.TP
|
||||||
.B \-v
|
.B \-v
|
||||||
Increase the verbosity of the program. Can be used more than once -
|
Increase the verbosity of the program. Can be used more than once -
|
||||||
each successive use increases the verbosity.
|
each successive use increases the verbosity.
|
||||||
|
|
|
@ -618,6 +618,7 @@ int main(int argc, char **argv)
|
||||||
char *display = NULL;
|
char *display = NULL;
|
||||||
char ch;
|
char ch;
|
||||||
int update = 0;
|
int update = 0;
|
||||||
|
int samplerate = 100;
|
||||||
battery_t *binfo;
|
battery_t *binfo;
|
||||||
|
|
||||||
dockapp = calloc(1, sizeof(Dockapp));
|
dockapp = calloc(1, sizeof(Dockapp));
|
||||||
|
@ -633,7 +634,7 @@ int main(int argc, char **argv)
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/* parse command-line options */
|
/* parse command-line options */
|
||||||
while ((ch = getopt(argc, argv, "bd:c:m:hnvV")) != EOF) {
|
while ((ch = getopt(argc, argv, "bd:c:m:s:hnvV")) != EOF) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'b':
|
case 'b':
|
||||||
noisy_critical = 1;
|
noisy_critical = 1;
|
||||||
|
@ -668,6 +669,16 @@ int main(int argc, char **argv)
|
||||||
fprintf(stderr, "Monitoring battery %d\n", battery_no);
|
fprintf(stderr, "Monitoring battery %d\n", battery_no);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 's':
|
||||||
|
if (optarg) {
|
||||||
|
samplerate = atoi(optarg);
|
||||||
|
if (samplerate == 0) samplerate = 1;
|
||||||
|
if (samplerate > 3000) samplerate = 3000;
|
||||||
|
} else {
|
||||||
|
usage(argv[0]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -693,7 +704,10 @@ int main(int argc, char **argv)
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/* make new dockapp window */
|
/* make new dockapp window */
|
||||||
new_window("acpi");
|
/* Don't even /think/ of asking me why, but if I set the window name to
|
||||||
|
* "acpi", the app refuses to dock properly - it's just plain /weird/ */
|
||||||
|
/* new_window("acpi"); */
|
||||||
|
new_window("apm");
|
||||||
|
|
||||||
/* get initial statistics */
|
/* get initial statistics */
|
||||||
acquire_all_info();
|
acquire_all_info();
|
||||||
|
@ -736,7 +750,26 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (update++ == 30) {
|
/* XXX: some laptops have problems with sampling the battery
|
||||||
|
* regularly - apparently, the BIOS disables interrupts while
|
||||||
|
* reading from the battery, which is generally on a slow bus
|
||||||
|
* and is a slow device, so you get significant periods without
|
||||||
|
* interrupts. This causes interactivity to suffer . . .
|
||||||
|
*
|
||||||
|
* My proposed workaround is to allow the user to set the sample
|
||||||
|
* rate - it defaults to ten, but can be set lower (or higher).
|
||||||
|
*
|
||||||
|
* The only problem with this is that we need to sample less
|
||||||
|
* frequently, while still allowing the app to update normally.
|
||||||
|
* That means calling redraw_window() and all the set_*() functions
|
||||||
|
* normally, but only calling acquire_all_info() every so often.
|
||||||
|
* As it stands, we only call acquire_all_info() once every three
|
||||||
|
* seconds (once every thirty updates) . . . I'm not entirely sure
|
||||||
|
* /how/ this could cause interactivity problems, but hey . . .
|
||||||
|
*
|
||||||
|
* So, given the base rate of once every three seconds, we want to
|
||||||
|
* change this test to . . . */
|
||||||
|
if (update++ == (3000/samplerate)) {
|
||||||
acquire_all_info();
|
acquire_all_info();
|
||||||
update = 0;
|
update = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue