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 }
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
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