By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release. View | Details | Raw Unified | Return to bug 1643
Collapse All | Expand All

(-)a/tdecore/tdehw/hwlibdaemons/dbus/org.trinitydesktop.hardwarecontrol.conf (+4 lines)
Lines 20-25 Link Here
20
           send_interface="org.freedesktop.DBus.Properties"/>
20
           send_interface="org.freedesktop.DBus.Properties"/>
21
    <allow send_destination="org.trinitydesktop.hardwarecontrol.Brightness"
21
    <allow send_destination="org.trinitydesktop.hardwarecontrol.Brightness"
22
           send_interface="org.freedesktop.DBus.Properties"/>
22
           send_interface="org.freedesktop.DBus.Properties"/>
23
    <allow send_destination="org.trinitydesktop.hardwarecontrol.Power"
24
           send_interface="org.freedesktop.DBus.Properties"/>
23
25
24
    <allow send_destination="org.trinitydesktop.hardwarecontrol"
26
    <allow send_destination="org.trinitydesktop.hardwarecontrol"
25
           send_interface="org.trinitydesktop.hardwarecontrol"/>
27
           send_interface="org.trinitydesktop.hardwarecontrol"/>
Lines 27-32 Link Here
27
           send_interface="org.trinitydesktop.hardwarecontrol.CPUGovernor"/>
29
           send_interface="org.trinitydesktop.hardwarecontrol.CPUGovernor"/>
28
    <allow send_destination="org.trinitydesktop.hardwarecontrol"
30
    <allow send_destination="org.trinitydesktop.hardwarecontrol"
29
           send_interface="org.trinitydesktop.hardwarecontrol.Brightness"/>
31
           send_interface="org.trinitydesktop.hardwarecontrol.Brightness"/>
32
    <allow send_destination="org.trinitydesktop.hardwarecontrol"
33
           send_interface="org.trinitydesktop.hardwarecontrol.Power"/>
30
  </policy>
34
  </policy>
31
35
32
  <policy context="default">
36
  <policy context="default">
(-)a/tdecore/tdehw/hwlibdaemons/dbus/tde_dbus_hardwarecontrol.c (+55 lines)
Lines 249-254 void reply_SetBrightness(DBusMessage* msg, DBusConnection* conn) { Link Here
249
	free(safepath);
249
	free(safepath);
250
}
250
}
251
251
252
void reply_CanSetPower(DBusMessage* msg, DBusConnection* conn, char* suspend) {
253
254
	// check if path is writable
255
	int writable = false;
256
	int rval = access ("/sys/power/state", W_OK);
257
	if (rval == 0) {
258
		writable = true;
259
	}
260
261
	// check if method is supported
262
	int method = false;
263
	if (writable) {
264
		FILE *node = fopen("/sys/power/state", "r");
265
		if (node != NULL) {
266
			char *line = NULL;
267
			size_t len = 0;
268
			ssize_t read = getline(&line, &len, node);
269
			if (line) {
270
				method = strstr(line, suspend) != NULL;
271
				free(line);
272
			}
273
			if (fclose(node) == EOF) {
274
				// Error!
275
			}
276
		}
277
	}
278
279
	// send reply
280
	reply_Bool(msg, conn, writable && method);
281
}
282
283
void reply_SetPower(DBusMessage* msg, DBusConnection* conn, char* suspend) {
284
285
	// set power state
286
	reply_SetGivenPath(msg, conn, "/sys/power/state", suspend);
287
}
288
252
void listen() {
289
void listen() {
253
	DBusMessage* msg;
290
	DBusMessage* msg;
254
	DBusMessage* reply;
291
	DBusMessage* reply;
Lines 309-314 void listen() { Link Here
309
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Brightness", "SetBrightness")) {
346
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Brightness", "SetBrightness")) {
310
			reply_SetBrightness(msg, conn);
347
			reply_SetBrightness(msg, conn);
311
		}
348
		}
349
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "CanStandby")) {
350
			reply_CanSetPower(msg, conn, "standby");
351
		}
