IOPMPowerSource.cpp   [plain text]


/*
 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * The contents of this file constitute Original Code as defined in and
 * are subject to the Apple Public Source License Version 1.1 (the
 * "License").  You may not use this file except in compliance with the
 * License.  Please obtain a copy of the License at
 * http://www.apple.com/publicsource and read it before using this file.
 * 
 * This Original Code and all software distributed under the License are
 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
 * License for the specific language governing rights and limitations
 * under the License.
 * 
 * @APPLE_LICENSE_HEADER_END@
 */

#include <IOKit/pwr_mgt/IOPMPowerSource.h>

#define super OSObject

OSDefineMetaClassAndStructors(IOPMPowerSource, OSObject)

// **********************************************************************************
// init
//
// **********************************************************************************
bool IOPMPowerSource::init (unsigned short whichBatteryIndex)
{
  if (!super::init ())
    return false;

  bBatteryIndex = whichBatteryIndex;
  nextInList    = 0;

  return true;
}

// **********************************************************************************
// capacityPercentRemaining
//
// **********************************************************************************
unsigned long IOPMPowerSource::capacityPercentRemaining (void)
{
   unsigned long percentage = 0;

   if (bMaxCapacity > 0)
     percentage = (bCurCapacity * 100) / bMaxCapacity;
 
   // always return a non-zero value unless the real capacity IS zero.
   if (percentage == 0 && bCurCapacity > 0)
     percentage = 1;

   return percentage;
}

// **********************************************************************************
// atWarnLevel
//
// **********************************************************************************
bool IOPMPowerSource::atWarnLevel (void)
{
  return bFlags & kBatteryAtWarn;
}

// **********************************************************************************
// acConnected
//
// **********************************************************************************
bool IOPMPowerSource::acConnected (void)
{
  return bFlags & kACInstalled;
}

// **********************************************************************************
// depleted
//
// **********************************************************************************
bool IOPMPowerSource::depleted (void)
{
  return bFlags & kBatteryDepleted;
}

// **********************************************************************************
// isInstalled
//
// **********************************************************************************
bool IOPMPowerSource::isInstalled (void)
{
  return bFlags & kBatteryInstalled;
}

// **********************************************************************************
// isCharging
//
// **********************************************************************************
bool IOPMPowerSource::isCharging (void)
{
  return bFlags & kBatteryCharging;
}

// **********************************************************************************
// timeRemaining
//
// **********************************************************************************
unsigned long IOPMPowerSource::timeRemaining (void)
{
  return bTimeRemaining;
}

// **********************************************************************************
// maxCapacity
//
// **********************************************************************************
unsigned long IOPMPowerSource::maxCapacity (void)
{
  return bMaxCapacity;
}

// **********************************************************************************
// curCapacity
//
// **********************************************************************************
unsigned long IOPMPowerSource::curCapacity (void)
{
  return bCurCapacity;
}

// **********************************************************************************
// currentDrawn
//
// **********************************************************************************
long IOPMPowerSource::currentDrawn (void)
{
  return bCurrent;
}

// **********************************************************************************
// voltage
//
// **********************************************************************************

unsigned long IOPMPowerSource::voltage (void)
{
  return bVoltage;
}

// **********************************************************************************
// updateStatus
//
// **********************************************************************************

void IOPMPowerSource::updateStatus (void)
{

}