From ob@pop3.mail-relay.com  Thu Sep  9 17:27:19 2004
Return-Path: <ob@pop3.mail-relay.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id C1B5016A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  9 Sep 2004 17:27:19 +0000 (GMT)
Received: from pop3.mail-relay.com (mail.mail-relay.com [194.49.77.201])
	by mx1.FreeBSD.org (Postfix) with ESMTP id DBD4643D58
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  9 Sep 2004 17:27:18 +0000 (GMT)
	(envelope-from ob@pop3.mail-relay.com)
Received: from pop3.mail-relay.com (localhost.pop3.mail-relay.com [127.0.0.1])
	by pop3.mail-relay.com (8.12.10/8.12.10) with ESMTP id i89HRFro004753
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 9 Sep 2004 19:27:15 +0200 (CEST)
Received: (from ob@localhost)
	by pop3.mail-relay.com (8.12.10/8.12.10/Submit) id i89HRFED004752;
	Thu, 9 Sep 2004 19:27:15 +0200 (CEST)
Message-Id: <200409091727.i89HRFED004752@pop3.mail-relay.com>
Date: Thu, 9 Sep 2004 19:27:15 +0200 (CEST)
From: Oliver Breuninger <ob@breuninger.org>
Reply-To: Oliver Breuninger <ob@breuninger.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: port sysutils/xbatt modification
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         71535
>Category:       ports
>Synopsis:       port sysutils/xbatt modification
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    mich
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 09 17:30:10 GMT 2004
>Closed-Date:    Wed Sep 21 10:26:45 GMT 2005
>Last-Modified:  Wed Sep 21 10:26:45 GMT 2005
>Originator:     Oliver Breuninger
>Release:        FreeBSD 4.10-RELEASE i386
>Organization:
>Environment:
System: FreeBSD bs-tosh.breuninger.org 4.10-RELEASE FreeBSD 4.10-RELEASE #4: Fri Aug  6 10:41:21 CEST 2004     root@bs-tosh.breuninger.org:/usr/src/sys/compile/TOSHIBA  i386

	
>Description:

modification for sysutils/xbatt to show the remaining battery life time in hours and minutes.

>How-To-Repeat:
>Fix:

--- xbatt.c.orig        Fri Sep 11 10:47:12 1998
+++ xbatt.c     Mon Aug 13 21:35:10 2001
@@ -80,4 +80,5 @@
 #include "bitmaps/digit9.xbm"
 #include "bitmaps/percent.xbm"
+#include "bitmaps/colon.xbm"
 
 /* reflash Interval (in seconds) */
@@ -105,4 +106,5 @@
     u_int      acline;
     u_int      charge;
+    u_int      life;           /* &&& ob: remaining seconds */
 };
 static struct status   lastStat = {APM_STAT_UNKNOWN, APM_STAT_UNKNOWN,
@@ -340,19 +342,25 @@
          case APM_STAT_BATT_HIGH:
            ret.remain = 100;
+           ret.life   = 0;
            break;
          case APM_STAT_BATT_LOW:
            ret.remain = 40;
+           ret.life   = 0;
            break;  
          case APM_STAT_BATT_CRITICAL:
            ret.remain = 10;
+           ret.life   = 0;
            break;
          default:        /* expected to be APM_STAT_UNKNOWN */
            ret.remain = APM_STAT_UNKNOWN;
+           ret.life   = 0;
        }
     } else if (info.ai_batt_life > 100) {
        /* some APM BIOSes return values slightly > 100 */
        ret.remain = 100;
+       ret.life   = 0;
     } else {
        ret.remain = info.ai_batt_life;
+       ret.life   = info.ai_batt_time;
     }
 
@@ -451,4 +459,7 @@
     Pixmap     bmp;
     int                ret;
+    int                lifemin;
+    int                lifehour; 
+    int                d;
 
     /* free old data */
@@ -518,9 +529,9 @@
                       BlackPixel(XtDisplay(toplevel),
                                   DefaultScreen(XtDisplay(toplevel))));
-       XDrawRectangle(XtDisplay(toplevel), xpmData, gc, 17, 17, 14, 8);
+       XDrawRectangle(XtDisplay(toplevel), xpmData, gc, 16, 14, 16, 14);
        XSetForeground(XtDisplay(toplevel), gc, 
                       WhitePixel(XtDisplay(toplevel),
                                   DefaultScreen(XtDisplay(toplevel))));