352
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "Standby")) {
353
			reply_SetPower(msg, conn, "standby");
354
		}
355
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "CanSuspend")) {
356
			reply_CanSetPower(msg, conn, "mem");
357
		}
358
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "Suspend")) {
359
			reply_SetPower(msg, conn, "mem");
360
		}
361
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "CanHibernate")) {
362
			reply_CanSetPower(msg, conn, "disk");
363
		}
364
		else if (dbus_message_is_method_call(msg, "org.trinitydesktop.hardwarecontrol.Power", "Hibernate")) {
365
			reply_SetPower(msg, conn, "disk");
366
		}
312
		else {
367
		else {
313
			fprintf(stderr, "[tde_dbus_hardwarecontrol] Unknown method '%s' called on interface '%s', ignoring\n", dbus_message_get_member(msg), dbus_message_get_interface(msg));
368
			fprintf(stderr, "[tde_dbus_hardwarecontrol] Unknown method '%s' called on interface '%s', ignoring\n", dbus_message_get_member(msg), dbus_message_get_interface(msg));
314
		}
369
		}
(-)a/tdecore/tdehw/tderootsystemdevice.cpp (-4 / +97 lines)
Lines 30-42 Link Here
30
30
31
#include "config.h"
31
#include "config.h"
32
32
33
#if defined(WITH_UPOWER) || defined(WITH_CONSOLEKIT)
33
#if defined(WITH_TDEHWLIB_DAEMONS) || defined(WITH_UPOWER) || defined(WITH_DEVKITPOWER) || defined(WITH_HAL) || defined(WITH_CONSOLEKIT)
34
	#include <tqdbusdata.h>
34
	#include <tqdbusdata.h>
35
	#include <tqdbusmessage.h>
35
	#include <tqdbusmessage.h>
36
	#include <tqdbusproxy.h>
36
	#include <tqdbusproxy.h>
37
	#include <tqdbusvariant.h>
37
	#include <tqdbusvariant.h>
38
	#include <tqdbusconnection.h>
38
	#include <tqdbusconnection.h>
39
#endif // defined(WITH_UPOWER) || defined(WITH_CONSOLEKIT)
39
#endif // defined(WITH_TDEHWLIB_DAEMONS) || defined(WITH_UPOWER) || defined(WITH_DEVKITPOWER) || defined(WITH_HAL) || defined(WITH_CONSOLEKIT)
40
40
41
TDERootSystemDevice::TDERootSystemDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
41
TDERootSystemDevice::TDERootSystemDevice(TDEGenericDeviceType::TDEGenericDeviceType dt, TQString dn) : TDEGenericDevice(dt, dn) {
42
	m_hibernationSpace = -1;
42
	m_hibernationSpace = -1;
Lines 107-115 bool TDERootSystemDevice::canStandby() { Link Here
107
			return FALSE;
107
			return FALSE;
108
		}
108
		}
109
	}
109
	}
110
	else {
110
111
		return FALSE;
111
#ifdef WITH_TDEHWLIB_DAEMONS
112
	{
113
		TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
114
		if (dbusConn.isConnected()) {
115
			// can standby?
116
			TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
117
						"org.trinitydesktop.hardwarecontrol",
118
						"/org/trinitydesktop/hardwarecontrol",
119
						"org.trinitydesktop.hardwarecontrol.Power",
120
						"CanStandby");
121
			TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
122
			if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
123
				return reply[0].toBool();
124
			}
125
		}
112
	}
126
	}
127
#endif // WITH_TDEHWLIB_DAEMONS
113
}
128
}
114
129
115
bool TDERootSystemDevice::canSuspend() {
130
bool TDERootSystemDevice::canSuspend() {
Lines 186-191 bool TDERootSystemDevice::canSuspend() { Link Here
186
	}
201
	}
187
#endif // WITH_HAL
202
#endif // WITH_HAL
188
203
204
#ifdef WITH_TDEHWLIB_DAEMONS
205
	{
206
		TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
207
		if (dbusConn.isConnected()) {
208
			// can suspend?
209
			TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
210
						"org.trinitydesktop.hardwarecontrol",
211
						"/org/trinitydesktop/hardwarecontrol",
212
						"org.trinitydesktop.hardwarecontrol.Power",
213
						"CanSuspend");
214
			TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
215
			if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
216
				return reply[0].toBool();
217
			}
218
		}
219
	}
220
#endif // WITH_TDEHWLIB_DAEMONS
221
189
	return FALSE;
222
	return FALSE;
190
}
223
}
191
224
Lines 263-268 bool TDERootSystemDevice::canHibernate() { Link Here
263
	}
296
	}
264
#endif // WITH_HAL
297
#endif // WITH_HAL
265
298
299
#ifdef WITH_TDEHWLIB_DAEMONS
300
	{
301
		TQT_DBusConnection dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
302
		if (dbusConn.isConnected()) {
303
			// can hibernate?
304
			TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
305
						"org.trinitydesktop.hardwarecontrol",
306
						"/org/trinitydesktop/hardwarecontrol",
307
						"org.trinitydesktop.hardwarecontrol.Power",
308
						"CanHibernate");
309
			TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
310
			if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) {
311
				return reply[0].toBool();
312
			}
313
		}
314
	}
315
#endif // WITH_TDEHWLIB_DAEMONS
316
266
	return FALSE;
317
	return FALSE;
267
}
318
}
268
319
Lines 492-497 bool TDERootSystemDevice::setPowerState(TDESystemPowerState::TDESystemPowerState Link Here
492
		}
543
		}
493
#endif // WITH_HAL
544
#endif // WITH_HAL
494
545
546
#ifdef WITH_TDEHWLIB_DAEMONS
547
		{
548
			TQT_DBusConnection dbusConn;
549
			dbusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus);
550
			if ( dbusConn.isConnected() ) {
551
				if (ps == TDESystemPowerState::Standby) {
552
					TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
553
								"org.trinitydesktop.hardwarecontrol",
554
								"/org/trinitydesktop/hardwarecontrol",
555
								"org.trinitydesktop.hardwarecontrol.Power",
556
								"Standby");
557
					TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
558
					if (reply.type() == TQT_DBusMessage::ReplyMessage) {
559
						return true;
560
					}
561
				}
562
				else if (ps == TDESystemPowerState::Suspend) {
563
					TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
564
								"org.trinitydesktop.hardwarecontrol",
565
								"/org/trinitydesktop/hardwarecontrol",
566
								"org.trinitydesktop.hardwarecontrol.Power",
567
								"Suspend");
568
					TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
569
					if (reply.type() == TQT_DBusMessage::ReplyMessage) {
570
						return true;
571
					}
572
				}
573
				else if (ps == TDESystemPowerState::Hibernate) {
574
					TQT_DBusMessage msg = TQT_DBusMessage::methodCall(
575
								"org.trinitydesktop.hardwarecontrol",
576
								"/org/trinitydesktop/hardwarecontrol",
577
								"org.trinitydesktop.hardwarecontrol.Power",
578
								"Hibernate");
579
					TQT_DBusMessage reply = dbusConn.sendWithReply(msg);
580
					if (reply.type() == TQT_DBusMessage::ReplyMessage) {
581
						return true;
582
					}
583
				}
584
			}
585
		}
586
#endif // WITH_TDEHWLIB_DAEMONS
587
495
		return false;
588
		return false;
496
	}
589
	}
497
	else if (ps == TDESystemPowerState::PowerOff) {
590
	else if (ps == TDESystemPowerState::PowerOff) {

Return to bug 1643