1 /*
2  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3  *
4  * @APPLE_LICENSE_HEADER_START@
5  *
6  * The contents of this file constitute Original Code as defined in and
7  * are subject to the Apple Public Source License Version 1.1 (the
8  * "License").  You may not use this file except in compliance with the
9  * License.  Please obtain a copy of the License at
10  * http://www.apple.com/publicsource and read it before using this file.
11  *
12  * This Original Code and all software distributed under the License are
13  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
17  * License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * @APPLE_LICENSE_HEADER_END@
21  */
22 
23 #include <IOKit/pwr_mgt/IOPMPowerSource.h>
24 
25 #define super OSObject
26 
27 OSDefineMetaClassAndStructors(IOPMPowerSource, OSObject)
28 
29 // **********************************************************************************
30 // init
31 //
32 // **********************************************************************************
33 bool IOPMPowerSource::init (unsigned short whichBatteryIndex)
34 {
35   if (!super::init ())
36     return false;
37 
38   bBatteryIndex = whichBatteryIndex;
39   nextInList    = 0;
40 
41   return true;
42 }
43 
44 // **********************************************************************************
45 // capacityPercentRemaining
46 //
47 // **********************************************************************************
48 unsigned long IOPMPowerSource::capacityPercentRemaining (void)
49 {
50    unsigned long percentage = 0;
51 
52    if (bMaxCapacity > 0)
53      percentage = (bCurCapacity * 100) / bMaxCapacity;
54 
55    // always return a non-zero value unless the real capacity IS zero.
56    if (percentage == 0 && bCurCapacity > 0)
57      percentage = 1;
58 
59    return percentage;
60 }
61 
62 // **********************************************************************************
63 // atWarnLevel
64 //
65 // **********************************************************************************
66 bool IOPMPowerSource::atWarnLevel (void)
67 {
68   return bFlags & kBatteryAtWarn;
69 }
70 
71 // **********************************************************************************
72 // acConnected
73 //
74 // **********************************************************************************
75 bool IOPMPowerSource::acConnected (void)
76 {
77   return bFlags & kACInstalled;
78 }
79 
80 // **********************************************************************************
81 // depleted
82 //
83 // **********************************************************************************
84 bool IOPMPowerSource::depleted (void)
85 {
86   return bFlags & kBatteryDepleted;
87 }
88 
89 // **********************************************************************************
90 // isInstalled
91 //
92 // **********************************************************************************
93 bool IOPMPowerSource::isInstalled (void)
94 {
95   return bFlags & kBatteryInstalled;
96 }
97 
98 // **********************************************************************************
99 // isCharging
100 //
101 // **********************************************************************************
102 bool IOPMPowerSource::isCharging (void)
103 {
104   return bFlags & kBatteryCharging;
105 }
106 
107 // **********************************************************************************
108 // timeRemaining
109 //
110 // **********************************************************************************
111 unsigned long IOPMPowerSource::timeRemaining (void)
112 {
113   return bTimeRemaining;
114 }
115 
116 // **********************************************************************************
117 // maxCapacity
118 //
119 // **********************************************************************************
120 unsigned long IOPMPowerSource::maxCapacity (void)
121 {
122   return bMaxCapacity;
123 }
124 
125 // **********************************************************************************
126 // curCapacity
127 //
128 // **********************************************************************************
129 unsigned long IOPMPowerSource::curCapacity (void)
130 {
131   return bCurCapacity;
132 }
133 
134 // **********************************************************************************
135 // currentDrawn
136 //
137 // **********************************************************************************
138 long IOPMPowerSource::currentDrawn (void)
139 {
140   return bCurrent;
141 }
142 
143 // **********************************************************************************
144 // voltage
145 //
146 // **********************************************************************************
147 
148 unsigned long IOPMPowerSource::voltage (void)
149 {
150   return bVoltage;
151 }
152 
153 // **********************************************************************************
154 // updateStatus
155 //
156 // **********************************************************************************
157 
158 void IOPMPowerSource::updateStatus (void)
159 {
160 
161 }
162 
163 
164 
165 
166 
167