-       XFillRectangle(XtDisplay(toplevel), xpmData, gc, 18, 18, 13, 7);
+       XFillRectangle(XtDisplay(toplevel), xpmData, gc, 17, 15, 15, 13);
 
        if (s.remain == 100) {
@@ -538,8 +549,8 @@
            XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0,
                       full_width, full_height,
-                      19, 19, 1);
+                      19, 16, 1);
            XFreePixmap(XtDisplay(toplevel), bm);
        } else {
-           int d = s.remain / 10;
+           d = s.remain / 10;
            bm = XCreatePixmapFromBitmapData(XtDisplay(toplevel),
                                             XtWindow(toplevel),
@@ -555,5 +566,5 @@
                                             1);
            XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
-                      19, 19, 1);
+                      19, 16, 1);
            XFreePixmap(XtDisplay(toplevel), bm);
 
@@ -572,5 +583,5 @@
                                             1);
            XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
-                      23, 19, 1);
+                      23, 16, 1);
            XFreePixmap(XtDisplay(toplevel), bm);
 
@@ -588,7 +599,80 @@
                                             1);
            XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,    
-                      27, 19, 1);
+                      27, 16, 1);
            XFreePixmap(XtDisplay(toplevel), bm);
        }
+
+/* &&& ob: remaining seconds */
+
+       lifemin  = ((s.life + 30) / 60) % 60;
+       lifehour =  (s.life + 30) / 3600;
+
+           d = lifehour % 10;
+           bm = XCreatePixmapFromBitmapData(XtDisplay(toplevel),
+                                            XtWindow(toplevel), 
+                                            digits[d].bits,
+                                            digits[d].width,
+                                            digits[d].height,
+                                            BlackPixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            WhitePixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            1);
+           XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
+                      18, 22, 1);
+           XFreePixmap(XtDisplay(toplevel), bm);
+
+           bm = XCreatePixmapFromBitmapData(XtDisplay(toplevel),
+                                            XtWindow(toplevel), 
+                                            colon_bits,
+                                            colon_width,
+                                            colon_height,
+                                            BlackPixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            WhitePixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            1);
+           XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
+                      21, 22, 1);
+           XFreePixmap(XtDisplay(toplevel), bm);
+
+           d = lifemin / 10;
+           bm = XCreatePixmapFromBitmapData(XtDisplay(toplevel),
+                                            XtWindow(toplevel), 
+                                            digits[d].bits,
+                                            digits[d].width,
+                                            digits[d].height,
+                                            BlackPixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            WhitePixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            1);
+           XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
+                      24, 22, 1);
+           XFreePixmap(XtDisplay(toplevel), bm);
+
+           d = lifemin % 10;
+           bm = XCreatePixmapFromBitmapData(XtDisplay(toplevel),
+                                            XtWindow(toplevel), 
+                                            digits[d].bits,
+                                            digits[d].width,
+                                            digits[d].height,
+                                            BlackPixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            WhitePixel(XtDisplay(toplevel),
+                                                DefaultScreen(
+                                                    XtDisplay(toplevel))),
+                                            1);
+           XCopyPlane(XtDisplay(toplevel), bm, xpmData, gc, 0, 0, 3, 5,
+                      28, 22, 1);
+           XFreePixmap(XtDisplay(toplevel), bm);
+
     }
 
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: vs 
State-Changed-When: Mon Nov 8 12:23:40 GMT 2004 
State-Changed-Why:  
Forwarded PR to maintainer 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71535 

From: "Volker Stolz" <vs@freebsd.org>
To: freebsd-gnats-submit@freebsd.org, ob@breuninger.org,
	nobu@psrc.isac.co.jp
Cc:  
Subject: Re: ports/71535: port sysutils/xbatt modification
Date: Mon, 08 Nov 2004 13:23:31 +0100

 Dear maintainer, please look into this issue!
 
 Volker
State-Changed-From-To: feedback->open 
State-Changed-By: vs 
State-Changed-When: Sun Feb 27 19:06:26 GMT 2005 
State-Changed-Why:  
Maintainer timeout. Unluckily I have no hardware to test if this works. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71535 
State-Changed-From-To: open->feedback 
State-Changed-By: mich 
State-Changed-When: Wed Jul 13 14:47:23 GMT 2005 
State-Changed-Why:  
Grab this PR. 
Ask submitter to review patch, as it does apply cleanly. 


Responsible-Changed-From-To: freebsd-ports-bugs->mich 
Responsible-Changed-By: mich 
Responsible-Changed-When: Wed Jul 13 14:47:23 GMT 2005 
Responsible-Changed-Why:  
Grab this PR. 
Ask submitter to review patch, as it does apply cleanly. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71535 
State-Changed-From-To: feedback->closed 
State-Changed-By: mich 
State-Changed-When: Wed Sep 21 10:26:18 GMT 2005 
State-Changed-Why:  
Timeout. No reply from author/maintainer. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71535 
>Unformatted:
