diff options
Diffstat (limited to 'tdecore/tdehw/tderootsystemdevice.cpp')
-rw-r--r-- | tdecore/tdehw/tderootsystemdevice.cpp | 142 |
1 files changed, 67 insertions, 75 deletions
diff --git a/tdecore/tdehw/tderootsystemdevice.cpp b/tdecore/tdehw/tderootsystemdevice.cpp index b9a0bef9c..1e097ca90 100644 --- a/tdecore/tdehw/tderootsystemdevice.cpp +++ b/tdecore/tdehw/tderootsystemdevice.cpp @@ -63,18 +63,10 @@ void TDERootSystemDevice::internalSetPowerStates(TDESystemPowerStateList ps) { m_powerStates = ps; } -TDESystemHibernationMethodList TDERootSystemDevice::hibernationMethods() { - return m_hibernationMethods; -} - void TDERootSystemDevice::internalSetHibernationMethods(TDESystemHibernationMethodList hm) { m_hibernationMethods = hm; } -TDESystemHibernationMethod::TDESystemHibernationMethod TDERootSystemDevice::hibernationMethod() { - return m_hibernationMethod; -} - void TDERootSystemDevice::internalSetHibernationMethod(TDESystemHibernationMethod::TDESystemHibernationMethod hm) { m_hibernationMethod = hm; } @@ -115,11 +107,11 @@ bool TDERootSystemDevice::canSetHibernationMethod() { return FALSE; } -bool TDERootSystemDevice::canStandby() { +bool TDERootSystemDevice::canFreeze() { TQString statenode = "/sys/power/state"; int rval = access (statenode.ascii(), W_OK); if (rval == 0) { - if (powerStates().contains(TDESystemPowerState::Standby)) { + if (powerStates().contains(TDESystemPowerState::Freeze)) { return TRUE; } else { @@ -131,12 +123,12 @@ bool TDERootSystemDevice::canStandby() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can standby? + // can freeze? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.trinitydesktop.hardwarecontrol", "/org/trinitydesktop/hardwarecontrol", "org.trinitydesktop.hardwarecontrol.Power", - "CanStandby"); + "CanFreeze"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); @@ -148,11 +140,11 @@ bool TDERootSystemDevice::canStandby() { return FALSE; } -bool TDERootSystemDevice::canFreeze() { +bool TDERootSystemDevice::canStandby() { TQString statenode = "/sys/power/state"; int rval = access (statenode.ascii(), W_OK); if (rval == 0) { - if (powerStates().contains(TDESystemPowerState::Freeze)) { + if (powerStates().contains(TDESystemPowerState::Standby)) { return TRUE; } else { @@ -164,12 +156,12 @@ bool TDERootSystemDevice::canFreeze() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can freeze? + // can standby? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.trinitydesktop.hardwarecontrol", "/org/trinitydesktop/hardwarecontrol", "org.trinitydesktop.hardwarecontrol.Power", - "CanFreeze"); + "CanStandby"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); @@ -294,13 +286,13 @@ bool TDERootSystemDevice::canSuspend() { return FALSE; } -bool TDERootSystemDevice::canHibernate() { +bool TDERootSystemDevice::canHybridSuspend() { TQString statenode = "/sys/power/state"; TQString disknode = "/sys/power/disk"; int state_rval = access (statenode.ascii(), W_OK); int disk_rval = access (disknode.ascii(), W_OK); if (state_rval == 0 && disk_rval == 0) { - if (powerStates().contains(TDESystemPowerState::Hibernate)) { + if (powerStates().contains(TDESystemPowerState::HybridSuspend)) { return TRUE; } else { @@ -312,12 +304,12 @@ bool TDERootSystemDevice::canHibernate() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can hibernate? + // can hybrid suspend? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", - "CanHibernate"); + "CanHybridSleep"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return (reply[0].toString() == "yes"); @@ -326,41 +318,8 @@ bool TDERootSystemDevice::canHibernate() { } #endif // WITH_LOGINDPOWER -#ifdef WITH_UPOWER - { - TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); - if (dbusConn.isConnected()) { - TQT_DBusProxy upowerProperties("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.DBus.Properties", dbusConn); - if (upowerProperties.canSend()) { - // can hibernate? - TQValueList<TQT_DBusData> params; - params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString("CanHibernate"); - TQT_DBusMessage reply = upowerProperties.sendWithReply("Get", params); - if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { - return reply[0].toVariant().value.toBool(); - } - } - } - } -#endif// WITH_UPOWER - -#ifdef WITH_DEVKITPOWER - { - TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); - if (dbusConn.isConnected()) { - TQT_DBusProxy devkitpowerProperties("org.freedesktop.DeviceKit.Power", "/org/freedesktop/DeviceKit/Power", "org.freedesktop.DBus.Properties", dbusConn); - if (devkitpowerProperties.canSend()) { - // can hibernate? - TQValueList<TQT_DBusData> params; - params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString("CanHibernate"); - TQT_DBusMessage reply = devkitpowerProperties.sendWithReply("Get", params); - if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { - return reply[0].toVariant().value.toBool(); - } - } - } - } -#endif// WITH_DEVKITPOWER + // No support "hybrid suspend" in org.freedesktop.UPower + // No support "hybrid suspend" in org.freedesktop.DeviceKit.Power #ifdef WITH_HAL { @@ -368,17 +327,11 @@ bool TDERootSystemDevice::canHibernate() { if (dbusConn.isConnected()) { TQT_DBusProxy halProperties("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device", dbusConn); if (halProperties.canSend()) { - // can hibernate? + // can hybrid suspend? TQValueList<TQT_DBusData> params; TQT_DBusMessage reply; params.clear(); - params << TQT_DBusData::fromString("power_management.can_hibernate"); - reply = halProperties.sendWithReply("GetPropertyBoolean", params); - if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { - return reply[0].toBool(); - } - params.clear(); - params << TQT_DBusData::fromString("power_management.can_suspend_to_disk"); + params << TQT_DBusData::fromString("power_management.can_suspend_hybrid"); reply = halProperties.sendWithReply("GetPropertyBoolean", params); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); @@ -392,12 +345,12 @@ bool TDERootSystemDevice::canHibernate() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can hibernate? + // can hybrid suspend? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.trinitydesktop.hardwarecontrol", "/org/trinitydesktop/hardwarecontrol", "org.trinitydesktop.hardwarecontrol.Power", - "CanHibernate"); + "CanHybridSuspend"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); @@ -409,13 +362,13 @@ bool TDERootSystemDevice::canHibernate() { return FALSE; } -bool TDERootSystemDevice::canHybridSuspend() { +bool TDERootSystemDevice::canHibernate() { TQString statenode = "/sys/power/state"; TQString disknode = "/sys/power/disk"; int state_rval = access (statenode.ascii(), W_OK); int disk_rval = access (disknode.ascii(), W_OK); if (state_rval == 0 && disk_rval == 0) { - if (powerStates().contains(TDESystemPowerState::HybridSuspend)) { + if (powerStates().contains(TDESystemPowerState::Hibernate)) { return TRUE; } else { @@ -427,12 +380,12 @@ bool TDERootSystemDevice::canHybridSuspend() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can hybrid suspend? + // can hibernate? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", - "CanHybridSleep"); + "CanHibernate"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return (reply[0].toString() == "yes"); @@ -441,8 +394,41 @@ bool TDERootSystemDevice::canHybridSuspend() { } #endif // WITH_LOGINDPOWER - // No support "hybrid suspend" in org.freedesktop.UPower - // No support "hybrid suspend" in org.freedesktop.DeviceKit.Power +#ifdef WITH_UPOWER + { + TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); + if (dbusConn.isConnected()) { + TQT_DBusProxy upowerProperties("org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.DBus.Properties", dbusConn); + if (upowerProperties.canSend()) { + // can hibernate? + TQValueList<TQT_DBusData> params; + params << TQT_DBusData::fromString(upowerProperties.interface()) << TQT_DBusData::fromString("CanHibernate"); + TQT_DBusMessage reply = upowerProperties.sendWithReply("Get", params); + if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { + return reply[0].toVariant().value.toBool(); + } + } + } + } +#endif// WITH_UPOWER + +#ifdef WITH_DEVKITPOWER + { + TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); + if (dbusConn.isConnected()) { + TQT_DBusProxy devkitpowerProperties("org.freedesktop.DeviceKit.Power", "/org/freedesktop/DeviceKit/Power", "org.freedesktop.DBus.Properties", dbusConn); + if (devkitpowerProperties.canSend()) { + // can hibernate? + TQValueList<TQT_DBusData> params; + params << TQT_DBusData::fromString(devkitpowerProperties.interface()) << TQT_DBusData::fromString("CanHibernate"); + TQT_DBusMessage reply = devkitpowerProperties.sendWithReply("Get", params); + if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { + return reply[0].toVariant().value.toBool(); + } + } + } + } +#endif// WITH_DEVKITPOWER #ifdef WITH_HAL { @@ -450,11 +436,17 @@ bool TDERootSystemDevice::canHybridSuspend() { if (dbusConn.isConnected()) { TQT_DBusProxy halProperties("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device", dbusConn); if (halProperties.canSend()) { - // can hybrid suspend? + // can hibernate? TQValueList<TQT_DBusData> params; TQT_DBusMessage reply; params.clear(); - params << TQT_DBusData::fromString("power_management.can_suspend_hybrid"); + params << TQT_DBusData::fromString("power_management.can_hibernate"); + reply = halProperties.sendWithReply("GetPropertyBoolean", params); + if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { + return reply[0].toBool(); + } + params.clear(); + params << TQT_DBusData::fromString("power_management.can_suspend_to_disk"); reply = halProperties.sendWithReply("GetPropertyBoolean", params); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); @@ -468,12 +460,12 @@ bool TDERootSystemDevice::canHybridSuspend() { { TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus); if (dbusConn.isConnected()) { - // can hybrid suspend? + // can hibernate? TQT_DBusMessage msg = TQT_DBusMessage::methodCall( "org.trinitydesktop.hardwarecontrol", "/org/trinitydesktop/hardwarecontrol", "org.trinitydesktop.hardwarecontrol.Power", - "CanHybridSuspend"); + "CanHibernate"); TQT_DBusMessage reply = dbusConn.sendWithReply(msg); if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) { return reply[0].toBool(); |