From 0fa0204f7cfa96ec117a006bd308e52a148b4bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Fri, 28 Oct 2011 21:55:14 +0000 Subject: [PATCH] Use the new private roster API to shutdown. Maybe we should have a confirmation alert the first time ? Btw, the power_button driver should really implement select() or some other non-polling mechanism, it sux having to waste cpu. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42934 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/power/Jamfile | 2 ++ src/servers/power/power_button_monitor.cpp | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/servers/power/Jamfile b/src/servers/power/Jamfile index 5921ebceb8..8e94eb969d 100644 --- a/src/servers/power/Jamfile +++ b/src/servers/power/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src servers power ; +UsePrivateHeaders app ; + AddResources power_daemon : power_daemon.rdef ; Server power_daemon : diff --git a/src/servers/power/power_button_monitor.cpp b/src/servers/power/power_button_monitor.cpp index 8aee4dcd11..5fb6d91cf2 100644 --- a/src/servers/power/power_button_monitor.cpp +++ b/src/servers/power/power_button_monitor.cpp @@ -1,10 +1,10 @@ #include #include +#include + #include "power_button_monitor.h" -#define B_SYSTEM_SHUTDOWN 0x12d -static const char *kRosterSignature = "application/x-vnd.Be-ROST"; PowerButtonMonitor::PowerButtonMonitor() : BHandler ("power_button_monitor") { power_button_fd = open("/dev/power/button/power",O_RDONLY); @@ -22,9 +22,13 @@ void PowerButtonMonitor::MessageReceived(BMessage *msg) { if (power_button_fd <= 0) return; - bool button_pressed; + uint8 button_pressed; read(power_button_fd,&button_pressed,1); - if (button_pressed) - BMessenger(kRosterSignature).SendMessage(B_SYSTEM_SHUTDOWN); + if (button_pressed) { + BRoster roster; + BRoster::Private rosterPrivate(roster); + + rosterPrivate.ShutDown(false, false, false); + } }