• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

libsolidcontrol

powermanager.cpp

Go to the documentation of this file.
00001 /*  This file is part of the KDE project
00002     Copyright (C) 2006-2007 Kevin Ottens <ervin@kde.org>
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License version 2 as published by the Free Software Foundation.
00007 
00008     This library is distributed in the hope that it will be useful,
00009     but WITHOUT ANY WARRANTY; without even the implied warranty of
00010     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011     Library General Public License for more details.
00012 
00013     You should have received a copy of the GNU Library General Public License
00014     along with this library; see the file COPYING.LIB.  If not, write to
00015     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00016     Boston, MA 02110-1301, USA.
00017 
00018 */
00019 
00020 #include "powermanager.h"
00021 #include "powermanager_p.h"
00022 
00023 #include "soliddefs_p.h"
00024 #include "managerbase_p.h"
00025 #include "ifaces/powermanager.h"
00026 
00027 #include <kglobal.h>
00028 
00029 K_GLOBAL_STATIC(Solid::Control::PowerManagerPrivate, globalPowerManager)
00030 
00031 Solid::Control::PowerManagerPrivate::PowerManagerPrivate()
00032 {
00033     loadBackend("Power Management", "SolidPowerManager", "Solid::Control::Ifaces::PowerManager");
00034 
00035     if (managerBackend()!=0) {
00036         connect(managerBackend(), SIGNAL(schemeChanged(QString)),
00037                 this, SIGNAL(schemeChanged(QString)));
00038         connect(managerBackend(), SIGNAL(acAdapterStateChanged(int)),
00039                 this, SIGNAL(acAdapterStateChanged(int)));
00040         connect(managerBackend(), SIGNAL(batteryStateChanged(int)),
00041                 this, SIGNAL(batteryStateChanged(int)));
00042         connect(managerBackend(), SIGNAL(buttonPressed(int)),
00043                 this, SIGNAL(buttonPressed(int)));
00044         connect(managerBackend(), SIGNAL(brightnessChanged(float)),
00045                 this, SIGNAL(brightnessChanged(float)));
00046         connect(managerBackend(), SIGNAL(batteryRemainingTimeChanged(int)),
00047                 this, SIGNAL(batteryRemainingTimeChanged(int)));
00048     }
00049 }
00050 
00051 Solid::Control::PowerManagerPrivate::~PowerManagerPrivate()
00052 {
00053 }
00054 
00055 QStringList Solid::Control::PowerManager::supportedSchemes()
00056 {
00057     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00058                       QStringList(), supportedSchemes());
00059 }
00060 
00061 QString Solid::Control::PowerManager::schemeDescription(const QString &schemeName)
00062 {
00063     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00064                       QString(), schemeDescription(schemeName));
00065 }
00066 
00067 QString Solid::Control::PowerManager::scheme()
00068 {
00069     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(), QString(), scheme());
00070 }
00071 
00072 bool Solid::Control::PowerManager::setScheme(const QString &name)
00073 {
00074     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00075                       false, setScheme(name));
00076 }
00077 
00078 Solid::Control::PowerManager::BatteryState Solid::Control::PowerManager::batteryState()
00079 {
00080     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00081                       NoBatteryState, batteryState());
00082 }
00083 
00084 int Solid::Control::PowerManager::batteryChargePercent()
00085 {
00086     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00087                       -1, batteryChargePercent());
00088 }
00089 
00090 int Solid::Control::PowerManager::batteryRemainingTime()
00091 {
00092     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00093                       -1, batteryRemainingTime());
00094 }
00095 
00096 Solid::Control::PowerManager::AcAdapterState Solid::Control::PowerManager::acAdapterState()
00097 {
00098     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00099                       Plugged, acAdapterState());
00100 }
00101 
00102 Solid::Control::PowerManager::SuspendMethods Solid::Control::PowerManager::supportedSuspendMethods()
00103 {
00104     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00105                       UnknownSuspendMethod, supportedSuspendMethods());
00106 }
00107 
00108 KJob *Solid::Control::PowerManager::suspend(SuspendMethod method)
00109 {
00110     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00111                       0, suspend(method));
00112 }
00113 
00114 Solid::Control::PowerManager::CpuFreqPolicies Solid::Control::PowerManager::supportedCpuFreqPolicies()
00115 {
00116     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00117                       UnknownCpuFreqPolicy, supportedCpuFreqPolicies());
00118 }
00119 
00120 Solid::Control::PowerManager::CpuFreqPolicy Solid::Control::PowerManager::cpuFreqPolicy()
00121 {
00122     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00123                       UnknownCpuFreqPolicy, cpuFreqPolicy());
00124 }
00125 
00126 bool Solid::Control::PowerManager::setCpuFreqPolicy(CpuFreqPolicy newPolicy)
00127 {
00128     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00129                       false, setCpuFreqPolicy(newPolicy));
00130 }
00131 
00132 bool Solid::Control::PowerManager::canDisableCpu(int cpuNum)
00133 {
00134     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00135                       false, canDisableCpu(cpuNum));
00136 }
00137 
00138 bool Solid::Control::PowerManager::setCpuEnabled(int cpuNum, bool enabled)
00139 {
00140     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00141                       false, setCpuEnabled(cpuNum, enabled));
00142 }
00143 
00144 Solid::Control::PowerManager::BrightnessControlsList Solid::Control::PowerManager::brightnessControlsAvailable()
00145 {
00146     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00147                       Solid::Control::PowerManager::BrightnessControlsList(), brightnessControlsAvailable());
00148 }
00149 
00150 bool Solid::Control::PowerManager::setBrightness(float brightness, const QString &device)
00151 {
00152     if(device.isEmpty())
00153     {
00154         Solid::Control::PowerManager::BrightnessControlsList controls = brightnessControlsAvailable();
00155         if(controls.size() == 0)
00156         {
00157             return false;
00158         }
00159         else
00160         {
00161             foreach(const QString &device, controls.keys())
00162             {
00163                 SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(), setBrightness(brightness, device));
00164             }
00165             //TODO - This should be done better, it will return true even if one of the calls returns false. SOLID_CALL does not allow us to get the return value.
00166             return true;
00167         }
00168     }
00169     else
00170     {
00171         return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00172                       false, setBrightness(brightness, device));
00173     }
00174 }
00175 
00176 float Solid::Control::PowerManager::brightness(const QString &device)
00177 {
00178     if(device.isEmpty())
00179     {
00180         Solid::Control::PowerManager::BrightnessControlsList controls = brightnessControlsAvailable();
00181         if(controls.size() == 0)
00182         {
00183             return false;
00184         }
00185         else
00186         {
00187             return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00188                       false, brightness(controls.keys().at(0)));
00189         }
00190     }
00191     else
00192     {
00193         return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00194                       false, brightness(device));
00195     }
00196 }
00197 
00198 Solid::Control::PowerManager::Notifier *Solid::Control::PowerManager::notifier()
00199 {
00200     return globalPowerManager;
00201 }
00202 
00203 #include "powermanager_p.moc"
00204 #include "powermanager.moc"
00205 

libsolidcontrol

Skip menu "libsolidcontrol"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal