summaryrefslogtreecommitdiffstats
path: root/src/hardware_batteryCollection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/hardware_batteryCollection.h')
-rw-r--r--src/hardware_batteryCollection.h204
1 files changed, 204 insertions, 0 deletions
diff --git a/src/hardware_batteryCollection.h b/src/hardware_batteryCollection.h
new file mode 100644
index 0000000..9b98952
--- /dev/null
+++ b/src/hardware_batteryCollection.h
@@ -0,0 +1,204 @@
+ /**************************************************************************
+ * Copyright (C) 2006-2007 by Danny Kukawka *
+ * <dkukawka@suse.de>, <danny.kukawka@web.de> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License *
+ * as published by the Free Software Foundation. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+/*!
+* \file hardware_batteryCollection.h
+* \brief Headerfile for hardware_batteryCollection.cpp and the class \ref BatteryCollection.
+*/
+/*!
+* \class BatteryCollection
+* \brief class to collect batteryinformation for a special type of battries
+* \author Danny Kukawka, <dkukawka@suse.de>, <danny.kukawka@web.de>
+* \date 2006-2007
+*/
+
+#ifndef _BATTERYCOLLECTION_H_
+#define _BATTERYCOLLECTION_H_
+
+// Global Header
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// QT - Header
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qobject.h>
+
+// own Header
+#include "hardware_battery.h"
+
+class BatteryCollection : public QObject {
+
+ Q_OBJECT
+
+private:
+
+ //! contains the udis of the batteries of this collection
+ QStringList udis;
+
+ //! contains the rate unit
+ QString present_rate_unit;
+
+ //! Roletype of battery
+ /*!
+ * This int/enum tells what role this battery is used as.
+ * \li BAT_PRIMARY: Std. battery for normal system operation
+ * \li BAT_MOUSE: powersupply for wireless mouse
+ * \li BAT_KEYBOARD: powersupply in wireless keyboards
+ * \li BAT_KEY_MOUSE: powersupply in combined keyboard+mouse gadgets
+ * \li BAT_UPS: Battery in UPS systems (step in on outage of mains)
+ * \li BAT_CAMERA: battery is contained in a connected digital camera
+ * \li UNKNOWN: Batterytype/role isn't known
+ */
+ int type;
+ //! Current charging state of the active battery of this collection
+ /*!
+ * This int/enum tells if the battery is charged or discharged.
+ * \li CHARGING: battery gets charged
+ * \li DISCHARGING: battery get discharged
+ * \li UNKNOWN_STATE: battery is neither charged nor discharged
+ */
+ int charging_state;
+ //! Current general state this battery is in
+ /*!
+ * This int/enum tells what rough state the battery is currently in.
+ * \li BAT_NORM: batterylevel is ok
+ * \li BAT_WARN: battery is soon getting low
+ * \li BAT_LOW: batterylevel is already low
+ * \li BAT_CRIT: batterylevel has become really critical
+ * \li BAT_NONE: battery state not available
+ * \li BAT_HAL_ERROR: battery state couldn't be retrieved because of a HAL error
+ */
+ int state;
+
+ //! Current charge level of battery in percentage
+ /*!
+ * This int tells the current charge level of the battery in percent.
+ * \li a value between 0 and 100
+ */
+ int remaining_percent;
+ //! Expected minutes unitl fully discharged/charged
+ /*!
+ * This int tells the current estimate until the battery is fully
+ * discharged/charged (with current discharging/charging-rate and last
+ * full capacity).
+ * \li a value >= 0
+ */
+ int remaining_minutes;
+
+ //! number of present batteries
+ /*!
+ * This int tells how many batteries of this type are really present.
+ * This mean only batteries and not battery slots/bays.
+ * \li a value >= 0
+ */
+ int present_batteries;
+
+ //! number of present batteries
+ /*!
+ * This int tells the current rate of the batteries
+ * \li a value >= 0
+ */
+ int present_rate;
+
+ //! charge_level in percent that will put battery into warning state
+ int warn_level;
+ //! charge_level in percent that will put battery into low state
+ int low_level;
+ //! charge_level in percent that will put battery into critical state
+ int crit_level;
+
+ //! init the battery collection with a default value
+ void initDefault();
+
+signals:
+
+ //! emitted if we switch to a warning state
+ /*!
+ * The first int tell the battery type and the second which warning state we reached:
+ * \li BAT_NORM: batterylevel is ok ... only emitted if we return form BAT_WARN
+ * \li BAT_WARN: battery is soon getting low
+ * \li BAT_LOW: batterylevel is already low
+ * \li BAT_CRIT: batterylevel has become really critical
+ */
+ void batteryWarnState (int type, int state);
+ //! emitted if the charging state changed
+ void batteryChargingStateChanged (int changing_state);
+ //! emitted if the remainig percentage changed
+ void batteryPercentageChanged (int percent);
+ //! emitted if the remainig minutes changed
+ void batteryMinutesChanged (int minutes );
+ //! emitted if the number of present batteries changed
+ void batteryPresentChanged (int num );
+ //! emitted if the present rate changed
+ void batteryRateChanged ();
+ //! emitted if any Battery state changed
+ void batteryChanged();
+
+public:
+ //! default constructor
+ BatteryCollection( int type );
+ //! default destructor
+ ~BatteryCollection();
+
+ // functions
+ //! refresh the information of the collection from the given batterylist
+ bool refreshInfo(QPtrList<Battery> BatteryList, bool force_level_recheck = false);
+ //! check if this collection already handle a special battery/udi
+ bool isBatteryHandled(QString udi);
+
+ // get internals
+ //! get the unit for charge level stuff
+ QString getChargeLevelUnit() const;
+
+ //! get the cumulative remaining time
+ int getRemainingMinutes() const;
+ //! get the cumulative remaining percentage of the battery capacity
+ int getRemainingPercent() const;
+ //! get the current Charging state of the machine
+ int getChargingState() const;
+ //! get the current battery state
+ int getBatteryState() const;
+ //! get the number of available batteries
+ int getNumBatteries() const;
+ //! get the number of present batteries
+ int getNumPresentBatteries() const;
+ //! get the battery Type from enum \ref BAT_TYPE
+ int getBatteryType() const;
+ //! get the current battery rate
+ int getCurrentRate() const;
+
+ //! reports the chargelevel in percent when battery goes to state warning
+ int getWarnLevel() const;
+ //! reports the chargelevel in percent when battery goes to state low
+ int getLowLevel() const;
+ //! reports the chargelevel in percent when battery goes to state critical
+ int getCritLevel() const;
+
+ //! sets the chargelevel in percent when battery should go into state warning
+ bool setWarnLevel(int _warn_level);
+ //! sets the chargelevel in percent when battery should go into state low
+ bool setLowLevel(int _low_level);
+ //! sets the chargelevel in percent when battery should go into state critical
+ bool setCritLevel(int _crit_level);
+
+};
+
+#endif