00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
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
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