• Skip to content
  • Skip to link menu
KDE 4.1 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     }
00047 }
00048 
00049 Solid::Control::PowerManagerPrivate::~PowerManagerPrivate()
00050 {
00051 }
00052 
00053 QStringList Solid::Control::PowerManager::supportedSchemes()
00054 {
00055     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00056                       QStringList(), supportedSchemes());
00057 }
00058 
00059 QString Solid::Control::PowerManager::schemeDescription(const QString &schemeName)
00060 {
00061     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00062                       QString(), schemeDescription(schemeName));
00063 }
00064 
00065 QString Solid::Control::PowerManager::scheme()
00066 {
00067     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(), QString(), scheme());
00068 }
00069 
00070 bool Solid::Control::PowerManager::setScheme(const QString &name)
00071 {
00072     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00073                       false, setScheme(name));
00074 }
00075 
00076 Solid::Control::PowerManager::BatteryState Solid::Control::PowerManager::batteryState()
00077 {
00078     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00079                       NoBatteryState, batteryState());
00080 }
00081 
00082 int Solid::Control::PowerManager::batteryChargePercent()
00083 {
00084     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00085                       -1, batteryChargePercent());
00086 }
00087 
00088 Solid::Control::PowerManager::AcAdapterState Solid::Control::PowerManager::acAdapterState()
00089 {
00090     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00091                       Plugged, acAdapterState());
00092 }
00093 
00094 Solid::Control::PowerManager::SuspendMethods Solid::Control::PowerManager::supportedSuspendMethods()
00095 {
00096     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00097                       UnknownSuspendMethod, supportedSuspendMethods());
00098 }
00099 
00100 KJob *Solid::Control::PowerManager::suspend(SuspendMethod method)
00101 {
00102     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00103                       0, suspend(method));
00104 }
00105 
00106 Solid::Control::PowerManager::CpuFreqPolicies Solid::Control::PowerManager::supportedCpuFreqPolicies()
00107 {
00108     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00109                       UnknownCpuFreqPolicy, supportedCpuFreqPolicies());
00110 }
00111 
00112 Solid::Control::PowerManager::CpuFreqPolicy Solid::Control::PowerManager::cpuFreqPolicy()
00113 {
00114     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00115                       UnknownCpuFreqPolicy, cpuFreqPolicy());
00116 }
00117 
00118 bool Solid::Control::PowerManager::setCpuFreqPolicy(CpuFreqPolicy newPolicy)
00119 {
00120     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00121                       false, setCpuFreqPolicy(newPolicy));
00122 }
00123 
00124 bool Solid::Control::PowerManager::canDisableCpu(int cpuNum)
00125 {
00126     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00127                       false, canDisableCpu(cpuNum));
00128 }
00129 
00130 bool Solid::Control::PowerManager::setCpuEnabled(int cpuNum, bool enabled)
00131 {
00132     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00133                       false, setCpuEnabled(cpuNum, enabled));
00134 }
00135 
00136 Solid::Control::PowerManager::BrightnessControlsList Solid::Control::PowerManager::brightnessControlsAvailable()
00137 {
00138     return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00139                       Solid::Control::PowerManager::BrightnessControlsList(), brightnessControlsAvailable());
00140 }
00141 
00142 bool Solid::Control::PowerManager::setBrightness(float brightness, const QString &device)
00143 {
00144     if(device.isEmpty())
00145     {
00146         Solid::Control::PowerManager::BrightnessControlsList controls = brightnessControlsAvailable();
00147         if(controls.size() == 0)
00148         {
00149             return false;
00150         }
00151         else
00152         {
00153             foreach(const QString &device, controls.keys())
00154             {
00155                 SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(), setBrightness(brightness, device));
00156             }
00157             //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.
00158             return true;
00159         }
00160     }
00161     else
00162     {
00163         return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00164                       false, setBrightness(brightness, device));
00165     }
00166 }
00167 
00168 float Solid::Control::PowerManager::brightness(const QString &device)
00169 {
00170     if(device.isEmpty())
00171     {
00172         Solid::Control::PowerManager::BrightnessControlsList controls = brightnessControlsAvailable();
00173         if(controls.size() == 0)
00174         {
00175             return false;
00176         }
00177         else
00178         {
00179             return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00180                       false, brightness(controls.keys().at(0)));
00181         }
00182     }
00183     else
00184     {
00185         return_SOLID_CALL(Ifaces::PowerManager *, globalPowerManager->managerBackend(),
00186                       false, brightness(device));
00187     }
00188 }
00189 
00190 Solid::Control::PowerManager::Notifier *Solid::Control::PowerManager::notifier()
00191 {
00192     return globalPowerManager;
00193 }
00194 
00195 #include "powermanager_p.moc"
00196 #include "powermanager.moc"
00197 

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
  •   libplasma
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.4
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